:root{--primary:#5537a5;--primary-dark:#402581;--soft:#f1edfa;--ink:#242039;--muted:#706b80;--border:#e5e2ec;--bg:#f6f5f9;--danger:#a72d3e;--danger-soft:#fff0f2;--success:#267451;--success-soft:#edf8f1;--amber:#885b18;--amber-soft:#fff5e3;--shadow:0 8px 32px #30224908;--radius:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b09ade;outline-offset:3px}[hidden]{display:none!important}.environment{background:#e8e0f8;color:#452783;text-align:center;padding:7px 16px;font-size:.72rem;font-weight:700;letter-spacing:.025em}.environment.production{background:#ececf0;color:#68626f}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;gap:12px;align-items:center}.mark{height:40px;width:40px;display:grid;place-items:center;background:var(--primary);border-radius:12px;color:white;font-size:1.4rem;font-weight:800}.brand strong{display:block;font-size:1rem;letter-spacing:.1em}.brand small{display:block;color:var(--muted);font-size:.74rem;margin-top:2px}.connection{padding:12px 24px;background:var(--amber-soft);color:var(--amber);font-size:.85rem}.account-menu{position:relative}.account-menu summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;min-height:48px}.account-menu summary::-webkit-details-marker{display:none}.avatar{height:36px;width:36px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--primary);font-size:.76rem;font-weight:800}.account-name{font-size:.8rem;max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account-popover{position:absolute;right:0;top:56px;background:white;border:1px solid var(--border);box-shadow:0 12px 40px #24203920;border-radius:14px;padding:16px;z-index:50;width:248px}.account-popover strong,.account-popover small{display:block;margin-bottom:8px}.account-popover small{color:var(--muted)}main{max-width:1160px;margin:auto;padding:28px 24px 120px}h1,h2,h3,p{margin-top:0}h1{font-size:1.75rem;letter-spacing:-.045em;margin-bottom:8px;line-height:1.2}h2{font-size:1.15rem;letter-spacing:-.025em;margin-bottom:10px}h3{font-size:.95rem;margin-bottom:10px}p{line-height:1.5}.muted{color:var(--muted)}.small{font-size:.78rem}.eyebrow{color:var(--primary);font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.heading p{font-size:.86rem;margin-bottom:0;color:var(--muted)}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.button{min-height:48px;border:1px solid transparent;border-radius:11px;background:var(--primary);color:#fff;font-weight:650;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.85rem}.button:hover{background:var(--primary-dark)}.button.secondary{background:white;border-color:var(--border);color:var(--ink)}.button.secondary:hover{background:var(--bg)}.button.ghost{background:transparent;color:var(--primary)}.button.ghost:hover{background:var(--soft)}.button.danger{background:var(--danger)}.button.full{width:100%}.button.compact{padding:10px 12px}.icon{height:19px;width:19px;flex:0 0 auto}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.metric{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:18px}.metric strong{display:block;font-size:1.5rem;letter-spacing:-.04em;margin:4px 0}.metric span{color:var(--muted);font-size:.75rem}.metric.warning{background:var(--amber-soft);border-color:#edddbd}.metric.danger{background:var(--danger-soft);border-color:#efcfda}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px}.search{position:relative;flex:1}.search input{padding-left:42px}.search svg{position:absolute;top:15px;left:15px;color:var(--muted)}input,select,textarea{width:100%;min-height:48px;padding:12px 14px;color:var(--ink);background:white;border:1px solid #d9d5e3;border-radius:10px;min-width:0}textarea{resize:vertical;min-height:90px}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--primary)}.segmented{display:flex;background:#ebe8f1;border-radius:11px;padding:3px;gap:3px;min-width:220px}.segmented button{background:none;border:none;border-radius:9px;min-height:44px;flex:1;color:var(--muted);font-size:.8rem;font-weight:700;padding:8px 12px}.segmented button.active{background:white;color:var(--primary);box-shadow:0 2px 4px #231e3910}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:white;border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);min-width:0}.card.link{display:block;transition:border-color .15s,transform .15s}.card.link:hover{border-color:#bfb0dd;transform:translateY(-1px)}.card-top,.card-bottom{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}.card-bottom{border-top:1px solid var(--border);padding-top:12px;margin:14px 0 0;font-size:.75rem;color:var(--muted)}.card h2{line-height:1.4;overflow-wrap:anywhere}.code{font-weight:700;color:var(--primary);font-size:.76rem;overflow-wrap:anywhere}.meta{color:var(--muted);font-size:.78rem;line-height:1.7;overflow-wrap:anywhere}.quantity{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:16px 0}.quantity strong{font-size:1.8rem;letter-spacing:-.06em}.quantity small{font-size:.75rem;color:var(--muted);font-weight:400}.quantity span{font-size:.78rem;color:var(--muted)}.tag{display:inline-flex;gap:5px;align-items:center;padding:5px 8px;font-size:.66rem;font-weight:700;border-radius:6px;background:var(--soft);color:var(--primary);line-height:1.3}.tag.gray{color:var(--muted);background:#f0eff4}.tag.danger{color:var(--danger);background:var(--danger-soft)}.tag.warning{color:var(--amber);background:var(--amber-soft)}.tag.success{color:var(--success);background:var(--success-soft)}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.empty{padding:56px 20px;border:1px dashed #d9d3e4;border-radius:var(--radius);text-align:center;color:var(--muted);background:white;line-height:1.5}.empty h2{color:var(--ink)}.empty .icon{height:32px;width:32px;margin-bottom:14px;color:#9186a8}.navigation{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:center;gap:12px;z-index:40;padding:10px max(20px,calc((100vw - 900px)/2)) max(10px,env(safe-area-inset-bottom))}.navigation a{display:flex;gap:8px;justify-content:center;align-items:center;min-height:48px;min-width:130px;border-radius:10px;color:var(--muted);font-size:.78rem;font-weight:650}.navigation a.active{background:var(--soft);color:var(--primary)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:95px;max-width:min(90vw,480px);border-radius:14px;box-shadow:0 10px 35px #27203925;background:var(--ink);color:white;padding:14px 20px;z-index:100;font-size:.85rem}.login{max-width:420px;margin:48px auto;background:white;border:1px solid var(--border);border-radius:24px;padding:32px;box-shadow:var(--shadow)}.login .mark{margin-bottom:24px}.login p{font-size:.9rem}.login form{margin-top:24px}.notice{border-radius:11px;background:var(--soft);color:#574274;padding:14px;font-size:.8rem;line-height:1.6;margin-bottom:14px;overflow-wrap:anywhere}.notice.danger{color:var(--danger);background:var(--danger-soft)}.notice.warning{color:var(--amber);background:var(--amber-soft)}.notice.success{color:var(--success);background:var(--success-soft)}label{display:block;font-size:.8rem;font-weight:650;margin-bottom:16px;line-height:1.4}label input,label select,label textarea{display:block;margin-top:7px}label small{display:block;color:var(--muted);font-size:.72rem;font-weight:400;line-height:1.5;margin-top:6px}.form-error,.field-error{color:var(--danger)!important;font-size:.77rem;line-height:1.5}.form-error:empty{display:none}.field-invalid{border-color:var(--danger);background:#fffafb}.form-section{padding-top:20px;border-top:1px solid var(--border);margin-top:20px}.form-section h3{margin-bottom:16px}.columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.columns label{margin-bottom:0}.form-footer{position:sticky;bottom:0;background:white;border-top:1px solid var(--border);margin:24px -24px -24px;padding:16px 24px max(20px,env(safe-area-inset-bottom));z-index:3;box-shadow:0 -8px 16px #fff9}.form-summary{font-size:.77rem;color:var(--muted);margin:9px 0}.form-summary strong{display:block;color:var(--ink);margin-top:4px;font-weight:600;overflow-wrap:anywhere}.sync-state{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;color:var(--amber)}.sync-state.success{color:var(--success)}.sync-state.error{color:var(--danger)}dialog{width:min(640px,calc(100vw - 32px));padding:0;border:1px solid var(--border);border-radius:20px;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 80px #1e173a30}dialog::backdrop{background:#211a3b66;backdrop-filter:blur(3px)}#dialog-content{padding:24px}.dialog-heading{display:flex;align-items:center;gap:12px;justify-content:space-between;position:sticky;top:-24px;background:white;z-index:4;margin:-24px -24px 20px;padding:20px 24px;border-bottom:1px solid var(--border)}.dialog-heading h2{margin:0}.dialog-close{width:48px;flex-shrink:0}.table-scroll{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:.75rem}th{text-align:left;color:var(--muted);font-weight:650;background:#f8f7fb}th,td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle;overflow-wrap:anywhere}tr:last-child td{border-bottom:0}.allocation-table{table-layout:fixed}.allocation-table td,.allocation-table th{padding:10px 8px}.allocation-table td input{min-height:48px;padding:10px 6px;text-align:right;margin:0}.allocation-label{font-size:.74rem;font-weight:600}.allocation-label small{display:block;font-weight:400;color:var(--muted);margin-top:5px}.size-entry{display:grid;grid-template-columns:1fr 1.2fr 48px;align-items:center;gap:10px;margin-bottom:10px}.size-entry label{margin:0}.size-entry button{align-self:end}.size-entry small{color:var(--muted)}.detail-header{background:linear-gradient(135deg,#fff 70%,#f1ebff);border:1px solid var(--border);border-radius:20px;padding:24px;margin-bottom:20px}.detail-header h1{font-size:1.55rem}.detail-header .heading{margin-bottom:14px}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--border);padding-top:18px;margin-top:18px}.detail-stats strong{display:block;font-size:1.3rem;margin-top:6px;letter-spacing:-.04em}.detail-stats span{font-size:.73rem;color:var(--muted)}.tabs{display:flex;overflow:auto;gap:8px;padding-bottom:10px;margin-bottom:14px;scrollbar-width:thin}.tabs button{white-space:nowrap;min-height:48px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--muted);padding:10px 16px;font-weight:650;font-size:.8rem}.tabs button.active{background:var(--primary);border-color:var(--primary);color:white}.section-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:22px 0 14px}.section-heading h2{margin:0}.list{display:flex;flex-direction:column;gap:12px}.row{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--border);background:white;border-radius:14px;padding:16px;min-width:0}.row-body{min-width:0;flex:1}.row-body strong{display:block;font-size:.9rem;overflow-wrap:anywhere}.row-body p{margin:5px 0 0;font-size:.76rem;color:var(--muted);overflow-wrap:anywhere}.row .number{font-size:1.05rem;font-weight:750;white-space:nowrap}.row-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:end}.timeline{padding-left:20px;border-left:2px solid var(--border);margin:18px 0}.timeline-item{position:relative;padding:0 0 22px 6px;font-size:.8rem}.timeline-item:before{content:"";position:absolute;height:9px;width:9px;border:2px solid var(--primary);background:white;border-radius:50%;left:-26px;top:4px}.timeline-item p{margin:6px 0;color:var(--muted);overflow-wrap:anywhere}.timeline-item small{font-size:.71rem;color:var(--muted)}.route{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.route-step{display:flex;align-items:center;gap:7px;min-height:40px;padding:7px 10px;border-radius:8px;background:white;border:1px solid var(--border);font-size:.75rem}.route-step b{height:22px;width:22px;display:grid;place-items:center;background:var(--soft);color:var(--primary);border-radius:50%;font-size:.65rem}.route-step.active{border-color:#b59bd8}.stage{background:white;border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:16px}.stage-heading{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;background:#fbfafe;border-bottom:1px solid var(--border);gap:12px}.stage-heading h3{margin:0}.stage-content{padding:16px 20px}.stage-jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job-panel{border:1px solid var(--border);border-radius:12px;padding:16px;min-width:0}.job-panel .tags{margin-bottom:10px}.job-panel h3{margin-bottom:6px}.job-numbers{display:flex;gap:20px;font-size:.73rem;margin:14px 0;color:var(--muted)}.job-numbers strong{display:block;color:var(--ink);font-size:.92rem;margin-top:4px}.job-panel .row-actions{justify-content:start}.job-panel .button{font-size:.75rem;padding:10px 12px}.inspection-card{border-left:4px solid var(--success);background:white;border-radius:12px;border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px}.inspection-card.negative{border-left-color:var(--danger)}.inspection-card.pending{border-left-color:var(--amber)}.inspection-card h3{margin-bottom:6px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.photo-button{background:none;padding:0;border:0}.photo-button:focus-visible{border-radius:10px}.photo-note{font-size:.73rem;color:var(--muted);margin-top:10px}.split-panel{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.check-line{display:flex;align-items:center;gap:10px;font-size:.79rem;font-weight:500;margin:12px 0}.check-line input{margin:0}.subtle-box{padding:14px;border:1px solid var(--border);border-radius:10px;background:#faf9fc;font-size:.77rem;color:var(--muted);line-height:1.6}.report-form-line{border:1px solid var(--border);border-radius:12px;padding:14px;margin:14px 0}.report-form-line .columns{gap:10px}.report-form-line label{margin-bottom:10px}.report-form-line .columns label{margin-bottom:10px}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.link-text{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.progress{height:6px;width:100%;border:0;border-radius:8px;overflow:hidden;background:#e9e5f0}.progress::-webkit-progress-bar{background:#e9e5f0}.progress::-webkit-progress-value{background:var(--primary);border-radius:8px}.progress::-moz-progress-bar{background:var(--primary)}.load-note{text-align:right;font-size:.7rem;color:var(--muted);margin:12px 0}.draft-row{background:var(--amber-soft);border-color:#f0dfbd}.photo-stage{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}.photo-stage figure{margin:0}.photo-stage img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.photo-stage figcaption{font-size:.65rem;color:var(--muted);overflow-wrap:anywhere}.divider{height:1px;background:var(--border);margin:20px 0}.breadcrumb{display:inline-flex;align-items:center;gap:7px;min-height:48px;font-size:.79rem;color:var(--muted);margin:-8px 0 10px}.empty-small{padding:28px 16px}.risk-chip{display:inline-block;margin:8px 0;font-size:.7rem;font-weight:700;color:var(--danger)}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-panel{grid-template-columns:1fr}.topbar{padding:0 24px}.account-name{max-width:110px}.stage-jobs{grid-template-columns:1fr}}
@media(max-width:600px){.environment{font-size:.64rem}.topbar{height:68px;padding:0 18px}.brand{gap:9px}.mark{height:35px;width:35px;border-radius:10px;font-size:1.2rem}.brand strong{font-size:.88rem}.brand small{font-size:.66rem}.account-name{display:none}main{padding:22px 16px 105px}h1{font-size:1.55rem}.heading{margin-bottom:18px;gap:10px}.heading-actions{gap:5px}.heading-actions .button{padding:10px 12px}.heading p{font-size:.77rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}.metric{padding:14px;border-radius:13px}.metric strong{font-size:1.45rem}.metric span{font-size:.7rem}.toolbar{display:block;margin-bottom:16px}.search{margin-bottom:10px}.segmented{min-width:0}.grid{grid-template-columns:1fr;gap:12px}.card{padding:18px}.navigation{gap:0;padding:7px 8px max(8px,env(safe-area-inset-bottom))}.navigation a{min-width:0;flex:1;flex-direction:column;gap:5px;font-size:.62rem;border-radius:9px;min-height:54px}.navigation .icon{width:21px;height:21px}.toast{bottom:87px;width:calc(100vw - 32px);font-size:.8rem;max-width:480px}.login{margin:20px 0;padding:26px;border-radius:20px}.login h1{font-size:1.9rem}.detail-header{padding:18px;border-radius:16px}.detail-header .heading{display:block}.detail-header .heading-actions{margin-top:12px}.detail-header h1{font-size:1.4rem}.detail-stats{grid-template-columns:repeat(2,1fr);gap:16px}.detail-stats strong{font-size:1.35rem}.row{padding:14px;gap:10px}.row-actions{gap:6px}.row .button{font-size:.72rem;padding:10px 11px}.row-body strong{font-size:.85rem}.row-body p{font-size:.73rem}.section-heading{align-items:flex-start}.section-heading h2{font-size:1.05rem}.stage-heading,.stage-content{padding:14px}.stage-heading h3{font-size:.86rem}.stage-heading .button{font-size:.72rem;padding:10px}.job-panel{padding:14px}.tabs{margin:0 -16px 10px;padding:0 16px 10px}.tabs button{font-size:.74rem;padding:10px 13px}.columns{gap:10px}.allocation-table th,.allocation-table td{padding:9px 7px}.allocation-label{font-size:.69rem}.allocation-label small{font-size:.65rem}.form-footer{margin:24px -20px -20px;padding:14px 20px max(18px,env(safe-area-inset-bottom))}dialog{height:100dvh;max-height:100dvh;max-width:100vw;width:100vw;margin:0;border:0;border-radius:0}#dialog-content{padding:20px;min-height:100%}.dialog-heading{top:-20px;margin:-20px -20px 18px;padding:14px 20px}.dialog-heading h2{font-size:1.05rem}.size-entry{gap:8px;grid-template-columns:1fr 1.1fr 48px}.inspection-card{padding:15px}.route{gap:6px}.route-step{font-size:.69rem;padding:6px 8px}.form-actions .button{flex:1}.breadcrumb{font-size:.73rem}.row.stacked{display:block}.row.stacked .row-actions{justify-content:start;margin-top:12px}.table-scroll table{min-width:450px}.table-scroll.allocation-wrap table{min-width:0}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* CSP-compatible layout classes for previously inline styles. */
.v2-layout-1{font-size:1.3rem}
.v2-layout-2{grid-template-columns:1fr 48px}
.v2-layout-3{justify-content:start}
.v2-layout-4{justify-content:start;margin-top:14px}
.v2-layout-5{margin-bottom:16px}
.v2-layout-6{margin-bottom:20px}
.v2-layout-7{margin-top:10px}
.v2-layout-8{margin-top:12px}
.v2-layout-9{margin-top:14px}
.v2-layout-10{margin-top:16px}
.v2-layout-11{margin-top:20px}
.v2-layout-12{margin-top:8px}
.v2-layout-13{margin:0}
.v2-layout-14{margin:12px 0 0}
.v2-layout-15{text-align:left}
.v2-layout-16{width:100%}
.v2-layout-17{width:100%;border-radius:12px}
.v2-layout-18{width:19%}
.v2-layout-19{width:32%}
.v2-layout-20{width:49%}
