:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#10283d;background:#f3f6f7;font-synthesis:none;--navy:#0b1f33;--mint:#24b98b;--line:#d9e2e6;--muted:#617381}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{border:0;border-radius:10px;background:var(--navy);color:#fff;padding:.85rem 1.1rem;font-weight:700;cursor:pointer}button:disabled{opacity:.5}.app-shell{min-height:100vh;padding-bottom:78px}.app-shell>header{background:var(--navy);color:#fff;padding:calc(1rem + env(safe-area-inset-top)) max(1rem,env(safe-area-inset-left)) 1rem;display:flex;justify-content:space-between;align-items:center}.app-shell>header h1{font-size:1.05rem;margin:.12rem 0}.eyebrow{color:var(--mint);font-size:.68rem;letter-spacing:.17em;font-weight:800}.ghost{background:transparent;border:1px solid #ffffff44;padding:.5rem .7rem}.app-shell main{max-width:940px;margin:auto;padding:1.2rem 1rem 3rem}.app-shell>nav{position:fixed;z-index:20;bottom:0;left:0;right:0;height:66px;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;background:#fff;border-top:1px solid var(--line);box-shadow:0 -5px 25px #0b1f330c}.app-shell>nav a{color:var(--muted);text-decoration:none;padding:1.2rem 1rem .8rem;font-size:.76rem;font-weight:700}.app-shell>nav a.active{color:var(--navy);box-shadow:inset 0 3px var(--mint)}h2{font-size:1.6rem;margin:.2rem 0}h3{margin:.3rem 0 1rem}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}.card,.project-card,.asset-row,.user-row{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;box-shadow:0 4px 18px #112b3d0a}.stack,.asset-list{display:grid;gap:.7rem;margin-top:1rem}.project-card{text-align:left;color:var(--navy);display:grid;gap:.3rem;position:relative}.project-card strong{font-size:1.05rem}.project-card span,.project-card small{color:var(--muted)}.status,.method,.step,.count{text-transform:uppercase;font-size:.65rem;letter-spacing:.09em;background:#ddf7ed!important;color:#087454!important;border-radius:99px;padding:.3rem .55rem;width:max-content}.project-card .status{position:absolute;right:.7rem;top:.7rem}label{display:grid;gap:.35rem;color:#435968;font-size:.78rem;font-weight:700;margin-bottom:.8rem}input,select,textarea{width:100%;border:1px solid #cbd8dd;border-radius:9px;padding:.83rem;background:#fff;color:var(--navy)}textarea{min-height:90px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}.wide{grid-column:1/-1}.actions,.inline{display:flex;gap:.6rem;align-items:center;margin-top:1rem}.actions button:last-child{flex:1}.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}.notice{background:#e6f7f1;border-left:3px solid var(--mint);padding:.7rem .8rem;border-radius:5px;font-size:.83rem}.error{color:#b42318}.login{min-height:100vh;background:var(--navy);color:#fff;padding:12vh 8vw;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.login h1{font-size:clamp(2.2rem,8vw,4.5rem);line-height:1;max-width:760px;margin:.4rem 0}.login p{color:#b8c8d2;max-width:580px}.login button{background:var(--mint);color:#062b22;min-width:250px}.login small{color:#8298a6}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border:2px solid var(--mint);color:var(--mint);font-weight:900}.capture-options{display:grid;gap:.7rem}.capture-primary,.capture-option{display:flex;align-items:center;text-align:left;gap:1rem;padding:1.1rem;border-radius:14px}.capture-primary{background:var(--navy)}.capture-option{background:#fff;color:var(--navy);border:1px solid var(--line);cursor:pointer}.capture-options b{font-size:.7rem;color:var(--mint)}.capture-options span{display:grid;gap:.2rem}.capture-options small{font-weight:400;color:#82919b}.scanner-frame{position:relative;overflow:hidden;border-radius:10px;background:#000;aspect-ratio:4/3}.scanner-frame video{width:100%;height:100%;object-fit:cover}.scanner-frame:after{content:"";position:absolute;inset:18%;border:2px solid var(--mint);border-radius:8px;box-shadow:0 0 0 999px #0007}.scanner-frame span{position:absolute;z-index:2;bottom:.9rem;left:0;right:0;color:#fff;text-align:center;font-size:.75rem}.asset-row,.user-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.asset-row div,.user-row div{display:grid;gap:.15rem}.asset-row span,.asset-row small,.user-row small{color:var(--muted);font-size:.76rem}.user-row select{width:auto}.switch{display:flex;align-items:center}.switch input{width:auto}.loading{display:grid;place-items:center;min-height:100vh;color:var(--muted)}code{font-size:.8em}@media(max-width:540px){.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.asset-row{align-items:flex-start;flex-wrap:wrap}.asset-row>div:nth-child(2){text-align:right}.app-shell>nav a{padding-left:.72rem;padding-right:.72rem}.inline{align-items:stretch}.inline input{min-width:0}.user-row{flex-wrap:wrap}}.project-search{margin:1rem 0}.back-button{margin-bottom:1rem}.project-context{display:grid;gap:.25rem;background:var(--navy);color:#fff;border-radius:14px;padding:1rem;margin-bottom:1rem}.project-context span,.project-context small{color:#b8c8d2}.location-list{display:grid;gap:.7rem;margin-top:1rem}.location-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem}.location-row div{display:grid;gap:.2rem}.location-row small{color:var(--muted)}.capture-selectors{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.capture-context{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:var(--navy);color:#fff;border-radius:14px;padding:1rem;margin-bottom:1rem}.capture-context>div{display:grid;gap:.3rem}.capture-context>div:last-child{justify-items:end}.capture-context small{color:#b8c8d2}.capture-context .secondary{padding:.55rem .7rem}.field-with-scan{display:grid;grid-template-columns:1fr auto;gap:.45rem}.scan-field{padding:.7rem .8rem;background:var(--mint);color:#062b22}.file-action{display:inline-flex!important;width:max-content;background:var(--navy);color:#fff!important;border-radius:9px;padding:.65rem .8rem;margin:.35rem 0 0;cursor:pointer}.file-action input{display:none}.secondary-file{background:#fff;color:var(--navy)!important;border:1px solid var(--line)}.scanner-frame{aspect-ratio:16/9}.scanner-frame:after{inset:38% 5%}.asset-tools{display:grid;grid-template-columns:2fr 1fr;gap:.7rem}.export-info{color:var(--muted);font-size:.82rem}.project-groups{display:grid;gap:1rem;margin-top:1rem}.asset-group{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.asset-group>header{display:flex;justify-content:space-between;gap:1rem;padding:1rem;background:var(--navy);color:#fff}.asset-group>header div{display:grid;gap:.2rem}.asset-group>header div:last-child{text-align:right}.asset-group>header small,.asset-group>header span{color:#b8c8d2;font-size:.75rem}.project-export-actions{display:flex;justify-content:flex-end;gap:.6rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}.location-assets{border-bottom:1px solid var(--line)}.location-assets:last-child{border-bottom:0}.location-assets summary{display:flex;justify-content:space-between;gap:.8rem;padding:.9rem 1rem;cursor:pointer;font-weight:700}.location-assets .asset-list{padding:0 1rem 1rem;margin-top:0}@media(max-width:540px){.capture-selectors,.asset-tools{grid-template-columns:1fr}.capture-context{align-items:flex-start;flex-direction:column}.capture-context>div:last-child{justify-items:start}.location-row{align-items:flex-start;flex-direction:column}.location-row button{width:100%}.asset-group>header{flex-direction:column}.asset-group>header div:last-child{text-align:left}.project-export-actions button{flex:1}}.profile-summary{display:grid;text-align:right;font-size:.78rem}.profile-summary small{color:#9fb1bd}.side-nav{display:none}.mobile-subnav{display:flex;overflow-x:auto;gap:.45rem;margin:-.2rem 0 1rem;padding-bottom:.25rem;scrollbar-width:none}.mobile-subnav a{white-space:nowrap;text-decoration:none;color:var(--muted);background:#fff;border:1px solid var(--line);padding:.48rem .7rem;border-radius:99px;font-size:.72rem;font-weight:750}.mobile-subnav a.active{background:var(--navy);color:#fff}.page-title p,.dashboard-title p{margin:.35rem 0 0;color:var(--muted);font-size:.82rem}.dashboard-title{align-items:flex-end}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.metric-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;display:grid;gap:.3rem;min-height:128px;box-shadow:0 8px 28px #10283d0b}.metric-card small{color:var(--muted);font-size:.64rem;letter-spacing:.11em;font-weight:800}.metric-card strong{font-size:clamp(1.65rem,4vw,2.25rem);letter-spacing:-.04em}.metric-card span{color:var(--muted);font-size:.74rem}.metric-alert{border-color:#f4c7c3;background:snow}.metric-commercial{background:var(--navy);border-color:var(--navy);color:#fff}.metric-commercial small,.metric-commercial span{color:#b8c8d2}.dashboard-grid{display:grid;gap:1rem}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:0 8px 28px #10283d0a}.panel-heading,.form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.panel-heading h3,.form-heading h3{margin:.18rem 0}.panel-heading a{font-size:.75rem;font-weight:800;color:#087454}.project-summary-list,.attention-list,.commercial-mini{display:grid;margin-top:.7rem}.project-summary-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:.85rem 0;border-top:1px solid #edf1f2}.project-summary-list>article>div{display:grid;gap:.15rem}.project-summary-list span,.project-summary-list small,.attention-list span,.commercial-mini span{color:var(--muted);font-size:.73rem}.summary-numbers{text-align:center}.summary-numbers b{font-size:1.2rem}.state{display:inline-flex!important;width:max-content;border-radius:99px;padding:.3rem .55rem;font-size:.62rem!important;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.state-complete,.state-verified{background:#ddf7ed;color:#087454!important}.state-needs_review,.state-warning,.state-unverified{background:#fff1cc;color:#805b00!important}.state-critical,.state-missing{background:#fee4e2;color:#b42318!important}.attention-list article,.commercial-mini article{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid #edf1f2;padding:.75rem 0}.attention-list article>div,.commercial-mini article>div{display:grid;gap:.15rem}.attention-dot{width:9px;height:9px;border-radius:50%;background:#e0a800;flex:none}.attention-dot.critical{background:#d92d20}.quantity-note{padding:.85rem 1rem;border:1px dashed #b7c6cc;border-radius:12px;color:var(--muted);font-size:.78rem}.empty-state{color:var(--muted);font-size:.82rem;padding:.75rem 0}.commercial-form,.correction-form{margin-bottom:1rem;border-color:#91cdbb}.commercial-form .form-heading,.correction-form .form-heading{margin-bottom:1rem}.verification-check{display:flex;grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center;background:#edf9f5;border-radius:10px;padding:.75rem}.verification-check input{width:auto}.commercial-table{display:grid;gap:.65rem}.commercial-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(130px,.7fr) auto auto;align-items:center;gap:1rem;background:#fff;color:var(--navy);border:1px solid var(--line);text-align:left;border-radius:14px;padding:1rem}.commercial-row>div{display:grid;gap:.18rem}.commercial-row span,.commercial-row small{color:var(--muted);font-size:.74rem}.commercial-row .row-action{color:#087454;font-weight:800}.quality-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}.quality-summary article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;display:grid;gap:.2rem}.quality-summary article.critical{border-color:#f4c7c3}.quality-summary strong{font-size:1.7rem}.quality-summary span{color:var(--muted);font-size:.72rem}.quality-tools{display:grid;grid-template-columns:1fr 190px;gap:.7rem;margin-bottom:1rem}.issue-list{display:grid;gap:.65rem}.issue-list article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.9rem}.issue-list article>div{display:grid;gap:.15rem}.issue-list span,.issue-list small{color:var(--muted);font-size:.72rem}.issue-list a{color:#087454;font-size:.75rem;font-weight:800}.issue-icon{display:grid;place-items:center!important;width:30px;height:30px;border-radius:50%;background:#fff1cc;color:#805b00!important;font-weight:900}.issue-icon.critical{background:#fee4e2;color:#b42318!important}.quality-rules,.uat-explainer{margin-top:1rem}.quality-rules p,.uat-explainer p,.uat-explainer li{color:var(--muted);font-size:.82rem;line-height:1.55}.uat-explainer ol{padding-left:1.3rem}.asset-row-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:.35rem}.text-button{padding:.3rem .45rem;background:transparent;color:#087454;font-size:.7rem}.danger-text{color:#b42318}.danger-button{background:#fff;color:#b42318;border:1px solid #f4c7c3}.location-actions{display:flex!important;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.location-actions button{padding:.55rem .7rem;font-size:.72rem}.invite-grid{display:grid;grid-template-columns:minmax(0,1fr) 180px auto;gap:.6rem;align-items:center}.invite-grid input,.invite-grid select{margin:0}.asset-register-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:0 0 1rem}.asset-register-summary article{display:grid;gap:.2rem;padding:.85rem;background:#fff;border:1px solid var(--line);border-radius:13px}.asset-register-summary strong{font-size:1.45rem}.asset-register-summary span{color:var(--muted);font-size:.69rem}.asset-kind{display:inline-flex!important;align-items:center;padding:.26rem .45rem;border-radius:99px;font-size:.59rem!important;font-weight:750;white-space:nowrap}.asset-kind.serialized{background:#e7f7f1;color:#087454!important}.asset-kind.non-serialized{background:#fff1cc;color:#805b00!important}.asset-row>div:first-child small{color:var(--muted);font-size:.7rem}.correction-form .form-heading small{color:var(--muted)}@media(min-width:900px){.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr);grid-template-rows:auto 1fr;padding-bottom:0}.app-shell>header{grid-column:1/-1;padding:1rem 1.4rem}.app-shell>header h1{font-size:1.12rem}.side-nav{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:1.3rem;background:#fff;border-right:1px solid var(--line);padding:1.4rem 1rem;min-height:calc(100vh - 76px)}.nav-section{display:grid;gap:.25rem}.nav-section small{color:#91a0a9;font-size:.6rem;letter-spacing:.15em;font-weight:900;padding:.5rem .7rem}.nav-section a,.capture-shortcut{padding:.72rem .75rem;border-radius:9px;text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:750}.nav-section a.active{background:#e7f7f1;color:#087454}.capture-shortcut{margin-top:auto;background:var(--navy);color:#fff;text-align:center}.app-shell main{grid-column:2;grid-row:2;width:100%;max-width:1320px;margin:0;padding:2rem}.app-shell>nav,.mobile-subnav{display:none}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr)}.wide-panel{grid-row:span 2}.commercial-panel{grid-column:2}.profile-summary{margin-left:auto;margin-right:1rem}.project-summary-list>article{grid-template-columns:minmax(0,1fr) 70px 160px}}@media(max-width:650px){.profile-summary{display:none}.page-title{align-items:flex-start;gap:.7rem}.page-title h2{font-size:1.35rem}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:116px}.metric-commercial{grid-column:1/-1}.project-summary-list>article{grid-template-columns:1fr auto}.project-summary-list>article>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.commercial-row{grid-template-columns:1fr auto}.commercial-row>div:nth-child(2){text-align:right}.commercial-row .row-action{display:none}.quality-tools{grid-template-columns:1fr}.quality-summary article{padding:.8rem}.quality-summary strong{font-size:1.4rem}.issue-list article{grid-template-columns:auto 1fr}.issue-list article a{grid-column:2}.location-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr}.location-actions button{width:100%}.asset-row-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.invite-grid{grid-template-columns:1fr}.invite-grid button{width:100%}.asset-register-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.login .brand-logo{display:block;width:min(320px,72vw);height:auto;margin-bottom:.2rem}.dashboard-brand img{display:block;width:168px;height:72px;object-fit:contain;object-position:left center}.asset-row.review-target{border-color:var(--mint);box-shadow:0 0 0 3px #24b98b29;scroll-margin:1.5rem}@media(max-width:650px){.dashboard-brand img{width:134px;height:57px}}:root{--hub-surface: #f5f7f9;--hub-sidebar: #081827;--hub-sidebar-text: #c4d0d9;--hub-mint: #87dfb4}body{background:var(--hub-surface)}.app-shell>header{background:var(--hub-sidebar);border-bottom:1px solid #ffffff14}.dashboard-brand h1{color:#f5f8fa;font-weight:600}.profile-summary>span{font-weight:750}.page-title h2{letter-spacing:-.045em}.customer-assets-heading{margin-bottom:1.5rem}.filtered-export-actions{display:flex;flex-wrap:wrap;gap:.55rem}.asset-register-summary{gap:.9rem;margin-bottom:1.4rem}.asset-register-summary article{min-height:105px;align-content:center;gap:.35rem;padding:1rem 1.15rem;border-radius:12px;box-shadow:0 3px 15px #10283d08}.asset-register-summary strong{color:#19865d;font-size:1.85rem}.asset-register-summary span{font-size:.72rem}.asset-search-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin:1rem 0 .25rem}.asset-search-grid label{color:var(--navy);font-size:.74rem;font-weight:750}.asset-search-grid input{min-width:0;background:#fff}.asset-result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.25rem 0}.asset-result-toolbar>span{color:var(--muted);font-size:.76rem}.asset-result-toolbar label{display:flex;align-items:center;gap:.55rem;margin:0}.asset-result-toolbar select{width:auto;padding:.55rem .75rem}.export-info{color:var(--muted);font-size:.77rem;margin:.9rem 0 1.2rem}.project-groups{display:grid;gap:1rem}.asset-group{overflow:hidden;background:#fff;border:1px solid #dce5e9;border-radius:13px;box-shadow:0 4px 20px #10283d08}.asset-group>.customer-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.2rem .9rem;background:#fff;color:var(--navy)}.customer-group-header>div{display:grid;gap:.24rem}.customer-name-heading{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.customer-name-heading>strong{font-size:1.4rem;letter-spacing:-.035em}.customer-edit-button{padding:.38rem .55rem;border:1px solid #cde8db;border-radius:7px;white-space:nowrap}.customer-correction-form .form-heading small{display:block;margin-top:.25rem}.customer-group-header small{color:#000;font-size:.8rem;font-weight:550}.customer-group-count{padding:.4rem .65rem;border-radius:8px;background:#e4f6ec;color:#087454;font-size:.71rem;font-weight:700;white-space:nowrap}.project-export-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:0 1.2rem .8rem}.project-export-actions button{padding:.5rem .75rem;font-size:.72rem}.location-assets{margin:0 1.2rem .75rem;border:1px solid #e2e8eb;border-radius:9px}.location-assets>summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem .9rem;cursor:pointer;list-style:none}.location-assets>summary::-webkit-details-marker{display:none}.location-assets>summary>span{color:#000;font-size:.8rem;font-weight:720}.location-assets>summary>b{padding:.25rem .48rem;border-radius:99px;background:#e7f7f1;color:#087454;font-size:.64rem}.location-assets .asset-list{gap:0;margin:0;border-top:1px solid #e7ecef}.location-assets .asset-row{border:0;border-bottom:1px solid #edf1f2;border-radius:0;box-shadow:none}.location-assets .asset-row:last-child{border-bottom:0}.location-assets .asset-row.review-target{background:#effaf4;box-shadow:inset 3px 0 var(--mint)}.navigation-icon{width:18px;height:18px;flex:0 0 18px}@media(min-width:900px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.app-shell>header{padding:.65rem 1.4rem .8rem}.side-nav{gap:1.6rem;background:var(--hub-sidebar);border-right:1px solid #ffffff0d;padding:1.5rem .8rem}.nav-section{gap:.35rem}.nav-section small{color:#8094a3;padding:.55rem .75rem}.nav-section a{display:flex;align-items:center;gap:.75rem;min-height:45px;color:var(--hub-sidebar-text);font-size:.82rem}.nav-section a:hover{background:#ffffff0b}.nav-section a.active{background:var(--hub-mint);color:#08281b}.app-shell main{max-width:1480px;padding:2.1rem 2.5rem}}@media(max-width:1020px){.asset-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-search-grid label:last-child{grid-column:1 / -1}}@media(max-width:650px){.customer-assets-heading{display:grid}.asset-search-grid{grid-template-columns:1fr}.asset-search-grid label:last-child{grid-column:auto}.asset-result-toolbar{flex-wrap:wrap}.asset-group>.customer-group-header{flex-wrap:wrap}.customer-name-heading>strong{font-size:1.2rem}.location-assets{margin-left:.75rem;margin-right:.75rem}.location-assets>summary{flex-wrap:wrap}}
