:root{--brand-900: #0d2b33;--brand-800: #10373f;--brand-700: #15484f;--brand-600: #1b5a63;--brand-500: #2d818c;--brand-100: #d6ebee;--brand-50: #eff7f8;--accent-600: #9c5810;--accent-500: #cf861f;--accent-100: #f7ecd6;--ok-600: #2f7d54;--ok-100: #e2f3ea;--warn-600: #b5721b;--warn-100: #fbefda;--danger-600: #b3352f;--danger-100: #fbe4e2;--gray-900: #1a2530;--gray-700: #3a4855;--gray-500: #64717d;--gray-400: #94a1ac;--gray-300: #cad2da;--gray-200: #e2e7ec;--gray-100: #eef1f4;--gray-50: #f4f6f8;--white: #ffffff;--color-bg: var(--gray-50);--color-surface: var(--white);--color-surface-alt: var(--gray-100);--color-border: var(--gray-200);--color-text: var(--gray-900);--color-text-muted: var(--gray-500);--color-primary: var(--brand-700);--color-primary-hover: var(--brand-800);--color-primary-contrast: var(--white);--color-accent: var(--accent-600);--color-sidebar-bg: var(--brand-900);--color-sidebar-text: #bcd4d6;--color-sidebar-active-bg: var(--brand-700);--color-sidebar-active-text: var(--white);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(13, 43, 51, .06);--shadow-md: 0 4px 16px rgba(13, 43, 51, .1);--sidebar-width: 240px;--header-height: 60px;--z-sticky: 5;--z-sidebar: 30;--z-backdrop: 25;--z-modal: 40}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none}h1,h2,h3{margin:0 0 var(--space-3);line-height:1.25}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background .12s,border-color .12s;background:var(--color-surface-alt);color:var(--color-text);white-space:nowrap}.btn:hover{background:var(--gray-200)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-danger{background:var(--danger-600);color:var(--white)}.btn-ghost{background:transparent;border-color:var(--color-border)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.input,.select,.textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:var(--font-size-sm);background:var(--color-surface);color:var(--color-text)}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand-500);outline-offset:-1px;border-color:var(--brand-500)}.textarea{min-height:100px;resize:vertical}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.field-error{font-size:var(--font-size-xs);color:var(--danger-600)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 var(--space-4)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card+.card{margin-top:var(--space-4)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-sm)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text)}.stat-value.pos{color:var(--ok-600)}.stat-value.neg{color:var(--danger-600)}.table-wrap{overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}table.data{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}table.data th,table.data td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);white-space:nowrap}table.data th{background:var(--color-surface-alt);font-weight:600;color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.03em}table.data tbody tr:hover{background:var(--brand-50)}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:2px var(--space-2);border-radius:999px;font-size:var(--font-size-xs);font-weight:600}.badge-ok{background:var(--ok-100);color:var(--ok-600)}.badge-warn{background:var(--warn-100);color:var(--warn-600)}.badge-danger{background:var(--danger-100);color:var(--danger-600)}.badge-muted{background:var(--gray-200);color:var(--gray-700)}.state{padding:var(--space-8) var(--space-5);text-align:center;color:var(--color-text-muted)}.state-error{border:1px solid var(--danger-100);background:var(--danger-100);color:var(--danger-600);border-radius:var(--radius-md);padding:var(--space-4)}.spinner{width:28px;height:28px;border:3px solid var(--gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto var(--space-3)}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);color:var(--color-sidebar-text);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.sidebar-brand{padding:var(--space-5);font-size:var(--font-size-xl);font-weight:800;color:var(--white);letter-spacing:.01em}.sidebar-brand small{display:block;font-size:var(--font-size-xs);font-weight:500;color:var(--color-sidebar-text);letter-spacing:.08em;text-transform:uppercase;margin-top:2px}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-2)}.sidebar-nav a{display:block;padding:var(--space-2) var(--space-4);margin-bottom:2px;border-radius:var(--radius-sm);color:var(--color-sidebar-text);font-size:var(--font-size-sm);font-weight:500}.sidebar-nav a:hover{background:#ffffff12;color:var(--white)}.sidebar-nav a.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);font-weight:600}.sidebar-nav a.nav-locked{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);opacity:.55}.sidebar-nav a.nav-locked .nav-lock{font-size:var(--font-size-xs)}.sidebar-foot{padding:var(--space-4);border-top:1px solid rgba(255,255,255,.1);font-size:var(--font-size-xs)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:5}.content{padding:var(--space-6);max-width:1200px;width:100%}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--space-4)}.toolbar .field{margin-bottom:0}.row-actions{display:flex;gap:var(--space-2)}.muted{color:var(--color-text-muted)}.pagination{display:flex;gap:var(--space-3);align-items:center;justify-content:flex-end;margin-top:var(--space-4);font-size:var(--font-size-sm)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--brand-900),var(--brand-700));padding:var(--space-4)}.auth-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);width:100%;max-width:400px}.auth-brand{text-align:center;font-size:var(--font-size-2xl);font-weight:800;color:var(--brand-900);margin-bottom:var(--space-1)}.auth-sub{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-5)}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.plan-card{display:flex;flex-direction:column;gap:var(--space-1);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;transition:border-color .15s,box-shadow .15s}.plan-card:hover{border-color:var(--brand-700)}.plan-card.is-selected{border-color:var(--brand-700);box-shadow:var(--shadow-md)}.plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.plan-name{font-weight:700;color:var(--brand-900)}.plan-price{font-size:var(--font-size-lg);font-weight:800}.plan-per{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}.plan-extra{font-size:var(--font-size-sm);color:var(--brand-700);font-weight:600}.plan-resume{font-size:var(--font-size-sm);color:var(--color-text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10233b73;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-6);overflow-y:auto;z-index:20}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:640px;padding:var(--space-5);margin:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.stack>*+*{margin-top:var(--space-4)}.flex{display:flex;gap:var(--space-3);align-items:center}.spread{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.text-sm{font-size:var(--font-size-sm)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm)}.callout{border:1px solid var(--accent-100);background:var(--accent-100);color:#5c360a;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:var(--radius-sm)}.app-topbar{height:var(--header-height);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:var(--z-sticky)}.app-topbar .grow{min-width:0}.app-topbar h1{font-size:var(--font-size-lg);margin:0;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex-shrink:0}.sub-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:var(--font-size-xs);font-weight:600;border:1px solid transparent;text-decoration:none}.sub-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.sub-pill-ok{background:var(--ok-100);color:var(--ok-600)}.sub-pill-pending{background:var(--warn-100);color:var(--warn-600);border-color:var(--warn-600)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0d2b3380;z-index:var(--z-backdrop)}.sidebar{z-index:var(--z-sidebar)}@media (max-width: 860px){.nav-toggle{display:inline-flex}.sidebar{position:fixed;top:0;left:0;height:100vh;transform:translate(-100%);transition:transform .24s cubic-bezier(.22,1,.36,1);box-shadow:var(--shadow-md)}.app-shell.nav-open .sidebar{transform:translate(0)}.app-shell.nav-open .sidebar-backdrop{display:block}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}.empty-state{text-align:center;padding:var(--space-8) var(--space-5)}.empty-state .empty-icon{width:44px;height:44px;margin:0 auto var(--space-4);color:var(--brand-600)}.empty-state h3{margin-bottom:var(--space-2)}.empty-state p{color:var(--color-text-muted);max-width:46ch;margin:0 auto var(--space-4)}.empty-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.plan-summary{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}.plan-summary .ps-name{font-weight:700;color:var(--brand-800)}.plan-summary .ps-total{font-size:var(--font-size-lg);font-weight:800;color:var(--brand-800);font-variant-numeric:tabular-nums}.plan-summary .ps-total small{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}.plan-summary .ps-fee{width:100%;font-size:var(--font-size-xs);color:var(--accent-600);font-weight:600}
