:root{--bg: #f6f7fa;--card: #ffffff;--ink: #101828;--muted: #667085;--soft: #98a2b3;--line: #eef0f4;--primary: #111827;--primary-ink: #ffffff;--good: #12925d;--good-bg: #e7f6ee;--bad: #d92d20;--bad-bg: #fdeceb;--warn: #b54708;--warn-bg: #fdf1e2;--info: #175cd3;--info-bg: #e9f0fc;--muted-bg: #f2f4f7;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 32px -16px rgba(16, 24, 40, .08);--sans: -apple-system, blinkmacsystemfont, "Segoe UI", helvetica, arial, sans-serif;--mono: "SF Mono", menlo, consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg)}body{color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.25}h2{font-size:16px;font-weight:600;letter-spacing:-.01em}.muted{color:var(--muted)}.app{display:flex;min-height:100vh}.sidebar{background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;flex-shrink:0;gap:8px;height:100vh;overflow-y:auto;padding:24px 16px;position:sticky;top:0;width:232px}.brand{align-items:center;color:var(--ink);display:flex;font-size:18px;font-weight:700;gap:10px;letter-spacing:-.02em;padding:0 8px 16px}.brand-mark{align-items:center;background:var(--primary);border-radius:9px;color:var(--primary-ink);display:inline-flex;height:30px;justify-content:center;position:relative;width:30px}.brand-mark:after{background:var(--good);border:2px solid var(--card);border-radius:50%;content:"";height:9px;position:absolute;right:-3px;top:-3px;width:9px}.brand-mark svg{height:16px;width:16px}.menu-label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.08em;padding:0 12px;text-transform:uppercase}.menu{display:flex;flex-direction:column;gap:2px}.menu-item{align-items:center;background:none;border:none;border-radius:10px;color:var(--muted);cursor:pointer;display:flex;font-family:var(--sans);font-size:14px;font-weight:500;gap:10px;padding:9px 12px;text-align:left;width:100%}.menu-item svg{color:var(--soft);height:15px;width:15px}.menu-item:hover,.menu-item.active{background:var(--bg);color:var(--ink);text-decoration:none}.menu-item:hover svg,.menu-item.active svg{color:var(--ink)}.sidebar-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:12px}.main{flex:1;min-width:0}.main-inner{margin:0 auto;max-width:1024px;padding:40px 40px 24px}.main-inner-wide{max-width:none}.topbar{align-items:center;background:var(--card);border-bottom:1px solid var(--line);display:none;gap:12px;left:0;padding:10px 16px;position:fixed;right:0;top:0;z-index:120}.topbar .brand{padding:0}.topbar-menu{align-items:center;background:none;border:none;border-radius:10px;color:var(--ink);cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.topbar-menu:hover{background:var(--bg)}.topbar-menu svg{height:20px;width:20px}.sidebar-backdrop{background:#1018287a;display:none;top:0;right:0;bottom:0;left:0;position:fixed;z-index:140}.page-head{margin-bottom:28px}.page-head-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.page-head-actions{align-items:center;display:flex;gap:12px}.page-sub{color:var(--muted);font-size:14px;margin-top:4px}.tiles{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.tile{align-items:flex-start;background:var(--card);border-radius:18px;box-shadow:var(--shadow);display:flex;gap:14px;padding:20px 22px}.tile-icon{align-items:center;background:var(--bg);border-radius:50%;color:var(--ink);display:inline-flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.tile-icon svg{height:18px;width:18px}.tile-icon-good{background:var(--good-bg);color:var(--good)}.tile-icon-warn{background:var(--warn-bg);color:var(--warn)}.tile-label{color:var(--muted);font-size:13px}.tile-value{font-size:28px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em;line-height:1.3}.tile-note{color:var(--soft);font-size:12px}.date-chip{align-items:center;background:var(--card);border-radius:12px;box-shadow:var(--shadow);color:var(--ink);display:inline-flex;font-size:13.5px;font-weight:500;gap:8px;padding:5px 8px;white-space:nowrap}.date-chip input{border:none;color:var(--ink);font-family:var(--sans);font-size:13.5px;outline:none}.date-chip button{align-items:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;height:26px;justify-content:center;width:26px}.date-chip button:hover{background:var(--bg);color:var(--ink)}.date-chip svg{height:14px;width:14px}.card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);margin-bottom:24px;padding:22px 26px}.card-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.table-wrap{margin:0 -16px;overflow-x:auto}.listing{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.listing th{border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:600;padding:8px 16px;text-align:left;white-space:nowrap}.listing td{border-bottom:1px solid var(--line);padding:8px 16px;vertical-align:middle}.listing td:first-child input{min-width:220px}.listing td.sub-name{padding-left:40px}.listing select{min-width:110px}.listing input[type=date]{min-width:130px}.listing tbody tr:last-child td{border-bottom:none}.pill{border-radius:999px;display:inline-block;font-size:12.5px;font-weight:600;line-height:1.6;padding:2px 10px;white-space:nowrap}.pill:before{border-radius:50%;content:"";display:inline-block;height:6px;margin-bottom:1px;margin-right:6px;width:6px}.pill-done{background:var(--good-bg);color:var(--good)}.pill-done:before{background:var(--good)}.pill-overdue{background:var(--bad-bg);color:var(--bad)}.pill-overdue:before{background:var(--bad)}.pill-budget{background:var(--warn-bg);color:var(--warn)}.pill-budget:before{background:var(--warn)}.pill-admin{background:var(--info-bg);color:var(--info)}.pill-admin:before{background:var(--info)}.pill-member{background:var(--muted-bg);color:var(--muted)}.pill-member:before{background:var(--muted)}.pill-online{background:var(--good-bg);color:var(--good)}.pill-online:before{background:var(--good)}.pill-pending{background:var(--warn-bg);color:var(--warn)}.pill-pending:before{background:var(--warn)}.pill-offline{background:var(--bad-bg);color:var(--bad)}.pill-offline:before{background:var(--bad)}.tag{background:var(--muted-bg);border-radius:999px;color:var(--muted);display:inline-block;font-size:12px;font-weight:600;line-height:1.6;padding:2px 10px;white-space:nowrap}.form .input{margin-bottom:18px}.form label{color:var(--ink);display:block;font-size:13.5px;font-weight:500;margin-bottom:6px}.form input,.form select,.form textarea,.listing input,.listing select{background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:var(--sans);font-size:14.5px;padding:10px 14px;width:100%}.listing input,.listing select{font-size:14px;padding:7px 10px}.form select,.listing select{-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 6l4.5 4.5 4.5-4.5' fill='none' stroke='%23667085' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px;cursor:pointer;padding-right:40px;-webkit-appearance:none}.listing select{background-position:right 10px center;padding-right:30px}.form textarea{font-family:var(--mono);font-size:13px;min-height:96px}.form input[type=checkbox]{height:17px;vertical-align:middle;width:17px}.form input:focus,.form select:focus,.form textarea:focus,.listing input:focus,.listing select:focus{border-color:var(--primary);box-shadow:0 0 0 4px #11182714;outline:none}.form .hint{color:var(--muted);font-size:12.5px;margin-top:6px}.button{align-items:center;background:var(--primary);border:1px solid transparent;border-radius:10px;color:var(--primary-ink);cursor:pointer;display:inline-flex;font-family:var(--sans);font-size:14px;font-weight:600;gap:8px;height:40px;line-height:1;padding:0 18px}.button svg{height:14px;width:14px}.button:hover{opacity:.9;text-decoration:none}.button:focus-visible{box-shadow:0 0 0 4px #11182729;outline:none}.button-full{justify-content:center;width:100%}.button-small{font-size:13px;height:32px;padding:0 12px}.button-small svg{height:13px;width:13px}.button-large{font-size:15px;height:48px;padding:0 24px}.button-large svg{height:16px;width:16px}.button-ghost{background:var(--card);border:1px solid var(--line);color:var(--ink)}.button-ghost:hover{background:var(--bg);opacity:1}.button-danger{background:var(--bad)}.flash{border-radius:12px;font-size:14px;font-weight:500;margin-bottom:20px;padding:12px 16px}.flash-error{background:var(--bad-bg);color:var(--bad)}.flash-success{background:var(--good-bg);color:var(--good)}.toast{animation:toast-in .3s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow);cursor:pointer;left:50%;margin-bottom:0;max-width:480px;position:fixed;top:24px;transform:translate(-50%);width:max-content;z-index:200}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.banner{background:var(--warn-bg);border-radius:12px;color:var(--warn);font-size:14px;font-weight:500;margin-bottom:20px;padding:12px 16px}.task-list{list-style:none}.task-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;padding:10px 4px}.task-row:last-child{border-bottom:none}.task-row-sub{border-bottom:none;padding:2px 4px 2px 40px}.task-check{accent-color:var(--primary);cursor:pointer;flex-shrink:0;height:17px;width:17px}.task-check:disabled{cursor:default}.task-name{font-size:14.5px;font-weight:500}.task-row-done .task-name{color:var(--soft);text-decoration:line-through}.task-row-cancelled .task-name{color:var(--soft);text-decoration:line-through wavy}.task-row-dimmed .task-name{color:var(--soft)}.task-note{color:var(--muted);font-size:12.5px}.task-meta{align-items:center;display:flex;gap:8px;margin-left:auto;min-height:26px}.task-action{align-items:center;background:none;border:none;border-radius:8px;color:var(--soft);cursor:pointer;display:inline-flex;height:26px;justify-content:center;width:26px}.task-action:hover{background:var(--bg);color:var(--ink)}.task-action svg{height:14px;width:14px}.adhoc-row{align-items:center;display:flex;gap:12px}.adhoc-row select{height:40px}.adhoc-row select{flex:1}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--muted-bg);border:1px solid transparent;border-radius:999px;color:var(--muted);cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:600;padding:4px 14px}.chip.active{background:var(--primary);color:var(--primary-ink)}.login-wrap{align-items:center;display:flex;justify-content:center;min-height:80vh}.login-card{max-width:400px;padding:32px;text-align:center;width:100%}.login-card h1{margin-top:16px}.login-card .page-sub{margin-bottom:24px}.login-card .flash{margin-top:16px;text-align:left}.login-card .form{text-align:left}.brand-center{justify-content:center;padding:0}.empty{color:var(--muted);padding:24px;text-align:center}.mono{font-family:var(--mono);font-size:.9em}.details{display:grid;gap:16px 32px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.details dt{color:var(--muted);font-size:12.5px}.details dd{font-size:15px;font-weight:500}.status-hero{align-items:center;display:flex;gap:20px;padding:28px 30px}.status-hero h1{font-size:24px}.status-orb{border-radius:50%;flex-shrink:0;height:16px;position:relative;width:16px}.status-orb:after{animation:status-pulse 2.4s ease-out infinite;border-radius:50%;content:"";top:0;right:0;bottom:0;left:0;position:absolute}.status-orb-operational,.status-orb-operational:after{background:var(--good)}.status-orb-degraded,.status-orb-degraded:after{background:var(--warn)}@keyframes status-pulse{0%{opacity:.6;transform:scale(1)}70%{opacity:0;transform:scale(2.6)}to{opacity:0;transform:scale(2.6)}}.status-list{list-style:none}.status-row{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:14px 4px}.status-row:last-child{border-bottom:none}.status-name{font-size:14.5px;font-weight:500}.status-note{color:var(--muted);font-size:12.5px}.modal-overlay{align-items:center;animation:overlay-in .24s ease-out;background:#1018287a;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:24px;position:fixed;z-index:100}.modal{animation:modal-in .4s cubic-bezier(.16,1,.3,1);background:var(--card);border-radius:18px;box-shadow:0 1px 2px #10182814,0 24px 64px -12px #10182852;max-width:420px;padding:28px 30px;width:100%}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.modal-overlay.closing{animation:overlay-out .18s ease-in forwards}.modal-overlay.closing .modal{animation:modal-out .25s cubic-bezier(.3,0,.8,.15) forwards}@keyframes overlay-out{0%{opacity:1}to{opacity:0}}@keyframes modal-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(32px)}}.modal-icon{align-items:center;background:var(--bad-bg);border-radius:50%;color:var(--bad);display:inline-flex;float:right;height:44px;justify-content:center;margin-left:16px;width:44px}.modal-icon-neutral{background:var(--bg);color:var(--ink)}.modal-icon svg{height:18px;width:18px}.modal h2{font-size:17px;margin-bottom:6px}.modal-text{color:var(--muted);font-size:14px}.modal-text strong{color:var(--ink);font-weight:600}.modal-hint{background:var(--bg);border-radius:10px;color:var(--muted);font-size:12.5px;margin-top:14px;padding:10px 14px}.modal-label{color:var(--muted);display:block;font-size:12.5px;font-weight:600;margin-top:14px}.modal-input{background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:var(--sans);font-size:14.5px;margin-top:14px;padding:10px 14px;width:100%}.modal-label+.modal-input{margin-top:6px}.modal-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #11182714;outline:none}.modal-buttons{clear:both;display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.modal-buttons .button:disabled{cursor:default;opacity:.5}@media(max-width:880px){.app{padding-top:57px}.topbar{display:flex}.sidebar{bottom:0;left:0;position:fixed;top:0;transform:translate(-100%);transition:transform .24s cubic-bezier(.16,1,.3,1);width:264px;z-index:150}.sidebar.open{box-shadow:0 1px 2px #10182814,0 24px 64px -12px #10182852;transform:none}.sidebar-backdrop{display:block}.main-inner{padding:24px 16px}.page-head-row{align-items:flex-start;flex-wrap:wrap}.task-row{flex-wrap:wrap}.toast{max-width:calc(100vw - 32px)}}
