:root{--footer-h: 42px}.footerbar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--footer-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--topbar-bg, #0f172a);color:var(--topbar-fg, #e2e8f0);border-top:1px solid color-mix(in oklab,var(--topbar-fg, #e2e8f0),transparent 85%);z-index:900}.footerbar__inner{height:var(--footer-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;max-width:var(--container-w, 1200px);margin:0 auto;padding:0 16px}.footerbar__slot{min-width:0;display:flex;align-items:center;gap:10px;font-size:.875rem;opacity:.9}.footerbar__slot.-left{justify-content:flex-start}.footerbar__slot.-center{justify-content:center;text-align:center}.footerbar__slot.-right{justify-content:flex-end}.footerbar__brand{font-weight:600;letter-spacing:.02em;opacity:.95}.footerbar a{color:inherit;text-decoration:none;opacity:.9}.footerbar a:hover{opacity:1;text-decoration:underline}@media(max-width:480px){:root{--footer-h: 38px}.footerbar__inner{padding:0 12px}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html:focus-within{scroll-behavior:smooth}html,body,#root{height:100%}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus-ring)}a{color:inherit;text-decoration:none}:root{--app-font-family: "Inter", "Roboto", "Segoe UI", system-ui, -apple-system, Helvetica, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";--app-font-size: 15px;--app-line-height: 1.45}html,body{font-family:var(--app-font-family);font-size:var(--app-font-size);line-height:var(--app-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--gp-white: #ffffff;--gp-blue-50: #eef2ff;--gp-blue-100: #e6ecff;--gp-blue-200: #d4ddff;--gp-blue-300: #a9c1ff;--gp-blue-400: #7ea6ff;--gp-blue-500: #3b82f6;--gp-blue-600: #2563eb;--gp-blue-700: #1d4ed8;--gp-blue-800: #1e3a8a;--gp-gray-50: #e9eaf0;--gp-gray-100: #eef2f7;--gp-gray-200: #e6ebf5;--gp-gray-400: #9aa6bf;--gp-green-500:#22c55e;--gp-yellow-500:#eab308;--gp-red-500: #ef4444;--gp-red-600: #dc2626;--bg-app: var(--gp-gray-50);--bg-elev: var(--gp-white);--bd-soft: var(--gp-gray-200);--tx-primary: #0b1220;--tx-muted: #5b6b82;--font-sans: var(--app-font-family);--fs-xxs: .74rem;--fs-xs: .8rem;--fs-sm: .9rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.25rem;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--shadow-sm: 0 2px 10px rgba(21, 41, 75, .08);--shadow-md: 0 10px 28px rgba(21, 41, 75, .12);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--z-dropdown: 30;--z-sticky: 40;--z-modal: 999;--card-bg: var(--bg-elev);--card-border: var(--bd-soft);--chip-bg: #eef2f7;--chip-fg: var(--tx-primary);--chip-ok: var(--gp-green-500);--chip-warn: var(--gp-yellow-500);--chip-bad: var(--gp-red-500);--btn-bg: var(--bg-elev);--btn-fg: var(--tx-primary);--btn-border: var(--bd-soft);--focus-ring: 0 0 0 3px rgba(37, 99, 235, .25)}body{font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;color:var(--tx-primary);background:var(--bg-app)}h1,h2,h3{font-weight:700;line-height:1.2}h1{font-size:1.625rem}h2{font-size:1.375rem}h3{font-size:1.15rem}p{color:var(--tx-primary);opacity:.95}.muted{color:var(--tx-muted)}a:hover{text-decoration:underline;text-underline-offset:3px}.container{max-width:1280px;margin:0 auto;padding:0 var(--sp-4)}.section{padding:var(--sp-6) 0}.row{display:flex;gap:var(--sp-4);align-items:center}.grid{display:grid;gap:var(--sp-4)}.hide-sm{display:none}@media(min-width:720px){.hide-sm{display:initial}}.center{display:grid;place-items:center}.spacer{height:var(--sp-6)}.nv-input,.nv-select,.nv-textarea{width:100%;background:var(--bg-elev);border:1px solid var(--bd-soft);color:var(--tx-primary);border-radius:var(--radius-sm);padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.nv-textarea{min-height:96px;resize:vertical}.nv-input::placeholder,.nv-textarea::placeholder{color:var(--tx-muted)}.nv-input:focus,.nv-select:focus,.nv-textarea:focus{border-color:var(--gp-blue-500);box-shadow:var(--focus-ring)}.nv-input-icon{position:relative}.nv-input-icon>.icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none;opacity:.7;font-size:.9em}.nv-input-icon>.nv-input{padding-left:36px}.nv-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:38px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font-weight:600;font-size:var(--fs-sm);cursor:pointer;transition:transform .06s ease,background .2s ease,border-color .2s ease,opacity .2s ease}.nv-btn:hover{background:#f8fff6}.nv-btn:active{transform:translateY(1px)}.nv-btn:disabled{opacity:.6;pointer-events:none}.nv-btn--primary{color:#fff;border-color:#1d4ed8;background:linear-gradient(180deg,#2563eb,#1d4ed8);box-shadow:0 1px #ffffff1a inset,0 10px 24px #2563eb33}.nv-btn--success{border-color:#28a745;background:linear-gradient(180deg,var(--gp-blue-600),var(--gp-blue-700));color:#fff;box-shadow:0 1px #ffffff0f inset,0 10px 22px #2563eb40}.nv-btn--danger{border-color:#e23e3e;background:linear-gradient(180deg,var(--gp-red-500),var(--gp-red-600));color:#fff}.nv-btn--ghost{background:transparent;border-color:transparent}.nv-btn--sm{height:32px;padding:0 10px;font-size:var(--fs-xs)}.nv-btn--lg{height:44px;padding:0 16px;font-size:var(--fs-md)}.nv-btn .circle{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#0000000f}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--sp-4)}.card--flat{box-shadow:none}.card__title{font-weight:700;font-size:var(--fs-lg);margin-bottom:var(--sp-3)}.card__subtitle{color:var(--tx-muted);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.segmented{display:inline-flex;gap:4px;padding:4px;background:var(--bg-elev);border:1px solid var(--bd-soft);border-radius:999px}.segmented__item{padding:6px 14px;border-radius:999px;font-weight:600;font-size:var(--fs-sm);color:var(--tx-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.segmented__item[aria-selected=true]{background:var(--gp-blue-600);color:#fff;box-shadow:0 6px 18px #2563eb47}.badge{display:inline-flex;align-items:center;gap:8px;height:26px;padding:0 10px;border-radius:999px;font-size:var(--fs-xxs);font-weight:700;background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--card-border)}.badge--ok{color:var(--gp-green-500);box-shadow:inset 0 0 0 2px #22c55e33}.badge--warn{color:var(--gp-yellow-500);box-shadow:inset 0 0 0 2px #eab30840}.badge--bad{color:var(--gp-red-500);box-shadow:inset 0 0 0 2px #ef444440}.modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);background:#020f2873;display:grid;place-items:center;padding:var(--sp-6)}.modal{width:min(720px,96vw);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--sp-5)}.modal__title{font-size:var(--fs-lg);font-weight:800;margin-bottom:var(--sp-3)}.modal__footer{display:flex;gap:var(--sp-3);justify-content:flex-end;margin-top:var(--sp-4)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);overflow:hidden}.table th,.table td{padding:12px 14px;border-bottom:1px solid var(--card-border);font-size:var(--fs-sm)}.table thead th{background:#eef2ff;text-align:left;font-weight:700}.table tr:last-child td{border-bottom:0}.text-ok{color:var(--gp-green-500)}.text-warn{color:var(--gp-yellow-500)}.text-bad{color:var(--gp-red-500)}.bg-elev{background:var(--card-bg)}.bd-soft{border:1px solid var(--card-border);border-radius:var(--radius-sm)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.round-sm{border-radius:var(--radius-sm)}.round-md{border-radius:var(--radius-md)}.round-lg{border-radius:var(--radius-lg)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}@media print{body{background:#fff;color:#000}.no-print{display:none!important}.print-only{display:block!important}.card,.table{box-shadow:none;border-color:#000}}
