@import"https://fonts.googleapis.com/css2?family=Barlow+Semi+Condensed:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap";body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f4f5f7;color:#1a2233}.shell{max-width:420px;margin:12vh auto 0;background:#fff;border:1px solid #dde1e8;border-radius:10px;padding:28px;box-shadow:0 2px 10px #141e3c0f}.shell h1{font-size:20px;margin:0 0 4px}.shell .sub{color:#66708a;font-size:13px;margin:0 0 20px}.shell label{display:block;font-size:13px;font-weight:600;margin:12px 0 4px}.shell input{width:100%;padding:9px 10px;border:1px solid #c8cedb;border-radius:6px;font-size:14px}.shell button.primary{width:100%;margin-top:18px;padding:10px;background:#1f3a8a;color:#fff;border:0;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer}.shell .error{color:#b3261e;font-size:13px;margin-top:10px}.signed-in{max-width:560px;margin:10vh auto 0;background:#fff;border:1px solid #dde1e8;border-radius:10px;padding:28px}.signed-in .rolechip{display:inline-block;padding:2px 10px;border-radius:999px;background:#e8edfb;color:#1f3a8a;font-size:12px;font-weight:700;text-transform:uppercase}.signed-in button{margin-top:16px;padding:8px 14px;border:1px solid #c8cedb;background:#fff;border-radius:6px;cursor:pointer}.feedback-btn{position:fixed;right:18px;bottom:18px;z-index:90;padding:10px 16px;border-radius:999px;border:0;background:#1f3a8a;color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #141e3c40}.feedback-panel{position:fixed;right:18px;bottom:64px;z-index:90;width:320px;background:#fff;border:1px solid #dde1e8;border-radius:10px;padding:16px;box-shadow:0 4px 16px #141e3c2e}.feedback-panel h3{margin:0 0 10px;font-size:15px}.feedback-panel textarea{width:100%;min-height:70px;border:1px solid #c8cedb;border-radius:6px;padding:8px;font-size:13px;font-family:inherit}.feedback-panel .row{display:flex;gap:8px;margin:8px 0}.feedback-panel .row button{flex:1;padding:8px;border-radius:6px;border:1px solid #c8cedb;background:#fff;cursor:pointer;font-size:13px}.feedback-panel .row button.active{background:#1f3a8a;color:#fff;border-color:#1f3a8a}.feedback-panel .send{width:100%;padding:9px;background:#1f3a8a;color:#fff;border:0;border-radius:6px;font-weight:600;cursor:pointer}.feedback-panel .ok{color:#14691f;font-size:13px;margin-top:8px}.qrow .who small.qwarn{color:#7a5310;font-weight:600;margin-top:2px}:root{--ink:#22303C;--paper:#F1F2EF;--panel:#FFFFFF;--line:#D9DDD6;--line2:#E8EAE5;--accent:#E8630A;--accent-dk:#C65205;--muted:#66707A}*{box-sizing:border-box}.ih-app{font-family:Inter,system-ui,sans-serif;background:var(--paper);color:var(--ink);min-height:100vh;font-size:13.5px}.ih-app h1,.ih-app h2,.ih-app h3,.ih-app .disp{font-family:Barlow Semi Condensed,Inter,sans-serif;letter-spacing:.01em}.ih-app button{font-family:inherit;cursor:pointer}.ih-app input,.ih-app select,.ih-app textarea{font-family:inherit;font-size:13px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:#fff;color:var(--ink);width:100%}.ih-app input:focus,.ih-app select:focus,.ih-app textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.ih-app label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:block;margin-bottom:3px}.topbar{background:var(--ink);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;position:sticky;top:0;z-index:40}.brand{font-family:Barlow Semi Condensed;font-weight:700;font-size:20px;letter-spacing:.02em}.brand em{color:var(--accent);font-style:normal}.weeknav{display:flex;align-items:center;gap:6px}.weeknav .wk{font-family:Barlow Semi Condensed;font-weight:600;font-size:15px;min-width:210px;text-align:center}.btn{border:none;border-radius:7px;padding:7px 12px;font-weight:600;font-size:13px;background:#3a4a58;color:#fff}.btn:hover{background:#46586a}.btn.primary{background:var(--accent)}.btn.primary:hover{background:var(--accent-dk)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn.ghost:hover{background:var(--line2)}.btn.sm{padding:4px 9px;font-size:12px;border-radius:6px}.btn.danger{background:#b23a3a}.layout{display:flex;gap:0;align-items:stretch}.sidebar{width:250px;flex:none;background:var(--panel);border-right:1px solid var(--line);padding:12px;min-height:calc(100vh - 54px)}.sidebar h2{margin:2px 0;font-size:16px;text-transform:uppercase;letter-spacing:.06em}.sidebar .hint{font-size:11.5px;color:var(--muted);margin-bottom:10px}.pool{display:flex;flex-direction:column;gap:8px}.main{flex:1;padding:14px;overflow-x:auto}.board{display:grid;grid-template-columns:150px repeat(5,minmax(170px,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);min-width:1060px}.board .hcell{background:var(--ink);color:#fff;padding:8px 10px;font-family:Barlow Semi Condensed;font-weight:600;font-size:14px;border-left:1px solid #33434F}.board .hcell small{display:block;font-family:Inter;font-weight:500;font-size:11px;color:#aebac5}.board .hcell.today{background:var(--accent)}.board .hcell.today small{color:#ffe0c8}.board .rowhead{background:#edefea;border-top:1px solid var(--line);padding:8px;font-family:Barlow Semi Condensed;font-weight:600;font-size:13.5px;display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.board .cell{border-top:1px solid var(--line);border-left:1px solid var(--line2);padding:6px;min-height:86px;display:flex;flex-direction:column;gap:6px;background:#fff}.board .cell.dragover{background:#fff3e8;outline:2px dashed var(--accent);outline-offset:-3px}.rowhead .del{border:none;background:none;color:#9aa4ad;font-size:14px;line-height:1;padding:2px}.rowhead .del:hover{color:#b23a3a}.card{border-radius:7px;padding:7px 8px 7px 10px;position:relative;cursor:grab;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #141e2814}.card:active{cursor:grabbing}.card .t{font-family:Barlow Semi Condensed;font-weight:700;font-size:13.5px;line-height:1.15}.card .s{font-size:11.5px;line-height:1.3;margin-top:2px}.card .a{font-size:11px;opacity:.85;margin-top:1px}.card .trip{position:absolute;top:5px;right:6px;font-size:10px;font-weight:700;opacity:.7}.card .quick{display:none;position:absolute;bottom:4px;right:5px;gap:3px}.card:hover .quick{display:flex}.qbtn{border:none;border-radius:5px;background:#ffffffd9;font-size:11px;padding:2px 5px;font-weight:700}.qbtn:hover{background:#fff}.legend{display:flex;gap:14px;align-items:center;margin:10px 2px 12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend .sw{display:inline-block;width:13px;height:13px;border-radius:4px;margin-right:5px;vertical-align:-2px;border:1px solid rgba(0,0,0,.12)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c248c;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:30px 14px;overflow:auto}.modal{background:var(--panel);border-radius:12px;max-width:860px;width:100%;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;max-height:calc(100vh - 56px)}.modal .mhead{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.overlay.full{padding:0}.modal.full{max-width:none!important;width:100%;height:100vh;max-height:100vh;border-radius:0}.modal .mhead h2{margin:0;font-size:20px}.modal .mbody{padding:16px 18px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0}.modal .mbody>*{flex-shrink:0}.custgrid>div{min-width:0}.modal .mfoot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:10px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:1fr 1fr 1fr 1fr}.g5{grid-template-columns:.7fr .7fr 2fr 1.4fr .8fr}.fieldset{border:1px solid var(--line);border-radius:9px;padding:12px}.fieldset>h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.chk{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;white-space:nowrap;padding-bottom:7px}.chk input{width:16px;height:16px}.att{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line2);border-radius:7px;margin-bottom:6px;font-size:12.5px;background:#fafbf8}.tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:20px}.tag.office{background:#fbe3e3;color:#8a2c2c}.tag.contractors{background:#ddebf9;color:#1f4e79}.note{font-size:11.5px;color:var(--muted)}.sheet{padding:28px;max-width:780px;background:#fff;color:#111}.sheet h1{font-size:26px;margin:0}.sheet .rule{border-top:3px solid #222;margin:8px 0 16px}.sheet table{width:100%;border-collapse:collapse;margin-top:8px}.sheet th,.sheet td{border:1px solid #444;padding:7px 9px;text-align:left;font-size:13px}.sheet th{background:#eee;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.sheet .kv{display:grid;grid-template-columns:170px 1fr;row-gap:6px;font-size:14px;margin-top:6px}.sheet .kv b{font-weight:600;color:#444;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding-top:1px}@media print{body *{visibility:hidden}.overlay.printable,.overlay.printable *{visibility:visible}.overlay.printable{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;padding:0;overflow:visible}.overlay.printable .modal{box-shadow:none;max-height:none}.noprint{display:none!important}}@media(max-width:900px){.sidebar{display:none}.g4,.g3,.g5{grid-template-columns:1fr 1fr}}.badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;background:#0000001f;letter-spacing:.03em}.triprow{display:grid;grid-template-columns:70px 1.1fr 1.2fr 1.3fr auto auto auto;gap:8px;align-items:end;padding:8px;border:1px solid var(--line2);border-radius:8px;margin-bottom:8px;background:#fafbf8}.triprow .tn{font-family:Barlow Semi Condensed;font-weight:700;font-size:15px;padding-bottom:7px}.triprow .cnt{font-size:11.5px;color:var(--muted);padding-bottom:9px;white-space:nowrap}.warn{background:#fbefdf;border:1px solid #EBCB9B;color:#7a5310;border-radius:8px;padding:8px 10px;font-size:12.5px;margin-bottom:8px}.statuschip{border:1px solid rgba(0,0,0,.12);border-radius:6px;font-weight:600;font-size:12px;padding:6px 8px;width:100%}.qty{background:#eef3ee;border:1px solid #C8DCC9;border-radius:6px;padding:6px 8px;font-weight:700;font-size:12.5px;color:#1e5a2a;text-align:center;white-space:nowrap}.qty.na{background:#f2f3f0;border-color:var(--line);color:var(--muted);font-weight:500}.suprow{display:grid;grid-template-columns:1.3fr 1fr auto;gap:8px;align-items:end;padding:6px 8px;border:1px solid var(--line2);border-radius:8px;margin-bottom:6px;background:#fafbf8}.custlist{display:flex;flex-direction:column;gap:4px;max-height:380px;overflow:auto;padding-right:4px}.custlist button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 10px;font-weight:600;font-size:13px}.custlist button.on{border-color:var(--accent);background:#fdf1e7;outline:1px solid var(--accent)}.custlist button small{display:block;font-weight:400;color:var(--muted);font-size:11px}.custgrid{display:grid;grid-template-columns:230px 1fr;gap:14px}.standing{background:#edf2fa;border:1px solid #C4D6EE;border-radius:8px;padding:8px 10px;font-size:12.5px;color:#1f4e79;margin-top:8px}@media(max-width:900px){.triprow{grid-template-columns:1fr 1fr}.custgrid{grid-template-columns:1fr}}.cell{position:relative}.iv-wrap{max-width:560px;margin:0 auto;padding:14px}.iv-head{display:flex;gap:8px;align-items:end;margin-bottom:12px;flex-wrap:wrap}.iv-head>div{flex:1;min-width:140px}.iv-job{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:14px;overflow:hidden;box-shadow:0 2px 8px #141e2812}.iv-band{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.iv-band .b{font-family:Barlow Semi Condensed;font-weight:700;font-size:17px}.iv-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.iv-kv{display:grid;grid-template-columns:110px 1fr;row-gap:4px;font-size:13px}.iv-kv b{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;padding-top:2px}.iv-scope{border:1px solid var(--line2);border-radius:8px;padding:7px 10px;background:#fafbf8;font-size:13px;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}.iv-scope .p{font-weight:700}.iv-note{background:#edf2fa;border:1px solid #C4D6EE;border-radius:8px;padding:8px 10px;font-size:12.5px;color:#1f4e79}.iv-done{background:#edf7ef;border:1px solid #BBDFC4;color:#1e5a2a;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600}.fq{border-bottom:1px solid var(--line2);padding:10px 0;display:flex;gap:14px;align-items:center;justify-content:space-between}.fq .lbl{font-size:13px;font-weight:600;flex:1;line-height:1.35}.fq .ans{flex:none;display:flex;gap:6px}.fq .ans button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 14px;font-weight:700;font-size:12.5px}.fq .ans button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.fq input,.fq textarea,.fq select{max-width:260px}.fq.col{flex-direction:column;align-items:stretch;gap:6px}.fq.col input,.fq.col textarea,.fq.col select{max-width:none}.sigpad{border:1.5px dashed var(--line);border-radius:8px;background:#fff;touch-action:none;display:block;width:100%}.photo-ph{border:1.5px dashed var(--line);border-radius:8px;padding:14px;text-align:center;color:var(--muted);font-size:12.5px;background:#fafbf8}.formrow{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #EBCB9B;background:#fdf3e3;border-radius:8px;margin-bottom:6px;font-size:12.5px}.fv-q{display:grid;grid-template-columns:1fr auto;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2);font-size:13px}.fv-q .a{font-weight:700;text-align:right}.agechip{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;background:#ffffff8c;margin-top:5px}.agechip.warn2{background:#f8e3c0;color:#7a4e08}.agechip.crit{background:#f5c9c2;color:#8a2418}.retchip{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 7px;border-radius:20px;background:#b23a3a;color:#fff;margin-top:5px;margin-right:5px}.qtable{width:100%;border-collapse:collapse;font-size:13px}.qtable th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:2px solid var(--line);padding:6px 8px}.qtable td{border-bottom:1px solid var(--line2);padding:7px 8px}.qtable td.num{text-align:right;font-weight:700}.linetotal{background:#f3eee4;border:1px solid #E0D5BC;border-radius:6px;padding:6px 8px;font-weight:700;font-size:12.5px;color:#6b5510;text-align:right;white-space:nowrap}.quotebadge{background:#1f4e79;color:#fff;font-size:11px;font-weight:800;letter-spacing:.05em;border-radius:20px;padding:3px 10px}.tierpill{background:#e8eff7;color:#1f4e79;border:1px solid #C4D6EE;border-radius:20px;font-size:11px;font-weight:700;padding:3px 10px;white-space:nowrap}.bigtotal{font-family:Barlow Semi Condensed;font-weight:700;font-size:18px}.confchip{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.04em;padding:2px 7px;border-radius:20px;margin-top:5px;margin-right:5px}.confchip.ok{background:#1e7a34;color:#fff}.confchip.sent{background:#f8e3c0;color:#7a4e08;border:1px dashed #C99A3C}.confchip.f12{background:#1f4e79;color:#fff}.card.conf-ok{outline:2.5px solid #1E7A34;outline-offset:-1px}.card.conf-sent{outline:2px dashed #C99A3C;outline-offset:-1px}.boardstock{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 11px;font-weight:700;font-size:12px;cursor:pointer}.boardstock:hover{background:#fdf1e7;border-color:var(--accent)}.histrow{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:6px 2px;border-bottom:1px solid var(--line2)}.histrow b{font-family:Barlow Semi Condensed}.histrow .when{color:var(--muted);white-space:nowrap;font-size:11.5px}.histrow .push{color:#8a3d14;font-weight:700}.roleselect{background:#2e3e4c;border:1px solid #3F5060;color:#fff;border-radius:7px;padding:6px 8px;font-weight:600;font-size:12.5px;width:auto}.pdesc{font-size:10px;color:var(--muted);line-height:1.25;margin-top:3px;max-height:26px;overflow:hidden;text-overflow:ellipsis}.pdesc.miss{color:#8a3d14;font-weight:600}.poolbar{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.poolbar input,.poolbar select{font-size:12px;padding:6px 8px}.poolchips{display:flex;gap:4px;flex-wrap:wrap}.poolchips button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700;cursor:pointer}.poolchips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.poolcount{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.crow{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line2);border-left-width:5px;border-radius:7px;padding:6px 8px;margin-bottom:5px;cursor:grab;font-size:11.5px;line-height:1.25}.crow:hover{border-color:var(--accent)}.crow .cb{flex:1;min-width:0}.crow .cb b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow .cb small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.crow .age{flex:none;font-size:9.5px;font-weight:800;border-radius:20px;padding:2px 6px;background:#edefea;color:var(--muted)}.crow .age.warn2{background:#f8e3c0;color:#7a4e08}.crow .age.crit{background:#f5c9c2;color:#8a2418}.crow .ret{flex:none;width:9px;height:9px;border-radius:50%;background:#b23a3a}.cell.leave{background:repeating-linear-gradient(-45deg,#eaece9,#eaece9 8px,#dfe2de 8px,#dfe2de 16px)}.leavetag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.05em;color:#5a636b;background:#fff;border:1px solid var(--line);border-radius:20px;padding:2px 8px;margin:2px 0 4px}.leaverow{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:8px;align-items:end;padding:6px 8px;border:1px solid var(--line2);border-radius:8px;margin-bottom:6px;background:#fafbf8}.chk-sec{border:1px solid var(--line2);border-radius:9px;margin-bottom:10px;overflow:hidden}.chk-sec .ch{padding:8px 12px;font-weight:700;font-size:13px;display:flex;gap:8px;align-items:center}.chk-sec .ch.ok{background:#edf7ef;color:#1e5a2a}.chk-sec .ch.bad{background:#f9e2df;color:#7a1f16}.chk-sec .ci{padding:7px 12px;border-top:1px solid var(--line2);font-size:12.5px;display:flex;justify-content:space-between;gap:10px}.chk-sec .ci small{color:var(--muted)}.mailprev{background:#f4f6f3;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12px;white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;line-height:1.5}.lockbox{background:#fff;border:1.5px dashed var(--line);border-radius:12px;padding:22px 18px;text-align:center;color:var(--muted);font-size:13.5px;line-height:1.6}.lockbox b{color:var(--ink);font-size:15px;display:block;margin-bottom:4px}.lockbox.warn{border-color:#c99a3c;background:#fdf6ea;color:#7a5310}.gsearch{position:relative}.gsearch input{width:250px;font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid #4A5661;background:#2e3942;color:#edefea}.gsearch input::placeholder{color:#8a939b}.gresults{position:absolute;top:34px;left:0;width:390px;max-height:380px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 34px #141a2047;z-index:250;color:var(--ink)}.gresults button{display:flex;gap:9px;align-items:center;width:100%;text-align:left;border:none;background:none;padding:9px 12px;cursor:pointer;border-top:1px solid var(--line2);font-size:12px}.gresults button:first-child{border-top:none}.gresults button:hover{background:#f4f6f3}.gresults .gid{font-weight:800;flex:none}.gresults .gm{flex:1;min-width:0}.gresults .gm small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gresults .gtag{flex:none;font-size:9.5px;font-weight:800;border-radius:20px;padding:2px 7px;background:#edefea;color:var(--muted)}.marginline{display:flex;gap:14px;align-items:center;background:#f2f5ef;border:1px solid #D8E0D2;border-radius:9px;padding:8px 12px;font-size:12.5px}.marginline b.pos{color:#1e5a2a}.marginline b.neg{color:#8a2418}.dupwarn{background:#fdf2e4;border:1px solid #E8C48A;border-radius:9px;padding:8px 12px;font-size:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.scline{border:1px solid var(--line2);border-left:4px solid #C7B9E6;border-radius:10px;padding:10px 12px 11px;margin-bottom:9px;background:#fdfdfc}.scline.done{border-left-color:#63bd7a;background:#f7fbf7}.scline-r1,.scline-r2{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}.scline-r2{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line2)}.scline label{font-size:9.5px}.scline .pdesc{max-height:none;white-space:normal;overflow:visible;line-height:1.3}.ih-app textarea.pdesc-edit{display:block;margin-top:3px;font-size:12px;line-height:1.3;padding:4px 6px;resize:none;overflow:hidden;min-height:24px}.ih-app textarea.pdesc-edit.edited{border-color:#e0a93e;background:#fdf6ea}.pdesc-note{font-size:10px;color:#8a5a10;margin-top:2px}.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}.ih-app.office{display:flex;flex-direction:column;height:100vh}.ih-app.office .layout{flex:1;min-height:0}.ih-app.office .sidebar{min-height:0;overflow-y:auto}.ih-app.office .main{overflow:auto}.ih-app.office .board{overflow:clip}.ih-app.office .legend{position:sticky;top:0;z-index:31;background:var(--paper);height:44px;margin:0 0 4px;padding:0 2px;flex-wrap:nowrap;white-space:nowrap;min-width:1060px}.buildtag{position:sticky;bottom:0;margin-top:10px;padding:6px 2px 2px;border-top:1px solid var(--line2);background:var(--panel);text-align:right;font-size:10.5px;color:var(--muted)}.wkpick{position:relative;cursor:pointer;border-radius:7px}.wkpick:hover{background:#ffffff14}.wkpick input[type=date]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;margin:0;padding:0}.wkpick input[type=date]::-webkit-calendar-picker-indicator{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.ih-app.office .board .hcell{position:sticky;top:44px;z-index:30}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);background:var(--ink);color:#fff;font-weight:600;font-size:13px;padding:10px 16px;border-radius:9px;box-shadow:0 8px 24px #141e2859;z-index:260;animation:toastin .18s ease-out}@keyframes toastin{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.toast.warn{background:#7a4e08;border:1px solid #C99A3C}.suppick{position:absolute;top:100%;left:0;margin-top:4px;min-width:240px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px #141a2040;z-index:60;overflow:hidden}.suppick .hd{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px 5px}.suppick button{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 10px;font-size:12.5px;cursor:pointer;border-top:1px solid var(--line2)}.suppick button:hover{background:#fdf1e7}.wo-total{margin-top:10px;text-align:right;font-size:15px}.wo-box{border:1px solid #ccc;border-radius:6px;padding:10px 12px;margin-top:14px;font-size:13px}.wo-cond{margin-top:18px;font-size:11.5px;color:#444;border-top:1px solid #ccc;padding-top:8px}.lnote{font-size:11.5px;color:#555;margin-top:2px}.sheet td.r,.sheet th.r{text-align:right}.print-root{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#262d34eb;overflow:auto;padding:26px 12px 60px}.print-root .sheet{margin:0 auto 18px;box-shadow:0 8px 30px #00000073;background:#fff!important;color:#111}.print-bar{position:fixed;top:12px;right:16px;z-index:210;display:flex;gap:8px}.print-bar .btn{box-shadow:0 3px 10px #0006}@media print{body *{visibility:hidden}.print-root,.print-root *{visibility:visible}.print-root{display:block;position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;padding:0;font-family:Inter,sans-serif;color:#111;overflow:visible}.print-root .sheet{box-shadow:none;margin:0}.print-bar,.overlay,.topbar,.layout{display:none}@page{size:A4;margin:0}.sheet-a4{page-break-after:always}.sheet-a4:last-child{page-break-after:auto}}.sheet{padding:28px;max-width:780px}.sheet-a4{width:210mm;min-height:290mm;padding:13mm 14mm 12mm;display:flex;flex-direction:column;box-sizing:border-box}.tpl{color:#1b232b;font-size:12px}.tpl-top{display:flex;justify-content:space-between;gap:26px;align-items:flex-start}.tpl-title{font-family:Barlow Semi Condensed,sans-serif;font-weight:800;font-size:30px;letter-spacing:.05em;margin:0;color:#1b232b}.tpl-title:after{content:"";display:block;width:62px;height:4px;background:#f28c1e;margin-top:7px;border-radius:2px}.tpl-lab{font-size:9px;font-weight:800;letter-spacing:.14em;color:#98a0a7;text-transform:uppercase;margin:20px 0 4px}.tpl-bill .who{font-size:15.5px;font-weight:700;letter-spacing:.01em}.tpl-bill div{line-height:1.5}.tpl-co{text-align:right;font-size:11px;line-height:1.55;color:#3a434b}.tpl-co img{width:168px;display:block;margin:0 0 8px auto}.tpl-co .cn{font-weight:800;font-size:12.5px;color:#1b232b}.tpl-metarow{display:flex;justify-content:flex-end;margin-top:16px}.tpl-meta{border:1px solid #E3E6E2;border-radius:8px;overflow:hidden;min-width:250px;font-size:11.5px;background:#fff}.tpl-meta>div{display:flex;justify-content:space-between;gap:18px;padding:6.5px 12px;border-top:1px solid #EEF0ED}.tpl-meta>div:first-child{border-top:none}.tpl-meta span{color:#79828a;font-weight:600}.tpl-meta b{text-align:right}.tpl-table{width:100%;border-collapse:collapse;margin-top:20px;font-size:11.8px}.tpl-table th{background:#1b232b;color:#fff;text-align:left;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:8px 9px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tpl-table th:first-child{border-radius:6px 0 0 6px}.tpl-table th:last-child{border-radius:0 6px 6px 0}.tpl-table th.r,.tpl-table td.r{text-align:right}.tpl-table td{padding:9px;border-bottom:1px solid #ECEEEB;vertical-align:top}.tpl-table tbody tr:nth-child(2n) td{background:#fafbf9;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tpl-totals{margin-top:12px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;font-size:12.5px}.tpl-totals>div{display:flex;justify-content:space-between;min-width:262px;gap:30px;padding:2px 12px}.tpl-totals span{color:#79828a;font-weight:600}.tpl-totals .gt{background:#1b232b;color:#fff;border-radius:7px;padding:9px 12px;font-size:14px;margin-top:4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tpl-totals .gt span{color:#c7cdd2}.tpl-due{margin-top:26px;padding:12px 15px;background:#f7f8f6;border:1px solid #E3E6E2;border-radius:9px;font-size:11.8px;line-height:1.6;max-width:360px}.tpl-due b{font-size:12.5px;color:#1b232b}.covrow{display:flex;gap:14px;align-items:flex-start;padding:8px 2px;border-bottom:1px solid var(--line2)}.covname{flex:0 0 44%;font-size:12.5px;line-height:1.35;padding-top:6px}.covcode{display:inline-block;background:#edefea;border:1px solid var(--line);border-radius:5px;font-size:10px;font-weight:700;padding:1px 6px;margin-right:7px;vertical-align:1px}.covws{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.covchip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:8px;padding:4px 7px;background:#fafbf8;font-size:11.5px}.covchip input.cw{width:52px;text-align:center}.covchip input.cc{width:66px;text-align:right}.covchip .u{color:var(--muted);font-size:10.5px}.covchip button{border:none;background:none;cursor:pointer;color:var(--muted);font-size:12px;padding:0 2px}.tierrows{display:grid;grid-template-columns:1fr 88px;gap:6px 8px;align-items:center}.tierrows .tiername{font-size:11.5px;background:#edefea}.custlist .covcode{margin-right:0}.compdot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}.compdot.ok{background:#1e7a34}.compdot.warn{background:#e8a013}.compdot.expired{background:#c0362c}.compdot.missing{background:#9aa4ad}.compbanner{border-radius:8px;padding:9px 12px;font-size:13px;font-weight:600;margin-bottom:4px}.compbanner.expired{background:#f9e2df;border:1px solid #E0958D;color:#7a1f16}.compbanner.warn{background:#fbefdf;border:1px solid #EBCB9B;color:#7a5310}.compbanner.missing{background:#eef0ed;border:1px solid var(--line);color:var(--muted)}.compbanner.ok{background:#edf7ef;border:1px solid #BBDFC4;color:#1e5a2a}.workerrow{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr auto;gap:8px;align-items:end;padding:6px 8px;border:1px solid var(--line2);border-radius:8px;margin-bottom:6px;background:#fafbf8}.workerrow.nofile{grid-template-columns:1.3fr 1fr 1fr auto}.workerrow.nocard{border-color:#ebcb9b;background:#fdf6ea}.archtag{background:#3a424a;color:#fff;font-size:10px;font-weight:800;letter-spacing:.05em;border-radius:20px;padding:2px 8px}.crewordbtns{display:inline-flex;flex-direction:column;gap:1px;float:right}.crewordbtns [role=button]{border:1px solid var(--line);background:#fff;border-radius:4px;font-size:9px;line-height:1;padding:1px 4px;cursor:pointer;color:var(--muted)}.crewordbtns [role=button]:hover{border-color:var(--accent);color:var(--accent)}.rowwarn{border:none;background:none;font-size:13px;padding:0 2px;cursor:pointer;line-height:1}.qrow{display:flex;gap:10px;align-items:center;border:1px solid var(--line2);border-radius:9px;padding:9px 11px;margin-bottom:8px;background:#fafbf8;flex-wrap:wrap}.qrow .who{flex:1;min-width:220px}.qrow .who b{font-family:Barlow Semi Condensed;font-size:14.5px}.qrow .who small{display:block;color:var(--muted);font-size:11.5px}.qrow .stpill{font-size:11px;font-weight:700;border-radius:20px;padding:4px 10px;border:1px solid rgba(0,0,0,.1);white-space:nowrap}.qrow input.inv{width:130px}.doctabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.doctabs button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 16px;font-weight:700;font-size:13px}.doctabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.doctabs .btn{background:#3a4a58;color:#fff;border:none;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:600}.doctabs .btn:hover{background:#46586a}.invpill{font-family:Barlow Semi Condensed;font-weight:700;font-size:14px}.tpl-meta .tpl-po{display:block;padding:9px 12px;border-top:1px solid #EEF0ED;background:#fdf6ec;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tpl-meta .tpl-po span{display:block;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#a8722c;margin-bottom:2px}.tpl-meta .tpl-po b{display:block;text-align:left;font-size:13.5px}.tpl-terms{margin-top:auto;padding-top:12px;border-top:1px solid #D8DCD6;width:100%;font-size:9.5px;line-height:1.55;color:#4a525a}.tpl-terms .th{font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#98a0a7;margin-bottom:5px}.tpl-cut{border:none;border-top:2px dashed #B9BFC4;margin:30px 0 16px;position:relative;overflow:visible}.tpl-cut:before{content:"✂";position:absolute;left:6px;top:-11px;background:#fff;color:#98a0a7;font-size:13px;padding:0 5px}.tpl-advice{display:flex;justify-content:space-between;gap:24px}.tpl-advice h2{font-family:Barlow Semi Condensed,sans-serif;font-weight:800;font-size:21px;letter-spacing:.05em;margin:0 0 10px}.tpl-advice .kv{font-size:11.8px;min-width:290px;max-width:330px;border:1px solid #E3E6E2;border-radius:8px;overflow:hidden;align-self:flex-start}.tpl-advice .kv>div{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:7px 12px;border-top:1px solid #EEF0ED;line-height:1.35}.tpl-advice .kv>div:first-child{border-top:none}.tpl-advice .kv span{color:#79828a;font-weight:600;flex:none;white-space:nowrap}.tpl-advice .kv b{text-align:right;min-width:0;overflow-wrap:anywhere}.tpl-advice .kv{display:block;margin-top:0;row-gap:0}.tpl-advice .kv b{font-size:inherit;font-weight:700;color:inherit;text-transform:none;letter-spacing:normal;padding-top:0}.a4-band{display:flex;justify-content:space-between;align-items:baseline;border-bottom:3px solid #1B232B;padding-bottom:6px;margin-bottom:10px}.a4-brand{font-family:Barlow Semi Condensed,sans-serif;font-weight:800;font-size:19px;letter-spacing:.04em}.a4-meta{font-size:11px;color:#555}.f12doc h2{font-size:13px;margin:12px 0 4px;border-bottom:2px solid #222;padding-bottom:2px;font-family:Barlow Semi Condensed,sans-serif;text-transform:uppercase;letter-spacing:.05em}.f12doc p,.f12doc div.val{font-size:12px;line-height:1.4;margin:2px 0;white-space:pre-wrap}.f12doc .lab{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#555;margin-top:5px}.f12grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px 14px}.f12foot{font-size:9px;color:#666;margin-top:auto;padding-top:10px;border-top:1px solid #999;display:flex;justify-content:space-between}.confchip.f12held{background:#f8e3c0;color:#7a4e08;border:1px dashed #C99A3C}.myobstat{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px}.myobdot{display:inline-block;width:10px;height:10px;border-radius:50%}.myobdot.on{background:#1e7a34}.myobdot.off{background:#9aa4ad}.myobdot.warn{background:#e8a013}.pushpill{font-size:10px;font-weight:800;letter-spacing:.04em;border-radius:20px;padding:3px 9px;white-space:nowrap}.pushpill.not_connected{background:#eef0ed;color:#5a636b}.pushpill.awaiting_match{background:#f8e3c0;color:#7a4e08;border:1px dashed #C99A3C}.pushpill.ready{background:#ddebf9;color:#1f4e79}.pushpill.pushed{background:#1e7a34;color:#fff}.pushpill.error{background:#f5c9c2;color:#8a2418}.quoting{background:#fdf3e3;border:1px solid #F0C88A;border-radius:8px;padding:8px 10px;font-size:12.5px;color:#6b3f0a;margin-top:8px}.quoting>.note{margin-left:8px;color:#9a6a2a}.quoting ul{margin:4px 0 0;padding-left:18px}.quoting li{margin:2px 0;white-space:pre-wrap}.quoting-edit textarea{font-family:inherit}.mfoot-hint{font-size:12px;color:var(--muted);align-self:center}.sig-preview{border:1.5px dashed var(--line);border-radius:8px;background:#fff;padding:8px;display:inline-block;min-width:240px}.sig-preview img{max-height:80px;max-width:100%;display:block}.pause-banner{flex-shrink:0;background:#c0362c;color:#fff;font-weight:700;font-size:13px;line-height:1.35;padding:7px 16px;text-align:center}@media screen{html.sending-paused .overlay,html.sending-paused .print-root{top:var(--pause-banner-h,0px)}html.sending-paused .print-bar{top:calc(12px + var(--pause-banner-h,0px))}html.sending-paused .modal{max-height:calc(100vh - 56px - var(--pause-banner-h,0px))}html.sending-paused .modal.full{height:calc(100vh - var(--pause-banner-h,0px));max-height:calc(100vh - var(--pause-banner-h,0px))}}
