:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#0f1015;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547}a:hover{color:#747bff}button{background-color:#f9f9f9}}.project-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:24px 0 8px}.pagination-btn{min-width:36px;padding:7px 10px;border:1px solid #2A2D35;background:#13151b;color:#aaa;font-family:Barlow,sans-serif;font-size:13px;cursor:pointer;transition:all .15s;border-radius:2px}.pagination-btn.active{border-color:#e8a020;color:#e8a020}.pagination-btn:hover:not(.active):not(:disabled){border-color:#555;color:#eee}.pagination-btn:disabled{opacity:.4;cursor:default}.pagination-gap{color:#949494;padding:0 4px}.pagination-total{margin-left:12px;color:#949494;font-size:13px}.login-language{display:flex;justify-content:flex-end;gap:8px;margin-bottom:20px}.login-language button{background:#0f1015;color:#d4cfc8;border:1px solid #666;border-radius:2px;padding:10px 14px;min-height:44px;font:inherit;cursor:pointer}.login-language button[aria-pressed=true]{color:#0f1015;background:#e8a020;border-color:#e8a020}.login-language button:focus-visible{outline:2px solid #fff;outline-offset:3px}.login-privacy{margin:20px 0 0;text-align:center;font-size:12px}.login-privacy a{color:#d4cfc8;text-decoration:underline}.login-privacy a:focus-visible{outline:2px solid #fff;outline-offset:3px}.mcp-wall-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.mcp-wall-modal{background:#13151b;border:1px solid #2a2d35;border-top:3px solid #e8a020;padding:28px 24px;width:100%;max-width:420px;border-radius:2px;box-sizing:border-box}.mcp-wall-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.mcp-wall-icon{width:32px;height:32px;background:#e8a020;clip-path:polygon(0 0,85% 0,100% 15%,100% 100%,15% 100%,0 85%);display:flex;align-items:center;justify-content:center;font-size:13px;color:#0f1015;font-weight:900;flex-shrink:0}.mcp-wall-title{color:#fff;margin:0;font-size:20px;font-weight:700;font-family:Barlow Condensed,sans-serif;letter-spacing:1px;text-transform:uppercase}.mcp-wall-info{color:#aaa;font-size:13px;margin-bottom:16px;line-height:1.5}.mcp-wall-error{background:#e74c3c22;color:#e74c3c;padding:12px;margin-bottom:14px;border:1px solid #e74c3c44;border-radius:2px;font-size:13px}.mcp-wall-form{display:flex;flex-direction:column;gap:14px}.mcp-wall-field{display:flex;flex-direction:column;gap:6px}.mcp-wall-label{font-size:10px;color:#949494;text-transform:uppercase;letter-spacing:1px;font-family:DM Mono,monospace}.mcp-wall-row{display:flex;gap:6px}.mcp-wall-input-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:0}.mcp-wall-input{background:#0f1015;border:1px solid #6b6f79;color:#d4cfc8;padding:10px 12px;font-size:14px;outline:none;width:100%;box-sizing:border-box}.mcp-wall-input--with-toggle{padding-right:40px}.mcp-wall-input[aria-invalid=true]{border-color:#e74c3c}.mcp-wall-show-btn{position:absolute;right:10px;background:none;border:none;color:#888;cursor:pointer;padding:3px;line-height:1}.mcp-wall-secondary-btn{background:#0f1015;color:#d4cfc8;border:1px solid #6b6f79;border-radius:2px;padding:0 12px;font-size:13px;cursor:pointer;white-space:nowrap}.mcp-wall-secondary-btn:disabled{cursor:default;opacity:.6}.mcp-wall-copy-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mcp-wall-copy-btn{background:none;color:#e8a020;border:1px solid #e8a02066;border-radius:2px;padding:6px 12px;font-size:12px;font-family:DM Mono,monospace;cursor:pointer}.mcp-wall-copy-btn[data-state=copied]{color:#2ecc71;border-color:#2ecc7166}.mcp-wall-copy-btn:focus-visible,.mcp-wall-secondary-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.mcp-wall-copy-status{font-size:12px;color:#aaa}.mcp-wall-hint{margin:0;font-size:12px;color:#e8a020}.mcp-wall-mismatch{margin:0;font-size:12px;color:#e74c3c}.mcp-wall-submit{background:#e8a020;color:#0f1015;border:none;padding:13px;font-size:13px;font-weight:700;cursor:pointer;width:100%;font-family:Barlow Condensed,sans-serif;letter-spacing:1.5px;text-transform:uppercase}.mcp-wall-submit:disabled{cursor:default;opacity:.6}.mcp-wall-logout-row{margin-top:16px;text-align:center}.mcp-wall-logout{background:none;border:none;color:#949494;cursor:pointer;font-size:12px;text-decoration:underline}.itg{border-top:1px solid #1A1D25}.itg-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:8px 16px;background:transparent;border:none;cursor:pointer;text-align:left}.itg-toggle-caret{color:#949494;font-size:10px}.itg-toggle-label{flex:1;font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#9fc5f8}.itg-badge{font-family:DM Mono,monospace;font-size:10px;color:#949494}.itg-body{padding:0 16px 12px}.itg-task+.itg-task{margin-top:12px;padding-top:12px;border-top:1px solid #181A20}.itg-task-name{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#949494;margin-bottom:4px}.itg-instructions{margin:0 0 8px;font-size:13px;line-height:1.5;color:#ccc;white-space:pre-wrap;overflow-wrap:anywhere}.itg-attachment{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;margin-top:6px;padding:8px 10px;background:#9fc5f80d;border:1px solid rgba(159,197,248,.2);border-radius:4px;cursor:pointer;text-align:left}.itg-attachment:disabled{opacity:.6;cursor:default}.itg-attachment-icon{flex-shrink:0;font-size:14px}.itg-attachment-name{flex:1;font-size:12px;color:#9fc5f8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itg-attachment-size{flex-shrink:0;font-family:DM Mono,monospace;font-size:10px;color:#949494}.itg-error{margin-top:8px;font-family:DM Mono,monospace;font-size:11px;color:#ff6b6b}.itc-back{--itc-card: #13151B;--itc-field: #0F1015;--itc-ink: #EEEEEE;--itc-muted: #949494;--itc-line: #2A2D35;--itc-accent: #E8A020;--itc-ok: #27AE60;position:fixed;inset:0;z-index:1000;background:#0009;display:flex;align-items:flex-end;justify-content:center}.itc-back *,.itc-back *:before,.itc-back *:after{box-sizing:border-box}.itc-sheet{background:var(--itc-card);color:var(--itc-ink);border-top:2px solid var(--itc-accent);width:100%;max-width:560px;max-height:92vh;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;font-family:Barlow,sans-serif;font-size:15px;line-height:1.4}.itc-sheet:focus{outline:none}.itc-done,.itc-progress{font-family:DM Mono,monospace;font-size:12px;color:var(--itc-ok)}.itc-progress{color:var(--itc-muted)}.itc-title{margin:0;font-family:Barlow Condensed,sans-serif;font-weight:900;font-size:20px;letter-spacing:1.2px;text-transform:uppercase;overflow-wrap:anywhere}.itc-phase,.itc-label{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--itc-muted)}.itc-phase{margin-top:-8px}.itc-label{display:block;margin-bottom:6px;padding:0}.itc-tasks ul{list-style:none;margin:0;padding:2px 10px;background:var(--itc-field);border:1px solid var(--itc-line);display:flex;flex-direction:column}.itc-task{position:relative;display:flex;gap:12px;align-items:center;min-height:44px;padding:6px 0;cursor:pointer;font-size:14px}.itc-task input{position:absolute;opacity:0;width:24px;height:24px;margin:0}.itc-box{flex:none;width:24px;height:24px;border:1px solid #6B6F79;display:grid;place-items:center;background:var(--itc-card);color:transparent;font-size:16px;line-height:1}.itc-task input:checked+.itc-box{background:var(--itc-accent);border-color:var(--itc-accent);color:#0f1015}.itc-task input:checked~.itc-task-name{color:var(--itc-muted);text-decoration:line-through}.itc-task input:disabled~*,.itc-task input[aria-disabled=true]~*{opacity:.6}.itc-task input:disabled,.itc-task:has(input:disabled){cursor:default}.itc-task-name{min-width:0;overflow-wrap:anywhere}.itc-days{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:0}.itc-day{display:grid;grid-template-columns:minmax(0,1fr) 104px 44px;gap:8px;align-items:center}.itc-day input,.itc-comment{font:inherit;background:var(--itc-field);color:var(--itc-ink);border:1px solid var(--itc-line);border-radius:0;min-height:44px;padding:0 10px;width:100%;min-width:0}.itc-day input[type=date]{font-family:DM Mono,monospace;font-size:14px;color-scheme:dark}.itc-correct{grid-column:1 / -1;display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px;color:var(--itc-ink);cursor:pointer}.itc-day .itc-correct input{width:20px;min-height:20px;height:20px;padding:0;accent-color:var(--itc-accent);flex:none}.itc-hours{position:relative}.itc-hours input{padding-right:26px;font-family:DM Mono,monospace;font-size:18px;text-align:right}.itc-hours span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--itc-muted);font-family:DM Mono,monospace}.itc-hint{grid-column:1 / -1;margin:0;font-family:DM Mono,monospace;font-size:11.5px;color:var(--itc-muted)}.itc-comment{min-height:64px;padding:8px 10px;resize:vertical}.itc-btn{font:inherit;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:14px;letter-spacing:1.2px;text-transform:uppercase;min-height:44px;padding:0 12px;border:1px solid #444;background:var(--itc-card);color:var(--itc-ink);border-radius:0;cursor:pointer}.itc-btn[disabled]{opacity:.5;cursor:default}.itc-rm{padding:0}.itc-ghost{background:transparent;border-color:transparent;color:var(--itc-muted);justify-self:start}.itc-days .itc-ghost{align-self:flex-start;padding-left:0}.itc-accent{background:var(--itc-accent);border-color:var(--itc-accent);color:#0f1015}.itc-photo-row{display:flex;gap:8px}.itc-photo-row .itc-btn{flex:1 1 0;min-width:0}.itc-photos .itc-hint{margin-top:6px}.itc-photo-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.itc-photo-list li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;border:1px solid var(--itc-line);background:var(--itc-field);padding:6px 8px}.itc-saved-file{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;width:100%;min-height:32px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.itc-saved-file:hover .itc-photo-name{text-decoration:underline}.itc-photo-name{flex:1 1 140px;min-width:0;overflow-wrap:anywhere;font-weight:500}.itc-ok{font-family:DM Mono,monospace;font-size:11.5px;color:var(--itc-ok)}.itc-error{margin:0;color:#f0a0a0;font-size:13px;overflow-wrap:anywhere}.itc-failure-list .itc-hint,.itc-failure-list .itc-error{flex-basis:100%}.itc-alert:empty{display:none}.itc-actions{display:grid;grid-template-columns:1fr 2fr;gap:8px;position:sticky;bottom:calc(-16px - env(safe-area-inset-bottom,0px));background:var(--itc-card);padding-block:8px}.itc-actions .itc-btn{min-height:50px}.itc-back button:focus-visible,.itc-back input:focus-visible,.itc-back textarea:focus-visible,.itc-task:has(input:focus-visible){outline:2px solid var(--itc-accent);outline-offset:2px}.itc-confirm-back{align-items:center;padding:16px}.itc-confirm{max-width:420px;border:1px solid var(--itc-line);border-top:2px solid var(--itc-accent)}.itc-confirm-text{margin:0;overflow-wrap:anywhere}.itc-confirm .itc-actions{position:static;grid-template-columns:1fr 1fr;padding-block:0}@media(min-width:600px){.itc-back{align-items:center}}.avd{--avd-bg: #0F1015;--avd-card: #13151B;--avd-ink: #EEEEEE;--avd-muted: #949494;--avd-line: #2A2D35;--avd-accent: #E8A020;--avd-accent-fg: #0F1015;--avd-field: #0F1015;--avd-box: #6B6F79;--avd-ok: #27AE60;background:var(--avd-bg);color:var(--avd-ink);padding:16px;display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.35;font-family:Barlow,sans-serif}.avd *,.avd *:before,.avd *:after{box-sizing:border-box}.avd h2,.avd h3{margin:0}.avd-label{font-family:DM Mono,monospace;font-size:11px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--avd-muted)}.avd-site-group{display:flex;flex-direction:column;gap:12px}.avd-site-multi{padding-top:12px;border-top:2px solid var(--avd-accent)}.avd-site-count{font-family:DM Mono,monospace;font-size:12px;color:var(--avd-accent);white-space:nowrap}.avd-card{background:var(--avd-card);border:1px solid var(--avd-line);border-radius:0;padding:14px 14px 16px;min-width:0}.avd-title{font-family:Barlow Condensed,sans-serif;font-size:20px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase;overflow-wrap:anywhere}.avd-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin:12px 0 0}.avd-facts div{min-width:0}.avd-facts dt{font-family:DM Mono,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--avd-muted)}.avd-facts dd{margin:2px 0 0;font-weight:500;font-size:14px;overflow-wrap:anywhere}.avd-placeholder{color:var(--avd-muted);font-weight:400}.avd-jump{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.avd-btn{font:inherit;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;min-height:44px;padding:0 8px;border:1px solid #444;background:var(--avd-card);color:var(--avd-ink);border-radius:0;cursor:pointer}.avd-btn:hover:not([disabled]){border-color:#888}.avd-btn-dark{background:var(--avd-ink);border-color:var(--avd-ink);color:var(--avd-bg)}.avd-btn-accent{background:var(--avd-accent);border-color:var(--avd-accent);color:var(--avd-accent-fg)}.avd-btn-accent:hover:not([disabled]){background:#f5b535;border-color:#f5b535}.avd-btn[disabled]{opacity:.5;cursor:default}.avd-log-hours[disabled]{background:transparent;border-color:var(--avd-line);color:var(--avd-muted);opacity:1}.avd-wide{width:100%;min-height:50px}.avd button:focus-visible,.avd select:focus-visible,.avd input:focus-visible,.avd textarea:focus-visible,.avd-task:has(input:focus-visible){outline:2px solid var(--avd-accent);outline-offset:2px}.avd-sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.avd-count,.avd-total{font-family:DM Mono,monospace;font-weight:500;font-size:13px}.avd-count{color:var(--avd-accent)}.avd-bar{height:3px;background:#1e2028;margin:12px 0;overflow:hidden}.avd-bar i{display:block;height:100%;background:var(--avd-accent);transition:width .2s}.avd-phase+.avd-phase{margin-top:12px;padding-top:12px;border-top:1px solid var(--avd-line)}.avd-phase-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.avd-phase-title{font-family:Barlow Condensed,sans-serif;font-size:17px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;min-width:0;overflow-wrap:anywhere}.avd-phase .av-phase-status{margin-top:2px}.avd-phase-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:10px 0 4px}.avd-btn-outline{border-color:var(--avd-accent);color:var(--avd-accent)}.avd-btn-outline:hover:not([disabled]){border-color:#f5b535;color:#f5b535}.avd-chev{display:inline-block;margin-left:6px;transition:transform .15s}.avd-phase-toggle[aria-expanded=true] .avd-chev{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){.avd-chev{transition:none}}.avd-tasks{list-style:none;margin:0;padding:0}.avd-task:hover{background:#16181f}.avd-task{position:relative;display:flex;gap:12px;align-items:flex-start;padding:8px 2px;min-height:44px;cursor:pointer}.avd-task input{position:absolute;opacity:0;width:24px;height:24px;margin:0}.avd-box{flex:none;width:24px;height:24px;border:1px solid var(--avd-box);border-radius:0;display:grid;place-items:center;background:var(--avd-field);color:transparent;font-size:16px;line-height:1}.avd-task input:checked+.avd-box{background:var(--avd-accent);border-color:var(--avd-accent);color:var(--avd-accent-fg)}.avd-task input:checked~.avd-task-text b{text-decoration:line-through;color:var(--avd-muted)}.avd-task input:disabled~*{opacity:.6}.avd-task-text{min-width:0}.avd-task-text b{display:block;font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:16px;letter-spacing:.4px;overflow-wrap:anywhere}.avd-task-text small{display:block;color:var(--avd-muted);font-family:DM Mono,monospace;font-size:11px}.avd .av-phase-status{color:var(--avd-muted)}.avd .av-phase-status.awaiting{color:var(--avd-accent)}.avd .av-phase-status.confirmed{color:var(--avd-ok)}.avd-field-label{display:block;margin-top:12px}.avd-select,.avd-textarea{width:100%;font:inherit;color:var(--avd-ink);background:var(--avd-field);border:1px solid var(--avd-box);border-radius:0;padding:11px 10px;margin-top:6px}.avd-select{min-height:46px}.avd-textarea{min-height:84px;resize:vertical}.avd-textarea:disabled{opacity:.6}.avd-stepper{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:10px;align-items:center;margin:12px 0}.avd-stepper .avd-btn{font-size:24px;min-height:48px}.avd-hours-input{display:flex;align-items:baseline;justify-content:center;gap:6px;font-family:DM Mono,monospace}.avd-hours-input input{width:5ch;border:0;border-bottom:2px solid var(--avd-box);background:transparent;color:var(--avd-ink);font:inherit;font-size:28px;font-weight:500;text-align:center;padding:2px 0;min-height:44px}.avd-hours-input span{font-size:20px}.avd-logged{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--avd-line);display:flex;flex-direction:column;gap:4px;font-size:14px}.avd-logged li{display:flex;justify-content:space-between;gap:8px}.avd-logged li span:first-child{min-width:0;overflow-wrap:anywhere}.avd-logged li span:last-child{font-family:DM Mono,monospace;white-space:nowrap}.avd-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}.avd-chip{font:inherit;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:1px;text-transform:uppercase;min-height:40px;padding:8px 16px;border-radius:0;border:1px solid var(--avd-box);background:var(--avd-card);color:var(--avd-ink);cursor:pointer}.avd-chip[aria-pressed=true]{background:#e8a02014;color:var(--avd-accent);border-color:var(--avd-accent)}.avd-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.avd-muted{color:var(--avd-muted);font-size:13px;margin:10px 0 0}.avd-note+.avd-wide{margin-top:12px}.avd-task-instr{margin:0 0 8px 38px;padding:8px 10px;background:#1b2230;border-left:3px solid #2F4A6B;font-size:13.5px}.avd-task-instr-label{display:block;font-family:DM Mono,monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8fb4e0;margin-bottom:2px}.avd-task-instr p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.avd-other-site{margin-top:12px}.avd-other-phases{list-style:none;margin:6px 0 0;padding:0}.avd-other-phases li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--avd-line)}.avd-other-phases small{color:var(--avd-muted)}.avd-empty-day{margin:4px 0 12px}.avd-phase-actions-single{grid-template-columns:minmax(0,1fr)}.avd-phase-logged{font-family:DM Mono,monospace;font-size:12px;color:var(--avd-muted);margin:2px 0 0}.ifa-target{margin:6px 0 0;font-family:DM Mono,monospace;font-size:12px;color:var(--avd-muted);overflow-wrap:anywhere}.ifa-privacy{margin:12px 0;padding:12px;border:1px solid var(--avd-accent);color:var(--avd-text);font-size:14px}.ifa-review{flex-basis:100%}.ifa-preview{display:block;max-width:100%;max-height:240px;object-fit:contain;margin:8px 0}.ifa-review-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.ifa-review a{color:var(--avd-accent)}.ifa-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.ifa-add-row{display:flex;gap:8px;margin-top:12px}.ifa-add{flex:1 1 0;min-width:0;min-height:50px}@media(hover:hover)and (pointer:fine){.ifa-camera-only{display:none}}.ifa-limits{margin:6px 0 0;font-size:12px}.ifa-live{min-height:0}.ifa-error{margin:8px 0 0;color:#f0a0a0;font-size:13px;overflow-wrap:anywhere}.ifa-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.ifa-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:44px;padding:6px 8px;border:1px solid var(--avd-line);background:var(--avd-field)}.ifa-row[data-status=failed]{border-color:#8a4a4a}.ifa-row[data-status=retry]{border-color:var(--avd-accent)}.ifa-name{flex:1 1 140px;min-width:0;font-weight:500;overflow-wrap:anywhere}.ifa-meta{font-family:DM Mono,monospace;font-size:11px;color:var(--avd-muted)}.ifa-act{min-height:44px;padding:0 12px}.ifa-open{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;width:100%;min-height:44px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.ifa-open:hover .ifa-name{text-decoration:underline}.avd .ifa-open:focus-visible{outline:2px solid var(--avd-accent);outline-offset:2px}.av-container{height:100dvh;max-height:100dvh;background:#0f1015;display:flex;flex-direction:column;overflow:hidden}.av-header{background:#13151b;border-bottom:2px solid #2A2D35;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.av-title{font-size:18px;font-weight:700;letter-spacing:1px;color:#eee;text-transform:uppercase}.av-subtitle{font-family:DM Mono,monospace;font-size:11px;color:#949494}.av-logout{background:transparent;border:1px solid #333;color:#949494;font-family:Barlow Condensed,sans-serif;font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:6px 12px;cursor:pointer;transition:all .15s}.av-logout:hover{border-color:#666;color:#aaa}.av-offline-banner{background:#1a1d23;border-bottom:2px solid #E74C3C;padding:8px 24px;font-size:12px;color:#e74c3c;display:flex;align-items:center;gap:8px}.av-save-status,.av-save-error{padding:6px 24px;font-size:12px}.av-save-status{color:#27ae60}.av-save-error{color:#e74c3c;border-bottom:2px solid #E74C3C;background:#1a1d23}.av-save-status:empty,.av-save-error:empty{padding:0;border:0}.av-tab-bar{border-bottom:1px solid #2A2D35;display:flex;padding:0 16px;gap:4px;background:#13151b}.av-tab{background:none;border:none;border-bottom:2px solid transparent;color:#949494;padding:12px 16px;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.av-tab.active{color:#e8a020;border-bottom-color:#e8a020}.av-tab:hover:not(.active){color:#aaa}.av-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.av-table-wrapper{overflow:auto;flex:1;position:relative}.av-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;color:#d4cfc8}.av-table th{background:#1a1d25;color:#949494;font-family:DM Mono,monospace;font-size:10px;font-weight:400;letter-spacing:.8px;text-transform:uppercase;padding:8px 6px;border-bottom:1px solid #2A2D35;text-align:center;position:sticky;top:0;z-index:3;white-space:nowrap}.av-table td{padding:0;border-bottom:1px solid #1E2028;text-align:center;vertical-align:middle;height:48px}.av-table .av-cell-phase{position:sticky;left:0;z-index:2;background:#13151b}.av-table thead .av-cell-phase{z-index:4;background:#1a1d25}.av-table tbody tr:hover .av-cell-phase,.av-table tbody tr:hover td{background:#16181f}.av-cell-phase{text-align:left;padding:0 8px;min-width:200px}.av-cell-phase-dates{font-family:DM Mono,monospace;font-size:11px;color:#949494;margin-top:2px}.av-cell-hours{font-family:DM Mono,monospace;font-size:11px;color:#aaa}.av-empty{padding:40px 16px;text-align:center;font-family:DM Mono,monospace;font-size:12px;color:#949494}.av-cell-hours-sv{font-family:DM Mono,monospace;font-size:11px;color:#4a90d9}.av-sv-badge{font-size:8px;color:#4a90d9;margin-left:2px;vertical-align:super}.av-total-row td{background:#10131a;border-top:2px solid #2A2D35;font-weight:700}.av-total-row .av-cell-phase{color:#e8a020;text-transform:uppercase;letter-spacing:.8px;font-size:11px}.av-total-row .av-cell-hours{color:#e8a020;font-weight:700}.av-phase-progress{height:3px;background:#1e2028;border-radius:2px;overflow:hidden;margin:4px 8px 0}.av-phase-progress-fill{height:100%;border-radius:2px}.av-period-nav{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #1E2028;flex-shrink:0}.av-period-nav-btn{background:#13151b;border:1px solid #2A2D35;color:#e8a020;font-family:DM Mono,monospace;font-size:12px;padding:8px 14px;cursor:pointer;transition:border-color .15s}.av-period-nav-btn:hover{border-color:#e8a020}.av-period-nav-label{font-family:DM Mono,monospace;font-size:12px;color:#eee;letter-spacing:1px;min-width:120px;text-align:center}.av-day-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:12px}.av-core-panel{margin:12px 16px 0;border:1px solid #2A2D35;background:#13151b}.av-core-toggle{width:100%;background:transparent;border:none;color:#eee;display:flex;align-items:center;gap:8px;padding:10px 12px;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;text-align:left}.av-core-steps{padding:0 12px 12px;color:#bbb;font-size:12px;line-height:1.5}.av-core-list{margin:8px 0 0;padding-left:18px}.av-core-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:0 12px 12px}.av-core-metric-heading{grid-column:1 / -1;margin:0;color:#aaa;font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.av-core-metric{background:#0f1015;border:1px solid #1E2028;border-radius:4px;padding:8px;display:flex;flex-direction:column;gap:4px}.av-core-metric-label{color:#949494;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.6px;text-transform:uppercase}.av-core-metric-value{color:#eee;font-family:DM Mono,monospace;font-size:11px}.av-phase-status{margin-top:6px;font-size:11px;color:#949494;font-family:DM Mono,monospace}.av-phase-status.awaiting{color:#e8a020}.av-phase-status.confirmed{color:#27ae60}.av-day-row{padding:12px 16px;display:flex;align-items:center;gap:12px;justify-content:space-between}.av-day-controls{display:flex;align-items:center;gap:8px}.av-day-note{width:180px;height:48px;background:#0f1015;border:1px solid #6B6F79;color:#aaa;padding:6px 8px;font-family:DM Mono,monospace;font-size:12px;outline:none;border-radius:4px}@media(max-width:600px){.av-day-row{flex-direction:column;align-items:stretch}.av-day-controls{flex-wrap:wrap}.av-day-note{flex:1 1 140px;width:auto;min-width:0}.av-task-toggle{min-height:44px}}.dashboard{display:flex;flex-direction:column;min-height:calc(100vh - 64px);background:#0f1015}.dashboard-hero{background:#13151b;border-bottom:1px solid #2A2D35;padding:24px 32px}.dashboard-week-label{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}.dashboard-kpi-row{display:flex;gap:16px;flex-wrap:wrap}.dash-kpi{background:#1a1d23;border:1px solid #2A2D35;border-radius:2px;padding:12px 20px;min-width:120px}.dash-kpi-warn{border-color:#e74c3c44}.dash-kpi-val{font-family:Barlow Condensed,sans-serif;font-size:28px;font-weight:700;color:#fff;line-height:1}.dash-kpi-warn .dash-kpi-val{color:#e74c3c}.dash-kpi-lbl{font-size:11px;color:#949494;margin-top:4px}.dashboard-body{padding:24px 32px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}@media(max-width:900px){.dashboard-body{grid-template-columns:1fr}.dashboard-hero,.dashboard-body{padding:16px 20px}}.dash-section{background:#13151b;border:1px solid #2A2D35;border-radius:2px}.dash-section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #2A2D35}.dash-section-title{font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#888}.dash-section-count{background:#1a1d23;border:1px solid #2A2D35;border-radius:10px;padding:2px 8px;font-size:11px;color:#949494;font-family:DM Mono,monospace}.dash-empty{padding:24px 16px;font-size:13px;color:#949494;display:flex;flex-direction:column;gap:4px}.dash-empty-hint{font-size:12px;color:#949494;font-style:italic}.dash-row-ok{border-left:3px solid #27AE60}.dash-list{display:flex;flex-direction:column}.dash-list-row{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #1A1D23;cursor:pointer;gap:12px;transition:background .1s}.dash-list-row:last-child{border-bottom:none}.dash-list-row:hover{background:#1a1d23}.dash-row-danger{border-left:3px solid #E74C3C}.dash-row-warn{border-left:3px solid #F5A623}.dash-list-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.dash-list-mid{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.dash-list-right{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex-shrink:0}.dash-project-tag{font-size:10px;color:#949494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-phase-name{font-size:12px;color:#d4cfc8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-date-range{font-family:DM Mono,monospace;font-size:10px;color:#949494}.dash-progress{display:flex;align-items:center;gap:6px}.dash-progress-bar{flex:1;height:3px;background:#2a2d35;border-radius:2px;overflow:hidden;min-width:60px}.dash-progress-fill{height:100%;border-radius:2px}.dash-progress-pct{font-size:10px;color:#949494;font-family:DM Mono,monospace;width:28px;text-align:right;flex-shrink:0}.dash-week-hours{font-family:DM Mono,monospace;font-size:11px;color:#4a90d9;background:#4a90d91a;border:1px solid rgba(74,144,217,.2);padding:2px 6px;border-radius:2px}.dash-installers{font-size:10px;color:#949494}.dash-tag-danger{font-size:11px;color:#e74c3c;text-align:right}.dash-tag-warn{font-size:11px;color:#f5a623;max-width:200px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.installer-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.installer-modal{width:100%;max-width:500px;background:#13151b;border:1px solid #2A2D35;border-top:3px solid #4A90D9;border-radius:2px;display:flex;flex-direction:column;max-height:80vh}.installer-modal-header{padding:16px;border-bottom:1px solid #2A2D35}.installer-modal-title{font-family:Barlow Condensed,sans-serif;font-size:16px;font-weight:700;letter-spacing:1px;color:#eee;margin:0 0 8px;text-transform:uppercase}.installer-modal-search{width:100%;background:#0f1015;border:1px solid #6B6F79;color:#ccc;font-family:DM Mono,monospace;font-size:12px;padding:8px 10px;outline:none;box-sizing:border-box}.installer-modal-search:focus{border-color:#4a90d9}.installer-modal-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:4px}.installer-modal-item{display:flex;align-items:center;gap:10px;padding:10px;background:#0f1015;border:1px solid #2A2D35;border-radius:2px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .1s,background .1s}.installer-modal-item:hover{border-color:#4a90d9}.installer-modal-item-existing{border-color:#3f5b7a;background:#162235}.installer-modal-item span{cursor:pointer;font-family:DM Mono,monospace;font-size:12px;color:#ccc;flex:1}.installer-modal-item input[type=checkbox]{accent-color:#4A90D9;width:14px;height:14px;cursor:pointer;flex-shrink:0}.installer-modal-empty{padding:24px 12px;text-align:center;color:#949494;font-family:DM Mono,monospace;font-size:12px}.installer-modal-footer{padding:16px;border-top:1px solid #2A2D35;display:flex;align-items:center;gap:8px}.installer-modal-btn{padding:8px 16px;font-family:Barlow Condensed,sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;border:1px solid #2A2D35;background:#13151b;color:#888;cursor:pointer}.installer-modal-btn.primary{background:#4a90d9;color:#fff;border-color:#4a90d9}.project-installer-bar{margin:0 0 10px;padding:10px 12px;background:#13151b;border:1px solid #2A2D35;border-left:3px solid #E8A020;border-radius:6px}.project-installer-bar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.project-installer-bar-title{font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#e8a020}.project-installer-bar-hint{margin-top:8px;font-size:11px;color:#8e9aab}.phase-installer-row{display:flex;align-items:center;gap:8px;padding:4px 12px 8px 44px;cursor:default}.phase-installer-label{font-family:Barlow Condensed,sans-serif;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#8e9aab;flex-shrink:0}.phase-installer-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.phase-installer-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;background:#162235;border:1px solid #3F5B7A;border-radius:10px;font-family:DM Mono,monospace;font-size:11px;color:#ccc}.phase-installer-chip button{background:transparent;border:none;color:#8e9aab;cursor:pointer;font-size:13px;line-height:1;padding:0 4px}.phase-installer-chip button:hover:not(:disabled){color:#e74c3c}.phase-installer-add{background:transparent;border:1px dashed #4A90D9;border-radius:10px;color:#85c1e9;cursor:pointer;font-family:Barlow Condensed,sans-serif;font-size:11px;letter-spacing:.5px;padding:2px 10px;white-space:nowrap}.phase-installer-add:disabled,.phase-installer-chip button:disabled{opacity:.5;cursor:default}.phase-installer-none{font-size:11px;color:#8e9aab;font-style:italic}.phase-row-dates{margin:2px 0 6px 28px;font-family:DM Mono,monospace;font-size:11px;color:#949494}.ai-chat-btn{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#9b59b6,#6c3483);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 16px #9b59b680;z-index:1100;transition:transform .15s,box-shadow .15s}.ai-chat-btn:hover{transform:scale(1.08);box-shadow:0 6px 22px #9b59b6a6}.ai-chat-panel{position:fixed;bottom:88px;right:24px;width:340px;height:480px;background:#1a1a2e;border:1px solid rgba(155,89,182,.35);border-radius:14px;box-shadow:0 8px 32px #0000008c;display:flex;flex-direction:column;z-index:1100;overflow:hidden;animation:chatSlideIn .2s ease}@keyframes chatSlideIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-chat-header{padding:12px 16px;background:#9b59b62e;border-bottom:1px solid rgba(155,89,182,.2);display:flex;align-items:center;gap:10px}.ai-chat-header-icon{font-size:18px}.ai-chat-header-title{font-size:13px;font-weight:600;color:#c39bd3;flex:1}.ai-chat-header-close{background:none;border:none;color:#888;cursor:pointer;font-size:16px;padding:2px 4px;border-radius:4px}.ai-chat-header-close:hover{color:#ccc}.ai-chat-context-badge{padding:6px 12px;background:#9b59b61a;border-bottom:1px solid rgba(155,89,182,.15);font-size:11px;color:#b48ad0}.ai-chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(155,89,182,.3) transparent}.ai-chat-msg{max-width:85%;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.5;word-break:break-word}.ai-chat-msg.user{align-self:flex-end;background:#9b59b640;border:1px solid rgba(155,89,182,.35);color:#e0d0f0}.ai-chat-msg.assistant{align-self:flex-start;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#d0d8e8}.ai-chat-msg.thinking{align-self:flex-start;background:#ffffff0a;border:1px dashed rgba(155,89,182,.3);color:#888;font-style:italic;font-size:12px;display:flex;align-items:center;gap:4px;padding:10px 16px}.ai-typing-dot{width:6px;height:6px;background:#9b59b6;border-radius:50%;display:inline-block;animation:aiTypingBounce 1.2s infinite ease-in-out}.ai-typing-dot:nth-child(1){animation-delay:0s}.ai-typing-dot:nth-child(2){animation-delay:.2s}.ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes aiTypingBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}.ai-chat-input-row{padding:10px 12px;border-top:1px solid rgba(155,89,182,.2);display:flex;gap:8px;align-items:flex-end}.ai-chat-input{flex:1;background:#ffffff12;border:1px solid #6B6F79;border-radius:8px;color:#e0e0f0;font-size:13px;padding:8px 10px;resize:none;min-height:36px;max-height:100px;font-family:inherit;outline:none;line-height:1.4}.ai-chat-input:focus{border-color:#9b59b6}.ai-chat-send{background:#9b59b6;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:8px 12px;font-size:15px;align-self:flex-end;transition:background .15s;height:36px}.ai-chat-send:hover:not(:disabled){background:#8e44ad}.ai-chat-send:disabled{background:#555;cursor:default}.ai-chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#949494;font-size:13px;gap:8px}.ai-chat-empty-icon{font-size:32px;opacity:.5}.ai-progress-panel{border-top:1px solid rgba(155,89,182,.2);background:#00000040;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(155,89,182,.3) transparent}.ai-progress-header{padding:6px 12px 4px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#b48ad0;display:flex;justify-content:space-between;align-items:center}.ai-progress-total{font-size:11px;color:#c39bd3;letter-spacing:0;text-transform:none}.ai-progress-table{width:100%;border-collapse:collapse;font-size:11px}.ai-progress-table th{padding:2px 8px;color:#949494;font-weight:400;text-align:right;border-bottom:1px solid rgba(255,255,255,.05)}.ai-progress-table th:first-child{text-align:left}.ai-progress-table td{padding:3px 8px;color:#c0b8d0;text-align:right;border-bottom:1px solid rgba(255,255,255,.04)}.ai-progress-table td:first-child{text-align:left;color:#b48ad0;font-weight:600}.ai-progress-table tr:last-child td{border-bottom:none}.ai-chat-notice{padding:6px 12px;font-size:11px;color:#aaa;text-align:center;border-top:1px solid rgba(255,255,255,.06);line-height:1.4}.user-management-id{padding:.6rem .75rem;text-align:right}.user-management-id-cell{color:#aaa;font-variant-numeric:tabular-nums}.template-management{max-width:900px;margin-top:2rem}.template-toolbar{margin-bottom:.5rem}.template-toolbar h1{margin:0;font-size:1.4rem}.template-intro,.template-hint,.template-item-meta{color:#999;font-size:.85rem}.template-list{list-style:none;margin:0 0 1.5rem;padding:0}.template-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border-bottom:1px solid #222}.template-item-name{font-weight:600}.template-item-actions{display:flex;gap:.4rem}.template-from-project{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.template-from-project h2{width:100%;margin:0;font-size:1rem}.template-editor-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080}.template-editor{width:100%;max-width:720px;max-height:90vh;overflow-y:auto}.template-editor-header,.template-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem 1.5rem}.template-editor-header{border-bottom:1px solid #333}.template-editor-header h2{margin:0;font-size:1.1rem}.template-editor-footer{justify-content:flex-end;border-top:1px solid #333}.template-editor-body{display:flex;flex-direction:column;gap:.9rem;padding:1.25rem 1.5rem}.template-field{display:flex;flex-direction:column;gap:.3rem}.template-defaults{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.template-phases{display:flex;flex-direction:column;gap:.35rem}.template-phase-row{display:grid;grid-template-columns:5rem 1fr 5rem 5rem 2rem;gap:.4rem;align-items:center}.template-phase-head{color:#999;font-size:.8rem}.template-error{color:#e74c3c}@media(max-width:600px){.template-defaults{grid-template-columns:1fr}.template-phase-row{grid-template-columns:3.5rem 1fr 3.5rem 3.5rem 2rem}}.template-modules{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin:0;padding:0;border:0}.template-modules legend{width:100%;margin-bottom:.25rem;color:#999;font-size:.85rem}.template-modules label{display:flex;align-items:center;gap:.4rem}.organisation-settings{max-width:900px;margin-top:2rem}.organisation-settings h1{margin:0 0 .5rem;font-size:1.4rem}.organisation-settings-intro,.organisation-module-hint{color:#999;font-size:.85rem}.organisation-module{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem 0;border-bottom:1px solid #222;cursor:pointer}.organisation-module-readonly{cursor:default}.organisation-module-status{min-width:6.5rem;font-size:.85rem;font-weight:600}.organisation-module-text{display:flex;flex-direction:column;gap:.15rem}.organisation-module-label{font-weight:600}.org-switcher{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.org-switcher-label{font-size:.75rem;color:#999}.org-switcher-select{max-width:14rem}.visiting-org-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#4a2f00;color:#ffd27a;border-bottom:1px solid #7a4d00;font-size:.9rem}.site-admin{max-width:900px;margin-top:2rem}.site-admin h1{margin:0;font-size:1.4rem}.site-admin-intro,.site-admin-item-meta,.site-admin-current{color:#999;font-size:.85rem}.site-admin-list{list-style:none;margin:0;padding:0}.site-admin-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border-bottom:1px solid #222}.site-admin-item-name{font-weight:600}.site-admin-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem;width:100%}.site-admin-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.site-admin-check{flex-direction:row;align-items:center;gap:.5rem;align-self:end}.site-admin-error{color:#ff7b7b;font-size:.8rem}.site-admin-actions{display:flex;gap:.5rem;align-items:center}@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-400-latin-DygnOwyn.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-400-latin-ext-BKWkRE1H.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-500-latin-D6sGsXIV.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/barlow-500-latin-ext-CPelPZq1.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-600-latin-DO9c7XN2.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-600-latin-ext-Cu-we8td.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-condensed-400-latin-DjMkYGFH.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/barlow-condensed-400-latin-ext-B0de8vVq.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-condensed-600-latin-5aTTnVqQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/barlow-condensed-600-latin-ext-Dbp7ZXtu.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/barlow-condensed-700-latin-DDMez4TK.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/barlow-condensed-700-latin-ext-Ca1nonoA.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:900;font-display:swap;src:url(/assets/barlow-condensed-900-latin-BAFRnr5n.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:900;font-display:swap;src:url(/assets/barlow-condensed-900-latin-ext-BnpccJH4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-400-latin-5TJO7pqc.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/dm-mono-400-latin-ext-6Ueb-rnm.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-500-latin-CO0PTrKB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/dm-mono-500-latin-ext-CjZzJZmm.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*{box-sizing:border-box;margin:0;padding:0}:root{--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sidebar-w: 220px;--sidebar-w-collapsed: 60px}body{background:#0f1015;color:#d4cfc8;font-family:Barlow,sans-serif;font-size:14px;min-height:100vh}.skip-link{position:absolute;left:-9999px;top:8px;z-index:2000;padding:8px 16px;background:#e8a020;color:#0f1015;font-weight:700;text-decoration:none}.skip-link:focus{left:16px}#main-content:focus{outline:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*:focus-visible{outline:2px solid #E8A020!important;outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#1a1c22}::-webkit-scrollbar-thumb{background:#444;border-radius:3px}.app{min-height:100vh;background:#0f1015;display:flex;flex-direction:column}.app-layout{display:flex;flex:1;min-height:calc(100vh - 64px)}.sidebar{width:var(--sidebar-w);background:#13151b;border-right:1px solid #2A2D35;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:64px;height:calc(100vh - 64px);overflow-y:auto;transition:width .2s ease;z-index:50}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-nav{flex:1;padding:var(--sp-3) 0;display:flex;flex-direction:column;gap:var(--sp-1)}.sidebar-item{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:transparent;border:none;border-left:3px solid transparent;color:#888;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;width:100%;text-align:left;transition:color .15s,border-color .15s,background .15s;white-space:nowrap;overflow:hidden}.sidebar-item:hover{color:#ccc;background:#ffffff0a}.sidebar-item.active{color:#e8a020;border-left-color:#e8a020;background:#e8a02014}.sidebar-icon{font-size:16px;flex-shrink:0;width:20px;text-align:center;line-height:1}.sidebar-label{flex:1;transition:opacity .15s}.sidebar.collapsed .sidebar-label{opacity:0;pointer-events:none;width:0;overflow:hidden}.sidebar-collapse-btn{padding:var(--sp-3) var(--sp-4);border-top:1px solid #2A2D35;display:flex;align-items:center;justify-content:flex-end;background:none;border-left:none;border-right:none;border-bottom:none;color:#949494;cursor:pointer;font-size:12px;transition:color .15s}.sidebar.collapsed .sidebar-collapse-btn{justify-content:center}.sidebar-collapse-btn:hover{color:#aaa}.app-content{flex:1;min-width:0;display:flex;flex-direction:column}.header{background:#13151b;border-bottom:2px solid #2A2D35;padding:0 var(--sp-8);display:flex;align-items:center;justify-content:space-between;height:64px;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center}.header-hamburger{display:none;background:none;border:1px solid #333;color:#888;cursor:pointer;font-size:18px;padding:6px 10px;margin-right:var(--sp-3);transition:color .15s,border-color .15s}.header-hamburger:hover{color:#ccc;border-color:#666}.header-logo{display:flex;align-items:center;gap:12px}.header-icon{width:32px;height:32px;background:#e8a020;clip-path:polygon(0 0,85% 0,100% 15%,100% 100%,15% 100%,0 85%);display:flex;align-items:center;justify-content:center;font-size:14px;color:#0f1015;font-weight:900}.header-title{font-family:Barlow Condensed,sans-serif;font-weight:900;font-size:20px;letter-spacing:2px;text-transform:uppercase;color:#fff}.header-sub{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:1px}.header-actions{display:flex;align-items:center;gap:var(--sp-4)}.header-nav{display:none}.stat-pill{background:#1e2028;border:1px solid #2A2D35;padding:6px 14px;border-radius:2px;display:flex;flex-direction:column;align-items:center}.stat-pill-val{font-family:DM Mono,monospace;font-size:16px;font-weight:500;color:#e8a020}.stat-pill-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#888}.stat-pill-delayed{border-color:#e74c3c44}.stat-pill-val-delayed{color:#e74c3c}.header-action-fixed{flex-shrink:0}.header-logout{margin-left:4px}.btn-primary{background:#e8a020;color:#0f1015;border:none;padding:10px 20px;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;clip-path:polygon(0 0,92% 0,100% 30%,100% 100%,8% 100%,0 70%);transition:all .15s}.btn-primary:hover{background:#f5b535}.btn-secondary{background:transparent;color:#aaa;border:1px solid #444;padding:8px 16px;font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .15s}.btn-secondary:hover{border-color:#888;color:#eee}.btn-danger{background:transparent;color:#e74c3c;border:1px solid #E74C3C44;padding:6px 12px;font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:11px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#e74c3c22;border-color:#e74c3c88}.main{padding:var(--sp-6) var(--sp-8);flex:1}.toolbar{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap}.filter-btn{padding:7px 16px;border:1px solid #2A2D35;background:#13151b;color:#aaa;font-family:Barlow,sans-serif;font-size:13px;cursor:pointer;transition:all .15s;border-radius:2px}.filter-btn.active{border-color:#e8a020;color:#e8a020;background:#e8a02015}.filter-btn:hover:not(.active){border-color:#555;color:#eee}.filter-count{margin-left:6px;opacity:.7}.search-input{background:#13151b;border:1px solid #6B6F79;color:#d4cfc8;padding:8px 14px;font-family:Barlow,sans-serif;font-size:13px;outline:none;width:260px;transition:border-color .15s,box-shadow .15s;border-radius:2px}.search-input:focus{border-color:#e8a020;box-shadow:0 0 0 3px #e8a02026}.search-input::placeholder{color:#949494}.kanban{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}.project-card{background:#13151b;border:1px solid #2A2D35;border-top:3px solid #E8A020;position:relative;transition:transform .15s,box-shadow .15s;cursor:pointer;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0006}.project-card:after{content:"→ Avaa";position:absolute;bottom:10px;right:14px;font-family:Barlow Condensed,sans-serif;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#e8a020;opacity:0;transition:opacity .15s;pointer-events:none}.project-card:hover:after{opacity:1}.project-card.viivästynyt{border-top-color:#e74c3c}.project-card.valmis{border-top-color:#27ae60}.project-card.suunnittelu{border-top-color:#4a90d9}.card-header{padding:18px 20px 14px;border-bottom:1px solid #1E2028}.card-id{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:1px;margin-bottom:6px}button.card-name{display:block;width:100%;padding:0;border:0;border-radius:0;background:none;text-align:left;cursor:pointer}.card-name{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:18px;color:#eee;letter-spacing:.5px;line-height:1.2;margin-bottom:10px}.card-meta{display:flex;gap:var(--sp-4);flex-wrap:wrap}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:11px;color:#949494;font-family:DM Mono,monospace}.meta-value{font-size:13px;color:#bbb;font-family:Barlow,sans-serif}.card-body{padding:14px 20px}.card-expand-toggle{background:none;border:none;cursor:pointer;color:#949494;font-size:11px;font-family:DM Mono,monospace;letter-spacing:.5px;padding:var(--sp-1) 0 var(--sp-3) 0;display:flex;align-items:center;gap:var(--sp-1);transition:color .15s;width:100%;text-align:left}.card-expand-toggle:hover{color:#aaa}.budget-bar-wrap{margin-bottom:14px}.budget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.budget-label{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:1px;text-transform:uppercase}.budget-nums{font-family:DM Mono,monospace;font-size:12px;color:#aaa}.budget-bar{height:4px;background:#1e2028;border-radius:0;overflow:hidden}.budget-fill{height:100%;transition:width .5s;border-radius:0}.phases-label{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:1px;text-transform:uppercase;margin-bottom:var(--sp-2)}.phases-list{display:flex;flex-direction:column;gap:5px}.phases-status{font-size:12px;color:#949494;padding:2px 0 6px}.phases-retry{background:none;border:none;padding:0;color:#e8a020;font:inherit;cursor:pointer;text-decoration:underline}.phase-row{display:flex;align-items:center;gap:var(--sp-2)}.phase-dot{width:8px;height:8px;background:#666;border-radius:0;flex-shrink:0;transform:rotate(45deg)}.phase-name{font-size:13px;color:#999;flex:1}.phase-status-badge{font-family:DM Mono,monospace;font-size:10px;letter-spacing:.5px;padding:2px 7px;border-radius:1px}.phase-warning{font-size:12px;color:#e74c3c;margin-left:2px}.card-footer{padding:10px 20px 28px;border-top:1px solid #1E2028;display:flex;justify-content:space-between;align-items:center;margin-top:auto}.card-footer-actions{display:flex;align-items:center;gap:8px}.project-card-schedule-btn{font-size:11px;padding:4px 10px;min-height:24px}.date-range{font-family:DM Mono,monospace;font-size:11px;color:#949494}.status-badge{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:3px 10px;border-radius:1px}.phase-progress-mini{flex:1;height:3px;background:#2a2d35;border-radius:2px;overflow:hidden;min-width:30px;max-width:60px}.phase-progress-mini-fill{height:100%;background:#4a90d9;border-radius:2px}.modal-overlay{position:fixed;inset:0;background:#000000bf;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#13151b;border:1px solid #2A2D35;border-top:3px solid #E8A020;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease;display:flex;flex-direction:column}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid #1E2028;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);flex-shrink:0}.modal-breadcrumb{font-family:DM Mono,monospace;font-size:11px;color:#949494;letter-spacing:.5px;margin-bottom:var(--sp-1);display:flex;align-items:center;gap:var(--sp-1)}.modal-breadcrumb-sep{color:#3a3d45}.modal-breadcrumb-current{color:#888}.modal-title{font-family:Barlow Condensed,sans-serif;font-weight:900;font-size:22px;color:#fff;letter-spacing:.5px}.modal-actions{display:flex;gap:8px;align-items:center}.new-project-hint{margin-top:12px;padding:8px 12px;background:#4a90d91a;border:1px solid #4A90D944;border-left:3px solid #4A90D9;border-radius:6px;font-size:12px;color:#85c1e9;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-hint-action-btn{font-size:11px;padding:4px 10px;white-space:nowrap}.budget-description-textarea{min-height:80px;resize:vertical}.budget-summary{margin-top:8px}.budget-summary-row{display:flex;justify-content:space-between;margin-bottom:6px;font-size:12px}.budget-summary-label{color:#888}.budget-summary-bar{height:6px;background:#1e2028;border-radius:3px;overflow:hidden}.ai-meta-box{margin:0 0 10px;padding:8px 12px;background:#9b59b61f;border-radius:6px;border-left:3px solid #9B59B6;font-size:13px;color:#c39bd3;line-height:1.6}.ai-meta-keywords{opacity:.75;margin-top:2px}.ai-insights-wrap{margin:4px 0 0}.ai-insights-header{font-size:13px;color:#b48ad0;margin-bottom:6px;display:flex;align-items:center;gap:6px}.ai-insights-loading{opacity:.6}.ai-insights-list{display:flex;flex-direction:column;gap:5px}.ai-insight-icon{flex-shrink:0}.ai-insights-empty{font-size:13px;color:#949494;font-style:italic}.phases-banner{margin:0 0 10px;padding:8px 10px;background:#4a90d91f;border:1px solid #4A90D944;border-left:3px solid #4A90D9;border-radius:6px;font-size:11px;color:#85c1e9;display:flex;align-items:center;justify-content:space-between;gap:10px}.phases-banner-btn{font-size:11px;padding:4px 10px;white-space:nowrap}.phase-source-panel{margin-bottom:10px;padding:10px 12px;background:#27ae600f;border:1px solid #27AE6033;border-radius:8px}.phase-source-title{font-size:12px;color:#82e0aa;font-weight:600;margin-bottom:8px}.phase-source-options{display:flex;flex-wrap:wrap;gap:6px}.phase-source-option{font-size:11px;padding:5px 12px;border-color:#333;color:#aaa;background:transparent;font-weight:400}.phase-source-option.active{border-color:#27ae60;color:#82e0aa;background:#27ae601f;font-weight:600}.phase-source-option:disabled{opacity:.7}.phase-source-select-row{display:flex;align-items:center;gap:10px;margin-top:8px}.phase-source-select{flex:1;background:#1a1d23;border:1px solid #6B6F79;color:#ddd;padding:5px 8px;border-radius:4px;font-size:12px}.phase-source-loaded{font-size:10px;color:#82e0aa;white-space:nowrap}.phase-actions{display:flex;gap:8px}.phase-action-btn{font-size:11px;padding:4px 12px}.phase-action-ai{border-color:#9b59b6;color:#c39bd3}.phase-action-ai.is-loading,.phase-action-ai:disabled{color:#949494}.phase-action-template{border-color:#27ae60;color:#82e0aa}.phase-action-dates{border-color:#4a90d9;color:#85c1e9}.phase-action-primary-btn{font-size:11px;padding:4px 12px}.modal-tabs{display:flex;border-bottom:1px solid #2A2D35;background:#0f1015;flex-shrink:0}.modal-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#949494;font-family:Barlow,sans-serif;font-size:13px;font-weight:500;padding:12px 20px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center;gap:var(--sp-2)}.modal-tab:hover{color:#bbb}.modal-tab.active{color:#e8a020;border-bottom-color:#e8a020}.modal-tab-panel{display:none}.modal-tab-panel.active{display:block}.modal-body{padding:24px}.modal-section-card{border:1px solid #2A2D35;background:#0f1015;padding:14px;margin-bottom:14px}.modal-section-header{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:#e8a020;margin-bottom:12px}.modal-section-sub{font-family:DM Mono,monospace;font-size:11px;color:#8e9aab;letter-spacing:.8px;text-transform:uppercase;margin-bottom:var(--sp-2)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-bottom:24px}.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}.form-group.full{grid-column:1 / -1}.form-label{font-family:Barlow,sans-serif;font-size:12px;color:#ddd;font-weight:500}.form-input,.form-select{background:#0f1015;border:1px solid #6B6F79;color:#d4cfc8;padding:9px 12px;font-family:Barlow,sans-serif;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;border-radius:2px}.form-input:-webkit-autofill,.form-input:-webkit-autofill:hover,.form-input:-webkit-autofill:focus{-webkit-text-fill-color:#D4CFC8;caret-color:#d4cfc8;box-shadow:0 0 0 1000px #0f1015 inset;transition:background-color 9999s ease-out 0s}.form-input:focus,.form-select:focus{border-color:#e8a020;box-shadow:0 0 0 3px #e8a0201f}.form-select option{background:#13151b}input[type=date],input[type=datetime-local],input[type=time]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer}.phases-editor{border:1px solid #2A2D35;background:#0f1015}.phases-editor-header{padding:10px 14px;border-bottom:1px solid #2A2D35;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.phases-editor-title{font-family:Barlow,sans-serif;font-size:12px;color:#949494;font-weight:500}.phase-color-dot{width:8px;height:8px;transform:rotate(45deg);display:inline-block;margin-right:6px;flex-shrink:0}.phase-edit-name{display:flex;align-items:center;font-size:13px;color:#bbb}.modal-footer{padding:var(--sp-4) var(--sp-6);border-top:1px solid #1E2028;display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}.x-btn{background:none;border:1px solid transparent;color:#949494;cursor:pointer;font-size:20px;line-height:1;padding:4px 8px;transition:color .15s,border-color .15s;border-radius:2px}.x-btn:hover{color:#ccc;border-color:#555}.section-title{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#e8a020;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid #E8A02033}.empty-state{text-align:center;padding:80px 32px;color:#949494}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-title{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:20px;letter-spacing:1px;text-transform:uppercase;color:#949494;margin-bottom:var(--sp-2)}.empty-hint{font-size:13px;color:#949494;margin-top:var(--sp-2)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px}.skeleton-card{background:#13151b;border:1px solid #2A2D35;border-top:3px solid #2A2D35;overflow:hidden}.skeleton-line{background:linear-gradient(90deg,#1e2028 25%,#2a2d35,#1e2028 75%);background-size:400% 100%;animation:shimmer 1.5s infinite;border-radius:2px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.phase-item-wrap{border-bottom:1px solid #1A1C22;cursor:grab;transition:background .1s}.phase-item-wrap:last-child{border-bottom:none}.phase-item-wrap.expanded{border-color:#2a2d35}.phase-item-wrap:active{cursor:grabbing}.phase-item-wrap.phase-drag-over{border-top:2px solid #E8A020;background:#e8a02008}.phase-drag-handle{font-size:16px;color:#949494;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;line-height:1;letter-spacing:-1px}.phase-drag-handle:hover{color:#e8a020}.phase-edit-row{padding:var(--sp-2) 14px;display:flex;flex-wrap:nowrap;gap:6px;align-items:center}.phase-name-input{font-size:11px;padding:6px 8px;flex:1 1 130px;min-width:90px}.phase-status-select{font-size:11px;padding:6px 8px;flex:0 0 110px}.phase-delete-btn{font-size:11px;padding:4px 8px;flex-shrink:0}.phase-edit-row-primary{padding:var(--sp-2) 14px var(--sp-1) 14px;display:flex;flex-wrap:nowrap;gap:6px;align-items:center}.phase-toggle-btn{background:#1e2028;border:1px solid #2A2D35;color:#949494;cursor:pointer;font-size:10px;padding:3px 7px;display:flex;align-items:center;gap:4px;transition:all .15s;flex-shrink:0;height:28px;white-space:nowrap;border-radius:2px}.phase-toggle-btn:hover{border-color:#e8a020;color:#e8a020}.phase-toggle-btn.active{border-color:#e8a020;color:#e8a020;background:#e8a02010}.history-badge{background:#e8a020;color:#0f1015;font-size:8px;font-weight:700;padding:1px 5px;border-radius:8px;font-family:DM Mono,monospace}.phase-detail-panel{display:grid;grid-template-columns:1fr 1.4fr;gap:0;background:#0a0c10;border-top:1px solid #1E2028}.phase-detail-col{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.phase-date-row{display:flex;gap:8px;margin-bottom:8px}.phase-date-field{flex:1}.phase-start-suggest{margin-top:4px;background:transparent;border:1px dashed #4A90D9;border-radius:10px;color:#85c1e9;cursor:pointer;font-family:Barlow Condensed,sans-serif;font-size:11px;letter-spacing:.5px;padding:2px 10px;white-space:nowrap}.phase-start-suggest:hover{background:#12161d}.phase-resource-row{display:flex;gap:6px;margin-bottom:8px}.phase-resource-field{flex:1}.phase-estimate-hint{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;padding:6px 8px;border-left:2px solid #4A90D9;background:#12161d;font-family:DM Mono,monospace;font-size:11px;color:#89b6e8}.phase-estimate-hint-sub{color:#8e9aab;font-size:10px}.phase-detail-col+.phase-detail-col{border-left:1px solid #1A1C22}.phase-detail-heading{font-family:Barlow,sans-serif;font-size:11px;color:#bbb;font-weight:500}.phase-detail-heading-tight{margin-bottom:4px}.phase-detail-input{font-size:11px;padding:5px 8px;width:100%}.phase-note-input{font-size:11px;padding:5px 8px;width:100%;margin-bottom:8px}.poikkeama-input{background:#13151b;border:1px solid #6B6F79;color:#d4cfc8;padding:var(--sp-2) 10px;font-family:Barlow,sans-serif;font-size:13px;outline:none;resize:vertical;min-height:68px;width:100%;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;border-radius:2px}.poikkeama-input:focus{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1f}.poikkeama-input::placeholder{color:#949494}.history-no-data{font-family:DM Mono,monospace;font-size:12px;color:#949494;padding:var(--sp-2) 0}.history-stats-row{display:flex;gap:var(--sp-2)}.history-stat-box{flex:1;display:flex;flex-direction:column;align-items:center;background:#13151b;border:1px solid #2A2D35;padding:5px 8px;border-radius:2px}.history-stat-val{font-family:DM Mono,monospace;font-size:14px;font-weight:500;color:#e8a020}.history-stat-lbl{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#949494;font-family:DM Mono,monospace}.history-vs-badge{display:inline-flex;align-items:center;gap:4px;font-family:DM Mono,monospace;font-size:11px;padding:3px 8px;border-radius:2px}.history-vs-under{background:#27ae6020;color:#27ae60;border:1px solid #27AE6040}.history-vs-over{background:#e74c3c20;color:#e74c3c;border:1px solid #E74C3C40}.history-vs-equal{background:#4a90d920;color:#4a90d9;border:1px solid #4A90D940}.history-list{display:flex;flex-direction:column;gap:0;max-height:160px;overflow-y:auto}.history-row{display:grid;grid-template-columns:1fr 44px;gap:6px;padding:5px 0;border-bottom:1px solid #141618;align-items:start}.history-row:last-child{border-bottom:none}.history-row-name{font-size:12px;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-row-days{font-family:DM Mono,monospace;font-size:12px;color:#bbb;text-align:right}.history-row-deviation{grid-column:1 / -1;font-size:11px;color:#e74c3c;font-style:italic;padding-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-bar-wrap{grid-column:1 / -1;height:3px;background:#1e2028;margin-top:1px}.history-bar-fill{height:100%}.bottom-nav{display:none}@media(max-width:900px){.sidebar{position:fixed;top:64px;left:0;bottom:0;height:auto;transform:translate(-100%);transition:transform .25s ease,width .2s ease;z-index:90;box-shadow:4px 0 16px #0006}.sidebar.mobile-open{transform:translate(0);width:var(--sidebar-w)}.sidebar-overlay{display:none;position:fixed;inset:64px 0 0;background:#00000080;z-index:89}.sidebar-overlay.visible{display:block}.header-hamburger{display:flex;align-items:center;justify-content:center}.app-layout{flex-direction:column}.app-content{width:100%}.header{padding:0 var(--sp-4);height:auto;min-height:64px;flex-wrap:wrap;gap:var(--sp-2)}.header-title{font-size:16px;letter-spacing:1px}.header-sub{display:none}.header-icon{width:28px;height:28px;font-size:12px}.header-actions{flex-wrap:wrap;gap:var(--sp-2);width:100%;padding-bottom:var(--sp-2)}.stat-pill{padding:4px 10px}.stat-pill-val{font-size:13px}.stat-pill-label{font-size:9px}.main{padding:14px 16px}.toolbar{flex-wrap:wrap;gap:var(--sp-2)}.search-input{width:100%;order:-1}.kanban{grid-template-columns:1fr;gap:14px}.modal-overlay{padding:var(--sp-2)}.modal{max-height:95vh}.modal-body{padding:var(--sp-4)}.modal-header{padding:14px 16px}.modal-footer{padding:12px 16px}.modal-title{font-size:18px}.form-grid{grid-template-columns:1fr;gap:12px}.form-group.full{grid-column:1}.phase-edit-row{flex-wrap:wrap;padding:var(--sp-2) 10px}.phase-detail-panel{grid-template-columns:1fr}.card-header{padding:14px 16px 12px}.card-body{padding:12px 16px}.card-footer{padding:10px 16px 28px}.card-name{font-size:16px}}@media(max-width:480px){.header-actions .stat-pill.hide-xs{display:none}.phase-edit-row{flex-wrap:wrap}.modal{max-width:100%;max-height:100vh;border-radius:0;border-top:none;margin:0}.modal-overlay{padding:0;align-items:flex-end}.modal-footer{flex-direction:column-reverse;gap:var(--sp-2)}.modal-footer button{width:100%;text-align:center}.btn-primary{padding:10px 14px;font-size:13px}.card-meta{flex-direction:column;gap:6px}.phases-editor-header{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}}.token-limit-banner{background:#2a1a00;border-bottom:1px solid #E8A02044;padding:var(--sp-2) 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#e8a020}.token-limit-banner.critical{background:#2a0a00;border-bottom-color:#e74c3c44;color:#e74c3c}.token-limit-banner-bar{flex:1;max-width:200px;height:4px;background:#1e2028;border-radius:2px;overflow:hidden}.token-limit-banner-bar-fill{height:100%;border-radius:2px;background:#e8a020;transition:width .4s ease}.token-limit-banner.critical .token-limit-banner-bar-fill{background:#e74c3c}.token-limit-banner-dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:16px;opacity:.6;padding:0 4px;line-height:1}.token-limit-banner-dismiss:hover{opacity:1}.confirm-overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:400;padding:16px}.confirm-modal{width:100%;max-width:420px;background:#13151b;border:1px solid #2A2D35;border-top:3px solid #E74C3C;padding:20px;border-radius:2px}.confirm-title{font-family:Barlow Condensed,sans-serif;font-size:18px;color:#eee;letter-spacing:1px;margin-bottom:10px}.confirm-text{font-size:13px;color:#aaa;line-height:1.6;margin-bottom:16px}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--sp-2)}.nav-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#949494;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:22px 18px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.nav-tab:hover{color:#bbb}.nav-tab.active{color:#e8a020;border-bottom-color:#e8a020}.add-phase-overlay{z-index:300}.add-phase-modal{background:#13151b;border:1px solid #2A2D35;border-top:3px solid #E8A020;width:480px;max-width:92vw;border-radius:4px;padding:20px 22px;animation:slideUp .2s ease}.add-phase-title{font-size:16px;font-weight:600;color:#eee;margin-bottom:6px}.add-phase-hint{font-size:12px;color:#888;line-height:1.5;margin-bottom:16px}.add-phase-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.add-phase-field{display:flex;flex-direction:column;gap:5px}.add-phase-field-code{grid-column:1 / 2}.add-phase-field-name{grid-column:2 / 3}.add-phase-label{font-size:11px;color:#bbb;text-transform:uppercase;letter-spacing:.5px}.add-phase-modal .form-input{width:100%;background:#1a1d23;border:1px solid #6B6F79;color:#ddd;padding:8px 10px;border-radius:4px;font-size:13px}.add-phase-error{color:#e74c3c;font-size:11px;margin-top:2px}.add-phase-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.add-phase-installers{margin-top:16px}.add-phase-installer-list{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow-y:auto}.add-phase-installer{display:flex;align-items:center;gap:6px;font-size:12px;color:#ccc;background:#1a1d23;border:1px solid #2A2D35;border-radius:4px;padding:5px 9px;cursor:pointer}.add-phase-installer.on{border-color:#4a90d9;background:#4a90d914;color:#eee}.add-phase-installer input{accent-color:#4A90D9}.add-phase-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.add-phase-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#eee;background:#4a90d914;border:1px solid #4A90D9;border-radius:12px;padding:3px 6px 3px 10px}.add-phase-chip button{background:none;border:none;color:#9cc4e8;cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.add-phase-chip button:hover{color:#fff}.add-phase-installers .form-input{margin-bottom:8px}.add-phase-installer-empty{font-size:12px;color:#949494;padding:8px 4px}.phase-draft-tasks{display:flex;flex-direction:column;gap:6px;padding:8px 12px 10px 36px;border:1px solid #2a2d35;border-top:none;background:#0f1015}.phase-draft-task-row{display:flex;gap:8px;align-items:center}.phase-draft-task-name{flex:1;min-width:0}.phase-draft-task-days{width:80px;text-align:center}.phase-draft-task-add{align-self:flex-start;font-size:12px;padding:4px 10px}.quick-add-task{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 8px;background:#0f1015}.quick-add-task-phase{min-width:160px}.quick-add-task-name{flex:1;min-width:160px}.quick-add-task-days{width:80px;text-align:center}.quick-add-task-hint{font-size:12px;color:#888}.quick-add-task-hours{width:80px;text-align:center}.phase-tasks-toggle{align-self:flex-start;display:flex;align-items:center;gap:8px;background:none;border:none;padding:2px 0;color:#aaa;font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer}.phase-tasks-toggle:hover{color:#e8a020}.phase-tasks-toggle-new{color:#e8a020;text-transform:none;letter-spacing:0}.phase-saved-task-row{display:flex;gap:12px;align-items:center;font-size:13px;color:#ccc;padding:2px 0}.phase-saved-task-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-saved-task-meta{color:#949494;font-size:12px;white-space:nowrap}.phase-saved-task-confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.phase-draft-tasks-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#8a8a8a}.project-modules{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin:0;padding:0;border:0}.project-modules-hint{margin:.6rem 0 0;font-size:12px;color:#8a8a8a}.project-module-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:100vh;padding:2rem;text-align:center;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#1f2933;background:#f5f7fa}.error-boundary__title{margin:0;font-size:1.5rem;font-weight:600}.error-boundary__body{margin:0;max-width:32rem;line-height:1.5;color:#52606d}.error-boundary__reference{margin:0;font-size:.875rem;color:#7b8794}.error-boundary__reference code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;-webkit-user-select:all;user-select:all;padding:.125rem .375rem;border-radius:3px;background:#e4e7eb;color:#1f2933}.error-boundary__button{padding:.625rem 1.25rem;border:none;border-radius:4px;background:#2563eb;color:#fff;font-size:.9375rem;cursor:pointer}.error-boundary__button:hover{background:#1d4ed8}
