.login-page{background:var(--bg);display:grid;grid-template-columns:1.1fr 1fr;height:100vh;min-height:100vh;overflow-y:auto}.login-hero{background:#fdfbf6;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;padding:48px;position:relative}.login-hero .mesh{animation:drift 22s ease-in-out infinite alternate;background:radial-gradient(circle at 20% 30%,#f6c545 0,#0000 50%),radial-gradient(circle at 75% 70%,#fde6b4 0,#0000 55%);filter:blur(90px);inset:-30%;opacity:.5;pointer-events:none;position:absolute}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(-5%,-3%) scale(1.1)}}.login-hero .grid-bg{background-image:linear-gradient(#1c19170d 1px,#0000 0),linear-gradient(90deg,#1c19170d 1px,#0000 0);background-size:48px 48px;inset:0;mask-image:radial-gradient(circle at 50% 50%,#000 0,#0000 80%);-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0,#0000 80%);pointer-events:none;position:absolute}.login-hero>*{position:relative;z-index:1}.login-hero .illust-wrap{align-items:center;display:flex;flex:1 1;justify-content:center;padding:30px 0}.login-hero .illust{max-width:520px;width:100%}@keyframes float1{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes float2{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.float1{animation:float1 4s ease-in-out infinite}.float1,.float2{transform-origin:center}.float2{animation:float2 5s ease-in-out infinite}.float3{animation:float1 6s ease-in-out infinite;transform-origin:center}.hero-title{color:var(--ink);font-size:48px;font-weight:800;letter-spacing:-2px;line-height:1;margin-bottom:14px}.hero-title .ital{color:var(--gold-600);font-family:"Instrument Serif",serif;font-style:italic;font-weight:400}.hero-title .grad{background:linear-gradient(180deg,#d48b13,#b66a12);-webkit-background-clip:text;background-clip:text;color:#0000}.hero-desc{color:var(--ink-2);font-size:16px;line-height:1.55;max-width:420px;opacity:.85}.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.hero-badge{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid var(--stroke);border-radius:100px;box-shadow:var(--shadow-sm);color:var(--ink-2);display:inline-flex;font-size:12px;gap:6px;padding:6px 12px}.hero-badge .dot-green{background:#22c55e;border-radius:50%;box-shadow:0 0 8px #22c55e;height:6px;width:6px}.login-form-wrap{background:var(--surface);border-left:1px solid var(--stroke);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow-y:auto;padding:64px}.login-form-card{margin:0 auto;max-width:420px;width:100%}.login-form-title{color:var(--ink);font-size:30px;font-weight:700;letter-spacing:-.8px;margin-bottom:6px}.login-form-sub{color:var(--ink-3);font-size:15px;margin-bottom:32px}.login-field{margin-bottom:16px}.login-field label{color:var(--ink-2);display:block;font-size:12px;font-weight:500;margin-bottom:7px}.input-wrap{position:relative}.input-wrap .icon-l{color:var(--ink-4);left:14px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.login-field input{background:var(--surface-2);border:1px solid var(--stroke);border-radius:10px;color:var(--ink);font-family:inherit;font-size:15px;padding:13px 16px 13px 42px;transition:var(--transition);width:100%}.login-field input::placeholder{color:var(--ink-4)}.login-field input:focus{border-color:var(--gold-400);box-shadow:0 0 0 4px #f2ad1f14;outline:none}.login-field input:disabled{cursor:not-allowed;opacity:.6}.btn-login{align-items:center;background:linear-gradient(180deg,#f2ad1f,#d48b13);border:none;border-radius:10px;box-shadow:0 8px 20px -6px #d48b1373;color:#1c1917;cursor:pointer;display:flex;font-family:inherit;font-size:15px;font-weight:600;gap:8px;justify-content:center;margin-top:8px;padding:14px;transition:var(--transition);width:100%}.btn-login:hover:not(:disabled){transform:translateY(-1px)}.btn-login:disabled{cursor:not-allowed;opacity:.6}.login-error{background:#f43f5e1a;border:1px solid #f43f5e4d;border-radius:10px;color:#fb7185;font-size:13px;font-weight:500;margin-bottom:18px;padding:11px 14px}.login-foot{color:var(--ink-3);font-size:13px;margin-top:24px;text-align:center}.login-foot button{background:none;border:none;color:var(--gold-400);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:0}.login-foot button:hover{color:var(--gold-300)}@media (max-width:900px){.login-page{grid-template-columns:1fr;height:auto;min-height:100vh}.login-hero{min-height:auto;padding:40px 32px}.login-hero .illust-wrap{padding:20px 0}.hero-title{font-size:40px}.login-form-wrap{border-left:none;border-top:1px solid var(--stroke);min-height:auto;padding:40px 32px}}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--stroke);bottom:0;display:flex;flex-direction:column;left:0;overflow-y:auto;padding:20px 12px 14px;position:fixed;top:0;width:var(--sidebar-width);z-index:100}.sidebar-header{padding:4px 10px 14px}.sidebar-header .school-name{color:var(--ink-4);display:block;font-size:11px;letter-spacing:1.4px;margin-top:10px;text-transform:uppercase}.team-switcher{align-items:center;background:var(--surface-2);border:1px solid var(--stroke);border-radius:10px;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;margin:12px 0 14px;padding:10px 12px;transition:var(--transition)}.team-switcher:hover{border-color:#3d3935}.team-switcher .team{align-items:center;color:var(--ink-2);display:flex;gap:10px;min-width:0}.team-switcher .team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-switcher .team-mark{background:var(--gold-400);border-radius:6px;color:#09090b;display:grid;flex-shrink:0;font-size:11px;font-weight:700;height:24px;place-items:center;width:24px}.sidebar-nav{flex:1 1;overflow-y:auto}.nav-section{margin-bottom:6px}.nav-section-title{color:var(--ink-4);font-size:10px;font-weight:600;letter-spacing:1.4px;padding:14px 12px 6px;text-transform:uppercase}.sidebar nav ul{list-style:none;margin:0;padding:0}.nav-link{align-items:center;border:1px solid #0000;border-radius:8px;color:var(--ink-3);display:flex;font-size:13px;font-weight:500;gap:11px;margin-bottom:1px;padding:8px 12px;text-decoration:none;transition:var(--transition)}.nav-link.active,.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link.active{border-color:var(--stroke)}.nav-link svg{flex-shrink:0;height:16px;opacity:.8;width:16px}.nav-link.active svg{color:var(--gold-400);opacity:1}.sidebar-footer{border-top:1px solid var(--stroke);margin-top:8px;padding:14px 6px 4px}.btn-logout{align-items:center;background:#f43f5e14;border:1px solid #f43f5e33;border-radius:8px;color:var(--rose-light);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:10px;justify-content:center;padding:10px;transition:var(--transition);width:100%}.btn-logout:hover{background:#f43f5e26;border-color:#f43f5e59}.main-content{background:var(--bg)}.header,header{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#fdfbf6d9;border-bottom:1px solid var(--stroke);justify-content:space-between;min-height:var(--header-height);padding:16px 36px;position:sticky;top:0;z-index:50}.header,.header-left,header{align-items:center;display:flex}.header-left{gap:14px}.header-right{align-items:center;display:flex;gap:12px}.header .page-title,header h1,header h2{-webkit-text-fill-color:initial;background:none;color:var(--ink);font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0}.btn-menu-toggle{background:none;border:none;border-radius:6px;color:var(--ink-2);cursor:pointer;display:none;padding:6px}.btn-menu-toggle:hover,.user-badge{background:var(--surface-2)}.user-badge{align-items:center;border:1px solid var(--stroke);border-radius:10px;display:flex;gap:12px;padding:6px 12px 6px 6px}.avatar{background:var(--gold-500);border-radius:8px;color:#09090b;display:grid;flex-shrink:0;font-size:13px;font-weight:700;height:32px;place-items:center;width:32px}.user-info{display:flex;flex-direction:column;line-height:1.2}.user-name{color:var(--ink);font-size:13px;font-weight:600}.user-role{color:var(--ink-4);font-size:11px;text-transform:capitalize}@media (max-width:900px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.btn-menu-toggle{display:grid;place-items:center}.header,header{padding:14px 20px}.page-content{padding:20px}}.dash{min-height:100%;padding-bottom:40px}.dash-greet{align-items:flex-start;gap:20px;justify-content:space-between;margin-bottom:28px}.dash-greet,.dash-greet h1{display:flex;flex-wrap:wrap}.dash-greet h1{align-items:baseline;color:var(--ink);font-size:30px;font-weight:700;gap:10px;letter-spacing:-.8px}.dash-greet h1 .ital{color:var(--gold-300);font-family:"Instrument Serif",serif;font-style:italic;font-weight:400}.dash-greet .sub{color:var(--ink-3);font-size:13px;margin-top:6px}.bento{grid-gap:16px;display:grid;gap:16px;grid-auto-rows:minmax(140px,auto);grid-template-columns:repeat(6,1fr)}.tile{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius-lg);overflow:hidden;padding:22px;position:relative;transition:var(--transition)}.tile:hover{border-color:#3d3935}.tile-label{align-items:center;color:var(--ink-3);display:flex;font-size:12px;gap:8px;margin-bottom:14px}.tile-label .tag{background:#10b98126;border-radius:100px;color:var(--emerald-light);font-size:10px;font-weight:600;padding:2px 7px}.tile-label .tag.down{background:#f43f5e26;color:var(--rose-light)}.t-hero{background:radial-gradient(circle at 0 0,#f2ad1f24,#0000 55%),var(--surface);grid-column:span 4;grid-row:span 2;padding:32px}.t-hero-label{align-items:center;color:var(--ink-3);display:flex;font-size:13px;gap:8px;margin-bottom:4px}.t-hero-label .live{align-items:center;background:#10b9811f;border:1px solid #10b98140;border-radius:100px;color:var(--emerald-light);display:inline-flex;font-size:10px;font-weight:600;gap:5px;letter-spacing:.5px;padding:2px 8px;text-transform:uppercase}.t-hero-label .live .dot{background:var(--emerald-light);border-radius:50%;box-shadow:0 0 8px var(--emerald-light);height:5px;width:5px}.t-hero-num{background:linear-gradient(180deg,#fafaf9,#a8a29e);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:96px;font-weight:800;letter-spacing:-5px;line-height:.9;margin-top:10px}.t-hero-desc{color:var(--ink-3);font-size:14px;line-height:1.5;margin-top:12px;max-width:460px}.t-hero-desc b{color:var(--ink-2)}.t-hero-chart{margin-top:18px}.t-hero-foot{border-top:1px solid var(--stroke);display:flex;flex-wrap:wrap;gap:28px;margin-top:20px;padding-top:20px}.t-hero-foot .col .v{color:var(--ink);font-size:20px;font-weight:700;letter-spacing:-.4px}.t-hero-foot .col .l{color:var(--ink-4);font-size:11px;letter-spacing:1px;margin-top:3px;text-transform:uppercase}.t-ring{grid-column:span 2}.ring-wrap{align-items:center;display:flex;justify-content:center;padding:8px 0 4px}.ring-foot{color:var(--ink-3);display:flex;font-size:11px;justify-content:space-between;margin-top:12px}.t-donut{grid-column:span 2}.donut-wrap{align-items:center;display:flex;gap:14px}.donut-legend{flex:1 1;min-width:0}.legend-item{align-items:center;color:var(--ink-3);display:flex;font-size:12px;justify-content:space-between;padding:5px 0}.legend-item .dot{border-radius:2px;display:inline-block;height:8px;margin-right:8px;width:8px}.legend-item .v{color:var(--ink);font-weight:600}.t-heatmap{grid-column:span 4}.heat-grid{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(30,1fr);padding:14px 0 4px}.heat-cell{aspect-ratio:1;background:#f0e4cf;border-radius:3px}.heat-lo{background:#f6d89a}.heat-med{background:#f2ad1f}.heat-hi{background:#d48b13}.heat-peak{background:#b66a12;box-shadow:0 0 8px #b66a1259}.heat-legend{align-items:center;color:var(--ink-3);display:flex;font-size:11px;gap:5px;margin-top:12px}.heat-legend .squares{display:flex;gap:3px}.heat-legend .sq{border-radius:2px;height:12px;width:12px}.heat-legend .streak{font-family:JetBrains Mono,monospace;margin-left:auto}.heat-legend .streak b{color:var(--ink)}.t-achievement{background:linear-gradient(180deg,#f2ad1f1a,#b66a1214);border-color:#f2ad1f47;grid-column:span 2;overflow:hidden;position:relative}.t-achievement:after{background:radial-gradient(circle,#f2ad1f38,#0000 60%);border-radius:50%;content:"";height:180px;position:absolute;right:-40px;top:-40px;width:180px}.trophy-ico{margin-bottom:4px;position:relative}.t-ach-title{color:var(--ink);font-size:15px;font-weight:700;letter-spacing:-.3px;position:relative}.t-ach-sub{color:var(--ink-3);font-size:12px;margin-top:4px;position:relative}.confetti{background-image:radial-gradient(circle at 20% 30%,#f6c545b3 2px,#0000 3px),radial-gradient(circle at 80% 20%,#f2ad1f99 2px,#0000 3px),radial-gradient(circle at 50% 70%,#d48b13b3 1.5px,#0000 2.5px),radial-gradient(circle at 30% 85%,#b66a1280 1.5px,#0000 2.5px);inset:0;opacity:.45;pointer-events:none;position:absolute}.t-activity{grid-column:span 3}.timeline{padding-left:20px;position:relative}.timeline:before{background:var(--stroke);bottom:6px;content:"";left:5px;position:absolute;top:6px;width:1px}.tl-row{font-size:12px;padding:8px 0;position:relative}.tl-dot{background:var(--gold-400);border:2px solid var(--bg);border-radius:50%;box-shadow:0 0 0 2px var(--gold-400);height:11px;left:-20px;position:absolute;top:12px;width:11px}.tl-dot.v{background:var(--violet);box-shadow:0 0 0 2px var(--violet)}.tl-dot.r{background:var(--rose);box-shadow:0 0 0 2px var(--rose)}.tl-dot.g{background:var(--emerald);box-shadow:0 0 0 2px var(--emerald)}.tl-dot.s{background:var(--sky);box-shadow:0 0 0 2px var(--sky)}.tl-text{color:var(--ink-2);line-height:1.5}.tl-text b{color:var(--ink);font-weight:600}.tl-time{color:var(--ink-4);font-family:JetBrains Mono,monospace;font-size:10px;margin-top:2px}.t-classes{grid-column:span 3}.t-classes .tile-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.t-classes .tile-head .link{color:var(--gold-400);font-size:11px;font-weight:600;text-decoration:none}.class-row{align-items:center;border-bottom:1px dashed var(--stroke);display:flex;gap:14px;padding:12px 0}.class-row:last-child{border:none}.class-tag{border-radius:10px;color:#fff;display:grid;flex-shrink:0;font-size:12px;font-weight:700;height:44px;place-items:center;width:44px}.class-body{flex:1 1;min-width:0}.class-t{color:var(--ink);display:flex;font-size:13px;font-weight:600;justify-content:space-between}.class-t .pct{color:var(--emerald-light);font-family:JetBrains Mono,monospace;font-size:12px}.class-bar{background:var(--stroke);border-radius:100px;height:4px;margin-top:6px;overflow:hidden}.class-bar .fill{background:linear-gradient(90deg,var(--emerald),var(--emerald-light));border-radius:100px;height:100%}.dash-loading{align-items:center;color:var(--ink-3);display:flex;flex-direction:column;gap:18px;justify-content:center;min-height:60vh}@media (max-width:1200px){.t-hero{grid-column:span 6;grid-row:span 1}.t-donut,.t-ring{grid-column:span 3}.t-heatmap{grid-column:span 6}.t-achievement{grid-column:span 3}.t-activity,.t-classes{grid-column:span 6}}@media (max-width:700px){.bento{grid-template-columns:repeat(2,1fr)}.t-achievement,.t-activity,.t-classes,.t-donut,.t-heatmap,.t-hero,.t-ring{grid-column:span 2}.t-hero-num{font-size:64px;letter-spacing:-3px}}.attendance-page{margin:0 auto;max-width:1200px;padding:20px}.stat-card{background:var(--gray-100);border-left:4px solid var(--gray-400)}.stat-card.stat-present{border-left-color:var(--success)}.stat-card.stat-absent{border-left-color:var(--danger)}.stat-card.stat-late{border-left-color:var(--warning)}.stat-value{font-size:32px;margin-bottom:8px}.stat-present .stat-value{color:var(--success)}.stat-absent .stat-value{color:var(--danger)}.stat-late .stat-value{color:var(--warning)}.stat-label{font-size:14px;font-weight:500}.attendance-grid{border:1px solid var(--gray-300);flex-direction:column;gap:12px;margin-bottom:24px;max-height:600px;overflow-y:auto}.attendance-grid,.attendance-row{border-radius:4px;display:flex;padding:12px}.attendance-row{align-items:center;background:var(--gray-50);border:1px solid var(--gray-300);justify-content:space-between;transition:background-color .2s ease}.attendance-row:hover{background:var(--gray-100)}.attendance-student{align-items:center;display:flex;flex:0 0 200px;gap:12px}.student-roll{color:var(--primary);font-weight:600;min-width:40px}.student-name,.student-roll{font-size:14px}.attendance-options{display:flex;flex-wrap:wrap;gap:8px}.attendance-btn{background:var(--card-bg);border:2px solid var(--gray-300);border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;min-width:70px;padding:8px 12px;text-align:center;transition:all .2s ease}.attendance-btn:hover{border-color:var(--primary)}.attendance-btn.present{border-color:#c8e6c9;color:var(--success)}.attendance-btn.present.active{background-color:var(--success);border-color:var(--success);color:#fff}.attendance-btn.absent{border-color:#ffcdd2;color:var(--danger)}.attendance-btn.absent.active{background-color:var(--danger);border-color:var(--danger);color:#fff}.attendance-btn.late{border-color:#ffe0b2;color:var(--warning)}.attendance-btn.late.active{background-color:var(--warning);border-color:var(--warning);color:#fff}.action-bar{justify-content:flex-end}@media (max-width:768px){.attendance-page{padding:12px}.filter-bar{grid-template-columns:1fr}.attendance-row{align-items:flex-start;flex-direction:column}.attendance-options{margin-top:8px;width:100%}.attendance-btn{flex:1 1;min-width:0;min-width:auto}.stats-grid{grid-template-columns:1fr}.action-bar{justify-content:stretch}.action-bar .btn{flex:1 1;justify-content:center}}.marks-page{margin:0 auto;max-width:1400px;padding:20px}.card{box-shadow:0 2px 8px #0000001a;overflow:hidden}.card-header{background:var(--primary-gradient);border-bottom:1px solid var(--gray-300);color:#fff;padding:24px}.card-header h1{align-items:center;display:flex;font-size:24px;font-weight:600;gap:12px;margin:0}.card-body{padding:24px}.message{border-radius:4px;font-size:14px;margin-bottom:20px;padding:12px 16px}.message-success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message-error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border:1px solid var(--gray-300);text-align:center}.stat-label{color:var(--text-secondary);font-weight:600;margin-bottom:8px}.stat-value{color:var(--primary);font-size:28px}.filter-bar{display:grid}.filter-bar,.form-row{grid-gap:16px;align-items:flex-end;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.filter-group{display:flex;flex-direction:column}.filter-group label{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:6px}.form-control{border-radius:4px;font-family:inherit;transition:border-color .3s ease}.form-control:focus{box-shadow:0 0 0 3px #667eea1a}.form-control:disabled{background-color:var(--gray-100);cursor:not-allowed}.btn{border-radius:4px;font-weight:600;transition:all .3s ease}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background-color:var(--primary)}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark);box-shadow:0 4px 12px #667eea4d}.btn-success{background-color:var(--success);font-size:16px;padding:12px 24px}.btn-success:hover:not(:disabled){background-color:#059669;box-shadow:0 4px 12px #10b9814d}.btn-secondary{background-color:#6c757d;color:#fff;padding:12px 24px}.btn-secondary:hover:not(:disabled){background-color:#5a6268;box-shadow:0 4px 12px #6c757d4d}.btn-icon{background:none;border:none;border-radius:4px;color:var(--primary);cursor:pointer;padding:4px 8px;transition:all .2s ease}.btn-icon:hover{background-color:var(--gray-100);color:var(--primary-dark)}.table-container{border:1px solid var(--gray-300);border-radius:4px;margin-bottom:24px}.marks-table{border-collapse:collapse;font-size:14px;width:100%}.marks-table thead{background-color:var(--gray-100);border-bottom:2px solid var(--gray-300)}.marks-table th{color:var(--text-primary);font-weight:600;padding:12px 16px;text-align:left}.marks-table tbody tr{border-bottom:1px solid var(--gray-300);transition:background-color .2s ease}.marks-table tbody tr:hover{background-color:var(--gray-50)}.marks-table td{padding:12px 16px}.roll-col{color:var(--primary);font-weight:600;width:60px}.name-col{color:var(--text-primary);font-weight:500;min-width:150px}.marks-col{width:120px}.remarks-col{min-width:150px}.action-col{text-align:center;width:50px}.marks-input,.remarks-input{border:1px solid var(--gray-300);border-radius:4px;font-family:inherit;font-size:13px;padding:8px 10px;width:100%}.marks-input:focus,.remarks-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #667eea1a;outline:none}.action-bar{border-top:1px solid var(--gray-300);display:flex;gap:12px;padding-top:20px}.empty-state{color:var(--text-muted)}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{font-size:16px;margin:0}.modal-overlay{background-color:#00000080}.modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;max-height:80vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{background-color:var(--gray-100);border-bottom:1px solid var(--gray-300);padding:20px 24px}.modal-header h2{color:var(--text-primary);font-weight:600}.close-btn{color:var(--text-secondary);padding:4px;transition:color .2s ease}.close-btn:hover{color:var(--text-primary)}.modal-body{max-height:calc(80vh - 140px);overflow-y:auto;padding:24px}.modal-footer{background-color:var(--gray-100);border-top:1px solid var(--gray-300);padding:16px 24px}.report-content{display:flex;flex-direction:column;gap:20px}.report-section{background-color:var(--gray-50);border:1px solid var(--gray-300);border-radius:4px;padding:16px}.report-title{border-bottom:2px solid var(--primary);color:var(--primary);font-size:15px;font-weight:600;margin-bottom:12px;padding-bottom:8px}.report-details{display:flex;flex-direction:column;gap:8px}.detail-row{align-items:center}.detail-label{color:var(--text-secondary);font-size:13px;font-weight:600}.detail-value{color:var(--text-primary);font-size:14px;font-weight:500}.loading,.no-data{padding:40px 20px}.loading{color:var(--text-secondary);text-align:center}.badge{font-weight:600;padding:4px 8px}.badge-success{background-color:#d4edda;color:#155724}.badge-warning{background-color:#fff3cd;color:#856404}.badge-danger{background-color:#f8d7da;color:#721c24}@media (max-width:768px){.marks-page{padding:12px}.filter-bar,.form-row{grid-template-columns:1fr}.action-bar{flex-direction:column}.action-bar .btn{justify-content:center;width:100%}.marks-table{font-size:12px}.marks-table td,.marks-table th{padding:8px 12px}.roll-col{width:50px}.name-col{min-width:100px}.marks-col{width:80px}.remarks-col{display:none}.modal{width:95%}.modal-header h2{font-size:16px}.detail-row{align-items:flex-start;flex-direction:column;gap:4px}.stats-grid{grid-template-columns:1fr}}.timetable-container{background-color:var(--gray-50);min-height:100vh;padding:24px}.timetable-grid{background-color:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.timetable-cell{border:1px solid var(--gray-200);min-width:140px;padding:12px;position:relative;text-align:center}.timetable-period{background-color:#dbeafe;border-radius:6px;cursor:pointer;padding:8px;transition:background-color .2s}.timetable-period:hover{background-color:#bfdbfe}.period-subject{color:#1e40af;font-weight:600;margin-bottom:4px}.period-teacher{color:#3730a3;font-size:12px;margin-bottom:2px}.period-room{color:#3730a3;font-size:12px;margin-bottom:4px}.period-time{color:#4c1d95;font-size:11px;margin-bottom:6px}.timetable-actions{display:flex;gap:4px;justify-content:center;margin-top:4px}.timetable-btn-small{align-items:center;border:none;border-radius:3px;cursor:"pointer";display:flex;font-size:12px;justify-content:center;padding:4px 6px}.library-container{background-color:var(--gray-50);min-height:100vh;padding:24px}.library-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.library-table,.stat-card{background-color:#fff}.library-table{border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.book-title{color:var(--text-primary);font-weight:500}.book-author{color:var(--gray-500)}.status-badge{border-radius:4px;padding:4px 8px}.status-issued{background-color:var(--danger-light);color:#dc2626}.status-returned{background-color:#dcfce7;color:var(--success)}.status-overdue{background-color:#fed7aa;color:#f97316}.btn-delete,.btn-edit,.btn-return{align-items:"center";border:none;border-radius:4px;cursor:"pointer";display:flex;font-size:12px;padding:6px 10px}.btn-return{background-color:var(--success);color:#fff}.search-bar{flex:1 1;min-width:250px;position:relative}.search-icon{top:50%;transform:translateY(-50%)}.search-input{border:1px solid var(--gray-300);border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px 10px 40px;width:100%}.transport-container{background-color:var(--gray-50);min-height:100vh;padding:24px}.transport-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.bus-card{background-color:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.bus-number{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 12px}.bus-capacity,.bus-route{align-items:center;color:var(--gray-500);display:flex;font-size:14px;gap:8px;margin-bottom:8px}.bus-info{font-size:14px;margin-bottom:12px}.bus-info p{color:var(--gray-500);margin:4px 0}.bus-info strong{color:var(--text-primary)}.bus-stops{margin-bottom:12px}.bus-stops-label{color:var(--text-primary);font-size:13px;font-weight:500;margin:4px 0}.bus-stops-list{display:flex;flex-wrap:wrap;gap:6px}.stop-badge{background-color:#dbeafe;border-radius:4px;color:#1e40af;font-size:12px;padding:4px 8px}.assignments-table{background-color:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.table-cell{font-size:14px;padding:12px}.bus-num,.student-name{color:var(--text-primary)}.bus-num{font-weight:600}.stop-name{color:var(--gray-500)}.announcements-container{background-color:var(--gray-50);min-height:100vh;padding:24px}.announcements-header{margin-bottom:24px}.announcements-header h1{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.announcements-header p{color:var(--gray-500);margin:0}.announcement-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:16px;padding:20px}.announcement-card-header{align-items:start;display:flex;justify-content:space-between;margin-bottom:12px}.announcement-title{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 8px}.announcement-message{color:var(--gray-500);font-size:14px;line-height:1.5;margin:0 0 12px}.announcement-badges{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.priority-badge{border-radius:4px;font-size:12px;font-weight:500;padding:4px 8px;text-transform:capitalize}.priority-urgent{background-color:var(--danger-light);color:#dc2626}.priority-high{background-color:#fed7aa;color:#f97316}.priority-medium{background-color:#dbeafe;color:#3b82f6}.priority-low{background-color:var(--gray-100);color:var(--gray-500)}.type-badge{border-radius:4px;font-size:12px;font-weight:500;padding:4px 8px;text-transform:capitalize}.announcement-meta{align-items:center;display:flex;justify-content:space-between}.announcement-by,.announcement-date{color:var(--gray-400);font-size:12px}.action-buttons{gap:8px}.btn-delete,.btn-edit{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;padding:6px 10px}.btn-edit{background-color:var(--gray-100)}.btn-delete{background-color:var(--danger-light)}.empty-state{background-color:#fff;border-radius:8px}.empty-state-title{color:var(--gray-400)}.leaves-container{background-color:var(--gray-50);min-height:100vh;padding:24px}.leaves-header{margin-bottom:24px}.leaves-header h1{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.leaves-header p{color:var(--gray-500);margin:0}.stats-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.stat-card{background-color:var(--card-bg);padding:16px}.stat-label{color:var(--gray-500);font-size:12px;margin:0 0 4px;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:24px;font-weight:700;margin:0}.stat-pending{color:var(--warning)}.stat-approved{color:var(--success)}.stat-onleave{color:var(--primary)}.filter-bar{margin-bottom:24px}.filter-select{border:1px solid var(--gray-300);border-radius:6px;font-size:14px;padding:10px 12px}.leaves-table{background-color:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.table-header{background-color:var(--gray-100);border-bottom:2px solid var(--gray-300)}.table-header th{font-size:14px;font-weight:600;padding:12px;text-align:left}.table-row{border-bottom:1px solid var(--gray-200)}.table-row td{font-size:14px;padding:12px}.employee-name{color:var(--text-primary);font-weight:500}.leave-type{text-transform:capitalize}.date-cell,.leave-type{color:var(--gray-500)}.days-cell{font-weight:600;text-align:center}.reason-cell{color:var(--gray-500)}.status-badge{border-radius:6px;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px;text-transform:capitalize}.status-pending{background-color:var(--warning-light);color:var(--warning)}.status-approved{background-color:#dcfce7;color:var(--success)}.status-rejected{background-color:var(--danger-light);color:var(--danger)}.action-buttons{display:flex;gap:4px;justify-content:center}.btn-approve,.btn-reject{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;padding:6px 10px}.btn-approve{background-color:#dcfce7}.btn-reject{background-color:var(--danger-light)}.empty-state{padding:60px 20px}.empty-state-icon{color:var(--gray-300);margin:0 auto 16px}.empty-state-title{color:#9ca3af;margin:0 0 8px}.empty-state-text{font-size:14px;margin:0}.health-page{padding:20px}.stat-card{background:var(--card-bg)}.stat-card.stat-allergies{border-left-color:var(--danger)}.stat-card.stat-blood{border-left-color:var(--primary-dark)}.stat-detail{display:flex;flex-wrap:wrap;font-size:13px;gap:12px;margin-top:8px}.stat-detail span{color:var(--gray-700);display:flex;gap:4px}.student-dropdown{background:var(--card-bg)}.dropdown-item:hover{background:var(--gray-50)}.btn-primary:hover{background:var(--primary-dark)}.btn-sm.btn-icon{border-radius:4px;padding:6px}.card{background:var(--card-bg)}.health-table{border-collapse:collapse;font-size:14px;width:100%}.health-table thead{background:var(--gray-50)}.health-table th{border-bottom:1px solid var(--gray-200);font-weight:600;text-align:left}.health-table td,.health-table th{color:var(--gray-700);padding:12px}.health-table td{border-bottom:1px solid var(--gray-100)}.health-table tr:hover{background:var(--gray-50)}.badge-primary{background:#dbeafe;color:#1e40af}.badge-warning{background:var(--warning-light);color:#92400e}.allergies-badges{display:flex;flex-wrap:wrap;gap:6px}.contact-info{font-size:13px}.contact-info div:first-child{color:var(--gray-800);font-weight:500}.modal,.modal-small{background:var(--card-bg)}.fee-summary{background:var(--gray-50);border-radius:6px;margin-bottom:16px;padding:12px}.summary-row{display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.detail-section{border-bottom:1px solid var(--gray-100);margin-bottom:16px;padding-bottom:16px}.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-section h3{color:var(--gray-800);font-size:14px;font-weight:600;margin:0 0 12px}.detail-row{display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.detail-row span:first-child{color:var(--gray-500)}.detail-row span:last-child,.detail-row strong{color:var(--gray-800);font-weight:500}.detail-content{display:flex;flex-direction:column;gap:8px}.detail-content div{background:var(--gray-50);border-radius:4px;font-size:14px;padding:8px}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}.filter-group{min-width:auto}.form-row{grid-template-columns:1fr}.modal{max-width:95%}.health-table{font-size:12px}.health-table td,.health-table th{padding:8px}}.achievements-page{padding:20px}.stat-card.stat-total{border-left-color:var(--warning)}.stat-card.stat-category{border-left-color:var(--gray-500)}.student-dropdown{background:#fff;border:1px solid var(--gray-300);border-radius:0 0 6px 6px;border-top:none;left:0;margin-top:-1px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:10}.dropdown-item{border-bottom:1px solid var(--gray-100);cursor:pointer;padding:10px 12px}.dropdown-item:hover{background:#f9fafb}.btn-sm{background:none;border:1px solid var(--gray-200);border-radius:4px;color:var(--gray-500);padding:6px}.btn-sm:hover{background:#f9fafb;color:var(--gray-700)}.btn-icon{align-items:center;display:flex;justify-content:center}.achievements-container{min-height:200px}.cards-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.achievement-card{background:#fff;border-radius:8px;border-top:4px solid var(--gray-500);box-shadow:0 1px 3px #0000001a;padding:16px;transition:all .2s}.achievement-card:hover{box-shadow:0 4px 12px #00000026}.card-header-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.badges-group{display:flex;flex-wrap:wrap;gap:8px}.badge-info{background:#dbeafe;color:#1e40af}.card-actions{display:flex;gap:6px}.card-title{color:var(--gray-800);font-size:16px;font-weight:600;margin:0 0 12px}.card-meta{grid-gap:12px;border-bottom:1px solid var(--gray-100);display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:12px;padding-bottom:12px}.meta-item{display:flex;flex-direction:column;gap:4px}.meta-item .label{color:var(--gray-500);font-size:12px;font-weight:500}.meta-item .value{color:var(--gray-800);font-size:14px;font-weight:500}.card-description{color:var(--gray-500);font-size:14px;line-height:1.5;margin:0}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}.filter-group{min-width:auto}.card-meta,.cards-grid,.form-row{grid-template-columns:1fr}.modal{max-width:95%}}.admissions-page{padding:20px}.stats-grid.pipeline-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card.stat-applied{border-left-color:var(--primary)}.stat-card.stat-under-review{border-left-color:var(--warning)}.stat-card.stat-interview{border-left-color:var(--primary-dark)}.stat-card.stat-accepted{border-left-color:var(--success)}.stat-card.stat-rejected{border-left-color:var(--danger)}.stat-card.stat-enrolled{border-left-color:var(--info)}.stat-icon{height:50px;min-width:50px}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.admissions-table{border-collapse:collapse;font-size:14px;width:100%}.admissions-table thead{background:#f9fafb}.admissions-table th{border-bottom:1px solid var(--gray-200);color:var(--gray-700);font-weight:600;padding:12px;text-align:left}.admissions-table td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);padding:12px}.admissions-table tr:hover{background:#f9fafb}.app-no{color:var(--gray-500);font-size:12px;font-weight:500}.student-name{color:var(--gray-800);font-weight:500}.status-select{background:#fff;border:1px solid var(--gray-300);border-radius:4px;cursor:pointer;font-size:12px;padding:6px 8px}.status-select:hover{border-color:var(--gray-400)}.actions{align-items:center}.form-row{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}@media (max-width:768px){.stats-grid,.stats-grid.pipeline-stats{grid-template-columns:1fr 1fr}.filter-bar{flex-direction:column}.filter-group{min-width:auto}.form-row{grid-template-columns:1fr}.modal{max-width:95%}.admissions-table{font-size:12px}.admissions-table td,.admissions-table th{padding:8px}}.expenses-page{padding:20px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.stat-card{align-items:center;background:#fff;border-left:4px solid var(--gray-500);border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:15px;padding:20px}.stat-card.stat-total{border-left-color:var(--primary-dark)}.stat-card.stat-pending{border-left-color:var(--warning)}.stat-card.stat-approved{border-left-color:var(--primary)}.stat-card.stat-paid{border-left-color:var(--success)}.stat-icon{align-items:center;background:var(--gray-100);border-radius:50%;display:flex;height:60px;justify-content:center;min-width:60px}.stat-content h3{color:var(--gray-500);font-size:14px;font-weight:500;margin:0}.stat-amount{color:var(--gray-800);font-size:24px;font-weight:600;margin:8px 0 0}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.filter-group{flex:1 1;min-width:150px}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--gray-400);left:12px;pointer-events:none;position:absolute}.form-control{padding:10px 12px 10px 40px}.search-input-wrapper .form-control{padding-left:40px}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#2563eb}.btn-info{background:var(--info);color:#fff}.btn-info:hover{background:#0891b2}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#d97706}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{font-size:12px;padding:6px 10px}.card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.card-header{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:16px}.card-header h2{color:var(--gray-800);font-size:18px;margin:0}.record-count{background:var(--gray-100);border-radius:4px;color:var(--gray-500);font-size:13px;padding:4px 12px}.card-body{padding:16px}.table-container{overflow-x:auto}.expenses-table{border-collapse:collapse;font-size:14px;width:100%}.expenses-table thead{background:#f9fafb}.expenses-table th{border-bottom:1px solid var(--gray-200);color:var(--gray-700);font-weight:600;padding:12px;text-align:left}.expenses-table td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);padding:12px}.expenses-table tr:hover{background:#f9fafb}.expense-title{color:var(--gray-800);font-weight:500}.amount{color:#059669;font-weight:600}.receipt-no{color:var(--gray-500);font-size:13px}.payment-method{font-size:13px}.payment-method,.text-capitalize{text-transform:capitalize}.badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.badge,.badge-secondary{background:var(--gray-200);color:var(--gray-700)}.actions{display:flex;gap:8px}.empty-state{color:var(--gray-500);padding:40px 20px;text-align:center}.empty-state svg{color:var(--gray-300);margin-bottom:12px}.empty-state h3{color:var(--gray-800);margin:12px 0 4px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal,.modal-small{background:#fff;border-radius:8px;box-shadow:0 20px 25px #00000026;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-small{max-width:400px}.modal-header{align-items:center;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:16px}.modal-header h2{color:var(--gray-800);font-size:18px;margin:0}.close-btn{align-items:center;background:none;border:none;color:var(--gray-500);cursor:pointer;display:flex;justify-content:center;padding:0}.close-btn:hover{color:var(--gray-800)}.modal-body{padding:16px}.form-group{margin-bottom:16px}.form-group label{color:var(--gray-700);display:block;font-size:14px;font-weight:500;margin-bottom:6px}.form-control{border:1px solid var(--gray-300);border-radius:6px;font-size:14px;padding:10px 12px;width:100%}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr}.form-row .form-group{margin-bottom:0}textarea.form-control{font-family:inherit;resize:vertical}.modal-footer{border-top:1px solid var(--gray-100);display:flex;gap:12px;justify-content:flex-end;padding:16px}.btn-secondary{background:var(--gray-200);color:var(--gray-700)}.btn-secondary:hover{background:var(--gray-300)}.alert{border-left:4px solid;border-radius:6px;font-size:14px;padding:12px 16px}.alert-danger{background:var(--danger-light);border-left-color:var(--danger);color:#991b1b}.alert-success{background:#dcfce7;border-left-color:var(--success);color:#166534}.text-muted{color:var(--gray-400)}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column}.filter-group{min-width:auto}.form-row{grid-template-columns:1fr}.modal{max-width:95%}.expenses-table{font-size:12px}.expenses-table td,.expenses-table th{padding:8px}}.generators-page{display:flex;flex-direction:column;gap:20px}.gen-tabs{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;flex-wrap:wrap;overflow-x:auto;padding:12px 16px}.gen-tab,.gen-tabs{display:flex;gap:8px}.gen-tab{align-items:center;background:var(--gray-50);border:2px solid #0000;border-radius:10px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px;transition:all .2s;white-space:nowrap}.gen-tab:hover{background:var(--body-bg);color:var(--text-primary)}.gen-tab.active{background:#fff;border-color:var(--primary);box-shadow:0 2px 8px #6366f126;color:var(--primary)}.gen-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:380px 1fr}.gen-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;padding:20px}.gen-card h3{align-items:center;color:var(--text-primary);display:flex;font-size:15px;font-weight:700;gap:8px;margin-bottom:16px}.gen-filters{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:16px}.gen-field label{color:var(--text-secondary);display:block;font-size:11px;font-weight:600;margin-bottom:4px;text-transform:uppercase}.gen-field input,.gen-field select{background:var(--gray-50);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:13px;padding:8px 12px;transition:border .2s;width:100%}.gen-field input:focus,.gen-field select:focus{background:#fff;border-color:var(--primary);outline:none}.search-input{align-items:center;display:flex;position:relative}.search-input svg{color:var(--text-muted);left:10px;position:absolute}.search-input input{padding-left:32px}.student-list{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.student-chip{align-items:center;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;gap:10px;padding:8px 12px;transition:all .15s}.student-chip:hover{background:var(--body-bg)}.student-chip.selected{background:#eef2ff;border-color:var(--primary)}.chip-avatar{align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:36px;justify-content:center;width:36px}.chip-info{display:flex;flex-direction:column}.chip-name{color:var(--text-primary);font-size:13px;font-weight:600}.chip-meta{color:var(--text-muted);font-size:11px}.generator-panel{min-height:500px}.selected-student-banner{align-items:center;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid #c7d2fe;border-radius:10px;display:flex;gap:14px;margin-bottom:20px;padding:14px 18px}.banner-avatar{align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:700;height:48px;justify-content:center;width:48px}.selected-student-banner h4{color:var(--text-primary);font-size:16px;font-weight:700;margin:0}.selected-student-banner p{color:var(--text-secondary);font-size:12px;margin:2px 0 0}.gen-section{animation:fadeIn .3s ease}.gen-section-header{align-items:flex-start;background:var(--gray-50);border-left:4px solid var(--primary);border-radius:0 10px 10px 0;display:flex;gap:14px;margin-bottom:20px;padding:16px}.gen-section-header h3{color:var(--text-primary);font-size:18px;margin:0}.gen-section-header p{color:var(--text-secondary);font-size:13px;margin:4px 0 0}.gen-actions{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.gen-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.gen-btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 4px 12px #6366f14d;color:#fff}.gen-btn.primary:hover:not(:disabled){box-shadow:0 6px 16px #6366f166;transform:translateY(-1px)}.gen-btn.secondary{background:var(--body-bg);border:1px solid var(--border);color:var(--text-primary)}.gen-btn.secondary:hover:not(:disabled){background:var(--border)}.gen-btn:disabled{cursor:not-allowed;opacity:.5}.gen-preview-info{background:var(--gray-50);border:1px solid var(--border);border-radius:10px;padding:16px 20px}.gen-preview-info h4{color:var(--text-primary);font-size:13px;font-weight:700;margin:0 0 10px}.gen-preview-info ul{list-style:none;margin:0;padding:0}.gen-preview-info li{color:var(--text-secondary);font-size:12px;padding:4px 0 4px 18px;position:relative}.gen-preview-info li:before{color:var(--success);content:"✓";font-weight:700;left:0;position:absolute}.no-data{color:var(--text-muted);font-size:13px;padding:20px;text-align:center}@media (max-width:900px){.gen-content,.gen-filters{grid-template-columns:1fr}.gen-tabs{gap:6px}.gen-tab span{display:none}}.settings-page{display:flex;flex-direction:column;gap:24px;margin:0 auto;max-width:900px}.settings-toast{align-items:center;animation:slideIn .3s ease;background:var(--success);border-radius:10px;box-shadow:0 4px 12px #00000026;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 20px;position:fixed;right:24px;top:80px;z-index:999}@keyframes slideIn{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}.settings-section{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:28px}.section-header{align-items:flex-start;display:flex;gap:16px;margin-bottom:20px}.section-header h2{color:var(--text-primary);font-size:18px;font-weight:700;margin:0 0 4px}.section-header p{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0}.section-icon{background:var(--primary-gradient);border-radius:10px;color:#fff;flex-shrink:0;height:40px;justify-content:center;width:40px}.section-icon,.section-toggle{align-items:center;display:flex}.section-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;justify-content:space-between;padding:0;width:100%}.section-toggle .section-header{margin-bottom:0}.logo-section{align-items:flex-start;background:var(--body-bg);border:1px dashed var(--border);border-radius:var(--radius);display:flex;gap:24px;padding:20px}.logo-preview{align-items:center;background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);display:flex;flex-shrink:0;height:120px;justify-content:center;overflow:hidden;width:120px}.logo-image{height:100%;object-fit:contain;padding:8px;width:100%}.logo-placeholder{align-items:center;color:var(--text-muted);font-size:11px;gap:8px;padding:8px;text-align:center}.logo-controls,.logo-placeholder{display:flex;flex-direction:column}.logo-controls{gap:10px}.logo-controls .btn{align-self:flex-start}.logo-filename{font-style:italic}.logo-filename,.logo-hint{color:var(--text-muted);font-size:12px}.logo-hint{line-height:1.5;margin:0}.presets-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.preset-card{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:10px;padding:16px;position:relative;text-align:left;transition:all .2s ease}.preset-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.preset-card.active{border-color:var(--primary);box-shadow:0 0 0 3px #d4a05326}.preset-colors{display:flex;gap:6px}.preset-swatch{border-radius:8px;box-shadow:0 1px 3px #0000001a;display:block;height:28px;width:28px}.preset-info{display:flex;flex-direction:column;gap:2px}.preset-info strong{color:var(--text-primary);font-size:14px}.preset-info span{color:var(--text-muted);font-size:11px;line-height:1.4}.preset-active-badge{align-items:center;background:var(--success);border-radius:6px;color:#fff;display:flex;font-size:10px;font-weight:700;gap:4px;padding:3px 8px;position:absolute;right:8px;top:8px}.color-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:20px}.color-field{background:var(--body-bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.color-label-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.color-label-row label{color:var(--text-primary);font-size:13px;font-weight:600}.color-hex{background:var(--card-bg);border:1px solid var(--border);border-radius:4px;font-family:Courier New,monospace;padding:2px 6px}.color-desc,.color-hex{color:var(--text-muted);font-size:11px}.color-desc{line-height:1.3;margin:0 0 10px}.color-input-row{align-items:center;display:flex;gap:8px}.color-picker{border:none;border-radius:8px;cursor:pointer;flex-shrink:0;height:36px;overflow:hidden;padding:0;width:36px}.color-picker::-webkit-color-swatch-wrapper{padding:2px}.color-picker::-webkit-color-swatch{border:none;border-radius:6px}.color-text-input{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);flex:1 1;font-family:Courier New,monospace;font-size:13px;min-width:0;padding:6px 10px}.color-text-input:focus{border-color:var(--primary);outline:none}.color-preview-bar{border-radius:8px;box-shadow:inset 0 0 0 1px #00000014;flex-shrink:0;height:36px;width:36px}.theme-preview-box{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.preview-header{padding:16px 20px}.preview-header-content{align-items:center;display:flex;gap:12px}.preview-logo{background:#fff3;border-radius:8px;height:36px;object-fit:contain;padding:2px;width:36px}.preview-body{display:flex;min-height:200px}.preview-sidebar{flex-shrink:0;padding:10px 8px;width:140px}.preview-nav-item{border-radius:8px;font-size:12px;font-weight:500;margin-bottom:4px;padding:8px 12px;transition:all .2s ease}.preview-main{flex:1 1;padding:16px}.preview-card{border-radius:10px;padding:16px}.preview-badge{border-radius:999px;font-size:11px;font-weight:600;padding:4px 10px}.preview-btn{border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:8px 16px}.settings-actions{align-items:center;display:flex;gap:16px;padding:20px 0}.settings-note{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0}@media (max-width:768px){.settings-page{padding:0 8px}.logo-section{align-items:center;flex-direction:column}.presets-grid{grid-template-columns:repeat(2,1fr)}.color-grid{grid-template-columns:1fr}.preview-body{flex-direction:column}.preview-sidebar{display:flex;gap:4px;padding:8px;width:100%}}@media (max-width:480px){.presets-grid{grid-template-columns:1fr}}:root{--gold-300:#f6c545;--gold-400:#f2ad1f;--gold-500:#d48b13;--gold-600:#b66a12;--rose:#e11d48;--rose-light:#f43f5e;--violet:#7c3aed;--indigo:#4f46e5;--emerald:#059669;--emerald-light:#10b981;--sky:#0284c7;--amber:#d97706;--bg:#faf7ee;--body-bg:#faf7ee;--surface:#fff;--surface-2:#f7f1e1;--card-bg:#fff;--stroke:#f0e4cf;--border:#f0e4cf;--sidebar-bg:#fdfbf6;--sidebar-hover:#faf3df;--sidebar-active:linear-gradient(135deg,#f2ad1f,#d48b13);--ink:#0c0a09;--ink-2:#292524;--ink-3:#57534e;--ink-4:#78716c;--text-primary:#0c0a09;--text-secondary:#292524;--text-muted:#57534e;--primary:#d48b13;--primary-dark:#b66a12;--primary-light:#f2ad1f;--primary-gradient:linear-gradient(180deg,#f6c545,#b66a12);--secondary:#e11d48;--secondary-gradient:linear-gradient(180deg,#f43f5e,#e11d48);--accent:#e11d48;--accent-light:#e11d481f;--success:#059669;--success-light:#0596691a;--warning:#d97706;--warning-light:#d977061a;--danger:#dc2626;--danger-light:#dc26261a;--info:#0284c7;--gray-50:#fafaf9;--gray-100:#f5f5f4;--gray-200:#e7e5e4;--gray-300:#d6d3d1;--gray-400:#a8a29e;--gray-500:#78716c;--gray-600:#57534e;--gray-700:#44403c;--gray-800:#292524;--gray-900:#1c1917;--sidebar-width:240px;--header-height:68px;--border-radius:10px;--radius:12px;--radius-lg:16px;--radius-xl:20px;--transition:all 0.18s cubic-bezier(0.2,0.9,0.3,1);--shadow-sm:0 1px 2px 0 #1c19170d;--shadow:0 4px 10px -3px #1c191714,0 0 0 1px #1c191708;--shadow-md:0 10px 20px -8px #1c19171f;--shadow-lg:0 20px 40px -12px #1c191726;--shadow-xl:0 40px 80px -20px #1c191733;--glow-gold:0 8px 24px -8px #f2ad1f73}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss03","ss01";background:#faf7ee;background:var(--body-bg);color:#0c0a09;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}.font-display{font-family:Inter,sans-serif;font-weight:800;letter-spacing:-.03em}.font-serif{font-family:"Instrument Serif",serif;font-style:italic;font-weight:400}.font-mono{font-family:JetBrains Mono,monospace}.app-layout{background:#faf7ee;background:var(--bg)}.app-layout,.main-content{display:flex;height:100vh;overflow:hidden}.main-content{flex:1 1;flex-direction:column;margin-left:240px;margin-left:var(--sidebar-width)}.page-content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:28px 36px 40px}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#e7e5e4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#d6d3d1}::selection{background:#f2ad1f40;color:#0c0a09;color:var(--ink)}button,input,select,textarea{color:inherit;font-family:inherit}.glass{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#ffffffbf;border:1px solid #f0e4cf;border:1px solid var(--stroke)}.kbd{background:#1c19170a;border:1px solid #f0e4cf;border:1px solid var(--stroke);border-radius:4px;color:#57534e;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:10px;padding:2px 6px}.page-content,.page-content a,.page-content label,.page-content li,.page-content p,.page-content span,.page-content td{color:#292524;color:var(--ink-2)}.page-content h1,.page-content h2,.page-content h3,.page-content h4,.page-content h5,.page-content h6{color:#0c0a09!important;color:var(--ink)!important}.page-content b,.page-content strong{color:#0c0a09;color:var(--ink)}.page-content .description,.page-content .helper-text,.page-content .hint,.page-content .meta,.page-content .muted,.page-content .subtext,.page-content .subtitle,.page-content small{color:#57534e!important;color:var(--ink-3)!important}.page-content [style*="opacity: 0.5"],.page-content [style*="opacity: 0.6"],.page-content [style*="opacity: 0.7"],.page-content [style*="opacity:0.5"],.page-content [style*="opacity:0.6"],.page-content [style*="opacity:0.7"]{opacity:1!important}.page-content [style*="color: #94a3b8"],.page-content [style*="color: #9ca3af"],.page-content [style*="color: #cbd5e1"],.page-content [style*="color:#94a3b8"],.page-content [style*="color:#9ca3af"],.page-content [style*="color:#cbd5e1"]{color:#292524!important;color:var(--ink-2)!important}.page-content table{background:#fff;background:var(--surface);border-collapse:collapse;border-color:#f0e4cf;border-color:var(--stroke);color:#0c0a09;color:var(--ink)}.page-content thead,.page-content thead th{background:#f7f1e1;background:var(--surface-2);border-color:#f0e4cf;border-color:var(--stroke);color:#0c0a09!important;color:var(--ink)!important;font-weight:600}.page-content tbody td{border-color:#f0e4cf;border-color:var(--stroke);color:#292524!important;color:var(--ink-2)!important}.page-content tbody tr:hover{background:#f7f1e1;background:var(--surface-2)}.page-content .empty-state,.page-content [class*=empty],.page-content [class*=no-data]{background:#fff;background:var(--surface);border:1px solid #f0e4cf;border:1px solid var(--stroke);border-radius:16px;border-radius:var(--radius-lg);color:#292524;color:var(--ink-2)}.page-content .empty-state h2,.page-content .empty-state h3,.page-content [class*=empty] h2,.page-content [class*=empty] h3{color:#0c0a09;color:var(--ink)}.page-content input:not([type=checkbox]):not([type=radio]),.page-content select,.page-content textarea{background:#fff;border:1px solid #f0e4cf;border:1px solid var(--stroke);color:#0c0a09!important;color:var(--ink)!important}.page-content input::placeholder,.page-content textarea::placeholder{color:#78716c;color:var(--ink-4)}.page-content hr{border-color:#f0e4cf;border-color:var(--stroke)}
/*# sourceMappingURL=main.333c89f6.css.map*/