*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-feature-settings:"cv02","cv03","cv04","cv11";letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}table{border-collapse:collapse}svg.icon,.icon{width:1rem;height:1rem;flex:0 0 auto}
:root{--radius:.75rem;--background:oklch(0.99 0.005 250);--foreground:oklch(0.22 0.04 255);--card:oklch(1 0 0);--muted:oklch(0.965 0.01 250);--muted-foreground:oklch(0.5 0.03 255);--primary:oklch(0.55 0.2 255);--primary-foreground:oklch(0.99 0.005 250);--accent:oklch(0.94 0.03 255);--accent-foreground:oklch(0.3 0.08 255);--destructive:oklch(0.6 0.22 25);--success:oklch(0.65 0.16 155);--warning:oklch(0.78 0.15 75);--warning-foreground:oklch(0.25 0.05 75);--info:oklch(0.65 0.15 230);--border:oklch(0.92 0.01 250);--input:oklch(0.94 0.01 250);--sidebar:oklch(1 0 0);--sidebar-foreground:oklch(0.3 0.04 255);--sidebar-accent:oklch(0.96 0.02 255);--shadow-soft:0 1px 2px oklch(0.5 0.05 250/.04),0 4px 16px oklch(0.5 0.05 250/.06)}
.dark{--background:oklch(0.17 0.02 255);--foreground:oklch(0.96 0.01 250);--card:oklch(0.22 0.025 255);--muted:oklch(0.26 0.025 255);--muted-foreground:oklch(0.68 0.02 255);--primary:oklch(0.68 0.17 255);--primary-foreground:oklch(0.15 0.03 255);--accent:oklch(0.32 0.06 255);--accent-foreground:oklch(0.96 0.01 250);--destructive:oklch(0.65 0.2 25);--success:oklch(0.7 0.16 155);--warning:oklch(0.8 0.15 75);--warning-foreground:oklch(0.2 0.05 75);--info:oklch(0.7 0.15 230);--border:oklch(0.3 0.03 255);--input:oklch(0.3 0.03 255);--sidebar:oklch(0.2 0.025 255);--sidebar-foreground:oklch(0.9 0.01 250);--sidebar-accent:oklch(0.28 0.05 255)}
body{background:var(--background);color:var(--foreground)}.bg-background{background:var(--background)}.text-foreground{color:var(--foreground)}.min-h-screen{min-height:100vh}.muted{color:var(--muted-foreground)}.mt-2{margin-top:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.space-y>*+*{margin-top:.75rem}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:16rem;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:transform .2s ease}.brand-row{height:4rem;display:flex;align-items:center;gap:.5rem;padding:0 1.25rem;border-bottom:1px solid var(--border)}.brand-mark{width:2.25rem;height:2.25rem;border-radius:.75rem;background:var(--primary);color:var(--primary-foreground);display:grid;place-items:center;font-weight:700}.brand-title{font-weight:600;color:var(--sidebar-foreground)}.brand-subtitle,.profile-role{font-size:11px;color:var(--muted-foreground)}.side-nav{flex:1;overflow-y:auto;padding:.75rem .5rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:color-mix(in oklch,var(--sidebar-foreground) 80%,transparent);transition:.15s}.nav-link:hover,.nav-link.active{background:var(--sidebar-accent);color:var(--primary)}.sidebar-user{padding:.75rem;border-top:1px solid var(--border)}.profile-link{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem}.profile-link:hover{background:var(--sidebar-accent)}.avatar{width:2.25rem;height:2.25rem;border-radius:999px;background:var(--accent);color:var(--accent-foreground);display:grid;place-items:center;font-size:.75rem;font-weight:700}.profile-name{font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-main{padding-left:16rem}.topbar{position:sticky;top:0;z-index:20;height:4rem;border-bottom:1px solid var(--border);background:color-mix(in oklch,var(--background) 82%,transparent);backdrop-filter:blur(14px);display:flex;align-items:center;gap:.75rem;padding:0 1.5rem}.page-heading{flex:1;min-width:0}.page-heading h1{margin:0;font-size:1.125rem;line-height:1.5rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-heading p{margin:0;color:var(--muted-foreground);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content{padding:1.5rem;padding-bottom:1.5rem}.content>*+*{margin-top:1.5rem}
.search-box{display:flex;align-items:center;gap:.5rem;height:2.25rem;width:16rem;padding:0 .75rem;border-radius:.5rem;background:var(--muted);color:var(--muted-foreground)}.search-box input{background:transparent;border:0;outline:0;min-width:0;flex:1;font-size:.875rem}.search-box kbd{font-size:10px;padding:.125rem .375rem;border-radius:.25rem;background:var(--background);border:1px solid var(--border)}.icon-button{position:relative;width:2.25rem;height:2.25rem;border-radius:.5rem;display:grid;place-items:center;color:var(--foreground)}.icon-button:hover{background:var(--muted)}.notification-dot:after{content:"";position:absolute;top:.4rem;right:.4rem;width:.5rem;height:.5rem;border-radius:999px;background:var(--destructive)}
.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-main{grid-template-columns:2fr 1fr}.page-card,.stat-card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;box-shadow:var(--shadow-soft)}.stat-card{padding:1.25rem}.stat-card>div{display:flex;align-items:flex-start;justify-content:space-between}.stat-label{font-size:.75rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase}.stat-value{margin-top:.5rem;font-size:1.5rem;font-weight:650}.stat-delta{margin-top:.25rem;font-size:.75rem;color:var(--success)}.stat-icon{width:2.5rem;height:2.5rem;border-radius:.75rem;display:grid;place-items:center}.tone-primary{background:color-mix(in oklch,var(--primary) 12%,transparent);color:var(--primary)}.tone-success{background:color-mix(in oklch,var(--success) 16%,transparent);color:var(--success)}.tone-warning{background:color-mix(in oklch,var(--warning) 24%,transparent);color:var(--warning-foreground)}.tone-info{background:color-mix(in oklch,var(--info) 16%,transparent);color:var(--info)}.tone-destructive{background:color-mix(in oklch,var(--destructive) 12%,transparent);color:var(--destructive)}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.input-shell{display:flex;align-items:center;gap:.5rem;height:2.25rem;padding:0 .75rem;border-radius:.5rem;background:var(--muted);min-width:13rem;flex:1;color:var(--muted-foreground)}.input-shell input{border:0;outline:0;background:transparent;flex:1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.25rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid var(--border);font-size:.875rem;font-weight:500;background:var(--card);white-space:nowrap}.btn:hover{border-color:var(--primary);background:color-mix(in oklch,var(--primary) 5%,transparent)}.btn-primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.btn-danger{color:var(--destructive)}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.375rem;font-size:11px;font-weight:600;text-transform:capitalize}.badge-default{background:var(--muted);color:var(--muted-foreground)}.badge-primary{background:color-mix(in oklch,var(--primary) 12%,transparent);color:var(--primary)}.badge-success{background:color-mix(in oklch,var(--success) 16%,transparent);color:var(--success)}.badge-warning{background:color-mix(in oklch,var(--warning) 25%,transparent);color:var(--warning-foreground)}.badge-info{background:color-mix(in oklch,var(--info) 16%,transparent);color:var(--info)}.badge-destructive{background:color-mix(in oklch,var(--destructive) 12%,transparent);color:var(--destructive)}
.table-wrap{overflow-x:auto}.data-table{width:100%;min-width:760px;font-size:.875rem}.data-table th{font-size:.75rem;color:var(--muted-foreground);font-weight:500;text-align:left;padding:.75rem 1.25rem;border-bottom:1px solid var(--border)}.data-table td{padding:.75rem 1.25rem;border-bottom:1px solid var(--border)}.data-table tr:hover td{background:color-mix(in oklch,var(--muted) 42%,transparent)}.data-table tr:last-child td{border-bottom:0}.right{text-align:right}.customer-link{display:flex;align-items:center;gap:.75rem}.mini-muted{display:block;font-size:.75rem;color:var(--muted-foreground)}.actions{display:inline-flex;gap:.25rem}.tiny-button{width:1.875rem;height:1.875rem;border-radius:.375rem;display:grid;place-items:center}.tiny-button:hover{background:var(--muted)}
.chart-bars{height:14rem;display:flex;align-items:end;gap:.375rem}.chart-bars span{flex:1;border-radius:.375rem .375rem 0 0;background:linear-gradient(to top,color-mix(in oklch,var(--primary) 70%,transparent),var(--primary))}.list-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:.5rem}.list-row:hover{background:color-mix(in oklch,var(--muted) 60%,transparent)}.list-row .grow{flex:1;min-width:0}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress{height:.375rem;border-radius:999px;background:var(--muted);overflow:hidden}.progress span{display:block;height:100%;background:var(--primary);border-radius:999px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:flex;flex-direction:column;gap:.375rem;font-size:.875rem;font-weight:500}.field span{color:var(--muted-foreground);font-size:.75rem}.field input,.field select,.field textarea{width:100%;min-height:2.5rem;border:1px solid var(--border);border-radius:.5rem;background:var(--card);padding:.5rem .75rem;outline:0}.field textarea{min-height:6rem;resize:vertical}.field-full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.alert{padding:.75rem 1rem;border-radius:.5rem;border:1px solid var(--border);background:var(--muted);font-size:.875rem}.alert-error{color:var(--destructive);background:color-mix(in oklch,var(--destructive) 10%,transparent)}.public-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:var(--background)}.auth-card{width:min(28rem,100%);background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-soft)}.auth-card h1{margin:.75rem 0 0;font-size:1.5rem}.auth-card p{color:var(--muted-foreground);margin:.25rem 0 1.25rem}.install-shell{width:min(54rem,100%);background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-soft)}
.bottom-nav{display:none}.mobile-only{display:none}.overlay{display:none}.desktop-only{display:flex}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main{grid-template-columns:1fr}}
@media(max-width:900px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.overlay.open{display:block;position:fixed;inset:0;z-index:30;background:rgb(0 0 0/.4)}.app-main{padding-left:0}.mobile-only{display:grid}.desktop-only{display:none}.topbar{padding:0 1rem}.content{padding:1rem 1rem 6rem}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--card);border-top:1px solid var(--border)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.625rem .25rem;color:var(--muted-foreground);font-size:11px;font-weight:600}.bottom-nav a.active{color:var(--primary)}}
@media(max-width:680px){.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.page-heading h1{font-size:1rem}.stat-card{padding:1rem}.btn{padding:.5rem}.toolbar{align-items:stretch}.input-shell{min-width:100%}}
