:root{--bg:#f4f5f7;--surface:#ffffff;--surface-2:#fafbfc;--line:#e2e5ea;--line-strong:#cbd1d9;--ink:#141922;--ink-2:#4a5464;--ink-3:#7b8697;--accent:#8f1d1d;--accent-soft:#fdf2f2;--accent-line:#f0cfcf;--pass:#1a7a4c;--pass-soft:#eaf6f0;--fail:#b3261e;--fail-soft:#fdeceb;--na:#6b7280;--na-soft:#f1f2f4;--warn:#9a6400;--warn-soft:#fdf5e4;--info:#1f5f9e;--info-soft:#eef4fb;--r:10px;--r-lg:14px;--shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--shadow-lg:0 8px 28px rgba(16,24,40,.12);--tap:48px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;min-height:100%}body{font:15px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}.shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.topbar{gap:14px;background:#171c25;padding:calc(10px + env(safe-area-inset-top)) 18px 10px}.brand,.topbar{display:flex;align-items:center;color:#fff}.brand{gap:9px;font-weight:700;letter-spacing:-.02em;font-size:16px}.brand:hover{text-decoration:none}.brand .mk{width:26px;height:26px;border-radius:7px;background:linear-gradient(150deg,#c0392b,#7d1616);display:grid;place-items:center;font-size:14px}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:#aeb6c2}.avatar{width:30px;height:30px;border-radius:50%;background:#3a4557;display:grid;place-items:center;font-size:12px;font-weight:700;color:#e6eaf0;flex:0 0 auto}.rolechip{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;background:#2b3444;color:#c3cbd8;border-radius:20px;padding:3px 9px}.tabs{display:flex;gap:2px;background:#171c25;padding:0 12px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:11px 18px 13px;color:#98a2b3;font-size:14px;font-weight:550;white-space:nowrap;border-bottom:3px solid transparent;text-decoration:none}.tabs a:hover{color:#d7dde5;text-decoration:none}.tabs a.on{color:#fff;border-bottom-color:#c0392b}.tabs .cnt{margin-left:7px;background:#2b3444;color:#c3cbd8;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700}.tabs a.on .cnt{background:#c0392b;color:#fff}main{flex:1 1 auto;padding:20px 18px 80px}.wrap{max-width:1160px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.card+.card{margin-top:14px}.card-h{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.card-h h3{font-size:15px;margin-right:auto}.card-b{padding:18px}.pagehead{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap}.pagehead h2{font-size:22px}.pagehead .sub{color:var(--ink-3);font-size:13px;margin-top:3px}.pagehead .sp{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.btn{min-height:var(--tap);padding:0 20px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line-strong);font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.12s;color:var(--ink)}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.98)}.btn.pri{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.pri:hover{background:#7d1616}.btn.dark{background:#1d2430;color:#fff;border-color:#1d2430}.btn.sm{min-height:38px;padding:0 14px;font-size:13px;border-radius:8px}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.danger{color:var(--fail);border-color:var(--accent-line)}.btn:disabled{opacity:.4;pointer-events:none}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.pill.ok{background:var(--pass-soft);color:var(--pass)}.pill.bad{background:var(--fail-soft);color:var(--fail)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--info-soft);color:var(--info)}.pill.mut{background:var(--na-soft);color:var(--na)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow)}.stat .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:650}.stat .v{font-size:27px;font-weight:680;letter-spacing:-.03em;margin-top:5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat .m{font-size:12px;color:var(--ink-3);margin-top:2px}.stat.alert .v{color:var(--fail)}.stat.good .v{color:var(--pass)}.row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);min-height:var(--tap)}.row:last-child{border-bottom:none}.row.tap{cursor:pointer;transition:background .1s;text-decoration:none;color:inherit}.row.tap:hover{background:var(--surface-2);text-decoration:none}.row .grow{flex:1 1;min-width:0}.row .t{font-weight:600;font-size:14.5px}.row .s{font-size:12.5px;color:var(--ink-3);margin-top:2px}.row .chev{color:var(--line-strong);font-size:20px}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fld{display:block;margin-bottom:14px}.fld>span{display:block;font-size:12px;font-weight:650;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;min-height:var(--tap);padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);outline:none}textarea{min-height:80px;resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.grid2{grid-template-columns:1fr 1fr;grid-gap:0 14px}.grid2,.grid3{display:grid;gap:0 14px}.grid3{grid-template-columns:repeat(3,1fr);grid-gap:0 14px}@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}.kvlist .kv{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px dotted var(--line)}.kvlist .kv:last-child{border-bottom:none}.kvlist dt{color:var(--ink-3);font-size:12.5px}.kvlist dd{margin:0;font-weight:600;text-align:right}.crumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:14px;flex-wrap:wrap}.crumb,.empty{color:var(--ink-3)}.empty{text-align:center;padding:44px 20px}.empty .ico{font-size:34px;opacity:.35;margin-bottom:8px}.note-box{border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.5}.note-box.info{background:var(--info-soft);border:1px solid #cfe0f2}.note-box.warn{background:var(--warn-soft);border:1px solid #f0e0b8}.note-box.bad{background:var(--fail-soft);border:1px solid var(--accent-line);color:var(--fail)}.note-box.ok{background:var(--pass-soft);border:1px solid #b9e0cb;color:var(--pass)}.insp-head{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:14px;box-shadow:var(--shadow)}.insp-head .ti{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.insp-head h2{font-size:18px}.progbar{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:12px}.progbar i{display:block;height:100%;transition:width .25s ease}.progmeta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);margin-top:6px;gap:12px}.sec{margin-bottom:14px}.sec-h{display:flex;align-items:center;gap:12px;padding:13px 18px;background:#1d2430;color:#fff;border-radius:var(--r-lg) var(--r-lg) 0 0;font-weight:650;font-size:14px;flex-wrap:wrap}.sec-h .n{background:rgba(255,255,255,.14);border-radius:20px;padding:2px 9px;font-size:11.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sec-h .ref{margin-left:auto;font-size:11.5px;font-weight:500;color:#9aa5b4}.sec-body{background:var(--surface);border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden}.item{padding:14px 18px;border-bottom:1px solid var(--line);scroll-margin-top:150px}.item:last-child{border-bottom:none}.item.flagged{background:var(--fail-soft)}.item .q{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.item .qt{flex:1 1;min-width:220px;font-size:14.5px;line-height:1.4}.item .qt .code{display:block;font-size:11px;color:var(--ink-3);font-weight:650;letter-spacing:.03em;margin-bottom:3px}.tri{display:flex;gap:6px;flex:0 0 auto}.tri button{min-width:58px;height:var(--tap);border:1.5px solid var(--line-strong);border-radius:9px;background:var(--surface);font-weight:700;font-size:13px;color:var(--ink-3);transition:.1s}.tri button.pass.on{background:var(--pass);border-color:var(--pass);color:#fff}.tri button.fail.on{background:var(--fail);border-color:var(--fail);color:#fff}.tri button.na.on{background:var(--na);border-color:var(--na);color:#fff}.numrow{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.numrow label{font-size:13px;color:var(--ink-2);font-weight:600}.numrow input{max-width:130px;min-height:42px}.numrow .u{font-size:13px;color:var(--ink-3)}.defcard{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r);padding:14px;margin-top:12px}.defcard .dh{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.defcard .dh strong{font-size:13px;color:var(--accent);letter-spacing:.02em}.sevrow{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.sevrow button{padding:8px 13px;border-radius:8px;border:1.5px solid var(--line-strong);background:#fff;font-size:12.5px;font-weight:650;min-height:40px}.sevrow button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.photostrip{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.photo{width:82px;height:82px;border-radius:9px;background:#e8ebef;border:1px solid var(--line-strong);display:grid;place-items:center;font-size:11px;color:var(--ink-3);text-align:center;position:relative;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.photo.add{border-style:dashed;cursor:pointer;font-size:24px}.photo .x{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;width:22px;height:22px;border-radius:50%;font-size:13px;line-height:22px;text-align:center;cursor:pointer}.sigbox{border:1.5px dashed var(--line-strong);border-radius:var(--r);background:var(--surface-2);position:relative;touch-action:none}.sigbox canvas{display:block;width:100%;height:170px;border-radius:var(--r)}.sigbox .hint{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-3);font-size:13px;pointer-events:none}.sigbox.signed .hint{display:none}.footbar{position:-webkit-sticky;position:sticky;bottom:0;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);margin:18px -18px -80px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 18px calc(12px + env(safe-area-inset-bottom));z-index:15}.footbar .info{font-size:13px;color:var(--ink-3);flex:1 1;min-width:140px}.seg{background:var(--na-soft);border-radius:9px;padding:3px;gap:2px}.seg,.seg a{display:inline-flex}.seg a{padding:7px 14px;border-radius:7px;font-size:13px;font-weight:600;color:var(--ink-2);min-height:38px;align-items:center}.seg a,.seg a:hover{text-decoration:none}.seg a.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.tl{position:relative;padding-left:22px}.tl:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--line)}.tl .ev{position:relative;padding:0 0 16px}.tl .ev:before{content:"";position:absolute;left:-19px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--line-strong);border:2px solid #fff}.tl .ev.ok:before{background:var(--pass)}.tl .ev.bad:before{background:var(--fail)}.tl .ev .d{font-size:12px;color:var(--ink-3)}.tl .ev .n{font-weight:600;font-size:14px;margin:1px 0 3px}.syschip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:12.5px;margin:0 6px 6px 0}.syschip b{font-weight:650}.authwrap{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px;background:#171c25}.authcard{background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:400px;padding:30px}.authcard .brand{color:var(--ink);justify-content:center;margin-bottom:6px}.authcard .tag{text-align:center;color:var(--ink-3);font-size:13px;margin-bottom:22px}.err{background:var(--fail-soft);border:1px solid var(--accent-line);color:var(--fail);border-radius:10px}.err,.ok-msg{padding:11px 13px;font-size:13.5px;margin-bottom:14px}.ok-msg{background:var(--pass-soft);border:1px solid #b9e0cb;color:var(--pass);border-radius:10px}.report{background:#fff;padding:38px;border-radius:var(--r-lg);border:1px solid var(--line);font-size:13px;line-height:1.5}.report h1{font-size:20px;letter-spacing:-.02em}.rep-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #1d2430;padding-bottom:14px;margin-bottom:18px;gap:20px;flex-wrap:wrap}.rep-co{font-size:12px;color:var(--ink-2);text-align:right;line-height:1.6}.rep-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 30px;gap:0 30px;margin-bottom:20px}@media(max-width:700px){.rep-grid{grid-template-columns:1fr}}.rep-sec{margin:22px 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#1d2430;border-bottom:1px solid var(--line-strong);padding-bottom:5px}table.rep{width:100%;border-collapse:collapse;font-size:12.5px}table.rep th{text-align:left;padding:7px 8px;background:var(--surface-2);border-bottom:1px solid var(--line-strong);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}table.rep td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.rep tr.grp td{background:#1d2430;color:#fff;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase}table.rep td.st-pass{color:var(--pass);font-weight:700}table.rep td.st-fail{color:var(--fail);font-weight:700}table.rep td.st-na{color:var(--na)}.rep-sig{display:grid;grid-template-columns:1fr 1fr;grid-gap:30px;gap:30px;margin-top:26px}@media(max-width:700px){.rep-sig{grid-template-columns:1fr}}.rep-sig .box img{max-height:60px;display:block;margin-bottom:4px}.rep-sig .line{border-top:1px solid var(--ink);padding-top:6px;font-size:11.5px;color:var(--ink-3)}.banner{padding:12px 16px;border-radius:var(--r);font-weight:600;margin-bottom:18px;font-size:13.5px}.banner.ok{background:var(--pass-soft);color:var(--pass);border:1px solid #b9e0cb}.banner.bad{background:var(--fail-soft);color:var(--fail);border:1px solid var(--accent-line)}.banner.warn{background:var(--warn-soft);color:var(--warn);border:1px solid #f0e0b8}@media print{.crumb,.footbar,.no-print,.pagehead,.tabs,.topbar{display:none!important}.report,main{padding:0}.report{border:none;border-radius:0;font-size:11.5px}body{background:#fff}table.rep{page-break-inside:auto}table.rep tr{page-break-inside:avoid}.rep-sec{page-break-after:avoid}}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin-bottom:6px;font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.cal-head>div{text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.cal-cell{display:block;min-height:96px;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-decoration:none;color:inherit;overflow:hidden}.cal-cell.empty-cell{border-style:dashed;opacity:.35;min-height:96px}.cal-cell:hover{border-color:var(--accent-line);background:var(--accent-soft)}.cal-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-cell.has{background:var(--surface-2)}.cal-cell .dnum{font-size:12.5px;font-weight:650;color:var(--ink-2);margin-bottom:4px}.cal-cell .chip,.cal-cell.today .dnum{color:var(--accent)}.cal-cell .chip{font-size:11px;line-height:1.35;padding:2px 5px;margin-bottom:3px;border-radius:5px;background:var(--accent-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-cell .chip.more{background:transparent;color:var(--ink-3)}@media (max-width:720px){.cal-cell{min-height:64px;padding:4px}.cal-cell .chip{font-size:10px}}