@charset "UTF-8";:root{color-scheme:light;--font-sans: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg: #f6f5fb;--bg-sunken: #efedf7;--surface: #ffffff;--surface-2: #faf9fe;--surface-hover: #f3f1fb;--border: #e4e1ef;--border-strong: #cfcae2;--text: #17142b;--text-2: #4a4664;--muted: #7a7695;--faint: #a6a2bd;--accent: #4f2cf0;--accent-hover: #3f1fd8;--accent-soft: #ece8ff;--accent-ink: #3416c4;--on-accent: #ffffff;--coral: #ff7a59;--coral-soft: #ffe9e2;--success: #0f9d6b;--success-soft: #e0f6ed;--warning: #c27a06;--warning-soft: #fff3d9;--danger: #d93a4a;--danger-soft: #fde7ea;--info: #1f6fd9;--info-soft: #e3eefc;--heat-0: #f1effa;--heat-hi: 79, 44, 240;--shadow-xs: 0 1px 2px rgba(23, 20, 43, .06);--shadow-sm: 0 1px 2px rgba(23, 20, 43, .05), 0 2px 8px rgba(23, 20, 43, .05);--shadow-md: 0 4px 16px rgba(23, 20, 43, .08), 0 1px 3px rgba(23, 20, 43, .06);--shadow-lg: 0 24px 64px rgba(23, 20, 43, .18), 0 4px 16px rgba(23, 20, 43, .08);--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-pill: 999px;--sidebar-w: 248px;--topbar-h: 64px;--focus: 0 0 0 3px rgba(79, 44, 240, .35);--ease: cubic-bezier(.2, .7, .2, 1)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #0f0d19;--bg-sunken: #0b0a13;--surface: #171525;--surface-2: #1c1a2d;--surface-hover: #222037;--border: #2b2842;--border-strong: #3d3959;--text: #f1effb;--text-2: #c9c5e0;--muted: #918db0;--faint: #66627f;--accent: #8b74ff;--accent-hover: #9d8aff;--accent-soft: #261f4d;--accent-ink: #c4b8ff;--on-accent: #0f0a2a;--coral: #ff8f73;--coral-soft: #3a211c;--success: #3fd39b;--success-soft: #11291f;--warning: #f2b544;--warning-soft: #2d230f;--danger: #ff6b7a;--danger-soft: #331720;--info: #6aa8ff;--info-soft: #14233a;--heat-0: #1d1b2e;--heat-hi: 139, 116, 255;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 6px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .6);--focus: 0 0 0 3px rgba(139, 116, 255, .45)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:14.5px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.015em;word-spacing:.06em;font-weight:700}h1{font-size:1.75rem;letter-spacing:-.025em}h2{font-size:1.2rem}h3{font-size:1rem}h4{font-size:.9rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}code,.mono{font-family:var(--font-mono);font-size:.85em}:focus-visible{outline:none;box-shadow:var(--focus)}::selection{background:var(--accent-soft);color:var(--accent-ink)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tabular{font-variant-numeric:tabular-nums}.page{padding:28px clamp(16px,3vw,40px) 64px;max-width:1400px;margin:0 auto;width:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-header .eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.page-header .subtitle{color:var(--muted);margin-top:6px}.page-header .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-title h2,.section-title h3{display:flex;align-items:center;gap:8px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media(max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.row{display:flex;align-items:center;gap:8px}.row-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:6px}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.strong{font-weight:600}.danger-text{color:var(--danger)}.success-text{color:var(--success)}.warning-text{color:var(--warning)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pre-wrap{white-space:pre-wrap;word-break:break-word}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:20px;min-width:0}.card.flush{padding:0}.card.tight{padding:14px}.card .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card .card-head h2,.card .card-head h3{font-size:1rem}.divider{height:1px;background:var(--border);border:0;margin:16px 0}.btn{--btn-bg: var(--surface);--btn-fg: var(--text);--btn-border: var(--border-strong);display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;font:inherit;font-size:.9rem;font-weight:600;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:10px;cursor:pointer;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease),box-shadow .15s var(--ease);text-decoration:none!important;-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{--btn-bg: var(--accent);--btn-fg: var(--on-accent);--btn-border: var(--accent);box-shadow:0 1px 2px #4f2cf040,inset 0 1px #ffffff26}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.soft{--btn-bg: var(--accent-soft);--btn-fg: var(--accent-ink);--btn-border: transparent}.btn.soft:hover:not(:disabled){background:var(--accent-soft);filter:brightness(.97)}.btn.ghost{--btn-bg: transparent;--btn-border: transparent;color:var(--text-2)}.btn.danger{--btn-bg: var(--danger);--btn-fg: #fff;--btn-border: var(--danger)}.btn.danger:hover:not(:disabled){background:var(--danger);filter:brightness(1.05)}.btn.danger-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-fg: var(--danger)}.btn.danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.btn.ai{--btn-bg: linear-gradient(135deg, #4f2cf0, #b93cf0 55%, #ff7a59);--btn-fg: #fff;--btn-border: transparent;background:linear-gradient(135deg,#4f2cf0,#b93cf0 55%,#ff7a59)}.btn.ai:hover:not(:disabled){background:linear-gradient(135deg,#4321dc,#a92fe0 55%,#f36a49)}.btn.sm{height:30px;padding:0 10px;font-size:.82rem;border-radius:8px;gap:6px}.btn.lg{height:46px;padding:0 20px;font-size:1rem}.btn.icon{width:38px;padding:0}.btn.icon.sm{width:30px}.btn.block{width:100%}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:10px 0 0 10px}.btn-group .btn:last-child{border-radius:0 10px 10px 0}.btn-group .btn+.btn{margin-left:-1px}.segmented{display:inline-flex;padding:3px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:10px;gap:2px}.segmented button{font:inherit;font-size:.85rem;font-weight:600;border:0;background:transparent;color:var(--muted);padding:5px 12px;border-radius:7px;cursor:pointer}.segmented button.active,.segmented button[aria-pressed=true],.segmented button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.field .label{font-size:.82rem;font-weight:600;color:var(--text-2)}.field .hint{font-size:.78rem;color:var(--muted)}.field .error{font-size:.8rem;color:var(--danger)}.input,.select,.textarea{width:100%;font:inherit;font-size:.92rem;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s;min-width:0}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--faint)}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--muted)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-sunken);color:var(--muted)}.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--danger)}.input,.select{height:40px}.input.sm,.select.sm{height:32px;padding:4px 10px;font-size:.85rem}.select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237a7695' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.textarea{resize:vertical;min-height:90px;line-height:1.55}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem}.checkbox input{width:16px;height:16px;accent-color:var(--accent);margin:0}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:.9rem}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .track{position:relative;width:36px;height:20px;border-radius:999px;background:var(--border-strong);transition:background .15s;flex:none}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform .15s var(--ease)}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{box-shadow:var(--focus)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.form-grid .full{grid-column:1/-1}@media(max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:.88rem;white-space:pre-line}.notice{display:flex;gap:10px;align-items:flex-start;border-radius:12px;padding:12px 14px;font-size:.88rem;background:var(--info-soft);color:var(--text);border:1px solid transparent}.notice.warning{background:var(--warning-soft)}.notice.danger{background:var(--danger-soft)}.notice.success{background:var(--success-soft)}.notice.accent{background:var(--accent-soft)}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;background:var(--bg-sunken);color:var(--text-2);white-space:nowrap;border:1px solid transparent}.chip.outline{background:transparent;border-color:var(--border-strong)}.chip.accent{background:var(--accent-soft);color:var(--accent-ink)}.chip.success{background:var(--success-soft);color:var(--success)}.chip.warning{background:var(--warning-soft);color:var(--warning)}.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.info{background:var(--info-soft);color:var(--info)}.chip.coral{background:var(--coral-soft);color:var(--coral)}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}button.chip{cursor:pointer;font-family:inherit}.kbd{font-family:var(--font-mono);font-size:.72rem;padding:1px 6px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--muted)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg)}table.table{width:100%;border-collapse:collapse;font-size:.9rem}table.table th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}table.table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}table.table tr:last-child td{border-bottom:0}table.table tbody tr:hover td{background:var(--surface-2)}table.table .num{text-align:right;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}.tabs button,.tabs a{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:.88rem;font-weight:600;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:10px 12px;cursor:pointer;white-space:nowrap;margin-bottom:-1px;text-decoration:none}.tabs button:hover,.tabs a:hover{color:var(--text)}.tabs button[aria-selected=true],.tabs button.active,.tabs a[aria-selected=true],.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;color:var(--muted)}.empty .empty-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:6px}.empty h3{color:var(--text);font-size:1.05rem}.empty p{max-width:420px}.empty .btn{margin-top:6px}.skeleton{background:linear-gradient(90deg,var(--bg-sunken),var(--surface-hover),var(--bg-sunken));background-size:200% 100%;animation:shimmer 1.4s infinite linear;border-radius:8px;min-height:14px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;display:inline-block;flex:none;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}.kpi{display:flex;flex-direction:column;gap:6px}.kpi .kpi-label{font-size:.78rem;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}.kpi .kpi-value{font-size:1.85rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.kpi .kpi-foot{font-size:.78rem;color:var(--muted)}.drawer-backdrop{position:fixed;inset:0;background:#0f0c1e59;z-index:80;animation:fade-in .15s var(--ease)}.drawer{position:fixed;top:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);right:0;bottom:0;width:min(440px,100vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:81;display:flex;flex-direction:column;animation:slide-in .2s var(--ease)}.drawer .drawer-head{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}.drawer .drawer-body{flex:1;overflow-y:auto;padding:20px}.drawer .drawer-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}@keyframes pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}}.menu{position:absolute;z-index:60;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:6px;animation:pop-in .12s var(--ease)}.menu .menu-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}.menu .menu-item{display:flex;width:100%;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;border:0;background:transparent;font:inherit;font-size:.9rem;color:var(--text);text-align:left;cursor:pointer;text-decoration:none}.menu .menu-item:hover,.menu .menu-item:focus-visible{background:var(--surface-hover);text-decoration:none}.menu .menu-item.active{background:var(--accent-soft);color:var(--accent-ink)}.menu .menu-item.danger{color:var(--danger)}.menu .menu-sep{height:1px;background:var(--border);margin:6px 4px}.color-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}.list-reset{list-style:none;margin:0;padding:0}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;font-weight:600}.link-btn:hover{text-decoration:underline}.scroll-x{overflow-x:auto}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}html.native{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
