:root{--primary:#2563eb;--secondary:#0f172a;--accent:#06b6d4;--bg:#f4f7fb;--surface:#fff;--text:#172033;--muted:#667085;--radius:16px;--sidebar:264px;--brand-button:var(--primary);--brand-bg:var(--bg);--shadow:0 12px 30px rgba(15,23,42,.08);--line:color-mix(in srgb,var(--text) 12%,transparent)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--brand-bg,var(--bg));color:var(--text);font-family:var(--font,Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}img{max-width:100%;height:auto}.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}.muted{color:var(--muted)}.small{font-size:.875rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.nowrap{white-space:nowrap}.stack{display:grid;gap:16px}.cluster{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.text-right{text-align:right}.center{text-align:center}.hidden{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:calc(var(--radius)*.65);padding:10px 16px;min-height:42px;font-weight:700;cursor:pointer;background:var(--brand-button,var(--primary));color:#fff;text-decoration:none;transition:.18s transform,.18s opacity}.btn:hover{text-decoration:none;opacity:.92;transform:translateY(-1px)}.btn.secondary{background:var(--secondary)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.danger{background:#b42318}.btn.sm{min-height:34px;padding:6px 10px;font-size:.86rem}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:.78rem;font-weight:800;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.badge.paid,.badge.approved,.badge.active{background:#dcfae6;color:#067647}.badge.pending,.badge.processing,.badge.expiring{background:#fef0c7;color:#b54708}.badge.overdue,.badge.expired,.badge.rejected,.badge.blocked,.badge.suspended{background:#fee4e2;color:#b42318}.badge.cancelled,.badge.inactive{background:#eaecf0;color:#475467}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:22px 14px;background:var(--secondary);color:#fff;overflow:auto;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 20px}.brand img{width:42px;height:42px;border-radius:12px;object-fit:contain;background:#fff}.brand-mark{width:42px;height:42px;border-radius:12px;background:var(--primary);display:grid;place-items:center;font-weight:900}.brand-title{font-weight:900;letter-spacing:-.02em}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:rgba(255,255,255,.78);padding:10px 12px;border-radius:10px;font-weight:650;text-decoration:none}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.11);color:#fff}.sidebar .nav-section{margin:16px 10px 6px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}.main{min-width:0}.topbar{height:70px;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);position:sticky;top:0;z-index:15}.topbar .search{flex:1;max-width:560px}.topbar .search input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 13px;border-radius:12px}.mobile-menu{display:none;border:0;background:transparent;color:var(--text);font-size:1.4rem}.content{padding:24px;max-width:1500px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head h1{margin:0;font-size:clamp(1.6rem,2.4vw,2.25rem);letter-spacing:-.035em}.page-head p{margin:5px 0 0;color:var(--muted)}
.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.metric .label{font-size:.82rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.metric .value{font-size:clamp(1.5rem,2.7vw,2.25rem);font-weight:900;letter-spacing:-.04em;margin-top:6px}.metric .sub{font-size:.82rem;color:var(--muted);margin-top:4px}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.toolbar input,.toolbar select{min-height:42px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.field{display:grid;gap:6px}.field label{font-size:.84rem;font-weight:800;color:color-mix(in srgb,var(--text) 86%,var(--muted))}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:calc(var(--radius)*.55);background:var(--surface);color:var(--text);padding:11px 12px;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.field textarea{min-height:105px;resize:vertical}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}.help{font-size:.78rem;color:var(--muted)}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}tbody tr:hover{background:color-mix(in srgb,var(--primary) 3%,transparent)}.table-wrap{overflow:auto}.flash{padding:12px 15px;border-radius:12px;margin-bottom:16px;font-weight:700}.flash.success{background:#dcfae6;color:#067647}.flash.error{background:#fee4e2;color:#b42318}.flash.info{background:#e0f2fe;color:#075985}
.chart{display:flex;gap:10px;align-items:end;height:180px;padding-top:20px}.chart-col{flex:1;min-width:28px;display:grid;gap:6px;align-items:end;height:100%;text-align:center}.chart-bar{width:100%;min-height:3px;background:linear-gradient(180deg,var(--accent),var(--primary));border-radius:10px 10px 3px 3px}.chart-label{font-size:.7rem;color:var(--muted)}
.public-shell{min-height:100vh;background:var(--brand-bg,var(--bg));color:var(--text)}.public-nav{height:72px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--surface)}.public-nav .container{display:flex;align-items:center;justify-content:space-between;gap:16px}.public-main{padding:42px 0 70px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;padding:42px 0}.hero h1{font-size:clamp(2.3rem,5vw,4.6rem);line-height:.98;letter-spacing:-.06em;margin:0}.hero p{font-size:1.1rem;color:var(--muted);max-width:650px}.hero-panel{min-height:340px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 82%,#000),color-mix(in srgb,var(--accent) 75%,#fff));border-radius:calc(var(--radius)*1.4);padding:26px;color:#fff;box-shadow:0 30px 80px color-mix(in srgb,var(--primary) 25%,transparent)}.auth-card{width:min(480px,calc(100% - 28px));margin:7vh auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.auth-card h1{margin-top:0}.charge-shell{width:min(980px,calc(100% - 28px));margin:32px auto}.charge-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.charge-logo{max-width:150px;max-height:62px;object-fit:contain}.qr{display:inline-block;padding:10px;background:#fff;border-radius:12px}.pix-code{padding:12px;border:1px dashed var(--line);border-radius:12px;font-family:ui-monospace,monospace;font-size:.77rem;word-break:break-all;background:color-mix(in srgb,var(--surface) 90%,var(--bg))}
.theme-card{display:grid;gap:10px}.theme-preview{height:110px;border-radius:12px;background:linear-gradient(135deg,var(--preview-a),var(--preview-b));padding:12px;display:grid;grid-template-columns:28% 1fr;gap:8px}.theme-preview:before,.theme-preview:after{content:"";border-radius:8px;background:rgba(255,255,255,.65)}
/* Structural template variants */
body.cards-flat .card,body.cards-flatborder .card{box-shadow:none}body.cards-framed .card,body.cards-goldline .card{box-shadow:none;border-width:2px}body.cards-sharp .card,body.cards-editorial .card{box-shadow:none}body.cards-glass .card{backdrop-filter:blur(16px);background:color-mix(in srgb,var(--surface) 82%,transparent);box-shadow:0 18px 45px rgba(30,41,59,.12)}body.cards-neon .card{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent),0 18px 60px color-mix(in srgb,var(--accent) 12%,transparent)}body.cards-bento .grid.cols-4 .card:first-child{grid-column:span 2}body.cards-metric .metric{border-left:4px solid var(--primary)}
body.nav-floating .sidebar{margin:14px;height:calc(100vh - 28px);border-radius:var(--radius)}body.nav-floating .app-shell{grid-template-columns:calc(var(--sidebar) + 28px) 1fr}body.nav-line .sidebar,body.nav-clean .sidebar{background:var(--surface);color:var(--text);border-right:1px solid var(--line)}body.nav-line .sidebar nav a,body.nav-clean .sidebar nav a{color:var(--muted)}body.nav-line .sidebar nav a:hover,body.nav-line .sidebar nav a.active,body.nav-clean .sidebar nav a:hover,body.nav-clean .sidebar nav a.active{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary)}body.nav-gradient .sidebar{background:linear-gradient(180deg,var(--secondary),var(--primary))}body.nav-glass .sidebar{background:color-mix(in srgb,var(--secondary) 86%,transparent);backdrop-filter:blur(18px)}body.nav-bento .sidebar{width:var(--sidebar)}body.nav-bento .sidebar nav a{padding:9px 8px;text-align:center;font-size:.82rem}body.nav-editorial .sidebar nav a,body.nav-lux .sidebar nav a,body.nav-blacklux .sidebar nav a{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
body.density-compact .content{padding:18px}body.density-compact .card{padding:15px}body.density-compact th,body.density-compact td{padding:8px}body.density-airy .content{padding:32px}body.density-airy .card{padding:26px}body.density-airy th,body.density-airy td{padding:15px 12px}
body.table-striped tbody tr:nth-child(even){background:color-mix(in srgb,var(--primary) 3%,transparent)}body.table-dense th,body.table-dense td{padding:7px 8px;font-size:.87rem}body.table-editorial th{font-family:Georgia,serif;font-weight:400;text-transform:none;font-size:.92rem}body.table-dark table{background:color-mix(in srgb,var(--surface) 90%,#000)}
@media(max-width:1050px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}.hero-panel{min-height:240px}}
@media(max-width:820px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(86vw,320px);transform:translateX(-105%);transition:.2s transform;box-shadow:0 20px 70px #0005}.sidebar.open{transform:translateX(0)}.mobile-menu{display:inline-flex}.topbar{padding:0 14px}.content{padding:18px}.grid.cols-2,.grid.cols-3,.grid.cols-4,.form-grid{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.page-head .cluster{width:100%}.page-head .btn{flex:1}.hero{padding-top:18px}}
@media(max-width:720px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;box-shadow:var(--shadow)}.responsive-table td{border:0;display:flex;justify-content:space-between;gap:16px;padding:8px 0;text-align:right}.responsive-table td:before{content:attr(data-label);font-weight:800;color:var(--muted);text-align:left}.responsive-table td.actions{display:block;text-align:left;padding-top:12px}.responsive-table td.actions:before{display:none}.charge-head{align-items:flex-start;flex-direction:column}.auth-card{margin:18px auto}.public-main{padding-top:18px}}
@media(max-width:430px){.container{width:min(100% - 22px,1180px)}.content{padding:14px}.card{padding:15px}.topbar .user-meta{display:none}.btn{padding-inline:12px}.metric .value{font-size:1.65rem}}
