:root{--bg:#f7f8f6;--surface:#ffffff;--surface-2:#f7f8f6;--surface-3:#eef1ea;--line:#e4e8e0;--line-strong:#d3d9cc;--ink:#1c241d;--ink-2:#4b5548;--ink-3:#8a938a;--accent:#2d4c1c;--accent-strong:#3a6327;--accent-bright:#5a8f3a;--accent-deep:#23321e;--accent-soft:#eef3ea;--accent-line:#cdddbf;--forest:#23321e;--teal:#0c353b;--section:#0c353b;--pass:#2f855a;--pass-soft:#e8f5ee;--fail:#dc2626;--fail-soft:#fdecec;--fail-line:#f6cfcf;--na:#64748b;--na-soft:#eef1f5;--warn:#b45309;--warn-soft:#fdf4e5;--info:#1d4ed8;--info-soft:#eaf0fe;--r-sm:9px;--r:12px;--r-lg:16px;--r-xl:20px;--shadow:0 1px 2px rgba(15,23,42,.04),0 2px 8px rgba(15,23,42,.06);--shadow-md:0 4px 16px rgba(15,23,42,.08);--shadow-lg:0 16px 48px rgba(15,23,42,.14);--ring:0 0 0 3px var(--accent-soft);--tap:46px;--nav:#23321e;--nav-2:#2f4228;--nav-ink:#a6b29c;--nav-ink-2:#dfe6d7;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;min-height:100%}body{font:400 15px/1.5 var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}h1,h2,h3,h4{margin:0;font-weight:680;letter-spacing:-.02em;color:var(--ink)}a{color:var(--accent-strong);text-decoration:none}a:hover{color:var(--accent-deep)}.shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.topbar{gap:14px;background:var(--nav);padding:calc(11px + env(safe-area-inset-top)) 20px 11px}.brand,.topbar{display:flex;align-items:center;color:#fff}.brand{gap:10px;font-weight:720;letter-spacing:-.02em;font-size:16px}.brand:hover{color:#fff}.brand .logo-chip{display:flex;align-items:center;background:#fff;border-radius:10px;padding:5px 11px;box-shadow:0 1px 3px rgba(0,0,0,.18)}.brand .logo-chip img{height:30px;width:auto;display:block}.brand .mk{width:28px;height:28px;border-radius:9px;background:linear-gradient(150deg,#3a6327,#23321e);display:grid;place-items:center;font-size:15px;box-shadow:0 2px 8px rgba(35,50,30,.45)}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:11px;font-size:13px;color:var(--nav-ink)}.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(150deg,#2b3a52,#1b2639);display:grid;place-items:center;font-size:12px;font-weight:700;color:#e6eaf0;flex:0 0 auto}.rolechip{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;background:rgba(90,143,58,.22);color:#bfe6a0;border-radius:20px;padding:3px 10px}.tabs{display:flex;gap:2px;background:var(--nav);padding:0 14px;overflow-x:auto;scrollbar-width:none;box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:12px 18px 14px;color:var(--nav-ink);font-size:14px;font-weight:550;white-space:nowrap;border-bottom:3px solid transparent;text-decoration:none;transition:color .15s}.tabs a:hover{color:var(--nav-ink-2)}.tabs a.on{color:#fff;border-bottom-color:var(--accent-bright)}.tabs .cnt{margin-left:7px;background:var(--nav-2);color:var(--nav-ink-2);border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700}.tabs a.on .cnt{background:var(--accent-bright);color:#fff}main{flex:1 1 auto;padding:24px 20px 80px}.wrap{max-width:1180px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}.card+.card{margin-top:16px}.card-h{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.card-h h3{font-size:15px;margin-right:auto;font-weight:680}.card-b{padding:20px}.pagehead{display:flex;align-items:flex-end;gap:14px;margin-bottom:22px;flex-wrap:wrap}.pagehead h2{font-size:24px;font-weight:720}.pagehead .sub{color:var(--ink-3);font-size:13.5px;margin-top:4px}.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:620;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease;color:var(--ink)}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--surface-2);border-color:var(--line-strong);box-shadow:var(--shadow)}.btn:active{transform:translateY(1px)}.btn.pri{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 1px 2px rgba(35,50,30,.18)}.btn.pri:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;box-shadow:0 4px 14px rgba(35,50,30,.26)}.btn.dark{background:var(--nav);color:#fff;border-color:var(--nav)}.btn.dark:hover{background:var(--nav-2);color:#fff}.btn.sm{min-height:38px;padding:0 14px;font-size:13px;border-radius:var(--r-sm)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-3);box-shadow:none}.btn.danger{color:var(--fail);border-color:var(--fail-line)}.btn.danger:hover{background:var(--fail-soft)}.btn:disabled{opacity:.4;pointer-events:none}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;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(158px,1fr));grid-gap:14px;gap:14px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow);transition:box-shadow .15s,transform .15s}.stat:hover{box-shadow:var(--shadow-md)}.stat .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:650}.stat .v{font-size:28px;font-weight:720;letter-spacing:-.03em;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.stat .m{font-size:12px;color:var(--ink-3);margin-top:3px}.stat.alert .v{color:var(--fail)}.stat.good .v{color:var(--pass)}.row{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--line);min-height:var(--tap)}.row:last-child{border-bottom:none}.row.tap{cursor:pointer;transition:background .12s;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:620;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:16px}.fld>span{display:block;font-size:12px;font-weight:650;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}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 14px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}textarea{min-height:80px;resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}input::placeholder,textarea::placeholder{color:var(--ink-3)}.grid2{grid-template-columns:1fr 1fr;grid-gap:0 16px}.grid2,.grid3{display:grid;gap:0 16px}.grid3{grid-template-columns:repeat(3,1fr);grid-gap:0 16px}@media(max-width:700px){.grid2,.grid3{grid-template-columns:1fr}}.kvlist .kv{display:flex;justify-content:space-between;gap:16px;padding:9px 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:620;text-align:right}.crumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:16px;flex-wrap:wrap}.crumb,.empty{color:var(--ink-3)}.empty{text-align:center;padding:48px 20px}.empty .ico{font-size:34px;opacity:.4;margin-bottom:10px}.note-box{border-radius:var(--r);padding:13px 15px;font-size:13.5px;line-height:1.5}.note-box.info{background:var(--info-soft);border:1px solid #cfdcfb}.note-box.warn{background:var(--warn-soft);border:1px solid #f0e0b8}.note-box.bad{background:var(--fail-soft);border:1px solid var(--fail-line);color:var(--fail)}.note-box.ok{background:var(--pass-soft);border:1px solid var(--accent-line);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:16px 20px;margin-bottom:16px;box-shadow:var(--shadow-md)}.insp-head .ti{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.insp-head h2{font-size:18px}.progbar{height:7px;border-radius:7px;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:7px;gap:12px}.sec{margin-bottom:16px}.sec-h{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--section);color:#fff;border-radius:var(--r-lg) var(--r-lg) 0 0;font-weight:680;font-size:14px;flex-wrap:wrap}.sec-h .n{background:rgba(255,255,255,.16);color:#cfeede;border-radius:20px;padding:2px 10px;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:var(--nav-ink)}.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:15px 20px;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:var(--r-sm);background:var(--surface);font-weight:700;font-size:13px;color:var(--ink-3);transition:.12s}.tri button:hover{border-color:var(--ink-3)}.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(--fail-line);background:var(--fail-soft);border-radius:var(--r);padding:15px;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(--fail);letter-spacing:.02em}.sevrow{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.sevrow button{padding:8px 13px;border-radius:var(--r-sm);border:1.5px solid var(--line-strong);background:#fff;font-size:12.5px;font-weight:650;min-height:40px;transition:.12s}.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:var(--r-sm);background:var(--surface-3);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,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);margin:18px -20px -80px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:13px 20px calc(13px + 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(--surface-3);border-radius:var(--r);padding:3px;gap:2px}.seg,.seg a{display:inline-flex}.seg a{padding:7px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:600;color:var(--ink-2);min-height:38px;align-items:center;transition:.12s}.seg a,.seg a:hover{text-decoration:none}.seg a.on,.seg a:hover{color:var(--ink)}.seg a.on{background:#fff;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:620;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:var(--r-sm);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:linear-gradient(160deg,#23321e,#0c353b)}.authcard{background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;max-width:410px;padding:34px}.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:24px}.err{background:var(--fail-soft);border:1px solid var(--fail-line);color:var(--fail);border-radius:var(--r)}.err,.ok-msg{padding:11px 13px;font-size:13.5px;margin-bottom:14px}.ok-msg{background:var(--pass-soft);border:1px solid var(--accent-line);color:var(--pass);border-radius:var(--r)}.report{background:#fff;padding:40px;border-radius:var(--r-lg);border:1px solid var(--line);font-size:13px;line-height:1.5;box-shadow:var(--shadow)}.report h1{font-size:20px;letter-spacing:-.02em}.rep-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--accent);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:var(--accent-deep);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: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:8px;border-bottom:1px solid var(--line);vertical-align:top}table.rep tr.grp td{background:var(--nav);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:13px 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 var(--accent-line)}.banner.bad{background:var(--fail-soft);color:var(--fail);border:1px solid var(--fail-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;box-shadow:none}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:7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);text-decoration:none;color:inherit;overflow:hidden;transition:.12s}.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.today .dnum{color:var(--accent-strong)}.cal-cell .chip{font-size:11px;line-height:1.35;padding:2px 6px;margin-bottom:3px;border-radius:5px;background:var(--accent-soft);color:var(--accent-deep);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}}