:root{--ink:#0f172a;--muted:#6b7280;--faint:#94a3b8;--line:#e6eaf1;--line2:#eef1f6;--bg:#f6f8fb;--card:#fff;--brand:#d9251d;--dark:#1f2430;--blue:#0d66a5;--good:#15803d;--bad:#b91c1c;--amber:#b45309;--tap:44px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;padding:0;font:16px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--blue)}.wrap{max-width:720px;margin:0 auto;padding:12px 12px 96px}header.bar{z-index:10;background:var(--card);border-bottom:1px solid var(--line);padding:10px 12px;position:sticky;top:0}header.bar .brandbar{letter-spacing:1.4px;text-transform:uppercase;color:var(--brand);font-size:11px}header.bar h1{margin:2px 0 0;font-size:18px}header.bar .sub{color:var(--muted);font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:0;margin:0 0 12px;padding:14px}fieldset.card{border:1px solid var(--line)}legend{letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:0 6px;font-size:12px}.field{margin:0 0 12px;display:block}.field .label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.field input,.field textarea,select{border:1px solid var(--line);width:100%;color:var(--ink);min-height:var(--tap);background:#fff;border-radius:8px;padding:11px 12px;font-size:16px}.field textarea{resize:vertical;min-height:88px}.hint{color:var(--muted);margin-top:3px;font-size:12px;display:block}.hint.legend{margin-bottom:10px}.page-tag{color:var(--muted);margin:0 0 8px;font-size:12px}.choices{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:var(--tap);border:1px solid var(--line);min-width:64px;color:var(--ink);background:#fff;border-radius:22px;padding:0 14px;font-size:15px}.chip.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.chip.on.bad{background:var(--bad);border-color:var(--bad)}.row{border-top:1px solid var(--line);padding:12px 0}.row:first-of-type{border-top:0}.row-text{margin:0 0 8px;font-size:15px}.row-no{min-width:26px;color:var(--blue);font-weight:700;display:inline-block}.row-comment{border:1px solid var(--bad);width:100%;min-height:var(--tap);border-radius:8px;margin-top:8px;padding:10px 12px;font-size:16px}.statement{border-top:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.statement:first-of-type{border-top:0}.statement input{flex-shrink:0;width:24px;height:24px;margin-top:2px}.grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}@media (min-width:520px){.grid{grid-template-columns:repeat(10,1fr)}}.cell{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:46px;padding:0;display:flex}.cell-no{color:var(--muted);font-size:10px}.cell-val{font-size:17px;font-weight:700}.cell.set{border-color:var(--good);background:#ecfdf5}.cell.set .cell-val{color:var(--good)}.cell.set.bad{border-color:var(--bad);background:#fef2f2}.cell.set.bad .cell-val{color:var(--bad)}.device-pick{margin:0 0 10px}.device-pick .chip b{margin-right:4px;font-weight:800}.hint.tally{margin-top:10px}button.more,button.primary,button.ghost,button.danger{min-height:var(--tap);border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:0 18px;font-size:15px}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}button.danger{border-color:var(--bad);color:var(--bad)}button:disabled{opacity:.45}.actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.sticky-actions{z-index:20;background:var(--card);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));justify-content:flex-end;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.sigpad{margin:0 0 14px}.sigpad .label{color:var(--muted);margin:0 0 6px;font-size:13px}.sigcanvas{border:1px dashed var(--line);touch-action:none;background:#fff;border-radius:10px;width:100%;height:190px}.sigactions{gap:10px;margin-top:8px;display:flex}.status{border-radius:20px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.status.COMPLETE{color:var(--good);background:#ecfdf5}.status.AWAITING_BUILDER{color:#b45309;background:#fffbeb}.status.NOT_APPLICABLE{color:var(--muted);background:#f3f4f6}.status.DRAFT{color:var(--blue);background:#eff6ff}.itp-line{border-top:1px solid var(--line);color:inherit;min-height:var(--tap);justify-content:space-between;align-items:center;gap:10px;padding:13px 0;text-decoration:none;display:flex}.itp-line:first-of-type{border-top:0}.itp-line .code{color:var(--blue);min-width:62px;font-weight:700}.itp-line .name{flex:1;min-width:0;font-size:15px}.itp-line .area{color:var(--muted);font-size:12px}.na-reason{color:var(--muted);font-size:12px;font-style:italic}.summary{color:var(--muted);gap:14px;margin:6px 0 0;font-size:13px;display:flex}.summary strong{color:var(--ink)}.error{color:var(--bad);margin:8px 0 0;font-size:14px}.rfi-tag{color:var(--bad);font-size:12px;font-weight:700}.row .ref{color:var(--blue);font-weight:700}input[type=file]{border:1px dashed var(--line);width:100%;min-height:var(--tap);background:#fff;border-radius:8px;padding:10px;font-size:15px}a.primary{text-align:center;text-decoration:none;display:inline-block}.linkbox{border:1px solid var(--line);width:100%;min-height:var(--tap);background:#f9fafb;border-radius:8px;padding:11px 12px;font-family:ui-monospace,monospace;font-size:13px}.card.warn{background:#fffbfb;border-color:#fca5a5}.card.warn legend{color:var(--bad)}.draftbox{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:8px;width:100%;margin-top:8px;padding:11px 12px;font-size:14px;line-height:1.5}.overdue{color:var(--bad);font-weight:700}.inline-input{border:1px solid var(--line);min-width:140px;min-height:var(--tap);border-radius:8px;flex:1;padding:10px 12px;font-size:15px}.impact{color:var(--bad);margin-top:2px;font-size:13px}.alert{border-top:1px solid var(--line2);color:inherit;min-height:0;padding:6px 0;text-decoration:none;display:block}.alert:first-of-type{border-top:0}.alert-head{color:var(--ink);min-width:0;font-size:13.5px;font-weight:600;display:block}.alert .area{display:block}@media (min-width:900px){.alert{justify-content:space-between;align-items:baseline;gap:10px;padding:5px 0;display:flex}.alert-head{display:inline}.alert .area{flex-shrink:0;display:inline}}.alert-detail{margin-top:2px;font-size:13px;display:block}.shell{min-height:100vh}.side{display:none}.topbar{z-index:30;background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:54px;padding:8px 12px;display:flex;position:fixed;top:0;left:0;right:0}.topbar img{width:auto;height:34px;display:block}.topbar .grow{flex:1}.topbar .who{color:var(--muted);text-align:right;font-size:12px}.contentcol{padding-top:54px}.content{padding:14px 12px 96px}.content-inner{min-width:0;max-width:720px;margin:0 auto}.content-inner.wide{max-width:1160px}@media (min-width:1024px){.shell{grid-template-columns:246px minmax(0,1fr);display:grid}.topbar{display:none}.contentcol{grid-area:1/2;min-width:0;padding-top:0}.side{background:var(--card);border-right:1px solid var(--line);flex-direction:column;grid-area:1/1;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side-logo{padding:2px 8px 16px}.side-logo img{width:172px;height:auto;display:block}.content{padding:26px 30px 60px}}.nav{flex-direction:column;gap:2px;display:flex}.nav a{color:#475569;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;font-size:14.5px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:#f1f5f9}.nav a.on{background:var(--dark);color:#fff;font-weight:600}.nav .nav-ico{text-align:center;opacity:.75;width:18px;font-size:15px}.side-user{border-top:1px solid var(--line2);align-items:center;gap:10px;margin-top:auto;padding:12px 8px 4px;display:flex}.avatar{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.side-user .nm{font-size:13.5px;font-weight:600;line-height:1.25}.side-user .rl{color:var(--muted);font-size:12px}.side-user form{margin-left:auto}.side-user button{color:var(--muted);cursor:pointer;background:0 0;border:0;min-height:0;padding:6px;font-size:12px}.m-nav summary{cursor:pointer;border:1px solid var(--line);color:#475569;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;list-style:none;display:flex}.m-nav summary::-webkit-details-marker{display:none}.m-nav[open] .m-drawer{z-index:40;border:1px solid var(--line);background:#fff;border-radius:12px;min-width:230px;padding:8px;position:absolute;top:52px;right:12px;box-shadow:0 12px 30px #0f172a24}.crumb{color:var(--faint);margin:0 0 2px;font-size:13px}.crumb a{color:var(--faint);text-decoration:none}.pagehead{align-items:flex-start;gap:12px;margin:0 0 16px;display:flex}.pagehead .grow{flex:1;min-width:0}.pagehead h1{letter-spacing:-.3px;margin:0;font-size:24px}.pagehead .subtitle{color:var(--muted);margin:3px 0 0;font-size:14px}@media (min-width:1024px){.pagehead h1{font-size:30px}}.btn-dark{min-height:var(--tap);background:var(--dark);border:1px solid var(--dark);color:#fff;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:0 18px;font-size:14.5px;font-weight:600;text-decoration:none;display:inline-flex}.aiband{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px;margin:0 0 14px;padding:10px 16px}.aiband .band-body{min-width:0;font-size:14px}.aiband a{color:inherit;padding:4px 0;text-decoration:none;display:block}.aiband .band-more{color:var(--muted);margin:0;padding-top:4px;font-size:12.5px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}@media (min-width:900px){.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}.stat{background:var(--card);border:1px solid var(--line);border-radius:11px;min-width:0;padding:14px 16px}.stat .k{letter-spacing:1px;text-transform:uppercase;color:var(--faint);font-size:11px}.stat .v{margin:2px 0;font-size:30px;font-weight:800;line-height:1.15}.stat .v.good{color:var(--good)}.stat .v.bad{color:var(--bad)}.stat .v.warn{color:#d97706}.stat .n{color:var(--muted);font-size:12.5px}@media (min-width:900px){.stat .n{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;min-width:0;margin:0 0 14px;overflow:hidden}.panel-h{border-bottom:1px solid var(--line2);align-items:baseline;gap:10px;padding:13px 16px;display:flex}.panel-h b{font-size:15.5px}.panel-h .side-note{color:var(--faint);margin-left:auto;font-size:12.5px}.panel-b{padding:6px 16px 12px}.tblwrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;letter-spacing:1px;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line2);white-space:nowrap;background:#fbfcfe;padding:9px 14px;font-size:11px}.tbl td{border-bottom:1px solid var(--line2);vertical-align:top;padding:12px 14px}.tbl tr:last-child td{border-bottom:0}.tbl td.t{font-weight:600}.tbl .sub{color:var(--muted);margin-top:1px;font-size:12.5px;font-weight:400}.tbl a.rowlink{color:inherit;text-decoration:none;display:block}.pill{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.p-g{color:#15803d;background:#dcfce7}.p-a{color:#b45309;background:#fef3c7}.p-r{color:#b91c1c;background:#fee2e2}.p-b{color:#1d4ed8;background:#dbeafe}.p-n{color:#475569;background:#f1f5f9}.bar{background:var(--line2);border-radius:999px;width:120px;height:7px;overflow:hidden}.bar i{background:var(--dark);border-radius:999px;height:7px;display:block}.bar-note{color:var(--muted);margin-top:3px;font-size:12px}.panel2{grid-template-columns:1fr;gap:14px;margin:0 0 14px;display:grid}@media (min-width:900px){.panel2{grid-template-columns:1fr 1fr}}.panel2 .panel{margin:0}.li-row{border-top:1px solid var(--line2);justify-content:space-between;align-items:center;gap:10px;padding:11px 0;display:flex}.li-row:first-child{border-top:0}.li-row .li-t{font-size:14px;font-weight:600}.li-row .li-s{color:var(--muted);font-size:12.5px}.login-logo{justify-content:center;padding:30px 0 6px;display:flex}.login-logo img{width:210px;height:auto}.done-fold>summary{cursor:pointer;color:#4b5563;border-top:1px solid #e5e7eb;margin-top:4px;padding:10px 2px;font-size:14px;font-weight:600;list-style:none}.done-fold>summary:before{content:"▸ ";color:#9ca3af}.done-fold[open]>summary:before{content:"▾ "}.done-fold>summary::-webkit-details-marker{display:none}.matrix-preview{border-collapse:collapse;min-width:100%;font-size:13px}.matrix-preview th,.matrix-preview td{text-align:center;border:1px solid #e5e7eb;padding:5px 8px}.matrix-preview th{color:#4b5563;background:#f8fafc;font-weight:600}.matrix-preview td{color:#15803d;font-weight:700}.matrix-preview td:first-child{color:#1f2937;font-weight:500}.matrix-preview td.on{background:#ecfdf5}.matrix-preview button.tick{color:#15803d;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:40px;height:40px;font-size:18px;font-weight:700}.matrix-preview td.on button.tick{background:#dcfce7;border-color:#86efac}.matrix-preview button.tick:disabled{cursor:default}.cols{gap:10px;display:flex}.cols>.field{flex:1;min-width:0}.fip-wrap{display:block}.fip-form{flex-direction:column;display:flex}.fip-draw{margin-top:0}@media (min-width:1000px){.fip-wrap{grid-template-columns:420px 1fr;align-items:start;gap:14px;display:grid}.fip-draw{position:sticky;top:14px}}.fip-h{letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:11.5px;font-weight:700;display:flex}.fip-h .n{background:var(--dark);color:#fff;letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;width:19px;height:19px;font-size:11px;display:inline-flex}.fip-seg{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.fip-seg button{font:inherit;color:var(--muted);min-height:var(--tap);background:#fff;border:0;flex:1;padding:10px 6px;font-size:15px;font-weight:600}.fip-seg button+button{border-left:1px solid var(--line)}.fip-seg button.on{background:var(--dark);color:#fff}.fip-step{align-items:center;gap:10px;display:flex}.fip-step button{width:var(--tap);height:var(--tap);border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;font-size:22px;font-weight:600;line-height:1}.fip-step button:disabled{color:#ccd2db}.fip-step .val{color:var(--brand);text-align:center;min-width:34px;font-size:22px;font-weight:700}.fip-step .max{color:var(--muted);font-size:12px}.fip-labels{flex-direction:column;gap:7px;margin-top:10px;display:flex}.fip-labels .row{border:0;align-items:center;gap:9px;padding:0;display:flex}.fip-labels .tag{color:var(--ink);flex-shrink:0;width:58px;font-size:12px;font-weight:700}.fip-labels input{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:8px 11px;font-size:16px}.fip-picked{flex-direction:column;gap:6px;margin-top:10px;display:flex}.fip-picked .p{background:#fff4f2;border:1px solid #f2ded9;border-radius:8px;align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:14px;display:flex}.fip-picked .p span{color:var(--muted);font-size:12px}.fip-picked .p b{color:var(--brand);margin-right:auto}.fip-picked .p button{color:var(--muted);background:0 0;border:0;border-radius:8px;flex-shrink:0;width:32px;height:32px;font-size:18px}.fip-batt{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.fip-batt .b{align-items:center;gap:7px;display:flex}.fip-batt .b .tag{color:var(--muted);font-size:11px;font-weight:700}.fip-batt input{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:8px 9px;font-size:16px}.fip-answers{color:var(--muted);margin:0 0 8px;font-size:14px;font-weight:600}.fip-answers b{color:var(--brand)}.fip-svg svg{width:100%;height:auto;display:block}.fip-status{color:var(--muted);align-self:center;margin-right:auto;font-size:12px}.fip-status b{color:var(--good)}.fip-zoom{z-index:60;background:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.fip-zoom-bar{padding:10px 12px calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--line);color:var(--muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.fip-zoom-body{-webkit-overflow-scrolling:touch;flex:1;padding:8px;overflow:auto}.fip-zoom-body svg{width:900px;max-width:none;height:auto;display:block}@media (min-width:900px){.fip-zoom-body svg{width:1400px}}
