:root{--color-bg:#F4F7F8;--color-surface:#FFFFFF;--color-sunken:#F7FAFA;--color-line:#DCE5E9;--color-line-soft:#EAF0F2;--color-ink-900:#0E2A33;--color-ink-700:#1F4351;--color-ink-500:#526C77;--color-ink-300:#8A9DA5;--color-brand-700:#12504D;--color-brand-800:#0E3B3F;--color-brand-900:#072428;--color-brand-600:#176C68;--color-brand-50:#E8F2F1;--color-info:#1F6FB2;--color-action:#E8590C;--color-warn:#B7791F;--color-danger:#C53030;--color-success:#2F855A;--color-neutral:#6B7A80;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--shadow-card:0 1px 2px rgba(14,42,51,.06);--shadow-pop:0 12px 32px rgba(14,42,51,.16);--font-size-xs:11.5px;--font-size-sm:12.5px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:17px;--font-size-xl:20px;--font-size-2xl:26px;--line-tight:1.35;--line-base:1.55;--line-loose:1.65;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--layout-sidebar:248px;--layout-detail:380px;--layout-detail-wide:520px}[data-density=comfortable]{--density-row-y:11px;--density-row-x:12px;--density-control:38px}[data-density=compact]{--density-row-y:7px;--density-row-x:10px;--density-control:32px}[data-theme=dark]{--color-bg:#0B1A1F;--color-surface:#12262C;--color-sunken:#0E2026;--color-line:#23414A;--color-line-soft:#1B343B;--color-ink-900:#EAF2F4;--color-ink-700:#C3D5DA;--color-ink-500:#93ACB4;--color-ink-300:#6A838B;--color-brand-700:#12504D;--color-brand-600:#176C68;--color-brand-50:#123A38;--color-info:#4FA3E3;--color-action:#FF7A33;--color-warn:#E0A93F;--color-danger:#F06565;--color-success:#4CAF7D;--color-neutral:#8C9BA1}*{box-sizing:border-box}html{height:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%}body,#app{min-height:100%}body{margin:0;background:var(--color-bg);color:var(--color-ink-700);font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:var(--font-size-base);line-height:var(--line-base);overflow-x:hidden}h1,h2,h3,h4,h5{margin:0;color:var(--color-ink-900)}button{font:inherit;cursor:pointer;touch-action:manipulation}input,select,textarea{font:inherit;touch-action:manipulation}a{color:var(--color-brand-600)}::selection{background:color-mix(in srgb,var(--color-brand-600) 22%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:calc(var(--density-control, 38px) - 4px);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid #BDCED3;background:var(--color-surface);color:var(--color-brand-700);font-size:var(--font-size-base);white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover{background:var(--color-brand-50)}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.pri{background:var(--color-brand-600);border-color:var(--color-brand-600);color:#fff;font-weight:var(--weight-semibold)}.btn.pri:hover{background:var(--color-brand-700)}.btn.dan{color:var(--color-danger);border-color:#e4bebe}.btn.dan:hover{background:#fdf3f3}.btn.sm{height:26px;padding:0 10px;font-size:var(--font-size-sm)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--color-brand-50)}.field{display:grid;gap:6px;font-size:var(--font-size-base);color:var(--color-ink-700);margin-bottom:var(--space-3)}.field>span{font-weight:var(--weight-medium)}.field .hint{font-size:var(--font-size-sm);color:var(--color-ink-500);font-weight:var(--weight-regular)}.field .err{font-size:var(--font-size-sm);color:var(--color-danger)}.field input,.field select,.field textarea{padding:9px 11px;border:1px solid #AFC3CA;border-radius:var(--radius-sm);width:100%;background:var(--color-surface);color:var(--color-ink-900)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-brand-50);border-color:var(--color-brand-600)}.field.invalid input,.field.invalid textarea,.field.invalid select{border-color:var(--color-danger)}.chip{padding:5px 12px;border-radius:var(--radius-pill);font-size:var(--font-size-sm);background:var(--color-surface);border:1px solid #D5E0E4;color:var(--color-ink-700);transition:background .12s ease,border-color .12s ease}.chip:hover{border-color:#b7c9cf}.chip:active{background:var(--color-brand-50)}.chip.on{background:var(--color-brand-600);border-color:var(--color-brand-600);color:#fff;font-weight:var(--weight-semibold)}.search{flex:1;min-width:190px;height:calc(var(--density-control, 38px) - 4px);border:1px solid #C9D6DB;border-radius:var(--radius-sm);background:var(--color-surface);display:flex;align-items:center;gap:var(--space-2);padding:0 11px}.search input{border:0;outline:0;width:100%;height:100%;min-width:0;font-size:var(--font-size-base);background:transparent;color:var(--color-ink-900)}.search input::placeholder{color:var(--color-ink-300)}.mag{width:13px;height:13px;border:1.7px solid #9FB2B9;border-radius:50%;position:relative;flex:none}.mag:after{content:"";position:absolute;right:-4px;bottom:-3px;width:6px;height:1.7px;background:#9fb2b9;transform:rotate(45deg)}.toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-3);flex-wrap:wrap}.muted{color:var(--color-ink-500);font-size:var(--font-size-sm)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.head-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.spacer{flex:1}.status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--weight-semibold);white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.status.nodot:before{display:none}.tone-neutral{background:#6b7a8014;color:#54636b}.tone-info{background:#1f6fb214;color:#1a5c93}.tone-action{background:#e8590c16;color:#c24a08}.tone-warn{background:#b7791f18;color:#96620f}.tone-danger{background:#c5303014;color:#a82828}.tone-success{background:#2f855a14;color:#276e4b}.dot-red{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-danger);vertical-align:middle;flex:none}.avatar{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;background:linear-gradient(135deg,#176c68,#0e3b3f);color:#fff;font-size:13px;font-weight:var(--weight-bold)}.panel{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-card)}.empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-ink-500)}.empty b{display:block;color:var(--color-ink-900);font-size:var(--font-size-md);margin-bottom:4px}.skeleton{background:linear-gradient(90deg,#edf2f4,#e3ebee,#edf2f4);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.2s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--color-brand-600);outline-offset:2px}@media(max-width:767px){:root{--space-3:10px;--space-4:12px;--space-5:16px;--space-6:24px;--space-7:32px;--radius-md:12px;--radius-lg:16px}html,body,#app{min-height:100%}body{font-size:15px;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}.wrap,.page{min-width:0!important;max-width:100%!important}input,select,textarea{font-size:16px}input:not([type=checkbox]):not([type=radio]),select{min-height:44px}.btn{min-height:44px;height:auto;padding:10px 14px}.btn.sm{min-height:40px;height:auto;padding:8px 12px;font-size:13px}.chip{min-height:40px;padding:8px 14px}.toolbar{position:sticky;top:0;z-index:14;padding:12px var(--space-5);gap:8px;background:color-mix(in srgb,var(--color-surface) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--color-line) 68%,transparent)}.search{order:-1;flex:1 1 100%;min-width:0;height:44px}.filter-select{min-height:40px!important;height:40px!important;max-width:100%;flex:1 1 calc(50% - 4px);min-width:0}.view-tools{width:100%;margin-left:0}.view-tools .filter-select{flex:1 1 0}.search input{height:100%!important}.view-tools .btn{flex:none}.panel{border-radius:14px;padding:var(--space-4)}.row-between{align-items:stretch;flex-wrap:wrap}.head-actions{width:100%}.head-actions .btn{flex:1 1 124px}.field{margin-bottom:14px}.field input,.field select,.field textarea{min-height:46px;padding:11px 12px}.field textarea{min-height:96px;resize:vertical}.muted{font-size:13px}.fact{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:3px!important;align-items:start}.fact .k{min-width:0!important;width:auto!important}.fact .v{min-width:0;overflow-wrap:anywhere}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}.metrics>button,.metrics>.card,.metrics>.metric{min-width:0}.score-grid,.structure-list,.mapping-list,.remediation-list,.profile-facts,.field-score-grid,.suggestion-list article,.columns,.bottom,.board,.picker,.items,.demo-drawer{grid-template-columns:minmax(0,1fr)!important}.demo-drawer{height:auto!important;min-height:340px}.score-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.program{grid-template-columns:minmax(0,1fr)!important}.program-meta{text-align:left!important}.tabs{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;scrollbar-width:none}.tabs::-webkit-scrollbar,.smartviews::-webkit-scrollbar,.incident-tabs::-webkit-scrollbar{display:none}.tabs button{flex:none;min-height:40px;white-space:nowrap}.smartviews{padding:10px var(--space-5)!important;scrollbar-width:none}.smartviews button{min-height:40px;padding:8px 12px!important}.more-pop{max-width:calc(100vw - 32px)!important}}@media(hover:none){.btn:hover,.chip:hover{background:inherit}.btn.pri:hover{background:var(--color-brand-600)}.btn.dan:hover{background:var(--color-surface)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
