:root{--navy: #0f5b73;--navy-dark: #0b4356;--accent: #00a0cb;--ice: #eef9fc;--ice-2: #d4f1ff;--bg: #f7fcfd;--card: #ffffff;--border: #dcebf1;--text: #1a2b33;--muted: #5f7681;--green: #15803d;--red: #d4324b;--amber: #b45309}*{box-sizing:border-box}body{margin:0;font-family:Work Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.layout{display:flex;min-height:100vh}.sidebar{width:210px;background:var(--navy);color:#d8ecf3;padding:16px 14px 20px;display:flex;flex-direction:column;gap:18px;flex-shrink:0;transition:width .18s ease,padding .18s ease;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.collapse-btn{background:none;border:0;color:#cfe7f0;cursor:pointer;font-size:19px;padding:4px 8px;border-radius:8px;line-height:1}.collapse-btn:hover{background:#ffffff1a;color:#fff}.brand{display:flex;align-items:center;gap:10px;padding:0 2px}.brand-logo{height:22px;display:block;filter:brightness(0) invert(1)}.brand-sub{font-size:10.5px;color:#9cc6d5;letter-spacing:.04em;text-transform:uppercase}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar .nav-section{margin:14px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ffffff73}.sidebar .nav-section:first-child{margin-top:2px}.sidebar.collapsed .nav-section{display:none}.sidebar nav a{color:#c3dde7;text-decoration:none;padding:8px 10px;border-radius:999px;font-weight:500}.sidebar nav a:hover{background:#ffffff14;color:#fff}.sidebar nav a.active{background:var(--accent);color:#fff}.sidebar.collapsed{width:54px;padding:16px 8px 20px;align-items:center}.sidebar.collapsed .brand,.sidebar.collapsed nav,.sidebar.collapsed .local-badge,.sidebar.collapsed .user-box{display:none}.local-badge{margin-top:auto;font-size:11px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#ffd28a;border-radius:6px;padding:6px 8px;text-align:center}.main{flex:1;padding:26px 32px;max-width:1250px}h1{font-size:20px;margin:0 0 4px}.page-sub{color:var(--muted);margin:0 0 20px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.hero-banner{background:var(--navy);color:#fff;border-radius:14px;padding:18px 22px;margin-bottom:16px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.hero-banner .label{font-size:13px;color:#b9d8e4;margin-bottom:4px}.hero-banner .value{font-size:30px;font-weight:700;letter-spacing:-.01em}.hero-banner .hero-sub{font-size:13px;color:#9cc6d5}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:22px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.card.highlight{background:var(--ice);border-color:var(--accent)}.card.highlight .value{color:var(--navy)}.card.hero{background:var(--navy);border-color:var(--navy)}.card.hero .label{color:#b9d8e4}.card.hero .value{color:#fff;font-size:24px}.card.hero .detail{color:#9cc6d5}.card .label{font-size:12px;color:var(--muted);margin-bottom:4px}.card .value{font-size:20px;font-weight:700}.card .detail{font-size:12px;color:var(--muted);margin-top:4px}.detail-cards{display:flex;flex-wrap:wrap;align-items:stretch}.detail-cards .card{flex:1 1 190px}.detail-cards .card.compact{flex:0 1 132px}.detail-cards .card.project{flex:1.6 1 260px;display:flex;flex-direction:column}.card.project{background:var(--ice);border-color:var(--accent);border-style:dashed}.card.project .value{color:var(--navy)}.btn-xs{margin-top:auto;align-self:flex-start;padding:4px 10px;font-size:12px}.est-breakdown{margin:6px 0 4px;font-size:13px}.est-breakdown>div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border)}.est-breakdown .est-total{font-weight:700;border-bottom:none;border-top:2px solid var(--navy);margin-top:2px;padding-top:8px}.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:20px}.panel h2{font-size:15px;margin:0 0 12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--navy)}th .sort-arrow{font-size:9px;margin-left:3px}td.col-name{max-width:170px;overflow:hidden;text-overflow:ellipsis}td.col-person{max-width:150px;overflow:hidden;text-overflow:ellipsis}.qc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:22px}.qc-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:12px;padding:11px 14px}.qc-card.ok{border-left-color:var(--green)}.qc-card.bad{border-left-color:var(--red)}.qc-card.warn{border-left-color:#d99a00}.qc-card.info{border-left-color:var(--accent)}.qc-card .qc-label{font-size:12px;color:var(--muted);font-weight:600}.qc-card .qc-value{font-size:20px;font-weight:700;margin:3px 0 1px}.qc-card.ok .qc-value{color:var(--green)}.qc-card.bad .qc-value{color:var(--red)}.qc-card .qc-detail{font-size:11px;color:var(--muted)}.form-section{margin:12px 0 8px;padding-top:10px;border-top:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.form-section:first-child{border-top:none;padding-top:0;margin-top:0}.form-section .sub{display:block;text-transform:none;letter-spacing:0;font-weight:400;margin-top:2px}.col-holder{max-width:150px;overflow:hidden;text-overflow:ellipsis}td.col-event{max-width:190px;overflow:hidden;text-overflow:ellipsis}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.sh-table{font-size:13px}.sh-table th,.sh-table td{padding-left:8px;padding-right:8px}.sh-table td.col-name{max-width:150px}.sh-table td.col-person{max-width:110px}.sh-table th.num,.sh-table td.num{white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--ice)}tfoot td{font-weight:700;border-top:2px solid var(--border)}.subtext{font-size:10.5px;color:var(--muted);font-weight:400;margin-top:1px}.pos{color:var(--green)}.neg{color:var(--red)}.muted{color:var(--muted)}.small{font-size:12px}.badge{display:inline-block;font-size:11px;font-weight:600;border-radius:999px;padding:2px 9px}.badge.resolved{background:#dcfce7;color:var(--green)}.badge.pending{background:#fef3c7;color:var(--amber)}.badge.type{background:var(--ice-2);color:var(--navy)}.badge.former{background:#e5e7eb;color:#6b7280}.badge.locked{background:#dcfce7;color:var(--green)}.badge.draft{background:#ffedd5;color:#9a3412}.lock-banner{margin-top:14px;padding:10px 14px;font-size:13px;background:var(--ice);border:1px solid var(--border);border-radius:8px}.lock-banner .badge{margin-right:8px}tr.row-draft td{background:#fffaf3}.search{width:320px;max-width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;margin-bottom:14px;background:#fff}.search:focus{outline:2px solid var(--accent);border-color:transparent}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filters select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px}.back-link{font-size:13px;color:var(--accent);text-decoration:none;display:inline-block;margin-bottom:10px}.back-link:hover{text-decoration:underline}.note-box{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.loading{color:var(--muted);padding:40px 0;text-align:center}.chart svg{width:100%;height:auto;display:block}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy)}.auth-card{background:var(--card);border-radius:12px;padding:28px 30px;width:360px;max-width:92vw;box-shadow:0 8px 40px #00000059}.auth-card h2{font-size:16px;margin:0 0 8px}.auth-card label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px;font-weight:600}.auth-card input{display:block;width:100%;margin-top:4px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px}.auth-card input:focus{outline:2px solid var(--accent);border-color:transparent}.auth-card .qr{display:block;width:190px;height:190px;margin:10px auto}.auth-card .check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;color:var(--text);margin:2px 0 14px}.auth-card .check input{width:auto;margin:0}.btn-primary{width:100%;padding:10px;border:0;border-radius:999px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:default}.lang-flags{margin-top:auto;display:flex;gap:7px;padding-bottom:10px}.lang-flags+.user-box{margin-top:0}.lang-flag{padding:0;border:1.5px solid transparent;border-radius:3px;background:none;cursor:pointer;line-height:0;opacity:.5;transition:opacity .15s}.lang-flag:hover{opacity:.85}.lang-flag.active{opacity:1;border-color:#fff}.flag-svg{width:22px;height:16px;border-radius:1.5px;display:block}.user-box{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding-top:12px;display:flex;flex-direction:column;gap:6px;color:#b9cddd;overflow:hidden}.user-box .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-ghost{background:none;border:1px solid rgba(255,255,255,.25);color:#dbe7f0;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.btn-ghost:hover{background:#ffffff14}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f243473;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal-card{background:var(--card);border-radius:14px;width:460px;max-width:94vw;box-shadow:0 12px 48px #0000004d;padding:18px 20px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head h3{margin:0;font-size:16px}.modal-x{background:none;border:0;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}.modal-x:hover{color:var(--text)}.modal-card label{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:9px}.modal-card input,.modal-card select{display:block;width:100%;margin-top:3px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.form-grid>.form-section,.form-grid>.full{grid-column:1 / -1}.modal-card input:focus,.modal-card select:focus{outline:2px solid var(--accent);border-color:transparent}.modal-actions{display:flex;gap:8px;align-items:center;margin-top:18px}.modal-actions .spacer{flex:1}.field-hint{font-weight:400;color:var(--muted);font-size:11px;margin-top:3px}.btn-secondary{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn-secondary:hover{background:var(--ice)}.btn-danger{border:1px solid #f3c6c6;background:#fff;color:var(--red);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn-danger:hover{background:#fef2f2}.row-edit{border:1px solid var(--border);background:#fff;border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--navy)}.row-edit:hover{background:var(--ice)}th.actions,td.actions{text-align:right;width:1%;white-space:nowrap}.invite-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.invite-form select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:13px;max-width:320px}.invite-link{margin-top:12px;padding:10px 14px;background:#f0f6fc;border:1px solid #bcd8f0;border-radius:8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.invite-link code{font-size:12px;word-break:break-all;flex:1;min-width:200px}.btn-small{border:1px solid var(--border);background:#fff;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer}.btn-small.danger{color:var(--red);border-color:#f3c6c6}.btn-small.danger:hover{background:#fef2f2}table select{padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:12px;max-width:220px}.note-box.ok{background:#ecfdf5;border-color:#a7f3d0;color:var(--green)}.note-box.danger{background:#fef2f2;border-color:#f3c6c6;color:var(--red)}.badge.issue{background:var(--ice-2);color:var(--navy)}.badge.transfer{background:#fef3c7;color:#92400e}.badge.grant{background:#ede9fe;color:#6d28d9}.mv-batch{display:flex;gap:14px;flex-wrap:wrap}.mv-batch label{display:block;font-size:12px;color:var(--muted);font-weight:600;flex:1 1 200px}.mv-batch input{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.mv-grid td{vertical-align:middle;padding:5px 6px}.mv-grid input,.mv-grid select{display:block;width:100%;max-width:none;padding:7px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:#fff;box-sizing:border-box}.mv-grid input:focus,.mv-grid select:focus{outline:2px solid var(--accent);border-color:transparent}.sh-picker{position:relative}.sh-picker.stacked{margin-top:5px}.sh-picker-list{margin:0;padding:4px;list-style:none;z-index:50;max-height:240px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #00000029}.sh-picker-list li{padding:6px 9px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sh-picker-list li.hi{background:var(--ice)}.sh-picker-list .sh-owner{color:var(--muted)}.sh-picker-list .sh-more{color:var(--muted);font-size:12px;cursor:default;font-style:italic}.mv-new{display:inline-block;margin-top:5px;padding:3px 8px;font-size:12px;cursor:pointer;border:1px dashed var(--accent);background:var(--ice);color:var(--navy);border-radius:6px}.mv-new:hover{background:var(--ice-2)}.mv-grid input.in-bad{border-color:#f3c6c6;background:#fef2f2}.mv-grid tr.row-invalid td{background:#fff8f8}.mv-grid-foot{padding:10px 6px 2px}.row-x{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:6px;padding:4px 9px;font-size:12px;cursor:pointer;line-height:1}.row-x:hover{background:#fef2f2;color:var(--red);border-color:#f3c6c6}.badge.delete{background:#fee2e2;color:#b91c1c}tr.audit-detail>td{background:var(--ice-1, #f6f9fb);padding:4px 12px 10px}table.audit-diff{width:100%;border-collapse:collapse}table.audit-diff td{border:none;padding:3px 8px;vertical-align:top}.guide-section{margin-bottom:16px}.guide-section h2{display:flex;align-items:center;gap:12px;margin-top:0}.guide-section h3{color:var(--navy);font-size:15px;margin:18px 0 6px}.guide-section p,.guide-section li{max-width:72ch}.guide-num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.guide-num.sm{width:20px;height:20px;font-size:12px;margin-right:10px}.guide-toc{padding:16px 18px}.guide-toc-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}.guide-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:4px}.guide-toc li{max-width:none}.guide-toc a{display:flex;align-items:center;padding:5px 8px;border-radius:8px;color:var(--text);text-decoration:none;font-weight:600}.guide-toc a:hover{background:var(--ice);color:var(--navy)}.guide-toc a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.guide-path{font-family:SF Mono,JetBrains Mono,Menlo,ui-monospace,monospace;font-size:12.5px;background:var(--ice);color:var(--navy);border:1px solid var(--border);border-radius:6px;padding:2px 8px;white-space:nowrap}.guide-where{margin:0 0 10px}.guide-card{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--bg);border-radius:10px;padding:14px 18px;margin:12px 0}.guide-card h3{margin-top:0}.guide-card:first-of-type{margin-top:6px}.guide-steps,.guide-menu{padding-left:20px;display:grid;gap:7px}.guide-steps ul{margin-top:6px}.guide-steps ul,.guide-menu ul{display:grid;gap:5px;padding-left:18px;margin-bottom:0}.powered-by{margin-top:auto;font-size:11px;color:#ffffff73}.user-box+.powered-by{margin-top:6px}.powered-by strong{color:#ffffffb8;font-weight:700}.sidebar.collapsed .powered-by{display:none}.auth-powered{position:fixed;left:18px;bottom:14px;font-size:12px;color:#ffffff80}.auth-powered strong{color:#fffc;font-weight:700}.pw-field{position:relative}.pw-field input{padding-right:40px!important}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:6px}.pw-eye:hover{color:var(--navy)}.pw-eye:focus-visible{outline:2px solid var(--accent)}.pw-rules{list-style:none;margin:-6px 0 12px;padding:0;display:grid;gap:3px}.pw-rules li{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.pw-rules li.ok{color:var(--green)}.pw-tick{font-weight:700;width:12px;display:inline-block;text-align:center}.auth-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}.link-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--accent);font-weight:600;font-size:13px;text-decoration:none}.link-btn:hover{text-decoration:underline}.brand-wordmark{font-size:22px;font-weight:800;letter-spacing:.02em;line-height:1;color:#fff}
