@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{color-scheme:light;--font-display: "Inter", "Segoe UI", system-ui, sans-serif;--font-body: "Inter", "Segoe UI", system-ui, sans-serif;--bg: #F4F8FD;--surface: #FFFFFF;--surface-alt: #EEF6FF;--border: #DFE8F4;--text: #102A56;--text-muted: #4D6486;--text-faint: #7C90AD;--accent: #1167D8;--accent-strong: #083D85;--accent-soft: #EAF3FF;--accent-ink: #0B4EA6;--brand-green: #00B894;--brand-gradient: linear-gradient(100deg, #073B83 0%, #0757B9 45%, #06B99A 100%);--good: #0AA777;--good-soft: #EAFAF3;--good-ink: #078A63;--warn: #B4790A;--warn-soft: #FEF6E1;--warn-ink: #8A5C08;--crit: #E5484D;--crit-soft: #FDEBEC;--crit-ink: #B7373B;--neutral: #5B6672;--neutral-soft: #EEF2F7;--neutral-ink: #3F4750;--purple: #7C4FDB;--purple-soft: #EFE7FC;--shadow: 0 2px 8px rgba(20,57,104,.06), 0 10px 30px rgba(20,57,104,.07);--radius-s: 8px;--radius-m: 12px;--radius-l: 16px;--sidebar-w: 216px;--header-h: 64px;--sidebar-bg: #0B1E3D;--sidebar-border: rgba(255,255,255,.09);--sidebar-text: #B7C6E6;--sidebar-text-muted: #7C90B8;--sidebar-active-bg: #1668E0;--sidebar-hover-bg: rgba(255,255,255,.08);--warn-bg: var(--warn-soft);--warn-text: var(--warn-ink)}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--bg: #0A1730;--surface: #101F3E;--surface-alt: #152848;--border: #233A5E;--text: #E7EEFB;--text-muted: #9FB2D4;--text-faint: #6D80A8;--accent: #4E9BF5;--accent-strong: #7DB8FF;--accent-soft: #16294D;--accent-ink: #A9CDFB;--brand-green: #2FD9AE;--brand-gradient: linear-gradient(100deg, #0A2C63 0%, #1461B8 45%, #10C79E 100%);--good: #3FCB9C;--good-soft: #0E2E26;--good-ink: #8FE9CB;--warn: #E0A93A;--warn-soft: #3A2B0E;--warn-ink: #F2C56B;--crit: #F0767A;--crit-soft: #3A1B1D;--crit-ink: #F5A2A5;--neutral: #9AA6B0;--neutral-soft: #1B2A44;--neutral-ink: #C4CDD4;--purple: #B69CF2;--purple-soft: #2B2340;--shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35)}}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--text)}body:not(:has(.shell-with-sidebar)){display:grid;place-items:center;padding:16px}.card{width:100%;max-width:380px;padding:28px;display:grid;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow)}.card h1{font-size:1.5rem;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}label{display:grid;gap:6px;font-size:.9rem}.card input{padding:10px 12px;font-size:1rem;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s)}.card>button[type=submit]{padding:10px 14px;font-size:1rem;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,var(--brand-green) 100%);border:0;border-radius:var(--radius-s);cursor:pointer}.card>button[type=submit]:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--accent);padding:4px;font-size:.9rem;border:0;cursor:pointer}.muted{color:var(--text-muted);margin:0}.notice{margin:0;padding:10px 12px;border-radius:var(--radius-s);background:var(--warn-bg);color:var(--warn-text)}header.top{position:sticky;top:0;z-index:20;background:var(--brand-gradient);box-shadow:0 4px 20px #083d854d}.top-inner{display:flex;align-items:center;gap:16px;min-height:var(--header-h);padding:10px 20px;flex-wrap:wrap}.brand{display:flex;flex-direction:column;line-height:1.15;color:#fff}.brand strong{font-family:var(--font-display);font-size:17px;font-weight:700}.brand span{font-size:11.5px;color:#ffffffc7}.top-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap;color:#fff;font-size:13.5px}.top-actions .btn{background:#ffffff24;border-color:#ffffff47;color:#fff}.top-actions .btn:hover{background:#ffffff3d}.shell-with-sidebar{display:flex;align-items:stretch;min-height:calc(100vh - var(--header-h))}.sidebar{flex:none;width:var(--sidebar-w);position:sticky;top:var(--header-h);align-self:stretch;display:flex;flex-direction:column;gap:2px;background:var(--sidebar-bg);padding:20px 12px 14px;max-height:calc(100vh - var(--header-h));overflow-y:auto}.sidebar-btn{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--sidebar-text);padding:9px 12px;border-radius:var(--radius-s);font-size:13.5px;font-weight:600;cursor:pointer;text-align:left;width:100%;transition:background .12s ease,color .12s ease}.sidebar-btn:hover{background:var(--sidebar-hover-bg);color:#fff}.sidebar-btn.active{background:var(--sidebar-active-bg);color:#fff}@media (max-width: 860px){.shell-with-sidebar{display:block;min-height:0}.sidebar{position:static;width:100%;max-height:none;flex-direction:row;overflow-x:auto;padding:8px 10px}.sidebar-btn{width:auto;white-space:nowrap}}.main-area{flex:1;min-width:0}.shell{max-width:1400px;width:100%;margin:0 auto;padding:20px 20px 64px;display:grid;gap:18px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.kpi{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:14px 16px;border-top:3px solid var(--accent);box-shadow:var(--shadow)}.kpi .label{font-size:11.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.kpi .value{font-family:var(--font-display);font-size:24px;font-weight:700}.kpi.good{border-top-color:var(--good)}.kpi.good .value{color:var(--good)}.kpi.warn{border-top-color:var(--warn)}.kpi.warn .value{color:var(--warn)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:18px;display:grid;gap:14px}.tabs{display:none}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:.92rem}th{color:var(--text-faint);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:var(--surface-alt)}tbody tr:last-child td{border-bottom:0}select{padding:6px 8px;font-size:.92rem;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s)}td input,td select{padding:6px 8px;font-size:.92rem}.row-actions{display:flex;gap:6px;flex-wrap:wrap}button.small,.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:.82rem;font-weight:600;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}button.small:hover,.btn:hover{background:var(--surface-alt)}button:not(.small):not(.secondary):not(.danger):not(.link):not(.sidebar-btn):not(.btn):not(.tab-btn):not(.icon-btn){padding:8px 14px;font-size:.92rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent) 0%,var(--brand-green) 100%);border:0;border-radius:var(--radius-s);cursor:pointer;box-shadow:0 6px 16px #1167d838}button:not(.small):not(.secondary):not(.danger):not(.link):not(.sidebar-btn):not(.btn):not(.tab-btn):not(.icon-btn):hover{filter:brightness(1.05)}button:not(.small):not(.secondary):not(.danger):not(.link):not(.sidebar-btn):not(.btn):not(.tab-btn):not(.icon-btn):disabled{opacity:.6;cursor:default;box-shadow:none}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.danger{color:var(--crit);background:transparent;border:1px solid var(--crit)}button.danger:hover{background:var(--crit-soft)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600;background:var(--accent-soft);color:var(--accent-ink)}.badge.write{background:var(--good-soft);color:var(--good-ink)}.badge.read{background:var(--neutral-soft);color:var(--neutral-ink)}.role-pill{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;display:inline-block}.role-pill.role-admin{background:var(--purple-soft);color:var(--purple)}.role-pill.role-pmo{background:var(--accent-soft);color:var(--accent-ink)}.role-pill.role-pm{background:var(--good-soft);color:var(--good-ink)}.role-pill.role-viewer{background:var(--neutral-soft);color:var(--neutral-ink)}.up-auto-badge{font-size:11px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:2px 8px;border-radius:999px}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.pill .dot{width:6px;height:6px;border-radius:999px}.pill.status-active,.pill.status-good{background:var(--good-soft);color:var(--good-ink)}.pill.status-active .dot,.pill.status-good .dot{background:var(--good)}.pill.status-planning{background:var(--accent-soft);color:var(--accent-ink)}.pill.status-planning .dot{background:var(--accent)}.pill.status-on-hold{background:var(--warn-soft);color:var(--warn-ink)}.pill.status-on-hold .dot{background:var(--warn)}.pill.status-complete{background:var(--neutral-soft);color:var(--neutral-ink)}.pill.status-complete .dot{background:var(--neutral)}.inline-form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.inline-form label{display:grid;gap:4px;font-size:.8rem;color:var(--text-muted)}.access-manage{padding:10px 0 14px}.access-manage table{background:var(--bg);border-radius:var(--radius-s)}button.btn-ghost,.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}button.btn-ghost:hover,.btn-ghost:hover{background:var(--surface-alt);color:var(--text)}.user-table{width:100%;border-collapse:collapse;font-size:13px}.user-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);padding:8px 10px;border-bottom:1px solid var(--border)}.user-table td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.user-table tr:last-child td{border-bottom:0}.user-table select,.user-table input[type=text]{font-size:12.5px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:5px 7px}.user-table .icon-btn,.access-table .icon-btn{border:0;background:transparent;color:var(--text-faint);cursor:pointer;width:26px;height:26px;padding:0;border-radius:var(--radius-s);display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.user-table .icon-btn:hover,.access-table .icon-btn:hover{background:var(--surface-alt);color:var(--crit)}.user-table .icon-btn.confirm,.access-table .icon-btn.confirm{background:var(--crit-soft);color:var(--crit)}.user-table .icon-btn:disabled,.access-table .icon-btn:disabled{opacity:.35;cursor:default}.user-table .icon-btn svg,.access-table .icon-btn svg{width:14px;height:14px}.inline-form input,.inline-form select{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-s);padding:8px 10px;font-size:13.5px;color:var(--text)}.error-text{color:var(--crit);font-size:.88rem;margin:0}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;background:none;border:0;padding:0}.back-link:hover{color:var(--accent)}.detail-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 860px){.detail-grid{grid-template-columns:1fr}}.side{display:flex;flex-direction:column;gap:14px}.side .panel h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin:0 0 6px}.meta-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.meta-row:last-child{margin-bottom:0}.meta-row label{font-size:11.5px;color:var(--text-muted);font-weight:600}.timeline-stack{display:grid;gap:16px}.baseline-grid{display:grid;gap:10px}.baseline-row{display:flex;align-items:flex-end;gap:16px;padding:10px 0;border-bottom:1px solid var(--border)}.baseline-row:last-child{border-bottom:0}.baseline-label{width:84px;flex-shrink:0;font-size:13px;font-weight:700;color:var(--text)}.baseline-row label{display:grid;gap:4px;font-size:.8rem;color:var(--text-muted)}.baseline-row input{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-s);padding:8px 10px;font-size:13.5px;color:var(--text)}.tab-strip{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:4px}.tab-btn{border:0;background:none;color:var(--text-muted);padding:8px 14px;font-size:13px;font-weight:600;border-bottom:2px solid transparent;cursor:pointer;border-radius:0;box-shadow:none}.tab-btn.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.tab-btn:disabled{color:var(--text-faint);cursor:default;opacity:1}.task-table-wrap{overflow-x:auto}.task-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:760px}.task-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-alt)}.task-table td{padding:6px 10px;border-top:1px solid var(--border);vertical-align:middle}.task-table tr.is-summary td{font-weight:700;background:var(--surface-alt)}.task-name-cell{display:flex;align-items:center;gap:6px}.task-indent-btns{display:flex;gap:2px;flex:none}.icon-btn{width:20px;height:20px;padding:0;font-size:11px;line-height:1;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:4px;cursor:pointer;box-shadow:none}.icon-btn:disabled{opacity:.35;cursor:default}.task-table input,.task-table select{border:1px solid transparent;background:transparent;padding:3px 5px;font-size:12.5px;color:var(--text);width:100%;border-radius:4px}.task-table input:hover,.task-table select:hover{border-color:var(--border)}.task-table input:focus,.task-table select:focus{border-color:var(--accent);outline:none;background:var(--bg)}.task-table .cell-date{min-width:120px}.task-table .cell-num{width:60px;text-align:right}.task-assignee-chips{display:flex;flex-wrap:wrap;gap:3px}.task-assignee-chip{display:inline-flex;align-items:center;gap:3px;background:var(--surface-alt);border:1px solid var(--border);font-size:11px;padding:1px 6px 1px 3px;border-radius:20px}.task-assignee-chip button{border:0;background:none;cursor:pointer;color:var(--text-faint);padding:0;font-size:11px}
