:root{--color-background:#020617;--color-foreground:#f8fafc;--color-prose:#e2e8f0;--color-primary:#0f172a;--color-secondary:#1e293b;--color-muted:#1a1e2f;--color-muted-foreground:#94a3b8;--color-border:#334155;--color-accent:#22c55e;--color-destructive:#ef4444;--color-on-primary:#fff;--color-chart-1:#16a34a;--color-chart-2:#3987e5;--color-chart-3:#d55181;--font-sans:"Fira Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"Fira Code", "SFMono-Regular", Consolas, monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--sidebar-width:256px;--topbar-height:56px;--radius:6px;--breakpoint-tablet:768px}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--color-background);color:var(--color-foreground);margin:0;font-size:16px;line-height:1.5}button{font-family:inherit;font-size:inherit}a{color:var(--color-accent)}code{font-family:var(--font-mono)}.app-shell{flex-direction:column;height:100%;display:flex}.topbar{height:var(--topbar-height);padding:0 var(--space-4);background:var(--color-primary);border-bottom:1px solid var(--color-border);flex:none;justify-content:space-between;align-items:center;display:flex}.topbar-left{align-items:center;gap:var(--space-2);display:flex}.app-body{flex:auto;min-height:0;display:flex}.content{padding:var(--space-6);flex:auto;overflow-y:auto}.sidebar{width:var(--sidebar-width);padding:var(--space-4) var(--space-2);border-right:1px solid var(--color-border);background:var(--color-primary);flex-direction:column;flex:none;display:flex;overflow-y:auto}.sidebar nav{gap:var(--space-1);flex-direction:column;display:flex}.sidebar-global{padding-top:var(--space-2);border-top:1px solid var(--color-border);margin-top:auto}.sidebar-link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius);color:var(--color-muted-foreground);min-height:40px;font-size:.9rem;text-decoration:none;display:flex}.sidebar-link:hover,.sidebar-link-active{background:var(--color-secondary);color:var(--color-foreground)}.sidebar-backdrop{display:none}.dropdown{position:relative}.dropdown-trigger{align-items:center;gap:var(--space-1);color:var(--color-foreground);padding:var(--space-2) var(--space-3);border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;min-height:40px;display:flex}.dropdown-trigger:hover{border-color:var(--color-border)}.dropdown-backdrop{z-index:10;position:fixed;inset:0}.dropdown-menu{z-index:20;background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius);min-width:180px;padding:var(--space-1);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0}.dropdown-menu-right{left:auto;right:0}.dropdown-item{align-items:center;gap:var(--space-2);text-align:left;color:var(--color-foreground);padding:var(--space-2) var(--space-3);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;min-height:40px;font-size:.9rem;display:flex}.dropdown-item:hover{background:var(--color-muted)}.icon-button{color:var(--color-foreground);padding:var(--space-2);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:40px;min-height:40px;display:flex}.icon-button:hover{background:var(--color-secondary)}.mobile-only{display:none}h1{margin:0 0 var(--space-4);font-size:1.25rem}h2{color:var(--color-foreground);margin-top:var(--space-8);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);font-size:1.05rem;font-weight:600}h3{color:var(--color-accent);margin-top:var(--space-5);margin-bottom:var(--space-2);font-size:.95rem;font-weight:600}h4{color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.03em;margin-top:var(--space-4);margin-bottom:var(--space-2);font-size:.8rem;font-weight:600}.danger-zone-heading{color:var(--color-destructive)}.section-action{margin:var(--space-3) 0 var(--space-6);display:inline-block}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;max-width:900px}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:.875rem}td{font-family:var(--font-mono)}th{color:var(--color-muted-foreground);font-weight:600;font-family:var(--font-sans)}.empty{color:var(--color-muted-foreground);font-size:.875rem}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-header h1{margin:0}.chart-card{background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);margin-top:var(--space-4)}.kpi-row{gap:var(--space-4);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.kpi-tile{gap:var(--space-1);background:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);flex-direction:column;flex:160px;display:flex}.kpi-tile-label{color:var(--color-muted-foreground);font-size:.75rem}.kpi-tile-value{font-size:1.5rem;font-weight:600}.kpi-tile-delta{color:var(--color-muted-foreground);font-size:.75rem}.kpi-tile-delta-positive{color:var(--color-accent)}.kpi-tile-delta-negative{color:var(--color-destructive)}.kpi-tile-description{color:var(--color-muted-foreground);font-size:.6875rem;line-height:1.3}.date-range-filter{gap:var(--space-1);display:flex}.date-range-filter button{border:1px solid var(--color-border);color:var(--color-muted-foreground);padding:var(--space-1) var(--space-3);border-radius:var(--radius);cursor:pointer;background:0 0;min-height:40px;font-size:.8rem}.date-range-filter button:hover{border-color:var(--color-accent);color:var(--color-foreground)}.date-range-filter-active{border-color:var(--color-accent)!important;color:var(--color-foreground)!important;background:var(--color-muted)!important}.grant-form{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.grant-form input,.grant-form select{background:var(--color-primary);border:1px solid var(--color-border);color:var(--color-foreground);padding:var(--space-2) var(--space-2);border-radius:var(--radius);min-height:40px}.grant-form label{align-items:center;gap:var(--space-1);min-height:40px;display:inline-flex}.content-form{gap:var(--space-3);max-width:640px;margin-top:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);flex-direction:column;display:flex}.content-form label,.lesson-card label{gap:var(--space-1);color:var(--color-muted-foreground);flex-direction:column;font-size:.85rem;display:flex}.content-form label.checkbox-row,.grant-form label.checkbox-row{align-items:center;gap:var(--space-2);flex-direction:row}.content-form input[type=text],.content-form input[type=number],.content-form select,.content-form textarea,.lesson-card input[type=text],.lesson-card select,.lesson-card textarea{background:var(--color-primary);border:1px solid var(--color-border);color:var(--color-foreground);padding:var(--space-2);border-radius:var(--radius);font:inherit;resize:vertical;width:100%}.content-form textarea,.lesson-card textarea{min-height:140px;line-height:1.5}.content-form-hint{color:var(--color-muted-foreground);font-size:.75rem}.content-form .homework-fields{gap:var(--space-3);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius);flex-direction:column;display:flex}.pending-files{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pending-files li{align-items:center;gap:var(--space-2);font-size:.85rem;display:flex}.pending-files select{background:var(--color-primary);border:1px solid var(--color-border);color:var(--color-foreground);border-radius:var(--radius);padding:2px var(--space-1)}.pending-files button{border:1px solid var(--color-border);color:var(--color-muted-foreground);padding:2px var(--space-2);border-radius:var(--radius);cursor:pointer;background:0 0;font-size:.75rem}.content-form-actions{gap:var(--space-2);display:flex}.content-form-actions button,.lesson-card-header button{border:1px solid var(--color-border);color:var(--color-muted-foreground);padding:var(--space-1) var(--space-3);border-radius:var(--radius);cursor:pointer;background:0 0;font-size:.8rem}.content-form-actions button:hover,.lesson-card-header button:hover{border-color:var(--color-accent);color:var(--color-foreground)}.lesson-card{gap:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--color-muted);flex-direction:column;display:flex}.block-media-box{gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);background:var(--color-primary);flex-direction:column;display:flex}.block-media-box h5{color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:.8rem}.lesson-card-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.lesson-card-header .badge{padding:2px var(--space-2);border:1px solid var(--color-border);color:var(--color-muted-foreground);border-radius:999px;font-size:.7rem}.lesson-body-preview{white-space:pre-wrap;color:var(--color-muted-foreground);margin:var(--space-2) 0;font-size:.9rem}.lesson-materials{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.lesson-materials h4{color:var(--color-muted-foreground);margin:0 0 var(--space-2);font-size:.8rem;font-weight:500}.grant-form button,table button{border:1px solid var(--color-border);color:var(--color-muted-foreground);padding:var(--space-1) var(--space-3);border-radius:var(--radius);cursor:pointer;background:0 0;min-height:40px;font-size:.8rem}.grant-form button:hover,table button:hover{border-color:var(--color-accent);color:var(--color-foreground)}.skeleton{background:var(--color-secondary);border-radius:var(--radius);animation:1.4s ease-in-out infinite skeleton-pulse;display:inline-block}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.skeleton{opacity:.8;animation:none}}@media (width<=768px){.mobile-only{display:flex}.sidebar{top:var(--topbar-height);z-index:30;transition:transform .2s;position:fixed;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 12px #0006}.sidebar-open{transform:translate(0)}.sidebar-backdrop{inset:var(--topbar-height) 0 0 0;z-index:25;background:#00000080;display:block;position:fixed}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}}.saved-flash{margin-top:var(--space-1);color:var(--color-accent);font-size:.75rem;display:inline-block}.asset-preview{margin:var(--space-2) 0}.asset-preview img,.asset-preview video{border-radius:var(--radius);border:1px solid var(--color-border);max-width:100%;max-height:320px;display:block}.asset-manager{gap:var(--space-2);margin:var(--space-2) 0 var(--space-4);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius);flex-direction:column;display:flex}.asset-replace-label{gap:var(--space-1);color:var(--color-muted-foreground);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;font-size:.8rem;display:flex}.changelog-list{gap:var(--space-3);max-width:720px;margin-top:var(--space-3);flex-direction:column;display:flex}.changelog-entry{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);padding:var(--space-4)}.changelog-entry-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.changelog-version-badge{background:var(--color-accent,#6366f1);color:#fff;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.changelog-section+.changelog-section{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border)}.changelog-section-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted-foreground);margin:0 0 var(--space-1);font-size:.7rem}.changelog-section-text{white-space:pre-line;margin:0;line-height:1.55}.changelog-block{margin-top:var(--space-3);max-width:56ch}.changelog-block:first-child{margin-top:0}.changelog-block-heading{margin:0 0 var(--space-1);font-size:.95rem;font-weight:600}.changelog-block-text{color:var(--color-prose);letter-spacing:.01em;margin:0;line-height:1.65}.changelog-block-list{margin:var(--space-2) 0 0;gap:var(--space-3);flex-direction:column;padding-left:1.3em;display:flex}.changelog-block-list li{color:var(--color-prose);letter-spacing:.01em;line-height:1.65}.changelog-block-list li::marker{color:var(--color-accent)}.changelog-entry-footer{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--space-2);display:flex}.changelog-delete-btn{color:var(--color-muted-foreground);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:.75rem}.changelog-delete-btn:hover{color:#f87171}.changelog-action-btn{color:var(--color-foreground);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;padding:4px 10px;font-size:.75rem}.changelog-action-btn:hover{border-color:var(--color-accent,#6366f1)}.changelog-status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 10px;font-size:.7rem;font-weight:600;display:inline-block}.changelog-status-badge.draft{color:#b45309;background:#78350f22}.changelog-status-badge.published{color:#059669;background:#05966922}.changelog-edit-form{gap:var(--space-3);flex-direction:column;display:flex}.changelog-edit-form label{gap:var(--space-1);color:var(--color-muted-foreground);flex-direction:column;font-size:.75rem;display:flex}.changelog-edit-form input,.changelog-edit-form textarea{color:var(--color-foreground);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2);resize:vertical;font-family:inherit;font-size:.9rem}.giveaway-form,.giveaway-admin-list{max-width:720px;margin-top:var(--space-4)}.giveaway-form{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted);display:grid}.giveaway-form label{gap:var(--space-1);color:var(--color-muted-foreground);font-size:.85rem;display:grid}.giveaway-form label:has(svg){flex-wrap:wrap;align-items:center;display:flex}.giveaway-form label:has(svg) input{width:100%}.giveaway-form .giveaway-mode-toggle{color:var(--color-foreground);align-items:center;gap:8px;font-size:.9rem;display:flex}.giveaway-form .giveaway-mode-toggle input{width:auto}.giveaway-form input,.giveaway-form textarea{box-sizing:border-box;border:1px solid var(--color-border);border-radius:calc(var(--radius) - 3px);background:var(--color-background);width:100%;color:var(--color-foreground);font:inherit;padding:9px 10px}.giveaway-code-row{gap:var(--space-2);width:100%;display:flex}.giveaway-code-row input{flex:1}.giveaway-code-row button{padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:calc(var(--radius) - 3px);background:var(--color-background);color:var(--color-foreground);cursor:pointer;flex-shrink:0;font-size:.85rem}.giveaway-code-row button:hover{border-color:var(--color-accent)}.giveaway-admin-list h2{font-size:1rem}.giveaway-admin-card{margin-top:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-muted)}.giveaway-admin-card p{white-space:pre-line;margin:var(--space-2) 0}.giveaway-admin-head,.giveaway-admin-actions{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.giveaway-admin-card small{color:var(--color-muted-foreground);align-items:center;gap:5px;margin-top:5px;display:flex}.giveaway-winner a{color:var(--color-accent);font-weight:600;text-decoration:none}.giveaway-winner a:hover{text-decoration:underline}.giveaway-status{background:var(--color-border);border-radius:999px;flex:none;padding:3px 8px;font-size:.72rem}.giveaway-status-active{color:#22c55e}.giveaway-status-completed{color:#60a5fa}.giveaway-status-cancelled{color:#f87171}.giveaway-admin-actions{margin-top:var(--space-3);justify-content:flex-start}.giveaway-admin-actions button,.primary-button{align-items:center;gap:6px;display:inline-flex}.giveaway-public-link-row{margin-top:var(--space-3);border:1px solid var(--color-border);border-radius:calc(var(--radius) - 3px);background:var(--color-background);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:10px;display:grid}.giveaway-public-link-row>span{color:var(--color-muted-foreground);grid-column:1/-1;font-size:.78rem}.giveaway-public-link-row code{min-width:0;color:var(--color-accent);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.giveaway-public-link-row button{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.giveaway-admin-actions .danger{color:#f87171}.giveaway-entries-list{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:calc(var(--radius) - 3px);background:var(--color-background)}.giveaway-entries-list ul{gap:var(--space-1);flex-direction:column;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.giveaway-entries-list li{justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border);padding:4px 0;font-size:.8125rem;display:flex}.giveaway-entries-list li:last-child{border-bottom:none}.giveaway-entries-list li a{color:var(--color-accent)}.giveaway-entries-list li span{color:var(--color-muted-foreground);white-space:nowrap;font-size:.75rem}.view-toggle{border-radius:var(--radius);background:var(--color-muted);border:1px solid var(--color-border);margin:var(--space-2) 0;gap:2px;padding:2px;display:inline-flex}.view-toggle button{color:var(--color-muted-foreground);border-radius:calc(var(--radius) - 2px);cursor:pointer;font:inherit;background:0 0;border:none;padding:6px 14px;font-size:.85rem}.view-toggle button[data-active=true]{background:var(--color-primary);color:var(--color-foreground)}
