:root{--sage-50:#f2f5f1;--sage-100:#e3eadf;--sage-200:#c6d4be;--sage-300:#9eb492;--sage-400:#749068;--sage-500:#4f7345;--sage-600:#3d5b36;--sage-700:#2e4528;--sage-800:#1f2f1b;--sage-900:#121c10;--amber-50:#fdf6e7;--amber-100:#f9e8bf;--amber-200:#f3d27d;--amber-300:#ecb744;--amber-400:#dd9e1f;--amber-500:#b47b10;--amber-600:#7f5607;--coral-100:#fce3db;--coral-200:#f9b9a5;--coral-300:#f08a6d;--coral-400:#e15f3d;--coral-500:#b84221;--blue-100:#dbe7f4;--blue-200:#b0cae8;--blue-300:#6fa0d1;--blue-400:#3f77b3;--blue-500:#2b5684;--paper:#faf7f2;--paper-2:#f3efe6;--surface:#fff;--ink:#1a1e17;--ink-2:#3e443a;--ink-3:#6f7569;--ink-4:#a6aa9f;--line:#e4e1d8;--line-2:#efece4;--success:#4f7345;--warning:#dd9e1f;--danger:#e15f3d;--info:#3f77b3;--font-display:var(--font-instrument-serif), "Times New Roman", serif;--font-ui:var(--font-geist-sans), -apple-system, system-ui, sans-serif;--font-mono:var(--font-geist-mono), "SF Mono", monospace;--r-sm:10px;--r-md:16px;--r-lg:22px;--r-xl:28px;--r-2xl:36px;--shadow-sm:0 1px 2px #1a1e170a, 0 2px 6px #1a1e170a;--shadow-md:0 2px 4px #1a1e170d, 0 8px 20px #1a1e170f;--shadow-lg:0 4px 8px #1a1e170f, 0 16px 40px #1a1e1714;--shadow-card:0 1px 0 #1a1e1708, 0 2px 8px #1a1e170d;--shadow-chunky:0 3px 0 var(--sage-700);--shadow-chunky-amber:0 3px 0 var(--amber-500);--shadow-chunky-coral:0 3px 0 var(--coral-500);--primary-50:var(--sage-50);--primary-100:var(--sage-100);--primary-200:var(--sage-200);--primary-300:var(--sage-300);--primary-400:var(--sage-400);--primary-500:var(--sage-500);--primary-600:var(--sage-600);--primary-700:var(--sage-700)}html,body{height:auto}body{font-family:var(--font-ui);font-feature-settings:"ss01", "cv11";color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}::-webkit-scrollbar{width:0;height:0}.font-display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400}.font-ui{font-family:var(--font-ui)}.font-mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.grain{position:relative}.grain:after{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.6;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}@keyframes breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.01)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes flame-flicker{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(1.08)rotate(2deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes m-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.015)}}@keyframes m-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-8px)rotate(1deg)}}@keyframes m-wiggle{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes m-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ring-ping{0%{opacity:.7;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes typing-pulse{0%,to{opacity:.4;transform:translateY(0)scale(1)}50%{opacity:1;transform:translateY(-3px)scale(1.15)}}@keyframes vds-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes vds-spin{to{transform:rotate(360deg)}}@keyframes vds-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}:root{--shell-bg:var(--paper);--sidebar-bg:var(--paper-2);--content-bg:var(--surface)}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font-family:inherit}input,textarea,select{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .18s,box-shadow .18s}input:focus,textarea:focus,select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #4f734526}input[disabled],button[disabled]{opacity:.55;cursor:not-allowed}label{font-family:var(--font-mono);letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:11px;display:block}:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px;border-radius:6px}.auth-shell{background:var(--paper);grid-template-columns:1fr 1fr;min-height:100%;display:grid}.auth-shell .auth-aside{background:var(--ink);color:#fdf6e7;flex-direction:column;justify-content:flex-start;padding:56px 56px 48px;display:flex;position:relative;overflow:hidden}.auth-brand-box{background:#fff;border:1px solid #1a1e171f;border-radius:14px;align-items:center;gap:12px;width:-moz-fit-content;width:fit-content;padding:10px 14px;display:inline-flex;box-shadow:0 6px 20px #0000001f}.auth-brand-name{font-family:var(--font-display);letter-spacing:-.5px;color:var(--ink);font-size:30px}.auth-shell .auth-main{justify-content:center;align-items:center;padding:32px 24px;display:flex}.auth-card{width:100%;max-width:440px}.auth-card h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(40px,4.5vw,56px);line-height:1.05}.auth-card p.lead{color:var(--ink-2);margin:0 0 28px;font-size:16px;line-height:1.55}.auth-card .field{margin-bottom:16px}.auth-card .field-row{gap:12px;display:flex}.auth-meta{color:var(--ink-3);text-align:center;margin-top:18px;font-size:13px}.auth-meta a{color:var(--primary-600);font-weight:600}.auth-meta a:hover{text-decoration:underline}.divider{font-family:var(--font-mono);letter-spacing:1px;color:var(--ink-4);text-transform:uppercase;align-items:center;gap:14px;margin:24px 0;font-size:11px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.sso-stack{flex-direction:column;gap:10px;display:flex}.sso-btn{border:1.5px solid var(--line);background:var(--surface);height:48px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:600;transition:transform .12s,border-color .18s;display:flex}.sso-btn:hover:not([disabled]){border-color:var(--ink);transform:translateY(-1px)}.sso-btn[disabled]{background:var(--paper-2);cursor:not-allowed}.sso-soon{font-family:var(--font-mono);letter-spacing:.6px;background:var(--amber-100);color:var(--amber-600);text-transform:uppercase;border-radius:999px;padding:3px 7px;font-size:9px}.auth-error{background:var(--coral-100);color:var(--coral-500);border:1px solid var(--coral-200);border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:14px;animation:.3s ease-in-out vds-shake}.auth-success{background:var(--primary-100);color:var(--primary-700);border:1px solid var(--primary-200);border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:14px}.aside-quote{font-family:var(--font-display);max-width:420px;margin-top:64px;font-size:28px;font-style:italic;line-height:1.2}@media (max-width:880px){.auth-shell{grid-template-columns:1fr}.auth-shell .auth-aside{display:none}}.app-shell{background:var(--paper);grid-template-columns:260px 1fr;min-height:100vh;display:grid}.app-shell aside.sidebar{background:var(--paper-2);border-right:1px solid var(--line);flex-direction:column;gap:24px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 10px;display:flex}.brand .brand-name{font-family:var(--font-display);letter-spacing:-.5px;font-size:24px}.nav-list{flex-direction:column;flex:1;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-list a{color:var(--ink-2);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-list a:hover{color:var(--ink);background:#1a1e170a}.nav-list a.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #1a1e170a}.user-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;display:flex}.user-tile .avatar{background:var(--primary-500);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.user-tile .user-meta{flex:1;min-width:0}.user-tile .user-meta .n{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-tile .user-meta .e{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.user-tile .logout-btn{color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;padding:6px;display:flex}.user-tile .logout-btn:hover{color:var(--ink);background:#1a1e170d}main.main-content{width:100%;max-width:1100px;margin:0 auto;padding:56px 56px 80px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;display:flex}.page-header h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(36px,4vw,60px);line-height:1.05}.page-header p{color:var(--ink-2);max-width:600px;margin:10px 0 0;font-size:16px;line-height:1.55}.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;margin-bottom:16px;padding:28px}.card h2{font-family:var(--font-display);letter-spacing:-.3px;margin:0 0 6px;font-size:28px;font-weight:400}.card .card-sub{color:var(--ink-3);margin:0 0 24px;font-size:14px}.card .card-row{border-top:1px solid var(--line-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.card .card-row:first-of-type{border-top:0;padding-top:0}.card .card-row .k{font-family:var(--font-mono);letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);font-size:11px}.card .card-row .v{color:var(--ink);font-size:15px}.tier-pill{letter-spacing:.4px;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:700;display:inline-flex}.tier-pill.free{background:var(--paper-2);color:var(--ink-3)}.tier-pill.plus{background:var(--ink);color:var(--amber-300)}.tier-pill.pro{background:var(--primary-500);color:#fff}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.active{background:var(--primary-500)}.status-dot.warn{background:var(--amber-400)}.status-dot.danger{background:var(--coral-400)}table.invoices{border-collapse:collapse;width:100%;font-size:14px}table.invoices th{text-align:left;font-family:var(--font-mono);letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);padding:10px 12px;font-size:11px}table.invoices td{border-bottom:1px solid var(--line-2);padding:14px 12px}table.invoices tr:last-child td{border-bottom:0}table.invoices a{color:var(--primary-600);font-weight:600}table.invoices a:hover{text-decoration:underline}.empty-state{text-align:center;color:var(--ink-3);padding:36px 16px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#1a1e178c;justify-content:center;align-items:center;padding:24px;animation:.2s vds-fade-up;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:24px;width:100%;max-width:540px;padding:36px 36px 28px;position:relative;box-shadow:0 30px 80px #00000040}.modal h3{font-family:var(--font-display);letter-spacing:-.4px;margin:0 0 12px;font-size:30px;font-weight:400}.modal .modal-step{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;font-size:11px}.modal .modal-actions{justify-content:flex-end;gap:10px;margin-top:26px;display:flex}.modal-close{color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px;position:absolute;top:18px;right:18px}.modal-close:hover{color:var(--ink);background:#1a1e170d}.banner-warn{background:var(--amber-100);border:1px solid var(--amber-200);color:var(--amber-600);border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px 18px;font-size:14px;display:flex}.banner-info{background:var(--blue-100);border:1px solid var(--blue-200);color:var(--blue-500);border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px 18px;font-size:14px;display:flex}.banner-danger{background:var(--coral-100);border:1px solid var(--coral-200);color:var(--coral-500);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 18px;font-size:14px;display:flex}@media (max-width:720px){.app-shell{grid-template-columns:1fr}.app-shell aside.sidebar{flex-direction:row;height:auto;padding:12px;position:static;overflow-x:auto}.nav-list{flex-direction:row}main.main-content{padding:32px 20px 60px}}
