:root{--green:#1a8f4c;--green-d:#14753d;--red:#c0392b;--amber:#b8860b;--ink:#1d2430;--muted:#7a8699;--line:#e3e8ef;--bg:#f4f6fa;--card:#fff;--blue:#2563a8;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--bg)}h2{margin:.2rem 0 .6rem;font-size:1.3rem}h3{margin:0 0 .5rem;font-size:1rem}button{cursor:pointer;font-family:inherit}a,.link{color:var(--blue)}.app{max-width:1100px;margin:0 auto;padding:0 16px 60px}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.brand{align-items:center;gap:10px;font-weight:600;display:flex}.logo{background:var(--green);color:#fff;border-radius:6px;padding:4px 8px;font-size:.85rem;font-weight:700}.top-right{align-items:center;gap:10px;display:flex}.role-switch{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.role-switch button{color:var(--muted);background:#fff;border:0;padding:7px 14px}.role-switch button.on{background:var(--green);color:#fff}.content{padding-top:18px}.muted{color:var(--muted);font-weight:400}.sub{margin:0 0 8px;font-size:.9rem}.hint{font-size:.82rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.center{text-align:center}.nowrap{white-space:nowrap}.link{background:0 0;border:0;margin-bottom:8px;padding:0;font-size:.9rem}.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 14px;font-size:.9rem}.btn-ghost{color:var(--ink)}.btn-primary{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}.btn-primary:disabled{color:#fff;cursor:not-allowed;background:#cdd5df;border-color:#cdd5df}.btn-big{width:100%;margin-top:10px;padding:13px;font-size:1rem}.badge{color:var(--muted);background:#eef1f6;border-radius:20px;padding:3px 10px;font-size:.76rem}.badge-ok{color:var(--green-d);background:#e3f4ea}.badge-warn{color:var(--amber);background:#fcf0d8}.pill{color:var(--muted);white-space:nowrap;background:#eef1f6;border-radius:20px;padding:3px 10px;font-size:.78rem}.pill-work{color:var(--blue);background:#e6f0fa}.pill-closed{color:var(--green-d);background:#e3f4ea}.theme{color:var(--muted);font-size:.82rem}.theme-ready:before{content:"🟢 "}.grid{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}.grid th{text-align:left;text-transform:uppercase;letter-spacing:.02em;color:var(--muted);border-bottom:1px solid var(--line);background:#f8fafc;padding:9px 12px;font-size:.76rem}.grid td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px;font-size:.9rem}.grid tr:last-child td{border-bottom:0}.row{cursor:pointer}.row:hover td{background:#f6fbff}.addr{max-width:240px}.reason{max-width:320px;color:var(--muted);font-size:.85rem}.inbox-head h2{margin-bottom:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:14px 0;padding:16px}.card-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.meta{align-items:center;gap:12px;margin:4px 0 10px;display:flex}.reason-box{border:1px solid var(--line);background:#f8fafc;border-radius:8px;padding:10px 12px;font-size:.9rem}.fields{grid-template-columns:1fr 1fr;gap:8px 24px;display:grid}.field{flex-direction:column;gap:2px;display:flex}.fk{color:var(--muted);text-transform:uppercase;font-size:.74rem}.fv{font-size:.92rem}.spec-line{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.spec-name{flex:1;min-width:180px;font-size:.9rem}.spec-amount{text-align:right;min-width:70px;font-weight:600}.qty{border:1px solid var(--line);border-radius:6px;width:56px;padding:5px}.x{color:var(--muted);background:0 0;border:0;font-size:.9rem}.add-work{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.add-work select{border:1px solid var(--line);border-radius:8px;flex:1;padding:8px}.materials-block{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.materials-block h4{margin:0 0 4px;font-size:.95rem}.add-material-free input[type=text]{border:1px solid var(--line);border-radius:8px;flex:1;min-width:140px;padding:8px}.total{text-align:right;margin-top:10px;font-size:1rem}.markup-inp{border:1px solid var(--line);border-radius:5px;width:52px;margin-left:2px;padding:1px 4px;font-size:.85rem}.doc-buttons{flex-wrap:wrap;gap:8px;display:flex}.doc{border:1px dashed var(--line);color:var(--muted);background:#fff;border-radius:8px;padding:9px 14px;font-size:.88rem}.doc.on{border-style:solid;border-color:var(--green);color:var(--green-d);background:#e3f4ea}textarea,.card select{border:1px solid var(--line);border-radius:8px;width:100%;margin-bottom:8px;padding:9px;font-family:inherit;font-size:.9rem}.gate{border:2px solid;border-radius:12px;margin:14px 0;padding:16px}.gate-block{border-color:var(--red);background:#fdf2f1}.gate-ok{border-color:var(--green);background:#eefaf2}.checklist{margin:0 0 8px;padding:0;list-style:none}.checklist li{gap:8px;padding:5px 0;font-size:.92rem;display:flex}.checklist .mark{width:16px;font-weight:700}.checklist .ok .mark{color:var(--green)}.checklist .bad .mark{color:var(--red)}.hint-inline{color:var(--red);font-size:.85rem;font-style:normal}.banner{border-radius:8px;margin:12px 0;padding:10px 14px;font-size:.9rem}.banner-warn{color:var(--amber);background:#fcf0d8;border:1px solid #f0dca8}.portal-fields{border-collapse:collapse;width:100%;margin:6px 0 12px}.portal-fields td{border-bottom:1px solid var(--line);padding:8px 10px;font-size:.92rem}.pf-label{color:var(--muted);width:200px}.pf-val{font-weight:500}.pf-empty{color:var(--red)}.synth{margin:8px 0 14px;font-size:.88rem}.synth summary{cursor:pointer;color:var(--blue)}.history{margin:0;padding:0;font-size:.88rem;list-style:none}.history li{border-bottom:1px solid var(--line);padding:4px 0}@media (width<=640px){.fields{grid-template-columns:1fr}.reason,.addr{max-width:none}.topbar{gap:8px}}.login-wrap{justify-content:center;align-items:center;min-height:80vh;padding:24px;display:flex}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;width:100%;max-width:360px;padding:28px 26px;box-shadow:0 6px 24px #141e320f}.brand-big{margin-bottom:2px;font-size:1.25rem}.fld{margin:14px 0;display:block}.fld span{color:var(--muted);margin-bottom:5px;font-size:.8rem;display:block}.fld input{border:1px solid var(--line);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 12px;font-size:.95rem}.fld input:focus{border-color:var(--green);outline:none}.login-error{color:#b22;background:#fdecec;border-radius:8px;margin-top:6px;padding:9px 12px;font-size:.85rem}.user-chip{color:var(--ink);font-size:.85rem}.mainnav{border-bottom:1px solid var(--line);gap:4px;margin-top:4px;display:flex}.navtab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:11px 16px;font-size:.92rem}.navtab:hover{color:var(--ink)}.navtab.on{color:var(--green-d);border-bottom-color:var(--green);font-weight:600}.markup-edit{align-items:center;gap:4px;display:inline-flex}.markup-edit .qty{width:64px}.card-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card-title h2{margin:0}.actionbar{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;padding:12px;display:flex}.actionbar .btn-primary{padding:7px 12px;font-size:.85rem}.actionbar .assign{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:.85rem;display:inline-flex}.actionbar .assign select{border:1px solid var(--line);border-radius:8px;padding:6px 8px}.tabs{border-bottom:1px solid var(--line);gap:2px;margin:14px 0 0;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:.88rem}.tab.on{color:var(--green-d);border-bottom-color:var(--green);font-weight:600}.tab:hover{color:var(--ink)}.pill-pending{color:var(--amber);background:#fcf0d8}.pill-cancel{color:#999;background:#f1f1f4;text-decoration:line-through}.doclist{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.userform{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.userform input,.userform select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.9rem}.row-inactive{opacity:.5}.metrics{flex-wrap:wrap;gap:12px;display:flex}.metric{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;min-width:140px;padding:16px}.metric-accent{border-color:var(--green);background:#f3faf5}.metric-value{color:var(--ink);font-size:1.8rem;font-weight:700}.metric-accent .metric-value{color:var(--green-d)}.metric-label{margin-top:4px;font-size:.85rem}.metric-hint{margin-top:2px;font-size:.76rem}.chips{flex-wrap:wrap;gap:8px;display:flex}
