/* JSerForge shared design system. Loaded after page styles. */
:root{--jf-bg:#f5f5f7;--jf-surface:#fff;--jf-ink:#1d1d1f;--jf-muted:#626268;--jf-line:#d8d8de;--jf-blue:#0066cc;--jf-blue-soft:#edf5ff;--jf-danger:#a51d2d;--jf-radius:16px;--jf-nav-width:210px;--jf-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
body[data-jf-page]{margin:0;background:var(--jf-bg);color:var(--jf-ink);font:14px/1.65 var(--jf-font);color-scheme:light;--green:var(--jf-blue);--ink:var(--jf-ink);--muted:var(--jf-muted);--canvas:var(--jf-bg);--border:var(--jf-line)}
body[data-jf-page] *{box-sizing:border-box}body[data-jf-page] :is([id],summary){scroll-margin-top:145px}body[data-jf-page] [hidden]{display:none!important}
body[data-jf-page] main{margin:128px 0 0 var(--jf-nav-width);width:calc(100% - var(--jf-nav-width));max-width:none;padding:32px clamp(20px,3.5vw,56px) 56px;min-width:0}
.jf-header{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;gap:20px;height:64px;padding:0 28px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--jf-line);backdrop-filter:blur(16px)}
.jf-brand{color:var(--jf-ink);font-size:20px;font-weight:730;letter-spacing:-.7px;text-decoration:none}.jf-product{font-size:12px;color:var(--jf-muted);border-left:1px solid var(--jf-line);padding-left:20px}.jf-environment{margin-left:auto;color:#3c536d;font-size:12px;font-weight:600;background:#eef2f6;border-radius:20px;padding:5px 10px}.jf-header-help{color:var(--jf-blue);text-decoration:none;font-size:13px}.jf-menu{display:none}
.jf-nav{position:fixed;inset:64px auto 0 0;width:var(--jf-nav-width);padding:28px 16px;background:var(--jf-bg);border-right:1px solid var(--jf-line);display:flex;flex-direction:column;align-items:stretch;gap:6px;z-index:35;font-size:14px}
.jf-nav-label{color:var(--jf-muted);font-size:11px;font-weight:600;letter-spacing:1px;padding:0 12px;margin:0 0 12px}.jf-nav>a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#424248;white-space:normal}.jf-nav>a:hover{background:#e9e9ee}.jf-nav>a.is-current{background:#e3eefa;color:#0056ad;font-weight:650}.jf-nav-note{margin-top:auto;padding:20px 12px 0;font-size:11px;line-height:1.8;color:var(--jf-muted);white-space:pre-line}
.jf-context{position:fixed;top:64px;left:var(--jf-nav-width);right:0;z-index:30;height:64px;padding:8px clamp(20px,3.5vw,56px);background:rgba(245,245,247,.97);border-bottom:1px solid var(--jf-line);display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.jf-context-account{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jf-context-session{font-size:11px;color:var(--jf-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jf-skip{position:absolute;top:-100px;left:20px;color:var(--jf-ink);background:#fff;padding:10px;z-index:100}.jf-skip:focus{top:8px}.jf-nav-overlay{display:none}
body[data-jf-page] h1{font-size:clamp(27px,3vw,38px);line-height:1.18;letter-spacing:-1px;font-weight:700;margin:8px 0 12px}body[data-jf-page] h2{font-size:19px;line-height:1.35;letter-spacing:-.25px;margin:0 0 12px}body[data-jf-page] h3{font-size:16px}body[data-jf-page] p{overflow-wrap:anywhere}body[data-jf-page] a{color:var(--jf-blue)}body[data-jf-page] .jf-brand,body[data-jf-page] .brand{color:var(--jf-ink)}body[data-jf-page] .muted,body[data-jf-page] small{color:var(--jf-muted)}
body[data-jf-page] .card,body[data-jf-page] .panel{background:var(--jf-surface);border:1px solid var(--jf-line);border-radius:var(--jf-radius);box-shadow:none;margin-bottom:24px}body[data-jf-page] .panel{padding:24px}body[data-jf-page] .panel>h2{margin-top:0}body[data-jf-page] .page-head,body[data-jf-page] .topbar{margin-bottom:24px}
body[data-jf-page] button,body[data-jf-page] input,body[data-jf-page] select,body[data-jf-page] textarea,body[data-jf-page] .button{font:inherit;max-width:100%}body[data-jf-page] button,body[data-jf-page] .button{border-radius:9px;min-height:44px;padding:10px 16px;font-weight:600;border:1px solid transparent;background:var(--jf-blue);color:white;cursor:pointer;text-decoration:none}body[data-jf-page] button:hover:not(:disabled),body[data-jf-page] .button:hover{filter:brightness(.96)}body[data-jf-page] button:disabled{cursor:not-allowed;opacity:.5;filter:none}
body[data-jf-page] .secondary{background:#f1f1f4;border:1px solid var(--jf-line);color:var(--jf-ink)}body[data-jf-page] .link-button{background:transparent;border:0;color:var(--jf-blue);padding:8px 4px}body[data-jf-page] .danger{color:var(--jf-danger);background:#fff1f2;border:1px solid #e7b9c0}body[data-jf-page] input:not([type=checkbox]):not([type=radio]),body[data-jf-page] select,body[data-jf-page] textarea{background:white;color:var(--jf-ink);border:1px solid #b7b7c0;border-radius:9px;padding:10px 12px;min-height:44px;max-width:100%;min-width:0}body[data-jf-page] input[type=checkbox],body[data-jf-page] input[type=radio]{accent-color:var(--jf-blue);min-width:16px;min-height:16px}
body[data-jf-page] :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #0071e3;outline-offset:3px}body[data-jf-page] label{font-weight:600}body[data-jf-page] summary{cursor:pointer;min-height:44px}body[data-jf-page] .error{color:var(--jf-danger)}body[data-jf-page] .warning{background:#fff9e9;color:#694900;border-color:#dbc88d}body[data-jf-page] .badge{background:var(--jf-blue-soft);color:#0054a8;border-radius:6px}
body[data-jf-page] .table-scroll,body[data-jf-page] .tablewrap,body[data-jf-page] .detail-scroll{max-width:100%;overflow:auto;border:1px solid var(--jf-line);border-radius:10px}body[data-jf-page] table{width:100%;border-collapse:collapse;font-size:13px}body[data-jf-page] th{background:#f5f5f7;color:#494950;font-size:12px;font-weight:650;position:sticky;top:0;z-index:1;text-align:left;padding:12px;border-bottom:1px solid var(--jf-line)}body[data-jf-page] td{padding:12px;vertical-align:top;border-bottom:1px solid #ebebef;font-variant-numeric:tabular-nums}body[data-jf-page] tbody tr:hover{background:#f8fbff}body[data-jf-page] .sort-button{display:inline-flex;align-items:center;background:transparent;color:#45454b;padding:2px 6px;min-height:36px;border:0;font-size:12px}body[data-jf-page] th[aria-sort]:not([aria-sort=none]) .sort-button{color:var(--jf-blue)}
body[data-jf-page] .kpi{background:#fff;border:1px solid var(--jf-line);border-radius:12px;box-shadow:none;padding:18px}body[data-jf-page] .kpi-value{color:var(--jf-ink);font-size:clamp(21px,2.4vw,32px);font-variant-numeric:tabular-nums}body[data-jf-page] .demo-notice{background:#edf5ff;border:1px solid #c6dbf3;border-radius:12px;padding:16px 20px;color:#244461;margin-bottom:24px}body[data-jf-page] .eyebrow{color:var(--jf-muted);font-size:11px;letter-spacing:1.3px}body[data-jf-page] .empty-state{border:1px dashed #bcbcc6;border-radius:16px;padding:40px;text-align:center;background:#fafafa}body[data-jf-page] dialog{border:1px solid var(--jf-line);border-radius:18px;padding:24px;max-width:min(900px,calc(100% - 32px));color:var(--jf-ink);box-shadow:0 18px 80px #0002}body[data-jf-page] dialog::backdrop{background:#10101855}
body[data-jf-page] .jf-menu{padding:6px 10px;background:#f1f1f4;color:var(--jf-ink);font-size:20px}body[data-jf-page] .jf-nav>a{color:#424248}body[data-jf-page] .jf-nav>a.is-current{color:#0056ad}body[data-jf-page] .jf-skip{color:var(--jf-ink)}
.jf-hero{max-width:880px;padding:40px 0 32px}.jf-hero .jf-kicker{color:var(--jf-blue);font-weight:650;font-size:13px;letter-spacing:.8px}.jf-hero h1{font-size:clamp(34px,4.6vw,58px)!important;line-height:1.12!important;letter-spacing:-2px!important;margin:20px 0!important}.jf-hero>p{font-size:17px;line-height:1.8;color:var(--jf-muted);max-width:690px}.jf-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.jf-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0 40px}.jf-feature{padding:28px;border:1px solid var(--jf-line);border-radius:20px;background:#fff}.jf-feature .jf-feature-index{font-size:12px;color:var(--jf-blue);font-weight:650;letter-spacing:1px}.jf-feature h2{font-size:24px!important;margin:16px 0!important}.jf-feature p{color:var(--jf-muted)}.jf-feature a{display:inline-block;margin-top:18px;font-weight:600}.jf-facts{display:flex;flex-wrap:wrap;gap:12px 32px;border-top:1px solid var(--jf-line);padding:24px 0;color:var(--jf-muted);font-size:13px}.jf-legal{max-width:900px}.jf-legal section{padding:24px 0;border-bottom:1px solid var(--jf-line)}.jf-legal p,.jf-legal li{color:#48484e;line-height:1.9}.jf-footer{margin-top:40px;padding-top:24px;border-top:1px solid var(--jf-line);color:var(--jf-muted);font-size:12px}.jf-footer a{margin-right:18px}
@media(max-width:1100px){:root{--jf-nav-width:184px}.jf-header{padding-inline:20px}.jf-nav{padding-inline:12px}body[data-jf-page] main{padding-inline:24px}}
@media(max-width:900px){body[data-jf-page] main{margin:120px 0 0;width:100%;padding:24px 18px 40px}.jf-header{height:60px;gap:12px;padding:0 16px}.jf-product{display:none}.jf-brand{font-size:18px}.jf-menu,body[data-jf-page] .jf-menu{display:block}.jf-header-help{font-size:12px}.jf-environment{font-size:10px;padding:4px 7px}.jf-context{top:60px;left:0;height:60px;padding:8px 18px}.jf-nav{top:60px;width:260px;transform:translateX(-101%);transition:transform .15s ease;background:#fafafa;z-index:45}.jf-nav-open .jf-nav{transform:translateX(0)}.jf-nav-overlay:not([hidden]){display:block;position:fixed;inset:60px 0 0;z-index:44;border:0;border-radius:0;background:#10101855;max-width:none}.jf-nav-open{overflow:hidden}.jf-cards{grid-template-columns:1fr;gap:16px}.jf-hero{padding-top:20px}.jf-hero>p{font-size:15px}.jf-feature{padding:24px}body[data-jf-page] .panel{padding:20px}body[data-jf-page] .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:540px){body[data-jf-page] main{padding-inline:14px}.jf-header{padding-inline:12px;gap:9px}.jf-header-help{display:none}.jf-context{padding-inline:14px}body[data-jf-page] .panel{padding:18px}body[data-jf-page] .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-jf-page] .config-grid{grid-template-columns:minmax(0,1fr)}body[data-jf-page] .button-row{gap:8px}body[data-jf-page] .button-row>*{white-space:normal}body[data-jf-page] .empty-state{padding:24px 16px}.jf-hero h1{letter-spacing:-1.4px!important}.jf-actions>*{flex:1 1 auto;text-align:center}.jf-feature{padding:22px}.jf-facts{gap:10px}.jf-context-session{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.jf-header,.jf-nav,.jf-context,.jf-nav-overlay,body[data-jf-page] .no-print{display:none!important}body[data-jf-page] main{margin:0!important;width:100%!important;padding:0!important}body[data-jf-page]{background:white}body[data-jf-page] .table-scroll{overflow:visible;border:0}body[data-jf-page] th{position:static}}
