:root{color:var(--color-ink);background:var(--color-page-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--color-ink:#17255f;--color-muted:#525d8a;--color-line:#d9e5ee;--color-blue:#17255f;--color-cyan:#267bc2;--color-orange:#ff7f27;--color-green:#2fb176;--color-page-bg:#f4f8fb;--color-sidebar-start:#17255f;--color-sidebar-end:#267bc2;--color-focus-rgb:38, 123, 194;--color-surface:#fff;--color-surface-rgb:255, 255, 255;--color-surface-elevated:#ffffffeb;--color-surface-muted:#f8fbfd;--color-surface-soft:#eef5f9;--color-table-header:#f7fbfd;--color-row-hover:#f8fcff;--color-border-strong:#cbdbe7;--color-border-soft:#edf3f7;--color-danger:#a83232;--color-danger-bg:#fff1f1;--color-warning:#956600;--color-success-text:#15724a;--color-success-bg:#effaf5;--color-cyan-text:#006fa5;--color-overlay:#051a2c7a;--color-overlay-strong:#051a2c94;--color-primary-button-start:var(--color-cyan);--color-primary-button-end:color-mix(in srgb, var(--color-cyan) 78%, #fff);--color-primary-button-shadow:rgba(var(--color-focus-rgb), .26);--shadow-soft:0 22px 60px #16324d1f;--shadow-card:0 14px 36px #16324d12;--shadow-row:0 10px 28px #16324d0f;--shadow-modal:0 24px 70px #051a2c3d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-color-scheme=dark]{--color-surface:#0e1b28;--color-surface-rgb:14, 27, 40;--color-surface-elevated:#0e1b28eb;--color-surface-muted:#132635;--color-surface-soft:#172e40;--color-table-header:#132635;--color-row-hover:#162c3d;--color-border-strong:#365266;--color-border-soft:#1f3446;--color-danger:#ff8d8d;--color-danger-bg:#3a161b;--color-warning:#ffd06f;--color-success-text:#72e0aa;--color-success-bg:#123226;--color-cyan-text:var(--color-cyan);--color-overlay:#02080ead;--color-overlay-strong:#02080ec7;--color-primary-button-start:color-mix(in srgb, var(--color-cyan) 68%, var(--color-surface));--color-primary-button-end:color-mix(in srgb, var(--color-cyan) 52%, var(--color-surface));--color-primary-button-shadow:#0000003d;--shadow-soft:0 22px 60px #00000052;--shadow-card:0 14px 36px #00000047;--shadow-row:0 10px 28px #0003;--shadow-modal:0 24px 70px #0000006b}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:progress;opacity:.68}input::placeholder,textarea::placeholder{color:color-mix(in srgb, var(--color-muted) 78%, transparent);opacity:1}:-webkit-any(input:-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill){border-color:var(--color-border-strong);-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink);box-shadow:0 0 0 1000px var(--color-surface-muted) inset}:is(input:autofill,textarea:autofill,select:autofill){border-color:var(--color-border-strong);-webkit-text-fill-color:var(--color-ink);caret-color:var(--color-ink);box-shadow:0 0 0 1000px var(--color-surface-muted) inset}:-webkit-any(input:-webkit-autofill:focus,textarea:-webkit-autofill:focus,select:-webkit-autofill:focus){box-shadow:0 0 0 1000px var(--color-surface) inset, 0 0 0 4px rgba(var(--color-focus-rgb), .14)}:is(input:autofill:focus,textarea:autofill:focus,select:autofill:focus){box-shadow:0 0 0 1000px var(--color-surface) inset, 0 0 0 4px rgba(var(--color-focus-rgb), .14)}#app{min-height:100vh}.login-page{background:linear-gradient(90deg, color-mix(in srgb, var(--color-sidebar-start) 90%, transparent), color-mix(in srgb, var(--color-sidebar-end) 86%, transparent)), linear-gradient(90deg, var(--color-sidebar-start) 0%, var(--color-sidebar-end) 54%, var(--color-page-bg) 54%, var(--color-surface-muted) 100%);grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.login-hero{color:#fff;flex-direction:column;justify-content:space-between;gap:clamp(44px,6vw,72px);min-height:100vh;padding:clamp(32px,6vw,72px);display:flex}.hero-kicker,.user-chip{align-items:center;gap:8px;display:inline-flex}.hero-kicker{color:#d9f3ff;text-transform:uppercase;flex-wrap:wrap;width:fit-content;margin-bottom:20px;font-size:.78rem;font-weight:850}.hero-kicker span+span{align-items:center;gap:8px;display:inline-flex}.hero-kicker span+span:before{background:var(--color-orange);content:"";border-radius:999px;width:5px;height:5px}.hero-copy{max-width:680px}.eyebrow{color:var(--color-orange);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.75rem;font-weight:800}.hero-copy h1,.page-heading h1{margin:0;line-height:1.05}.hero-copy h1{max-width:620px;font-size:clamp(2.35rem,4.1vw,4.25rem)}.hero-copy p:last-child{color:#ffffffd1;max-width:560px;margin:22px 0 0;font-size:1.15rem;line-height:1.7}.hero-metrics{align-items:stretch;max-width:640px;display:flex}.hero-metrics div{border-left:1px solid #ffffff42;min-width:132px;padding:2px clamp(18px,3vw,28px)}.hero-metrics div:first-child{border-left:0;padding-left:0}.hero-metrics strong,.hero-metrics span{display:block}.hero-metrics strong{font-size:1.65rem}.hero-metrics span{color:#ffffffbd;margin-top:5px}.login-panel{place-items:center;min-height:100vh;padding:28px;display:grid}.login-card{border:1px solid color-mix(in srgb, var(--color-line) 85%, transparent);background:var(--color-surface-elevated);width:min(100%,460px);box-shadow:var(--shadow-soft);border-radius:8px;padding:clamp(28px,4vw,42px)}.login-card-brand{justify-content:flex-start;min-width:0;margin-bottom:28px;display:flex}.login-card-logo{object-fit:contain;object-position:left center;width:min(100%,280px);max-height:88px;display:block}.login-card-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.login-card-header h2{color:var(--color-ink);margin:0;font-size:2rem}.brand-mark,.sidebar-mark{background:linear-gradient(135deg, var(--color-blue), var(--color-cyan));color:#fff;border-radius:8px;flex:none;place-items:center;font-weight:900;display:grid}.brand-mark{width:58px;height:58px;box-shadow:0 14px 30px #0077a847}.login-form{gap:18px;display:grid}.login-form label{color:var(--color-ink);gap:8px;font-weight:800;display:grid}.login-form input{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);width:100%;color:var(--color-ink);border-radius:8px;outline:none;padding:14px 15px;transition:border-color .16s,box-shadow .16s,background .16s}.login-form input:focus{border-color:var(--color-cyan);background:var(--color-surface);box-shadow:0 0 0 4px rgba(var(--color-focus-rgb), .14)}.form-error{background:var(--color-danger-bg);color:var(--color-danger);border-left:4px solid #d94b4b;border-radius:6px;margin:0;padding:11px 12px;font-weight:700}.form-success{border-left:4px solid var(--color-green);background:var(--color-success-bg);color:var(--color-success-text);border-radius:6px;margin:0;padding:11px 12px;font-weight:700}.form-hint{background:var(--color-page-bg);color:var(--color-muted);border-left:4px solid #9eb5c5;border-radius:6px;margin:0;padding:11px 12px;font-weight:750}.primary-button{background:linear-gradient(135deg, var(--color-primary-button-start), var(--color-primary-button-end));color:#fff;min-height:52px;box-shadow:0 14px 24px var(--color-primary-button-shadow);border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-weight:900;display:inline-flex}.portal-shell{background:var(--color-page-bg);grid-template-columns:282px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{z-index:20;background:linear-gradient(180deg, var(--color-sidebar-start) 0%, var(--color-sidebar-end) 100%);color:#fff;min-height:100vh;padding:22px 16px;position:sticky;top:0}.sidebar-brand{align-items:center;gap:12px;min-height:82px;padding:8px 8px 22px;display:flex}.sidebar-mark{background:#ffffff21;border:1px solid #ffffff42;width:48px;height:48px;font-size:1rem;box-shadow:0 14px 30px #05142c2e}.sidebar-brand-text{gap:3px;min-width:0;line-height:1.15;display:grid}.sidebar-brand-text strong,.sidebar-brand-text span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-brand-text strong{color:#fff;font-weight:900}.sidebar-brand-text span{color:#ffffffb8;font-size:.82rem;font-weight:750}.sidebar nav{gap:8px;display:grid}.nav-item{color:#ffffffc7;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 13px;font-weight:800;transition:background .16s,border-color .16s,color .16s;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#ffffff24;border-color:#fff3}.portal-main{min-width:0}.topbar{z-index:10;border-bottom:1px solid var(--color-line);background:var(--color-surface-elevated);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:0 clamp(18px,3vw,34px);display:flex;position:sticky;top:0}.topbar-logo,.topbar-actions{align-items:center;gap:12px;display:flex}.topbar-brand-logo{object-fit:contain;object-position:left center;flex:0 auto;width:min(18vw,188px);max-width:188px;max-height:52px;display:block}.user-chip{border:1px solid var(--color-line);background:var(--color-surface);min-height:40px;color:var(--color-ink);text-align:left;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-weight:800;transition:border-color .16s,box-shadow .16s,color .16s;display:inline-flex}.user-chip:hover,.user-chip:focus-visible{border-color:rgba(var(--color-focus-rgb), .38);color:var(--color-cyan);box-shadow:0 0 0 4px rgba(var(--color-focus-rgb), .12);outline:none}.user-chip-text{gap:1px;min-width:0;line-height:1.12;display:grid}.user-chip-text strong,.user-chip-text span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.user-chip-text strong{max-width:240px;font-size:.88rem}.user-chip-text span{max-width:240px;color:var(--color-muted);font-size:.76rem;font-weight:800}.icon-button{border:1px solid var(--color-line);background:var(--color-surface);width:42px;height:42px;color:var(--color-ink);border-radius:8px;place-items:center;display:inline-grid}.theme-toggle{flex:none}.content-area{padding:clamp(22px,4vw,46px)}.page-heading{gap:4px;margin-bottom:24px;display:grid}.page-heading h1{color:var(--color-ink);font-size:clamp(2rem,4vw,3.4rem)}.invoice-section,.requests-page{gap:18px;display:grid}.request-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.request-stat{border:1px solid var(--color-line);background:var(--color-surface);min-width:0;color:var(--color-ink);box-shadow:var(--shadow-row);border-left-width:5px;border-radius:8px;align-items:center;gap:13px;padding:16px;display:flex}.request-stat strong,.request-stat span{display:block}.request-stat strong{color:var(--color-ink);font-size:1.45rem;line-height:1}.request-stat span{color:var(--color-muted);text-transform:uppercase;margin-top:4px;font-size:.82rem;font-weight:900}.requests-layout{grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);align-items:start;gap:18px;display:grid}.requests-board,.request-create-panel,.request-detail-panel{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px}.requests-board{gap:16px;padding:clamp(18px,3vw,24px);display:grid}.requests-board-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.request-sort-control{border:1px solid var(--color-line);background:var(--color-surface);min-height:44px;color:var(--color-muted);border-radius:8px;align-items:center;gap:9px;padding:0 12px;font-weight:800;display:inline-flex}.request-sort-control select{min-width:156px;color:var(--color-ink);background:0 0;border:0;outline:0;font-weight:800}.request-scope-switch{border:1px solid var(--color-line);background:var(--color-surface-soft);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));width:fit-content;display:inline-grid;overflow:hidden}.request-scope-switch button{min-height:40px;color:var(--color-muted);white-space:nowrap;background:0 0;border:0;border-radius:0;padding:0 14px;font-weight:900}.request-scope-switch button.active{background:var(--color-surface);color:var(--color-ink);box-shadow:0 0 0 1px #0080bf29}.request-status-tabs{flex-wrap:wrap;gap:8px;display:flex}.request-status-tab{border:1px solid var(--color-line);background:var(--color-surface-muted);min-height:36px;color:var(--color-muted);border-radius:8px;align-items:center;gap:8px;padding:0 11px;font-size:.88rem;font-weight:900;display:inline-flex}.request-status-tab.active{background:var(--color-surface);color:var(--color-ink);border-color:currentColor;box-shadow:0 0 0 4px #0080bf17}.request-status-tab strong{background:var(--color-surface-soft);min-width:24px;height:24px;color:inherit;border-radius:999px;place-items:center;font-size:.78rem;display:inline-grid}.request-list{gap:10px;display:grid}.request-card{border:1px solid var(--color-line);background:var(--color-surface);width:100%;color:var(--color-ink);text-align:left;border-radius:8px;gap:12px;padding:15px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.request-card:hover,.request-card.active{border-color:#0080bf85;box-shadow:0 12px 28px #0056861a}.request-card:hover{transform:translateY(-1px)}.request-card-topline,.request-card-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.request-card-topline strong{color:var(--color-cyan);font-size:.96rem;font-weight:950}.request-card-body{gap:5px;min-width:0;display:grid}.request-card-title{color:var(--color-ink);overflow-wrap:anywhere;font-size:1.08rem;font-weight:950;line-height:1.25}.request-card-description{color:var(--color-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.93rem;line-height:1.45;display:-webkit-box;overflow:hidden}.request-card-meta{color:var(--color-muted);flex-wrap:wrap;justify-content:flex-start;font-size:.82rem;font-weight:800}.request-card-meta span,.request-detail-people span{align-items:center;gap:6px;min-width:0;display:inline-flex}.request-status-badge{text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.75rem;font-weight:950;display:inline-flex}.request-status--warning{color:var(--color-warning);border-left-color:#d9a928}.request-status--info{border-left-color:var(--color-cyan);color:var(--color-cyan-text)}.request-status--success{border-left-color:var(--color-green);color:var(--color-success-text)}.request-status--danger{color:var(--color-danger);border-left-color:#d94b4b}.request-status--neutral{border-left-color:var(--color-muted);color:var(--color-muted)}.request-list-state{border:1px dashed var(--color-line);background:var(--color-surface-muted);color:var(--color-muted);text-align:center;border-radius:8px;padding:18px;font-weight:850}.request-list-pager{border-top:1px solid var(--color-border-soft);justify-content:space-between;align-items:center;gap:10px;padding-top:14px;display:flex}.request-list-pager span{color:var(--color-muted);white-space:nowrap;font-weight:850}.request-side-column{gap:18px;display:grid}.request-create-panel,.request-detail-panel{gap:18px;padding:clamp(18px,3vw,24px);display:grid}.request-panel-heading h2,.request-detail-heading h2{color:var(--color-ink);margin:0}.request-panel-heading h2{font-size:1.55rem;line-height:1.14}.request-form{gap:14px;display:grid}.request-form label{color:var(--color-ink);gap:8px;font-weight:900;display:grid}.request-form input,.request-form select,.request-form textarea{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);width:100%;color:var(--color-ink);border-radius:8px;outline:none;padding:13px 14px;transition:border-color .16s,box-shadow .16s,background .16s}.request-form textarea{resize:vertical;min-height:138px}.request-form input:focus,.request-form select:focus,.request-form textarea:focus{border-color:var(--color-cyan);background:var(--color-surface);box-shadow:0 0 0 4px #00a6c824}.request-attachment-field{color:var(--color-ink);gap:8px;font-weight:900;display:grid}.request-form .request-file-picker{border:1px solid var(--color-border-strong);background:var(--color-surface);width:fit-content;max-width:100%;color:var(--color-blue);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:11px 14px;font-weight:950;line-height:1.2;transition:border-color .16s,box-shadow .16s,color .16s;display:inline-flex}.request-form .request-file-picker:hover,.request-form .request-file-picker:focus-within{border-color:var(--color-cyan);color:var(--color-cyan);box-shadow:0 0 0 4px #00a6c824}.request-file-picker input{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.request-selected-file{border:1px solid var(--color-line);background:var(--color-surface-muted);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.request-selected-file div{gap:2px;min-width:0;display:grid}.request-selected-file strong{min-width:0;color:var(--color-ink);overflow-wrap:anywhere;font-size:.92rem}.request-selected-file span{color:var(--color-muted);font-size:.8rem;font-weight:800}.request-selected-file button{border:1px solid var(--color-line);background:var(--color-surface);width:32px;height:32px;color:var(--color-muted);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.request-selected-file button:hover{color:var(--color-orange)}.request-form .primary-button{width:100%}.request-detail-page{gap:18px;display:grid}.request-detail-topbar{justify-content:space-between;align-items:center;gap:14px;display:flex}.request-detail-hero{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px;padding:clamp(22px,4vw,34px)}.request-detail-hero h2{max-width:980px;color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.08}.request-detail-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.34fr);align-items:start;gap:18px;display:grid}.request-detail-main,.request-detail-sidebar{gap:18px;display:grid}.request-detail-actions{display:none}.request-detail-heading{gap:10px;display:grid}.request-detail-heading>div{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.request-detail-heading h2{overflow-wrap:anywhere;min-width:0;font-size:clamp(1.45rem,3vw,2rem);line-height:1.14}.request-detail-grid{border:1px solid var(--color-line);background:var(--color-line);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.request-detail-grid div{background:var(--color-surface);min-width:0;padding:15px}.request-detail-grid dt{color:var(--color-muted);text-transform:uppercase;margin:0 0 6px;font-size:.72rem;font-weight:950}.request-detail-grid dd{color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-weight:950}.request-detail-people{color:var(--color-muted);gap:9px;font-weight:850;display:grid}.request-text-block{border-top:1px solid var(--color-border-soft);gap:8px;padding-top:16px;display:grid}.request-text-block h3{color:var(--color-ink);text-transform:uppercase;margin:0;font-size:.92rem}.request-text-block p{color:var(--color-muted);white-space:pre-wrap;margin:0;line-height:1.65}.request-text-panel,.request-comments-panel{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px;padding:clamp(18px,3vw,24px)}.request-text-panel{border-top:1px solid var(--color-line)}.request-attachment-panel{border:1px solid var(--color-line);background:var(--color-surface-muted);min-width:0;color:var(--color-blue);border-radius:8px;align-items:flex-start;gap:12px;padding:16px;display:flex}.request-attachment-panel div{min-width:0}.request-attachment-panel h3{color:var(--color-ink);text-transform:uppercase;margin:0 0 4px;font-size:.82rem;font-weight:950}.request-attachment-panel p{color:var(--color-muted);overflow-wrap:anywhere;margin:0;font-weight:900}.request-comments-panel{gap:16px;display:grid}.request-comments-heading{color:var(--color-cyan);justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.request-comments-heading h3{color:var(--color-ink);margin:0;font-size:1.35rem}.request-comment-empty{border:1px dashed var(--color-line);background:var(--color-surface-muted);color:var(--color-muted);border-radius:8px;padding:16px;font-weight:850}.request-comment-thread{border:1px solid var(--color-border-soft);background:linear-gradient(180deg, color-mix(in srgb, var(--color-surface-muted) 92%, transparent), color-mix(in srgb, var(--color-surface) 96%, transparent)), var(--color-surface);border-radius:8px;gap:12px;padding:14px;display:grid}.request-comment{min-width:0;display:flex}.request-comment--customer{justify-content:flex-end}.request-comment--technician{justify-content:flex-start}.request-comment-bubble{border:1px solid var(--color-line);background:var(--color-surface);width:fit-content;max-width:min(78%,640px);color:var(--color-ink);box-shadow:var(--shadow-row);border-radius:8px;gap:8px;padding:12px 14px;display:grid}.request-comment--customer .request-comment-bubble{border-color:color-mix(in srgb, var(--color-green) 38%, var(--color-line));background:var(--color-success-bg)}.request-comment--technician .request-comment-bubble{background:var(--color-surface-muted)}.request-comment-meta{color:var(--color-muted);flex-wrap:wrap;align-items:baseline;gap:5px 10px;font-size:.78rem;font-weight:850;display:flex}.request-comment-meta strong{color:var(--color-ink);font-size:.84rem}.request-comment-meta time{white-space:nowrap}.request-comment-bubble p{color:var(--color-ink);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;line-height:1.55}.request-comment-form{gap:12px;display:grid}.request-comment-form label{color:var(--color-ink);gap:8px;font-weight:900;display:grid}.request-comment-form textarea{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);width:100%;min-height:112px;color:var(--color-ink);resize:vertical;border-radius:8px;outline:none;padding:13px 14px}.request-comment-form textarea:disabled{color:var(--color-muted);opacity:.86}.request-detail-dates{color:var(--color-muted);gap:10px;font-weight:850;display:grid}.request-detail-dates span{align-items:center;gap:7px;display:inline-flex}.profile-page{gap:18px;width:100%;display:grid}.profile-panel{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px;gap:22px;padding:clamp(22px,3vw,30px);display:grid}.profile-panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.profile-panel h2{color:var(--color-ink);margin:0;font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.14}.profile-heading-note{color:var(--color-muted);margin:8px 0 0;font-size:1rem;font-weight:850}.profile-data{border:1px solid var(--color-line);background:var(--color-line);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.profile-data div{background:var(--color-surface);min-width:0;padding:18px}.profile-data-item--wide{grid-column:1/-1}.profile-data dt{color:var(--color-muted);text-transform:uppercase;margin:0 0 7px;font-size:.75rem;font-weight:900}.profile-data dd{color:var(--color-ink);overflow-wrap:anywhere;margin:0;font-size:1.08rem;font-weight:850}.login-identity .profile-panel-heading{align-items:center}.modal-backdrop{z-index:60;background:var(--color-overlay);place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-dialog{border:1px solid color-mix(in srgb, var(--color-line) 95%, transparent);background:var(--color-surface);width:min(100%,480px);box-shadow:var(--shadow-modal);border-radius:8px;padding:clamp(24px,4vw,34px)}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.modal-header h2{color:var(--color-ink);margin:0;font-size:2rem}.section-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.table-search{border:1px solid var(--color-line);background:var(--color-surface);width:min(100%,420px);min-height:44px;color:var(--color-muted);border-radius:8px;align-items:center;gap:10px;padding:0 12px;display:flex}.table-search input{min-width:0;color:var(--color-ink);background:0 0;border:0;outline:0;flex:1}.table-search-clear{background:var(--color-surface-soft);width:28px;height:28px;color:var(--color-muted);border:0;border-radius:8px;flex:none;place-items:center;display:inline-grid}.secondary-button{border:1px solid var(--color-line);background:var(--color-surface);min-height:42px;color:var(--color-ink);border-radius:8px;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.portal-data-table{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px;overflow:hidden}.portal-data-table .p-datatable-table{font-size:.95rem}.portal-data-table .p-datatable-thead>tr>th{border-color:var(--color-line);background:var(--color-table-header);color:var(--color-muted);text-transform:uppercase;font-size:.76rem;font-weight:900}.portal-data-table .p-datatable-tbody>tr>td{border-color:var(--color-border-soft);color:var(--color-ink);vertical-align:middle}.portal-data-table .p-datatable-tbody>tr:hover{background:var(--color-row-hover)}.portal-data-table .p-datatable-thead>tr>th:nth-child(n+2),.portal-data-table .p-datatable-tbody>tr>td:nth-child(n+2){text-align:right}.portal-data-table .p-datatable-thead>tr>th:nth-child(n+2) .p-datatable-column-header-content{justify-content:flex-end}.portal-data-table .p-datatable-thead>tr>th.table-text-column,.portal-data-table .p-datatable-tbody>tr>td.table-text-column{text-align:left}.portal-data-table .p-datatable-thead>tr>th.table-text-column .p-datatable-column-header-content{justify-content:flex-start}.portal-data-table .p-paginator{border-color:var(--color-line);background:var(--color-surface);color:var(--color-muted)}.mobile-invoice-list,.mobile-list-pager{display:none}.invoice-number-link{color:var(--color-cyan);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.action-cell{text-align:right;width:58px}.invoice-status-value{color:var(--color-orange);font-weight:900}.invoice-status-value.paid,.invoice-summary dd.paid{color:var(--color-green)}.invoice-detail{gap:18px;max-width:920px;display:grid}.delivery-detail{width:100%;max-width:none}.detail-heading h2{color:var(--color-ink);margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}.detail-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.detail-title-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.invoice-summary{border:1px solid var(--color-line);background:var(--color-line);box-shadow:var(--shadow-card);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.invoice-summary div{background:var(--color-surface);min-width:0;padding:20px}.invoice-summary .summary-wide{grid-column:span 2}.invoice-summary .summary-full{grid-column:1/-1}.invoice-summary dt{color:var(--color-muted);text-transform:uppercase;margin:0 0 8px;font-size:.75rem;font-weight:900}.invoice-summary dd{color:var(--color-ink);margin:0;font-size:1.25rem;font-weight:900}.invoice-summary dd.invoice-status-value{color:var(--color-orange)}.invoice-summary dd.invoice-status-value.paid{color:var(--color-green)}.delivery-summary .delivery-confirm-action,.delivery-summary .delivery-confirm-meta{grid-column:span 3;min-height:auto}.delivery-summary>div:nth-child(n+4){padding-block:16px}.delivery-summary .delivery-confirm-action{justify-content:flex-start}.delivery-confirm-action,.delivery-confirm-meta{grid-column:span 3;align-items:flex-start;gap:28px;min-height:110px;display:flex}.delivery-confirm-action{justify-content:flex-end;align-items:center}.delivery-confirm-action .primary-button{min-height:52px}.delivery-confirm-note{color:var(--color-muted);margin:0;font-weight:800}.delivery-confirm-meta span{gap:8px;display:grid}.delivery-confirm-meta small{color:var(--color-muted);text-transform:uppercase;font-size:.75rem;font-weight:900}.delivery-confirm-meta strong{color:var(--color-ink);font-size:1.25rem;line-height:1.15}.invoice-pdf-panel,.delivery-items-panel{gap:14px;display:grid}.delivery-items-table-wrap{border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:8px;overflow-x:auto}.delivery-items-table{border-collapse:collapse;width:100%;min-width:860px;font-size:.95rem}.delivery-note-items-table{table-layout:fixed;min-width:420px}.delivery-note-quantity-col{width:140px}.delivery-items-table th,.delivery-items-table td{border-bottom:1px solid var(--color-border-soft);color:var(--color-ink);vertical-align:top;padding:14px 16px}.delivery-items-table th{background:var(--color-table-header);color:var(--color-muted);text-transform:uppercase;white-space:nowrap;font-size:.76rem;font-weight:900}.delivery-items-table th:nth-child(n+2),.delivery-items-table td:nth-child(n+2){text-align:right;white-space:nowrap}.delivery-items-table tbody tr:last-child td{border-bottom:0}.invoice-pdf-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.invoice-pdf-heading h3{color:var(--color-ink);margin:0;font-size:1.25rem}.invoice-pdf-preview{border:1px solid var(--color-line);background:var(--color-surface);width:100%;min-height:760px;box-shadow:var(--shadow-card);border-radius:8px}.invoice-pdf-preview p,.invoice-pdf-state{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-muted);border-radius:8px;margin:0;padding:18px;font-weight:800}.pdf-modal-backdrop{z-index:40;background:var(--color-overlay-strong);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pdf-modal{border:1px solid var(--color-line);background:var(--color-surface);width:min(1120px,100%);max-height:min(900px,100vh - 48px);box-shadow:var(--shadow-modal);border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:18px;display:grid}.pdf-modal-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.pdf-modal-header h3{color:var(--color-ink);margin:0;font-size:1.25rem}.pdf-modal-actions{align-items:center;gap:10px;display:flex}.pdf-modal-preview{border:1px solid var(--color-line);background:var(--color-surface);border-radius:8px;width:100%;height:min(760px,100vh - 190px);min-height:420px}.price-quote-detail .detail-heading h2{font-size:clamp(1.6rem,2.4vw,2.25rem)}.price-quote-summary dd{font-size:1.05rem;line-height:1.25}.price-quote-summary .delivery-confirm-action,.price-quote-summary .delivery-confirm-meta{min-height:auto}.price-quote-summary .delivery-confirm-action{padding-block:16px}.price-quote-description{min-height:128px}.price-quote-description dd{white-space:pre-line}.mobile-only,.sidebar-backdrop{display:none}@media (width<=1180px){.requests-layout,.request-detail-layout{grid-template-columns:1fr}.request-side-column{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}@media (width<=980px){.login-page{background:linear-gradient(180deg, #273477f5, #0080bfe6), var(--color-page-bg);grid-template-columns:minmax(0,1fr);overflow-x:hidden}.login-hero,.login-panel{min-height:auto}.login-hero{order:2;gap:42px;padding-bottom:26px}.hero-copy,.hero-metrics,.login-card{max-width:100%}.login-panel{order:1;align-items:start;padding-top:24px}.portal-shell{grid-template-columns:1fr}.sidebar{width:min(82vw,302px);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar-backdrop{z-index:15;background:var(--color-overlay);display:block;position:fixed;inset:0}.mobile-only{display:inline-grid}.request-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.request-side-column{grid-template-columns:1fr}}@media (width<=640px){.login-hero{padding:26px}.hero-copy h1{font-size:2.3rem}.login-card-brand{margin-bottom:24px}.login-card-logo{width:min(100%,245px);max-height:78px}.hero-metrics{justify-content:space-between;width:100%}.hero-metrics div{flex:1 1 0;min-width:0;padding-left:14px;padding-right:10px}.login-panel{padding:16px 16px 6px}.login-card{padding:24px}.topbar{gap:8px;min-height:68px;padding:0 10px}.topbar-actions{gap:6px}.topbar-brand-logo{width:min(28vw,112px);max-height:40px}.icon-button{width:38px;height:38px}.user-chip{justify-content:center;width:38px;padding:0}.user-chip-text{display:none}.content-area{padding:24px 16px}.section-toolbar,.requests-board-header,.request-card-topline,.request-detail-heading>div,.request-detail-topbar{flex-direction:column;align-items:stretch}.table-search,.request-sort-control,.request-sort-control select,.request-scope-switch{width:100%}.request-scope-switch button{white-space:normal;min-width:0;padding:0 10px}.request-stats{grid-template-columns:1fr}.request-stat{padding:14px}.request-card-meta{gap:8px;display:grid}.request-status-badge{width:fit-content}.request-detail-topbar .secondary-button,.request-comment-form .secondary-button{justify-content:center}.request-list-pager .secondary-button{padding:0 10px}.request-detail-actions{display:block}.request-detail-actions .secondary-button{justify-content:center;width:100%}.request-detail-grid{grid-template-columns:1fr}.request-comment-thread{padding:10px}.request-comment-bubble{max-width:92%}.invoice-summary{grid-template-columns:1fr}.invoice-summary .summary-wide{grid-column:auto}.delivery-confirm-action,.delivery-confirm-meta{grid-column:auto;min-height:auto}.delivery-summary .delivery-confirm-action,.delivery-summary .delivery-confirm-meta{grid-column:auto}.delivery-confirm-action{justify-content:stretch}.delivery-confirm-action .primary-button{width:100%}.delivery-confirm-meta,.profile-panel-heading,.login-identity .profile-panel-heading{flex-direction:column;align-items:stretch}.profile-panel-heading .secondary-button{justify-content:center}.profile-data{grid-template-columns:1fr}.detail-title-row,.invoice-pdf-heading{flex-direction:column;align-items:stretch}.detail-title-row .secondary-button{justify-content:center}.detail-title-actions{justify-content:stretch;width:100%}.detail-title-actions .primary-button,.detail-title-actions .secondary-button{flex:220px}.invoice-pdf-preview{min-height:560px}.pdf-modal-backdrop{padding:10px}.pdf-modal{max-height:calc(100vh - 20px);padding:12px}.pdf-modal-header{flex-direction:column;align-items:stretch}.pdf-modal-actions{justify-content:space-between}.pdf-modal-preview{height:calc(100vh - 220px);min-height:320px}}@media (width<=760px){.portal-data-table,.portal-data-table.p-datatable{display:none!important}.mobile-invoice-list{gap:10px;display:grid}.mobile-invoice-row{border:1px solid var(--color-line);background:var(--color-surface);width:100%;color:var(--color-ink);text-align:left;box-shadow:var(--shadow-row);border-radius:8px;grid-template-columns:minmax(82px,.42fr) minmax(0,1fr);gap:14px;padding:14px;display:grid}.mobile-invoice-number{min-width:0;color:var(--color-cyan);overflow-wrap:anywhere;text-underline-offset:3px;font-weight:900;text-decoration:underline}.mobile-invoice-meta{gap:8px;min-width:0;display:grid}.mobile-invoice-meta span{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.mobile-invoice-meta strong{min-width:0;color:var(--color-ink);overflow-wrap:anywhere;font-weight:900}.mobile-invoice-meta .mobile-amount-unpaid{color:var(--color-orange)}.mobile-invoice-meta .mobile-amount-unpaid.paid{color:var(--color-green)}.mobile-invoice-meta small{color:var(--color-muted);text-align:right;font-size:.78rem;font-weight:800}.mobile-empty-state{border:1px dashed var(--color-line);background:var(--color-surface);color:var(--color-muted);text-align:center;border-radius:8px;padding:18px;font-weight:800}.mobile-list-pager{justify-content:space-between;align-items:center;gap:10px;display:flex}.mobile-list-pager span{color:var(--color-muted);white-space:nowrap;font-weight:800}}
