:root{--navy: #0f172a;--slate-900: #0f172a;--slate-800: #1e293b;--slate-700: #334155;--slate-600: #475569;--slate-500: #64748b;--slate-400: #94a3b8;--slate-300: #cbd5e1;--slate-200: #e2e8f0;--slate-100: #f1f5f9;--slate-50: #f8fafc;--blue: #1e40af;--blue-hover: #1d4ed8;--blue-50: #eff6ff;--amber: #d97706;--font-head: "Cabinet Grotesk", "Outfit", sans-serif;--font-sub: "Satoshi", "Plus Jakarta Sans", sans-serif;--font-body: "Plus Jakarta Sans", "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--radius: 10px;--shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);--shadow-lg: 0 12px 32px -12px rgba(15, 23, 42, .25)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--slate-50);color:var(--slate-800);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}::selection{background:#bfdbfe;color:var(--navy)}h1,h2,h3,h4{font-family:var(--font-head);color:var(--navy);margin:0;letter-spacing:-.01em}h1{font-size:clamp(1.8rem,3.2vw,2.8rem);font-weight:800;line-height:1.1}h2{font-size:clamp(1.25rem,2vw,1.65rem);font-weight:700}h3{font-size:1.1rem;font-weight:700}a{color:var(--blue)}button,input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:1280px;margin:0 auto;padding:0 20px}.page{min-height:calc(100vh - 64px);display:flex;flex-direction:column}.page-main{flex:1;padding-top:32px;padding-bottom:56px}.card{background:#fff;border:1px solid var(--slate-200);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:24px}@media(min-width:768px){.card-pad{padding:28px 32px}}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--slate-200)}.eyebrow{font-family:var(--font-sub);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-500)}.label{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-500);margin-bottom:6px}.muted{color:var(--slate-500)}.small{font-size:13px}.xs{font-size:12px}.mono{font-family:var(--font-mono)}.id-chip{font-family:var(--font-mono);font-size:13px;letter-spacing:.03em;color:#1e3a8a;background:var(--slate-100);border:1px solid var(--slate-200);padding:2px 8px;border-radius:6px;white-space:nowrap}.input,.select,.textarea{width:100%;border:1px solid var(--slate-300);background:#fff;border-radius:8px;padding:10px 12px;color:var(--navy);transition:border-color .15s ease,box-shadow .15s ease;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1e40af26}.input:disabled,.select:disabled,.textarea:disabled{background:var(--slate-100);color:var(--slate-500);cursor:not-allowed}.textarea{resize:vertical;min-height:96px}.field{margin-bottom:16px}.hint{font-size:12px;color:var(--slate-500);margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 18px;font-weight:600;cursor:pointer;line-height:1.2;white-space:nowrap;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,box-shadow .15s ease}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-hover);box-shadow:0 6px 16px -8px #1e40afb3}.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover:not(:disabled){background:var(--slate-800)}.btn-outline{background:#fff;color:var(--navy);border-color:var(--slate-300)}.btn-outline:hover:not(:disabled){border-color:var(--slate-500);background:var(--slate-50)}.btn-ghost{background:transparent;color:var(--slate-700)}.btn-ghost:hover:not(:disabled){background:var(--slate-100)}.btn-danger{background:#fff;color:#be123c;border-color:#fecdd3}.btn-danger:hover:not(:disabled){background:#fff1f2}.btn-sm{padding:6px 12px;font-size:13px;border-radius:7px}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--slate-300);background:#fff;cursor:pointer;color:var(--slate-700);transition:background-color .15s ease}.icon-btn:hover:not(:disabled){background:var(--slate-100)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-green{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.badge-red{background:#fff1f2;border-color:#fecdd3;color:#be123c}.badge-amber{background:#fffbeb;border-color:#fde68a;color:#92400e}.badge-blue{background:#f0f9ff;border-color:#bae6fd;color:#075985}.badge-gray{background:var(--slate-100);border-color:var(--slate-200);color:var(--slate-600)}.alert{border-radius:8px;padding:12px 14px;font-size:14px;border:1px solid;display:flex;gap:10px;align-items:flex-start}.alert-error{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.alert-info{background:var(--blue-50);border-color:#bfdbfe;color:#1e3a8a}.alert-warn{background:#fffbeb;border-color:#fde68a;color:#92400e}.alert-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-500);background:var(--slate-50);padding:10px 14px;border-bottom:1px solid var(--slate-200);white-space:nowrap}.table td{padding:12px 14px;border-bottom:1px solid var(--slate-100);vertical-align:top}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color .12s ease}.table tbody tr:hover{background:var(--slate-50)}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row-between{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.stack>*+*{margin-top:16px}.sp-24>*+*{margin-top:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.overlay{position:fixed;inset:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .15s ease}.modal{background:#fff;border-radius:12px;width:100%;max-width:520px;box-shadow:var(--shadow-lg);max-height:92vh;overflow:auto;animation:pop .18s ease}.modal-lg{max-width:860px}.modal-body{padding:24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--slate-200);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.fade-up{animation:fadeUp .4s ease both}.d1{animation-delay:.05s}.d2{animation-delay:.12s}.d3{animation-delay:.19s}.d4{animation-delay:.26s}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.loading-box{padding:48px;text-align:center;color:var(--slate-500)}.toast-stack{position:fixed;right:16px;bottom:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast{background:var(--navy);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-lg);font-size:14px;animation:pop .2s ease;border-left:4px solid #60a5fa}.toast.error{border-left-color:#fb7185}.toast.success{border-left-color:#34d399}.linkbtn{background:none;border:none;padding:0;color:var(--blue);font-weight:600;cursor:pointer;text-decoration:underline}.section-title{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.divider{height:1px;background:var(--slate-200);margin:20px 0}
