:root{--ink:#17131f;--muted:#716b7b;--line:#e9e5ed;--panel:#fff;--bg:#f6f4f8;--purple:#42146f;--purple2:#6d28a8;--green:#128250;--red:#b42318;--shadow:0 16px 40px rgba(47,25,66,.08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#7846a8 0,transparent 30%),linear-gradient(145deg,#1b092e,#351052 56%,#16101d)}.auth-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:38px;box-shadow:0 28px 90px rgba(0,0,0,.35)}.brand-mark,.brand>span{display:grid;place-items:center;background:linear-gradient(145deg,var(--purple2),var(--purple));color:#fff;font-weight:900}.brand-mark{width:56px;height:56px;border-radius:16px;margin-bottom:28px}.eyebrow{margin:0 0 8px;color:var(--purple2);text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:900}.auth-card h1{margin:0;font-size:32px;line-height:1.1}.auth-card>p:not(.eyebrow){color:var(--muted);margin:12px 0 26px}.auth-card label,dialog label,.migration form label{display:grid;gap:7px;font-weight:700;margin-bottom:16px}input,select,textarea{width:100%;border:1px solid #d9d4df;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--purple2);box-shadow:0 0 0 3px rgba(109,40,168,.12)}textarea{resize:vertical}.primary{border:0;border-radius:10px;padding:11px 17px;background:var(--purple);color:#fff;font-weight:800}.primary:hover{background:#552084}.auth-card .primary{width:100%;padding:13px}.form-error{min-height:20px;margin:5px 0 10px;color:var(--red);font-weight:700}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:22px 16px;background:#1c0a2c;color:#fff;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 7px 28px}.brand>span{width:43px;height:43px;border-radius:12px;background:linear-gradient(145deg,#a55be2,#6b249f)}.brand div{display:grid}.brand strong{font-size:18px}.brand small{color:#c8b7d5}.sidebar nav{display:grid;gap:6px}.nav-item{border:0;border-radius:10px;background:transparent;color:#d7cce0;text-align:left;padding:12px 14px;font-weight:700}.nav-item:hover,.nav-item.active{background:#3c1657;color:#fff}.sidebar-user{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;margin-top:auto;padding:15px 7px 0;border-top:1px solid rgba(255,255,255,.13)}.sidebar-user>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--purple);font-weight:900}.sidebar-user div{display:grid;min-width:0}.sidebar-user strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#bfaecb}.sidebar-user button,.dialog-head button,td button{border:0;background:transparent;color:inherit;font-weight:800;padding:6px}.content{margin-left:250px;padding:30px;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.topbar h1{margin:0;font-size:32px}.menu-toggle{display:none}.view{display:none}.view.active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metrics article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.metrics article{padding:20px}.metrics span{color:var(--muted);font-weight:700}.metrics strong{display:block;font-size:29px;margin-top:10px}.panel{padding:22px;margin-bottom:20px}.panel-head,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-head h2,.dialog-head h2,.migration h2{margin:0;font-size:22px}.panel-head p{margin:5px 0 0;color:var(--muted)}.actions{display:flex;gap:10px}.actions input{width:240px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}td small{display:block;color:var(--muted);margin-top:3px}.empty{text-align:center;color:var(--muted);padding:34px}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#f1eff3;font-size:12px;font-weight:900}.badge.active,.badge.paid{background:#dcfae6;color:#067647}.badge.pending,.badge.draft{background:#fef0c7;color:#b54708}.badge.closed,.badge.archived,.badge.cancelled{background:#fee4e2;color:#b42318}.migration{display:grid;grid-template-columns:1fr minmax(320px,.65fr);gap:50px;align-items:start}.migration p,.migration li{color:var(--muted);line-height:1.6}.migration form{background:#f8f6fa;border-radius:14px;padding:20px}.migration code{background:#f1edf4;padding:2px 5px;border-radius:4px}dialog{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:0;border-radius:18px;padding:25px;box-shadow:0 28px 90px rgba(24,12,32,.35)}dialog::backdrop{background:rgba(24,12,32,.62)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.checks{display:flex;gap:20px;margin:5px 0 17px}.checks label{display:flex;align-items:center;gap:7px;margin:0}.checks input{width:auto}.dialog-head button{color:var(--muted)}#toast{position:fixed;right:24px;bottom:24px;z-index:50;background:#17131f;color:#fff;border-radius:11px;padding:13px 18px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s}#toast.show{opacity:1;transform:none}@media(max-width:1050px){.metrics{grid-template-columns:1fr 1fr}.migration{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.content{margin-left:0;padding:20px}.menu-toggle{display:block;border:0;background:#eee8f2;border-radius:9px;padding:9px}.topbar{align-items:flex-start}.topbar>.primary{display:none}.metrics{grid-template-columns:1fr}.panel{padding:16px}.panel-head{align-items:stretch;flex-direction:column}.actions{flex-direction:column}.actions input{width:100%}.form-grid{grid-template-columns:1fr}.checks{align-items:flex-start;flex-direction:column}.auth-card{padding:28px}}

