:root{font:15px/1.55 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#233047;background:#f6f8fc;--line:#e5eaf2;--muted:#68778c;--accent:#365de6;--nav:#142444}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #dce3ee;border-radius:11px;background:#fff;color:#263755;padding:10px 17px;transition:background .12s,border-color .12s,transform .12s}button:hover{background:#eff3ff;border-color:#c9d4f0}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9bb3ff;outline-offset:2px}button:disabled{opacity:.55;cursor:wait}.shell{display:flex;min-height:100vh}aside{background:var(--nav);width:248px;flex:none;padding:30px 18px;display:flex;flex-direction:column;color:#dce7ff}main{min-width:0;width:100%;max-width:1360px;padding:42px clamp(22px,4vw,64px) 72px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:1px;line-height:1.18;font-size:16px;margin:0 12px 47px;color:#fff}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#3156cb;color:#dbe5ff;font-size:26px}.brand strong{letter-spacing:2px}.brand small{display:block;font-size:10px;font-weight:450;color:#a4b7df;letter-spacing:.2px;margin-top:7px}nav{display:grid;gap:5px}nav button{display:flex;align-items:center;text-align:left;width:100%;border:0;border-radius:10px;background:transparent;color:#b9c8e8;padding:11px 15px;font-weight:570}nav button:hover,nav button.selected{background:#263b67;color:#fff}nav button.selected{box-shadow:inset 3px 0 #80a3ff}.foot{margin-top:auto;font-size:12px;color:#8497be;padding:20px 10px 0}header{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:26px}h1{font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:-.7px;margin:9px 0 7px}h2{font-size:19px;letter-spacing:-.3px;margin:0 0 16px}.eyebrow,.kicker{font-size:11px;letter-spacing:1.6px;font-weight:800;color:#5b76bd}.page-hint{color:var(--muted);margin:0}#message{min-height:1px;color:#91551b;background:transparent;margin-bottom:10px;font-weight:600}#message:not(:empty){background:#fff5e6;border:1px solid #f2daba;border-radius:10px;padding:12px 16px}.card,.auth-card{border:1px solid var(--line);box-shadow:0 10px 28px rgba(32,49,83,.035);background:#fff;border-radius:17px;padding:clamp(19px,2.7vw,30px);margin-bottom:18px}.card h2{margin-bottom:14px}.auth-card{max-width:515px;margin-top:20px}.auth-card h2{font-size:27px;margin:10px 0 4px}.auth-card .fine{font-size:12px;margin:18px 0 0}.muted{color:var(--muted)}.welcome-card{background:linear-gradient(115deg,#fff,#eef3ff);border-color:#dbe6ff}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:650}.primary:hover,button.primary:hover{background:#2448ca;border-color:#2448ca}.full{width:100%;margin-top:8px}.danger{color:#a43c48;border-color:#f1c8ce}label{display:block;color:#41516a;font-size:13px;font-weight:650;margin:13px 0}input,select{display:block;width:100%;margin:6px 0 14px;background:#fff;color:#243249;border:1px solid #ced7e6;border-radius:10px;padding:11px 12px;min-height:44px}input[type=checkbox]{display:inline-block;width:auto;min-height:0;margin:0 9px 0 0}input[type=file]{padding:10px}details{margin:18px 0}summary{cursor:pointer;color:#4865a2;font-weight:650}code{overflow-wrap:anywhere}#mfaSecret{display:block;padding:13px;background:#f1f5fc;border-radius:8px;user-select:all}#mfaQr{margin:16px 0}#mfaQr img{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;max-width:100%;height:auto}#recoveryCodes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none;padding:0}#recoveryCodes li{font-family:ui-monospace,monospace;background:#f1f5fc;border-radius:8px;padding:7px;text-align:center;font-size:13px}.status-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:13px 0}.badge{font-size:12px;padding:3px 10px;border-radius:999px;font-weight:650}.badge.ok{color:#147351;background:#dff7e9}.badge.warn{color:#97421f;background:#fff0e1}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;font-weight:700;color:#66758c;background:#f8faff}th,td{padding:12px 10px;border-bottom:1px solid var(--line)}td{overflow-wrap:anywhere}.table-scroll{overflow-x:auto}#documentList td:not(.document-name){white-space:nowrap}.document-name{overflow-wrap:anywhere;min-width:150px;max-width:420px}#documentList[aria-busy=true]{opacity:.65}#documentProject,#documentUpload{max-width:600px}[hidden]{display:none!important}@media(max-width:800px){.shell{display:block}aside{width:auto;padding:12px 15px 9px}.brand{font-size:13px;margin:0 0 12px;gap:9px}.brand-mark{height:33px;width:33px;border-radius:10px;font-size:19px}.brand small,.foot{display:none}nav{display:flex;overflow-x:auto;gap:5px;scrollbar-width:thin;padding-bottom:3px}nav button{width:auto;flex:none;font-size:13px;padding:9px 12px}nav button.selected{box-shadow:inset 0 -3px #80a3ff}main{padding:23px 15px 55px}header{gap:10px}#logout{flex:none}.card,.auth-card{padding:20px}table{font-size:13px}#documentList .table-scroll{overflow:visible}#documentList table,#documentList tbody{display:block}#documentList thead{display:none}#documentList tr{display:block;border-top:1px solid var(--line);padding:12px 0}#documentList td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border:0;white-space:normal!important;max-width:none;min-width:0}#documentList td::before{content:attr(data-label);color:var(--muted);flex-shrink:0}#documentList td.document-name{display:block}#documentList td.document-name::before{display:block;margin-bottom:6px}}@media(max-width:400px){#recoveryCodes ul{grid-template-columns:1fr}header h1{font-size:24px}}

/* Single-use privileged-action confirmation: native accessible modal. */
.confirm-dialog {border:1px solid #dce5ef; border-radius:18px; background:#fff; color:#172b46; width:min(420px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:26px; box-shadow:0 25px 90px #15263a30;}
.confirm-dialog::backdrop {background:rgba(13,31,52,.54); backdrop-filter:blur(3px);}
.confirm-dialog h2 {margin-top:0;}
.confirm-dialog .action-row {margin-top:20px; display:flex; justify-content:flex-end; flex-wrap:wrap;}
.confirm-dialog label {display:block; margin-top:14px;}
.confirm-dialog input {width:100%; box-sizing:border-box;}

/* Stage-0 accessibility and responsive refinements. */
.skip-link{position:absolute;z-index:100;top:-90px;left:12px;padding:10px 16px;background:#fff;border:2px solid var(--accent);border-radius:10px;color:#172b46}
.skip-link:focus{top:12px}
.card{min-width:0}
.card>.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.card>.table-scroll table{min-width:580px}
.card>table{display:block;overflow-x:auto;max-width:100%;white-space:nowrap}
button:active:not(:disabled){transform:translateY(1px)}
nav button[aria-current="page"]{font-weight:750}
@media(max-width:800px){.card>.table-scroll table{min-width:550px}header{align-items:center}.page-hint{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Increment 23 — calm, dense SaaS visual language inspired by project workspaces. */
:root{color-scheme:light;--nav:#14243d;--accent:#3366df;--line:#e7edf5;--muted:#718098;--surface:#fff;--ink:#18283f;--canvas:#f4f7fb;font-size:14px;line-height:1.55}
body{background:var(--canvas);color:var(--ink)}.shell{min-height:100dvh}
aside{width:248px;background:linear-gradient(180deg,#162842 0%,#12233d 100%);padding:24px 13px 18px;position:sticky;top:0;height:100dvh;box-shadow:2px 0 20px #13264212;z-index:10}
.brand{margin:1px 11px 34px;gap:10px;font-size:14px;letter-spacing:.4px}.brand-mark{background:linear-gradient(135deg,#588af3,#2853c6);border-radius:13px;width:43px;height:43px;color:white;font-size:22px;box-shadow:0 6px 16px #091d4d44}.brand small{letter-spacing:0;font-size:10px}
.nav-caption{display:block;padding:9px 15px 7px;color:#8296b4;font-size:10px;font-weight:750;letter-spacing:1.4px}.nav-caption-secondary{margin-top:24px}nav{display:flex;flex-direction:column;gap:3px}nav button{font-size:13px;gap:12px;padding:10px 13px;border-radius:9px;color:#b4c3da;font-weight:550}nav button:hover{background:#ffffff12;border-color:transparent;color:white}nav button.selected{background:#3864c6;color:white;box-shadow:0 4px 11px #0e265b25}nav button.selected::after{content:'•';margin-left:auto;color:#cfe0ff}.nav-icon{width:20px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;color:inherit;font-weight:400}.sidebar-bottom{margin-top:auto;padding:15px 11px 0;border-top:1px solid #ffffff14;font-size:11px;color:#9fb2d1;display:flex;align-items:center;gap:8px}.online-dot{width:8px;height:8px;border-radius:50%;background:#5ecfab;box-shadow:0 0 0 3px #5ecfab20}
main{padding:0;max-width:none}.topbar{height:68px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3.1vw,48px);gap:14px}.topbar-identity{display:flex;gap:10px;align-items:center;color:#7b89a0;font-size:12px}.topbar-identity strong{color:#263a5b;margin-left:4px}.workspace-dot{border-radius:9px;color:#fff;background:#436fe3;padding:5px 9px;font-size:13px}.topbar-tools{display:flex;align-items:center;gap:12px}.environment-tag{background:#eff4fe;color:#4770af;border-radius:7px;padding:6px 10px;font-size:10px;letter-spacing:.6px;font-weight:750}.logout-button{border:0;background:transparent;color:#61748f;font-weight:650}.page-body{max-width:1390px;padding:30px clamp(20px,3.1vw,48px) 76px;margin:0 auto}.page-header{margin-bottom:25px;align-items:center}.page-header h1{font-size:clamp(26px,2.6vw,34px);margin:5px 0 5px;font-weight:760;letter-spacing:-1.1px}.eyebrow{font-size:10px;letter-spacing:1.2px;color:#8492aa}.page-hint{font-size:13px}.header-actions{display:flex;gap:9px}.card,.auth-card{border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 18px #1e3b6708;background:var(--surface)}.card{padding:23px;margin-bottom:17px}.card h2{font-size:16px;color:#213553;margin-bottom:13px}.auth-card{margin:4vh auto 0;max-width:475px;padding:32px 34px;box-shadow:0 16px 46px #1234660f}.auth-card h2{font-size:28px}.welcome-card{background:linear-gradient(110deg,#fff 10%,#eaf2ff 100%);border:1px solid #dae6fc;padding:30px 34px}.welcome-card h2{font-size:20px}.action-row{gap:9px}.primary,button.primary{background:#3464d8;border-color:#3464d8;box-shadow:0 4px 9px #3464d826}.primary:hover,button.primary:hover{background:#2855c6;transform:translateY(-1px)}button{border-radius:9px;min-height:39px;padding:8px 14px;font-weight:550}input,select{border-radius:9px;background:#fff;border-color:#dce4ef}input:focus,select:focus{border-color:#7398e9}table{font-size:13px}th{background:#f7f9fc;color:#72809a;text-transform:none;font-size:11px;letter-spacing:.2px}th,td{padding:12px 13px}tbody tr:hover{background:#f9fbfe}.table-scroll{border:1px solid var(--line);border-radius:10px}.table-scroll table th:first-child{border-radius:10px 0 0 0}.table-scroll table th:last-child{border-radius:0 10px 0 0}
.dashboard-heading{display:flex;gap:12px;align-items:center;margin-bottom:16px;color:#718098;font-size:12px}.dashboard-heading .dash-line{height:1px;background:#e6edf6;flex:1}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{border:1px solid #e5edf8;border-radius:13px;background:#fff;padding:20px 22px;box-shadow:0 3px 14px #254e7a08}.metric-label{display:block;color:#71839b;font-size:12px;margin-bottom:7px}.metric-number{display:block;font-size:28px;font-weight:780;line-height:1.2;letter-spacing:-1px;color:#213856}.metric-detail{display:block;font-size:11px;color:#7e8fa6;margin-top:9px}.metric-card:before{content:'';display:block;height:3px;border-radius:99px;background:#6b91e7;width:30px;margin-bottom:16px}.metric-card:nth-child(2):before{background:#52be9f}.metric-card:nth-child(3):before{background:#eeb56c}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:16px;align-items:start}.dashboard-columns .card{height:100%}.quick-link{width:100%;display:flex;align-items:center;justify-content:space-between;margin:8px 0;text-align:left}.quick-link::after{content:'→';font-size:19px;color:#7691bc}.empty-hint{border:1px dashed #d5e0f1;border-radius:10px;padding:19px 20px;background:#fbfcff;color:#74849b}.stacked-items{display:grid;gap:10px}.project-tile{border:1px solid #e5ecf6;border-radius:10px;padding:13px 15px;background:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center}.project-tile .project-id{font-size:11px;color:#8996a9}.section-caption{font-size:11px;font-weight:700;letter-spacing:.6px;color:#8694a8;text-transform:uppercase;margin:14px 0 9px}.kicker{color:#5d7fbd}.badge.ok{background:#e3f8ee;color:#187d58}.badge.warn{background:#fff4e2;color:#a56d21}
@media(max-width:900px){aside{width:210px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.topbar{padding:0 20px}}
@media(max-width:800px){.shell{display:block}aside{position:static;height:auto;width:100%;padding:12px 15px 6px;box-shadow:none}.brand{margin:0;line-height:1.15}.brand small,.sidebar-bottom,.nav-caption{display:none}.brand-mark{width:36px;height:36px}nav{display:flex;flex-direction:row;overflow-x:auto;gap:5px;padding:12px 0 6px}nav button{white-space:nowrap;padding:9px 12px}nav button.selected{box-shadow:none}nav button.selected::after{display:none}.nav-icon{font-size:15px;width:14px}.page-body{padding:22px 16px 54px}.topbar{height:52px;padding:0 16px}.environment-tag{display:none}.topbar-identity{font-size:11px}.page-header{flex-wrap:wrap;margin-bottom:20px}.page-header h1{font-size:27px}.card{padding:18px}.welcome-card{padding:23px}.auth-card{margin:18px auto}.metric-grid{gap:10px}.metric-card{padding:15px}.metric-number{font-size:25px}.metric-detail{font-size:10px}#documentList .table-scroll{border:0}.header-actions button{font-size:12px}}
@media(max-width:480px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card:nth-child(3){grid-column:1/-1}.topbar-identity strong{display:none}.page-header .header-actions{width:100%}.page-header .header-actions button{width:100%}.auth-card{padding:23px}.card h2{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Increment 24: production-oriented object cards, focused team lists and responsive actions. */
.workspace-card{padding:24px}.list-toolbar{display:flex;gap:11px;align-items:center;margin:0 0 18px;flex-wrap:wrap}.list-toolbar input,.list-toolbar select{flex:1 1 220px;margin:0;max-width:440px}.list-toolbar select{flex:0 1 205px}.list-count{color:var(--muted);font-size:12px;margin-left:auto}.object-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.object-item{display:flex;flex-direction:column;align-items:flex-start;min-height:145px;border:1px solid #e2eaf6;border-radius:13px;background:#fff;text-align:left;padding:17px 19px;gap:12px;box-shadow:0 3px 11px #172d4c08}.object-item:hover,.object-item:focus-visible{border-color:#96b4ef;background:#f8fbff}.object-item strong{font-size:16px;color:#263955;line-height:1.3}.object-code{font-size:10px;letter-spacing:.8px;color:#7b91ae;font-weight:750}.object-action{margin-top:auto;color:#3563bb;font-size:12px;font-weight:650}.project-detail{border-left:3px solid #4d7de4}.form-card{max-width:720px}.form-card form{max-width:510px}.team-list{display:grid}.team-row{display:flex;align-items:center;gap:13px;min-height:76px;border-top:1px solid var(--line);padding:13px 3px}.team-row:first-child{border-top:0}.avatar{display:grid;place-items:center;flex:none;width:39px;height:39px;border-radius:12px;background:#eaf1ff;color:#3e62aa;font-weight:800}.team-identity{display:flex;flex-direction:column;min-width:0;flex:1}.team-identity strong{overflow-wrap:anywhere;font-size:14px}.team-identity small{color:var(--muted)}.team-row .badge{white-space:nowrap}.team-row .danger{padding:7px 10px;font-size:12px}.list-toolbar input[type=search]{padding-left:15px}
@media(max-width:560px){.workspace-card{padding:17px}.list-toolbar{align-items:stretch}.list-toolbar input,.list-toolbar select{flex:1 1 100%;max-width:none}.list-count{margin-left:0}.object-grid{grid-template-columns:1fr}.object-item{min-height:115px}.team-row{flex-wrap:wrap;gap:9px}.team-identity{flex-basis:calc(100% - 55px)}.team-row .badge{margin-left:48px}.team-row .danger{margin-left:auto}}

/* Increment 25: document library with responsive, searchable file cards. */
.document-workspace{min-height:310px}.doc-intro{margin-top:-3px;margin-bottom:22px;font-size:13px}.document-toolbar{display:grid;grid-template-columns:minmax(190px,1.3fr) minmax(190px,1fr) minmax(130px,.6fr);gap:12px;align-items:end;margin-bottom:6px}.document-toolbar label{margin:0;font-size:12px}.document-toolbar select,.document-toolbar input{margin:7px 0 0;min-height:43px}.document-results{font-size:12px;margin:15px 0}.document-grid{display:grid;gap:9px}.document-item{display:flex;align-items:center;gap:15px;padding:15px;border:1px solid #e6edf7;border-radius:12px;background:#fff;transition:border-color .15s,background .15s}.document-item:hover{border-color:#bbceef;background:#fbfcff}.document-icon{display:grid;place-items:center;width:46px;height:48px;border-radius:9px;flex:none;font-weight:800;font-size:11px;letter-spacing:.4px}.document-icon.is-pdf{background:#fff0ed;color:#bd4938}.document-icon.is-image{background:#e9f4ff;color:#2b77b1}.document-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.document-filename{font-size:13px;overflow-wrap:anywhere;line-height:1.35}.document-meta{font-size:11px;color:#7889a1}.document-download{flex:none;border-color:#d6e3f7;color:#3562b5;font-size:12px}.document-upload-card{max-width:none}.document-upload-card form{display:flex;flex-wrap:wrap;align-items:end;column-gap:20px}.document-upload-card label{flex:1 1 280px;margin:3px 0}.document-upload-card input{margin:7px 0 0}.document-upload-card .muted{width:100%;margin:5px 0 9px;font-size:12px}.document-upload-card button{margin-bottom:0}.document-feedback{min-height:18px}.document-upload-hint{order:3}.document-upload-card .document-feedback{order:4}
@media(max-width:900px){.document-toolbar{grid-template-columns:1fr 1fr}.document-project-label{grid-column:1/-1}}
@media(max-width:560px){.document-toolbar{grid-template-columns:1fr}.document-project-label{grid-column:auto}.document-item{flex-wrap:wrap;padding:13px;gap:10px}.document-icon{width:40px;height:42px}.document-info{flex-basis:calc(100% - 58px)}.document-download{width:100%;margin-top:3px}.document-upload-card button{width:100%}}

/* Increment 26: compact, approachable project permissions and invitations. */
.access-project-label{display:flex;flex-direction:column;flex:1 1 270px;margin:0;font-size:12px}.access-project-label select{margin:7px 0 0;width:100%;min-height:44px}.access-list,.invite-list{display:grid;gap:9px}.access-row,.invite-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid var(--line);padding:14px 16px;border-radius:12px;background:#fff}.access-identity,.invite-identity{flex:1 1 140px;min-width:0;display:grid;gap:4px}.access-identity small,.invite-identity small{color:var(--muted)}.access-flags{display:flex;flex:2 1 260px;flex-wrap:wrap;gap:5px}.permission-chip{padding:4px 9px;border:1px solid #d9e9fc;border-radius:99px;background:#f3f8ff;color:#4066a3;font-size:11px}.access-actions{display:flex;gap:8px}.access-actions button,.invite-row button{padding:6px 11px;font-size:12px}.permissions-grid{border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.permissions-grid legend{font-weight:650;padding:0 5px}.permission-toggle{display:flex;align-items:center;gap:9px;margin:0!important;font-weight:500}.permission-toggle input{width:auto!important;margin:0;accent-color:#3464d8}.access-editor{max-width:none}.access-editor form{max-width:700px}.invite-row .badge{white-space:nowrap}.invitation-secret{border-left:4px solid #2a9b77}.secret-code{display:block;overflow-wrap:anywhere;background:#f1f5fb;padding:14px;border-radius:9px;margin-bottom:12px;user-select:all}
@media(max-width:560px){.access-row,.invite-row{align-items:flex-start}.access-flags{flex-basis:100%}.access-actions{width:100%}.access-actions button{flex:1}.invite-row .badge{margin-left:auto}.invite-row button{width:100%}.permissions-grid{grid-template-columns:1fr}}

/* Increment 27: honest operational status, calm visual hierarchy. */
.system-workspace{max-width:900px}.system-toolbar{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:18px 0}.system-timestamp{font-size:12px;color:var(--muted)}.system-checks{display:grid;gap:10px}.system-check{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}.system-check>div{display:grid;gap:5px}.system-check small{color:var(--muted)}.badge.neutral{background:#edf2f9;color:#62738d}.badge.error{background:#fee8e8;color:#a72e37}.system-note{max-width:900px}.system-note ul{padding-left:22px;line-height:1.9;color:var(--muted)}
@media(max-width:540px){.system-check{align-items:flex-start;flex-direction:column}.system-toolbar .primary{width:100%}}

/* Stage 1: compact location hierarchy on each project card. */
.location-workspace{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.location-workspace h3{margin:0 0 8px}.location-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;align-items:end}.location-form label{min-width:0;margin:0}.location-form input,.location-form select{width:100%;box-sizing:border-box;margin-top:7px}.location-form button{align-self:end}.location-list{display:grid;gap:7px}.location-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:9px;padding:10px 13px;overflow-wrap:anywhere}.location-row>span{min-width:0}.location-row button{flex:none;font-size:12px}@media(max-width:600px){.location-form{grid-template-columns:1fr}.location-row{flex-wrap:wrap}.location-row button{margin-left:auto}}

.equipment-workspace{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.equipment-workspace h3{margin:0 0 8px}.equipment-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 15px;border:1px solid var(--line);border-radius:12px}.equipment-row>div{min-width:0}.equipment-row p{margin:5px 0 0;font-size:13px}.equipment-row button{flex-shrink:0}@media(max-width:600px){.equipment-row{align-items:stretch;flex-direction:column}.equipment-row button{width:100%}}

/* Stage 1: convenient field photo evidence on small screens */
.task-photos{margin-top:10px;padding:10px 0;border-top:1px solid var(--border,#e2e8f0)}
.task-photo-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.task-photo-form input[type=file]{max-width:260px;min-width:0}
.task-photo-form input[type=text]{flex:1 1 170px;min-width:0}
.photo-entry{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:7px 0}
@media(max-width:600px){.task-photo-form>*{width:100%;max-width:100%!important}.photo-entry>*{max-width:100%;overflow-wrap:anywhere}}

/* Stage 1: phone-first installer workspace. */
.field-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(165px,1fr);gap:12px;margin:16px 0}
.field-toolbar input,.field-toolbar select{margin:0;min-width:0}.field-task-list{display:grid;gap:12px;margin-top:14px}
.field-task{border:1px solid var(--line);border-radius:14px;padding:19px;background:#fff;box-shadow:0 3px 12px #23365707}
.field-task-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.field-task-head h3{font-size:18px;margin:3px 0 5px;line-height:1.4}
.field-kicker{font-size:12px;color:#627794;font-weight:650}.field-state{border-radius:20px;padding:5px 10px;white-space:nowrap;font-size:12px;font-weight:700;background:#edf2ff;color:#315c9d}
.state-approved{color:#08735b;background:#dff8ee}.state-rework{background:#fff0db;color:#98510b}.state-submitted{background:#e6ecff;color:#4661a4}
.field-description{white-space:pre-wrap;overflow-wrap:anywhere;color:#35465d;margin:10px 0}.field-warning{background:#fff4df;color:#865016;padding:11px;border-radius:9px}
.field-actions{display:flex;gap:9px;margin:12px 0}.field-actions button{min-height:46px}.field-task details{border-top:1px solid var(--line);padding-top:9px;margin:15px 0 0}.field-details{padding-top:10px}
.field-photo{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.field-photo span{min-width:0}
.field-photo-form{display:grid;grid-template-columns:1fr;gap:6px;margin-top:12px}.field-photo-form input{margin:0;min-width:0}.field-events{margin-top:14px}
@media(max-width:640px){.field-toolbar{grid-template-columns:1fr}.field-task{padding:15px}.field-task-head{flex-direction:column;gap:8px}.field-actions button{width:100%;min-height:52px}.field-photo{flex-wrap:wrap}.field-photo button{width:100%}}

/* Stage 1 / increment 7: readable location and installation references for field workers. */
.field-location{background:#f4f8fe;border:1px solid #dfebfb;border-radius:11px;padding:11px 14px;margin:11px 0;color:#324760}
.field-location p{margin:5px 0;line-height:1.5;overflow-wrap:anywhere}
.field-location strong{color:#193b69;font-weight:700}
@media(max-width:640px){.field-location{padding:11px 12px}.field-location p{font-size:13px}}

/* Engineer workboard: readable filters on desk and field devices. */
.board-filter{display:flex;flex-direction:column;gap:6px;min-width:145px;flex:1;font-size:13px;font-weight:600}.board-filter select{width:100%;min-height:42px}.board-filter select:focus-visible{outline:3px solid #60a5fa;outline-offset:2px}

/* Stage 1: engineer room-by-system inventory */
.room-readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:14px;margin:16px 0}
.room-readiness-card{min-width:0;padding:18px;border:1px solid var(--border,#dce4ed);border-radius:16px;background:var(--surface,#fff);box-shadow:0 6px 18px rgba(12,36,65,.035)}
.room-readiness-card h4{margin:0 0 7px;font-size:1.05rem;overflow-wrap:anywhere}
.room-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.room-summary>div{padding:11px;border-radius:10px;background:#f2f6fb;display:flex;flex-direction:column;gap:4px}
.room-summary strong{font-size:1.22rem;color:#183e62}.room-summary span{font-size:.78rem;color:#52677b}
.room-readiness-card details{border-top:1px solid #e6edf5;padding-top:12px}
.room-readiness-card summary{cursor:pointer;color:#17629c;font-weight:600}
.room-contents{overflow-wrap:anywhere}.room-contents h5{margin:16px 0 7px;font-size:.9rem}.room-contents p{margin:6px 0;font-size:.87rem}
@media(max-width:600px){.room-readiness-card{padding:13px}.room-summary{gap:6px}.room-summary>div{padding:9px}}

/* Explicit equipment confirmations: desktop strip, stacked mobile cards. */
.ledger-group {margin-top:24px}
.ledger-equipment {border:1px solid #dce5ed;border-radius:14px;padding:18px;margin:12px 0;background:#fff;min-width:0}
.ledger-equipment h5 {font-size:16px;margin:0 0 8px;overflow-wrap:anywhere}
.ledger-stages {list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ledger-stages li {border-radius:9px;padding:12px;background:#f1f4f8;display:flex;flex-direction:column;gap:7px;font-size:12px}
.ledger-stages .confirmed {background:#e5f5ee;color:#176248;border:1px solid #a2d4be}
.ledger-stages .unconfirmed {color:#526174;border:1px solid #dce5ed}
.ledger-confirmation {display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,2fr);gap:12px;margin-top:16px}
.ledger-confirmation label {display:flex;flex-direction:column;gap:6px;min-width:0}
.ledger-confirmation select,.ledger-confirmation textarea {width:100%;max-width:100%;box-sizing:border-box;font:inherit;border:1px solid #ccd8e3;border-radius:8px;padding:9px;background:white}
.ledger-equipment details p {overflow-wrap:anywhere}
.ledger-confirmation p {grid-column:1/-1}
@media(max-width:760px){.ledger-stages{grid-template-columns:1fr}.ledger-stages li{flex-direction:row;justify-content:space-between;gap:12px}.ledger-confirmation{grid-template-columns:1fr}.ledger-equipment{padding:12px}.readiness-ledger .list-toolbar{align-items:stretch;flex-direction:column}}

.equipment-issue-section{margin-top:24px;border-top:1px solid #dce5ed;padding-top:16px}
.equipment-issue-section h6{font-size:15px;margin:0 0 12px}
.equipment-issue-card{border:1px solid #edcf99;border-left:4px solid #e3aa49;border-radius:10px;background:#fffdf8;padding:14px;margin:12px 0;overflow-wrap:anywhere}
.issue-blocked{background:#fff3df;color:#77500c;border-radius:8px;padding:12px}
.issue-create,.issue-transition{display:grid;gap:12px;margin-top:12px}
.issue-create label,.issue-transition label{display:flex;flex-direction:column;gap:6px;min-width:0}
.issue-create textarea,.issue-transition textarea,.issue-create select,.issue-transition select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;padding:10px;border:1px solid #ccd8e3;border-radius:8px;background:white}
.issue-description{white-space:pre-wrap}
@media(max-width:760px){.equipment-issue-card{padding:10px}.equipment-issue-inbox .list-toolbar{flex-direction:column;align-items:stretch}.issue-create button,.issue-transition button{white-space:normal}}

.damage-baseline,.damage-incident{border:1px solid #d8e3ef;border-radius:12px;padding:18px;margin:14px 0;background:#fff;overflow-wrap:anywhere}
.damage-incident{border-left:4px solid #db9954;background:#fffdfa}
.damage-form{display:grid;gap:12px;margin:14px 0}
.damage-form label{display:flex;flex-direction:column;gap:6px;min-width:0}
.damage-form textarea,.damage-form input,.damage-form select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;padding:10px;border:1px solid #ccd8e3;border-radius:8px;background:#fff}
.damage-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.damage-photo{margin:0;padding:10px;border:1px solid #dfe7ef;border-radius:10px;min-width:0}
.damage-photo figcaption{font-size:13px;font-weight:600;margin-bottom:10px}
.damage-photo img{display:block;width:100%;max-height:300px;object-fit:contain;margin-top:12px;background:#edf3f8}
.evidence-hash{font-family:monospace;font-size:11px;overflow-wrap:anywhere;color:#617389}
.damage-baselines>details,.damage-create-details{margin:14px 0;border:1px dashed #b9cce0;padding:14px;border-radius:10px}
.damage-workspace h4{font-size:17px;margin-top:24px}
@media(max-width:760px){.damage-compare-grid{grid-template-columns:1fr}.damage-baseline,.damage-incident{padding:12px}.damage-workspace .list-toolbar{flex-direction:column;align-items:stretch}.damage-workspace button{white-space:normal}.damage-position{width:100%;max-width:100%}}

.account-settings,.account-project-access,.account-create{display:grid;gap:14px;max-width:680px}.account-editor input[type=checkbox]{width:auto;margin-inline:12px}.account-editor h3{margin-top:28px}.external-object{display:block;margin:12px 0;max-width:100%;overflow-wrap:anywhere}.account-editor{scroll-margin-top:24px}
