:root{--green:#075a35;--green-2:#0d7042;--green-3:#063d28;--green-soft:#eaf4ee;--gold:#e9a900;--gold-2:#f8c844;--gold-soft:#fff7df;--ink:#17211d;--muted:#66756d;--line:#dfe7e2;--canvas:#f2f5f3;--white:#fff;--danger:#c9363e;--danger-soft:#fff0f1;--blue:#3478d4;--shadow:0 10px 30px rgba(6,61,40,.08);--shadow-sm:0 3px 12px rgba(18,40,29,.06);--radius:16px;--sidebar:258px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--canvas);font-size:14px}button,input,select,textarea{font:inherit}.icon{width:20px;height:20px;display:inline-block;flex:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:radial-gradient(circle at 30% 5%,rgba(30,142,85,.36),transparent 25%),linear-gradient(155deg,#084b31,#063921 75%);color:#fff;padding:22px 14px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.sidebar:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.045);border-radius:50%;left:-100px;bottom:80px;box-shadow:0 0 0 38px rgba(255,255,255,.02),0 0 0 76px rgba(255,255,255,.015);pointer-events:none}.brand{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.13);position:relative;z-index:1}.brand img{width:60px;height:60px;object-fit:contain}.brand span{display:grid;gap:4px}.brand strong{font-size:16px}.brand small{font-size:14px;color:var(--gold-2);direction:rtl}.side-nav{display:grid;gap:5px;padding-top:18px;position:relative;z-index:1}.side-nav a{display:flex;gap:13px;align-items:center;color:rgba(255,255,255,.78);text-decoration:none;padding:11px 12px;border-radius:10px;font-weight:500;transition:.2s}.side-nav a:hover,.side-nav a.active{color:#fff;background:rgba(255,255,255,.1);transform:translateX(2px)}.side-nav a.active{border-left:3px solid var(--gold);box-shadow:inset 0 0 18px rgba(255,255,255,.04)}.side-nav .icon{width:18px}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.43);margin:18px 9px 4px}.role-switch{position:relative;z-index:1}.role-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.role-grid span{height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);border-radius:9px;font-size:10px;font-weight:800}.active-user{margin-top:auto;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.055);border-radius:13px;padding:13px;display:flex;gap:11px;align-items:center;position:relative;z-index:1}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f4fff8,#cce9d7);color:var(--green);font-weight:800;border:2px solid rgba(255,255,255,.5)}.active-user div{display:grid;gap:3px}.active-user small{font-size:10px;color:rgba(255,255,255,.6)}.active-user strong{color:var(--gold-2)}.active-user em{font-style:normal;font-size:11px;color:rgba(255,255,255,.72)}.active-user i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#53d16d;margin-right:5px}.workspace{grid-column:2;min-width:0}.topbar{height:88px;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:16px;position:sticky;top:0;z-index:20}.page-intro{margin-right:auto}.page-intro h1{margin:0 0 5px;font-size:22px;letter-spacing:-.03em}.page-intro p{margin:0;color:var(--muted);font-size:12px}.top-actions{display:flex;align-items:center;gap:10px}.top-select,.profile-button,.icon-button{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:42px;color:var(--ink);cursor:pointer}.top-select{display:flex;align-items:center;gap:8px;padding:0 13px}.top-select .icon{width:17px}.top-select .icon:last-child{width:13px;transform:rotate(90deg)}.icon-button{width:42px;display:grid;place-items:center}.notification{position:relative}.notification b{position:absolute;top:-6px;right:-5px;background:var(--gold);color:#fff;border-radius:20px;font-size:10px;min-width:18px;height:18px;display:grid;place-items:center}.profile-button{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 5px;text-align:left}.avatar.small{width:34px;height:34px;border:0;background:var(--green-soft)}.profile-button span:nth-child(2){display:grid}.profile-button strong{font-size:12px}.profile-button small{font-size:10px;color:var(--green)}.profile-button>.icon{width:13px;transform:rotate(90deg)}.mobile-menu{display:none}.dropdown-panel{position:fixed;right:80px;top:76px;width:290px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:14px;border-radius:12px;z-index:50;display:none}.dropdown-panel.open{display:block;animation:pop .15s ease}.dropdown-panel p{padding:9px 0;margin:0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.profile-menu{right:26px;width:180px}.profile-menu a,.profile-menu button{display:block;width:100%;padding:10px;border:0;background:none;text-align:left;color:var(--ink);text-decoration:none;cursor:pointer}.content{padding:22px 25px 35px;max-width:1800px;margin:auto}.alert{margin:18px 25px 0;padding:13px 16px;border-radius:12px;display:flex;gap:10px;align-items:flex-start}.alert.success{background:var(--green-soft);color:var(--green);border:1px solid #c7e2d1}.alert.danger{background:var(--danger-soft);color:var(--danger);border:1px solid #f1c5c8}.alert button{margin-left:auto;border:0;background:none;font-size:20px;color:inherit;cursor:pointer}.alert ul{margin:6px 0 0;padding-left:17px}.app-footer{border-top:1px solid var(--line);padding:16px 25px;color:var(--muted);display:flex;justify-content:space-between;font-size:11px;background:#fff}.mobile-overlay{display:none}
.grid{display:grid;gap:14px}.grid.kpis{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:15px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;min-height:128px;transition:.2s}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.kpi .kpi-top{display:flex;align-items:center;gap:9px}.icon-box{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}.icon-box.gold{background:var(--gold-soft);color:#b77d00}.kpi label{font-size:11px;font-weight:600}.kpi strong{display:block;font-size:22px;letter-spacing:-.04em;margin:12px 0 4px}.trend{font-size:10px;color:var(--green)}.trend.down{color:var(--danger)}.spark{position:absolute;left:13px;right:13px;bottom:9px;height:25px}.spark svg{width:100%;height:100%;overflow:visible}.spark polyline{fill:none;stroke:var(--green);stroke-width:2}.spark:after{content:"";position:absolute;inset:9px 0 0;background:linear-gradient(to bottom,rgba(13,112,66,.12),transparent);clip-path:polygon(0 70%,10% 45%,20% 65%,32% 25%,44% 52%,58% 18%,70% 48%,85% 22%,100% 40%,100% 100%,0 100%)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}.panel-header{display:flex;align-items:center;padding:15px 17px;border-bottom:1px solid var(--line);gap:10px}.panel-header h2,.panel-header h3{font-size:13px;margin:0}.panel-header .icon{color:var(--green);width:18px}.panel-header .header-actions{margin-left:auto;display:flex;gap:8px}.panel-body{padding:16px}.button{border:0;border-radius:9px;padding:10px 14px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;transition:.18s}.button:hover{transform:translateY(-1px)}.button.primary{background:linear-gradient(135deg,var(--green-2),var(--green));color:#fff;box-shadow:0 7px 15px rgba(7,90,53,.18)}.button.gold{background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#3c2a00}.button.ghost{background:#fff;color:var(--green);border:1px solid #cfe0d5}.button.danger{background:var(--danger-soft);color:var(--danger)}.button.small{padding:7px 10px;font-size:11px}.button.wide{width:100%;min-height:46px}.button .icon{width:17px}.main-grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr)}.analytics-grid{grid-template-columns:repeat(12,1fr)}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.span-12{grid-column:span 12}.chart-area{height:230px;position:relative}.chart-area canvas{width:100%;height:100%}.donut-layout{display:flex;align-items:center;justify-content:center;gap:28px;height:230px}.donut{width:150px;aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--green) 0 67%,var(--gold) 67% 84%,#89a596 84% 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";width:92px;aspect-ratio:1;border-radius:50%;background:#fff;position:absolute}.donut-center{z-index:1;text-align:center}.donut-center strong{font-size:20px;display:block}.donut-center span{font-size:10px;color:var(--muted)}.legend{display:grid;gap:12px}.legend div{display:grid;grid-template-columns:9px 1fr;gap:0 8px;font-size:11px}.legend i{width:9px;height:9px;border-radius:2px;background:var(--green);grid-row:1/3}.legend div:nth-child(2) i{background:var(--gold)}.legend div:nth-child(3) i{background:#89a596}.legend small{color:var(--muted)}.progress-list{display:grid;gap:14px}.progress-row{display:grid;grid-template-columns:110px 1fr 45px;gap:10px;align-items:center;font-size:11px}.progress{height:8px;background:#edf1ef;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#32a35f);border-radius:10px}.progress-row:nth-child(even) .progress span{background:linear-gradient(90deg,var(--gold),#f4c84c)}.progress-row strong{color:var(--green)}.activity-list{display:grid}.activity{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.activity:last-child{border-bottom:0}.activity .icon-box{width:32px;height:32px}.activity p{margin:0;font-size:11px}.activity small{color:var(--muted);font-size:10px}.activity time{font-size:10px;color:var(--muted)}.announcement{display:grid;grid-template-columns:8px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.announcement:last-child{border:0}.announcement>i{width:7px;height:7px;border-radius:50%;margin-top:5px;background:var(--green)}.announcement.urgent>i{background:var(--danger)}.announcement.important>i{background:var(--gold)}.announcement strong{font-size:11px}.announcement p{font-size:10px;color:var(--muted);margin:4px 0}.announcement time{font-size:9px;color:#88938d}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:620px}.data-table th{text-transform:uppercase;letter-spacing:.05em;font-size:9px;color:var(--muted);text-align:left;background:#f7f9f8;padding:10px;border-bottom:1px solid var(--line)}.data-table td{font-size:11px;padding:11px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table tr:hover td{background:#fbfcfb}.data-table td strong{display:block}.data-table td small{color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:20px;background:var(--green-soft);color:var(--green);font-size:9px;font-weight:700;text-transform:capitalize}.badge.gold,.badge.pending,.badge.approved{background:var(--gold-soft);color:#9a6900}.badge.danger,.badge.suspended,.badge.overdue{background:var(--danger-soft);color:var(--danger)}.badge.blue,.badge.submitted,.badge.verified{background:#edf4ff;color:var(--blue)}.badge.locked{background:#eceff0;color:#48534e}.tabs{display:flex;gap:4px;padding:5px;background:#edf2ef;border-radius:10px;overflow:auto}.tab-button{border:0;background:transparent;padding:9px 13px;border-radius:7px;color:var(--muted);font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap}.tab-button.active{background:#fff;color:var(--green);box-shadow:var(--shadow-sm)}.tab-panel{display:none}.tab-panel.active{display:block;animation:fade .25s}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-grid .full{grid-column:1/-1}.field,label.field{display:grid;gap:6px;color:var(--ink);font-size:11px;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #d7e0db;border-radius:9px;background:#fff;padding:10px 11px;outline:0;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(13,112,66,.1)}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.quick-action{border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px;text-align:left;cursor:pointer;transition:.2s}.quick-action:hover{border-color:#b9d4c4;background:var(--green-soft)}.quick-action .icon{color:var(--green);margin-bottom:9px}.quick-action strong{display:block;font-size:11px}.quick-action small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.summary-card{background:linear-gradient(145deg,#0c663d,#063d28);color:#fff;border-radius:var(--radius);padding:18px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.summary-card:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;border:1px solid rgba(255,255,255,.08);right:-55px;bottom:-70px;box-shadow:0 0 0 28px rgba(255,255,255,.025)}.summary-card h2{font-size:14px;margin:0 0 14px;color:var(--gold-2)}.summary-card p{font-size:11px;line-height:1.75;color:rgba(255,255,255,.8)}.summary-list{display:grid;gap:10px;margin-top:15px}.summary-list div{display:flex;gap:8px;font-size:10px;align-items:center}.summary-list i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#55b85e;font-style:normal}.metric-line{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding:11px 0}.metric-line:last-child{border-bottom:0}.metric-line span{font-size:10px;color:var(--muted)}.metric-line strong{font-size:20px}.empty{padding:30px;text-align:center;color:var(--muted)}
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(440px,42%) 1fr;background:#fff}.login-hero{background:radial-gradient(circle at 75% 20%,rgba(63,153,99,.24),transparent 28%),linear-gradient(155deg,#0b5f3c,#063a27);color:#fff;padding:58px 60px;display:flex;flex-direction:column;position:relative;overflow:hidden}.login-hero:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;border:1px solid rgba(255,255,255,.05);right:-260px;top:20px;box-shadow:0 0 0 60px rgba(255,255,255,.018),0 0 0 120px rgba(255,255,255,.012)}.seal-orbit{display:flex;align-items:center;position:relative;z-index:1}.seal-orbit img{width:126px;height:126px;object-fit:contain;filter:drop-shadow(0 12px 20px rgba(0,0,0,.2))}.hero-copy{margin:auto 0;position:relative;z-index:1;max-width:550px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:800;color:var(--gold-2)}.eyebrow.green{color:var(--green)}.hero-copy h1{font-size:46px;line-height:1.08;letter-spacing:-.05em;margin:18px 0}.hero-copy h1 em{color:var(--gold-2);font-style:normal}.hero-copy>p:last-child{font-size:15px;line-height:1.8;color:rgba(255,255,255,.7);max-width:480px}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.13);border-radius:15px;overflow:hidden;position:relative;z-index:1}.hero-stats div{display:grid;gap:5px;padding:16px;background:rgba(3,46,29,.55);text-align:center}.hero-stats strong{font-size:20px;color:var(--gold-2)}.hero-stats span{font-size:9px;color:rgba(255,255,255,.65)}.login-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;position:relative;background:radial-gradient(circle at 50% 48%,rgba(7,90,53,.035),transparent 28%)}.language-pill{position:absolute;right:35px;top:28px;border:1px solid var(--line);padding:10px 14px;border-radius:9px;font-size:11px}.login-card{width:min(560px,100%);border:1px solid var(--line);border-radius:18px;background:#fff;padding:32px;box-shadow:0 18px 50px rgba(5,50,31,.1);text-align:center}.secure-mark{width:58px;height:58px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin:0 auto 12px}.secure-mark .icon{width:26px;height:26px}.login-card h2{font-size:28px;letter-spacing:-.04em;margin:6px 0}.login-card>p:not(.eyebrow){color:var(--muted);margin:0 0 24px}.login-card>label{display:grid;gap:7px;text-align:left;font-size:11px;font-weight:650;margin:14px 0}.login-card input{border:1px solid #cfdad3;border-radius:9px;padding:13px;outline:0;width:100%}.login-card input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(7,90,53,.09)}.password-wrap{position:relative}.password-wrap button{position:absolute;right:8px;top:7px;width:35px;height:35px;border:0;background:none;color:var(--muted);cursor:pointer}.form-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:10px 0}.form-row a{color:var(--green);text-decoration:none}.login-card .checkbox{display:flex;gap:7px;align-items:center}.checkbox input{width:auto}.role-note{display:flex;gap:10px;text-align:left;padding:11px;border:1px solid #cee0d4;background:var(--green-soft);border-radius:9px;margin:15px 0}.role-note .icon{color:var(--green)}.role-note span{display:grid;gap:3px;font-size:10px}.role-note small{color:var(--muted)}.secure-copy{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:9px;margin-top:16px}.secure-copy .icon{width:14px;color:var(--green)}.form-error{background:var(--danger-soft);color:var(--danger);padding:10px;border-radius:8px;font-size:11px;margin:12px 0}.form-success{background:var(--green-soft);color:var(--green);padding:10px;border-radius:8px;font-size:11px;margin:12px 0}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-family:monospace;font-size:13px;background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:14px;margin:14px 0}.secret-box{font-family:monospace;font-size:15px;letter-spacing:.08em;background:var(--canvas);border:1px solid var(--line);border-radius:9px;padding:12px;word-break:break-all;margin:10px 0}.link-button{background:none;border:0;color:var(--green);cursor:pointer;font-size:11px;padding:0;text-decoration:underline}.muted{color:var(--muted);font-size:12px}.danger-text{color:var(--danger);font-size:12px;margin:4px 0}.report-links{display:flex;flex-wrap:wrap;gap:10px}.report-links .button{width:auto}.attendance-toolbar{padding:14px 20px;border-bottom:1px solid var(--line);display:grid;gap:10px}.attendance-toolbar-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.attendance-toolbar-row .button{width:auto}.attendance-counts{display:flex;gap:12px;flex-wrap:wrap;margin-left:auto;font-size:11px;font-weight:700;color:var(--muted)}.attendance-counts .present{color:var(--green)}.attendance-counts .absent{color:var(--danger)}.attendance-counts .late{color:var(--gold-2)}.attendance-counts .excused{color:var(--blue)}.today-lecture-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.today-lecture-card:last-child{border-bottom:0}.today-lecture-info{display:grid;gap:6px}.today-lecture-info span{font-size:11px;color:var(--muted)}.today-lecture-badges{display:flex;gap:6px;flex-wrap:wrap}.today-lecture-actions{display:flex;gap:8px;flex-wrap:wrap}.today-lecture-actions .button{width:auto}.heatmap-table td{text-align:center}.heat-cell{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;border-radius:6px;font-size:11px;font-weight:700;color:#fff}.heat-0{background:#eef2f0;color:#8a958f}.heat-1{background:#bcdfc9;color:#0b4a2c}.heat-2{background:#7cc394;color:#0b4a2c}.heat-3{background:#3f9e63;color:#fff}.heat-4{background:#0b6b3d}.correction-tab-strip{display:flex;gap:6px;margin-bottom:14px}.correction-tab-strip a{padding:9px 16px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--muted);text-decoration:none;font-weight:650;font-size:12px;display:flex;gap:6px;align-items:center}.correction-tab-strip a.active{background:var(--green);color:#fff;border-color:var(--green)}.correction-tab-strip a.active .badge{background:rgba(255,255,255,.25);color:#fff}.notification-item{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 0;cursor:pointer;font:inherit;color:inherit}.notification-item strong{display:block;font-size:11px}.notification-item span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.login-roles{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:28px;color:var(--muted);font-size:9px}.login-roles b{border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);background:#fff}.copyright{position:absolute;bottom:18px;color:var(--muted);font-size:9px}
@keyframes fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes pop{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:1250px){.grid.kpis{grid-template-columns:repeat(3,1fr)}.main-grid{grid-template-columns:1fr}.span-8,.span-7,.span-6,.span-5,.span-4{grid-column:span 6}.login-hero{padding:45px}.hero-copy h1{font-size:39px}}
@media(max-width:900px){:root{--sidebar:245px}.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.workspace{width:100%}.mobile-menu{display:grid}.mobile-overlay{position:fixed;inset:0;background:rgba(2,30,18,.45);z-index:25}.sidebar.open~.workspace .mobile-overlay{display:block}.profile-button span:nth-child(2),.top-select span{display:none}.content{padding:17px}.topbar{padding:0 17px}.analytics-grid{grid-template-columns:1fr}.analytics-grid>[class*=span-]{grid-column:auto}.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-side{min-height:100vh;padding:35px 20px}.login-card{padding:25px}.app-footer{padding:15px 17px}}
@media(max-width:620px){.topbar{height:72px}.page-intro h1{font-size:17px}.page-intro p{display:none}.top-select{display:none}.grid.kpis{grid-template-columns:repeat(2,1fr)}.kpi{min-height:118px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.donut-layout{height:auto;padding:10px;flex-direction:column}.chart-area{height:190px}.quick-actions{grid-template-columns:1fr 1fr}.app-footer{display:grid;gap:5px}.login-side{padding-top:70px}.language-pill{top:18px;right:20px}.hero-stats{grid-template-columns:repeat(2,1fr)}}
.cihan-pagination{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;color:var(--muted);font-size:11px}.cihan-pagination__summary{display:flex;align-items:center;gap:4px;white-space:nowrap}.cihan-pagination__summary strong{color:var(--green);font-weight:800}.cihan-pagination__controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cihan-page-numbers{display:flex;align-items:center;gap:5px;padding:3px;border:1px solid var(--line);border-radius:12px;background:#f7faf8}.cihan-page-btn,.cihan-page-number,.cihan-page-dot{min-height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;text-decoration:none;font-weight:750;line-height:1}.cihan-page-btn{padding:0 13px;border:1px solid #cfe0d5;background:#fff;color:var(--green);box-shadow:var(--shadow-sm);transition:.18s}.cihan-page-number,.cihan-page-dot{min-width:32px;padding:0 8px;color:var(--muted)}.cihan-page-number{background:transparent;border:1px solid transparent;transition:.18s}.cihan-page-number:hover,.cihan-page-btn:hover{transform:translateY(-1px);border-color:#a8cdb8;background:var(--green-soft);color:var(--green)}.cihan-page-number.active{background:linear-gradient(135deg,var(--green-2),var(--green));color:#fff;border-color:transparent;box-shadow:0 7px 16px rgba(7,90,53,.18)}.cihan-page-dot{color:#9aa7a0}.cihan-page-btn.disabled{opacity:.48;pointer-events:none;color:#81908a;background:#f6f8f7;box-shadow:none}.pager>.cihan-pagination{padding:0}@media(max-width:700px){.cihan-pagination{align-items:flex-start;flex-direction:column}.cihan-pagination__controls{justify-content:flex-start}.cihan-page-numbers{max-width:100%;overflow-x:auto}.cihan-page-btn{min-height:32px;padding:0 10px}}
@media(min-width:901px){body.login-restored-page{overflow:hidden}body.login-restored-page .login-page{height:100vh;min-height:0}body.login-restored-page .login-hero,body.login-restored-page .login-side{min-height:0;height:100vh}body.login-restored-page .login-side{padding:38px 60px 46px}body.login-restored-page .login-card{padding:28px 32px}body.login-restored-page .login-card h2{font-size:26px}body.login-restored-page .login-card>p:not(.eyebrow){margin-bottom:19px}body.login-restored-page .login-card>label{margin:11px 0}body.login-restored-page .role-note{margin:12px 0}body.login-restored-page .form-row{margin:8px 0 12px}body.login-restored-page .secure-copy{margin-top:11px}body.login-restored-page .login-roles{margin-top:20px}body.login-restored-page .copyright{bottom:10px}}
.structure-forms{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.structure-forms form{align-content:start;border:1px solid var(--line);padding:12px;border-radius:12px;background:#fafcfb}@media(max-width:1250px){.structure-forms{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.structure-forms{grid-template-columns:1fr}}
.content [data-tabs]>.tabs{display:none}.record-editor{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;padding:12px;border-bottom:1px solid var(--line)}.record-editor:last-child{border-bottom:0}.editor-fields{display:grid;grid-template-columns:1.4fr .6fr 1fr auto;gap:8px;align-items:end}.editor-fields .field{min-width:0}.editor-fields input,.editor-fields select{padding:8px}.delete-form{padding-bottom:1px}@media(max-width:800px){.record-editor{grid-template-columns:1fr}.editor-fields{grid-template-columns:1fr 1fr}.delete-form .button{width:100%}}@media(max-width:520px){.editor-fields{grid-template-columns:1fr}}
.breadcrumbs{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--muted);margin-bottom:15px}.breadcrumbs a{color:var(--green);text-decoration:none}.page-actions{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:15px}.page-actions h2{font-size:22px;margin:5px 0}.page-actions p{margin:0;color:var(--muted);font-size:11px}.filter-panel{margin-bottom:15px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:10px;align-items:end;padding:14px}.filter-actions{display:flex;gap:7px}.row-actions{display:flex;align-items:center;gap:5px}.pager{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;color:var(--muted);font-size:10px}.button.disabled{opacity:.45;pointer-events:none}.form-page-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.55fr);gap:15px;align-items:start}.form-grid.spacious{padding:22px;gap:17px}.checkbox-row{display:flex!important;align-items:center}.checkbox-row input{width:auto}.form-submit{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.detail-layout{display:grid;grid-template-columns:minmax(0,1.5fr) 300px;gap:15px;align-items:start}.detail-hero{display:flex;align-items:center;gap:15px;padding:22px;border-bottom:1px solid var(--line)}.detail-hero h2{margin:4px 0;font-size:24px}.detail-hero p{margin:0;color:var(--muted)}.detail-hero>.badge{margin-left:auto}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.detail-grid>div{background:#fff;padding:17px;display:grid;gap:6px}.detail-grid small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.detail-grid strong{font-size:12px}.action-stack{display:grid;gap:8px}@media(max-width:1000px){.filter-grid{grid-template-columns:repeat(2,1fr)}.filter-actions{grid-column:1/-1}.form-page-grid,.detail-layout{grid-template-columns:1fr}}@media(max-width:620px){.page-actions{align-items:stretch;flex-direction:column}.filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.detail-grid{grid-template-columns:1fr 1fr}.row-actions{min-width:225px}}
.nav-group{display:grid}.nav-parent{width:100%;display:flex;align-items:center;gap:13px;border:0;background:transparent;color:rgba(255,255,255,.78);padding:11px 12px;border-radius:10px;font-weight:600;text-align:left;cursor:pointer}.nav-parent span{flex:1}.nav-parent>.icon:last-child{width:13px;transition:.2s}.nav-group.open .nav-parent>.icon:last-child{transform:rotate(90deg)}.nav-parent:hover,.nav-parent.active{background:rgba(255,255,255,.09);color:#fff}.nav-children{display:none;margin:3px 0 7px 19px;padding-left:12px;border-left:1px solid rgba(255,255,255,.14)}.nav-group.open .nav-children{display:grid;animation:fade .18s ease}.side-nav .nav-children a{padding:8px 10px;font-size:11px;border-radius:7px}.side-nav .nav-children a.active{border-left:2px solid var(--gold);background:rgba(255,255,255,.1);color:var(--gold-2)}
.operation-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.operation-link{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);padding:12px;border-radius:11px;color:var(--ink);text-decoration:none;transition:.2s}.operation-link:hover{border-color:#b8d5c4;background:var(--green-soft);transform:translateY(-1px)}.operation-link.active{border-color:var(--green);background:var(--green-soft);box-shadow:0 0 0 1px var(--green) inset}.operation-link.active strong{color:var(--green-3)}.operation-link .icon-box{width:36px;height:36px}.operation-link>span:nth-child(2){display:grid;gap:4px;min-width:0}.operation-link strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operation-link small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operation-link>.icon{width:14px;color:var(--green)}.operation-link .badge{white-space:nowrap;flex:none;justify-self:end}@media(max-width:900px){.operation-links{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.operation-links{grid-template-columns:1fr}}
.permission-grid{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.permission-grid legend{font-size:11px;font-weight:700;padding:0 7px}.permission-grid label{font-size:10px;display:flex;gap:7px;align-items:center}.permission-grid input{width:auto}@media(max-width:700px){.permission-grid{grid-template-columns:1fr 1fr}}
.field-hint{margin:0;padding:10px 12px;border-radius:9px;background:var(--gold-soft);color:#856000;font-size:10px}.schedule-strips{display:grid;gap:8px}.schedule-strips>div{display:flex;justify-content:space-between;gap:15px;border:1px solid var(--line);border-radius:10px;padding:12px}.schedule-strips span{color:var(--muted);font-size:11px}.roster-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:15px}.roster-grid label{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px}.roster-grid span{display:grid}.roster-grid small{color:var(--muted);font-size:9px}.availability-status{border:1px dashed #b9c9bf;background:#f6f9f7;border-radius:10px;padding:12px;color:var(--muted);font-size:11px}.availability-status.available{border-color:#a9d1b7;background:var(--green-soft);color:var(--green)}.availability-status.conflict{border-color:#ecc1c4;background:var(--danger-soft);color:var(--danger)}.attendance-selector{margin-bottom:15px}.full-selector{grid-column:span 3}.attendance-class-head{display:flex;justify-content:space-between;gap:24px;padding:20px;border-bottom:1px solid var(--line)}.attendance-class-head h2{margin:5px 0}.attendance-class-head p{margin:0;color:var(--muted);font-size:11px}.topic-field{width:min(380px,40%)}.attendance-legend{display:flex;gap:7px;align-items:center;padding:11px 18px;background:#f7f9f8;color:var(--muted);font-size:10px}.status-dot{width:8px;height:8px;border-radius:50%;margin-left:8px}.status-dot.present{background:var(--green)}.status-dot.absent{background:var(--danger)}.status-dot.late{background:var(--gold)}.status-dot.excused{background:var(--blue)}.attendance-options{display:flex;gap:5px}.attendance-choice input{position:absolute;opacity:0}.attendance-choice span{display:block;border:1px solid var(--line);padding:7px 9px;border-radius:8px;cursor:pointer;font-size:9px;font-weight:700}.attendance-choice.present input:checked+span{background:var(--green-soft);border-color:#9ecbb0;color:var(--green)}.attendance-choice.absent input:checked+span{background:var(--danger-soft);border-color:#e8aeb2;color:var(--danger)}.attendance-choice.late input:checked+span{background:var(--gold-soft);border-color:#efd17a;color:#8a6200}.attendance-choice.excused input:checked+span{background:#edf4ff;border-color:#b8cff0;color:var(--blue)}.compact-input{width:58px;border:1px solid var(--line);border-radius:7px;padding:7px}.note-input{width:100%;min-width:220px;border:1px solid var(--line);border-radius:7px;padding:8px}.attendance-submit{display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.attendance-submit p{margin:0;color:var(--muted);font-size:10px}.attendance-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:14px;align-items:end}.attendance-filter-grid .filter-actions{grid-column:1/-1}.warning-row.warning td{background:#fffdf5}.warning-row.danger td{background:#fff8f1}.warning-row.critical td{background:#fff1f2}.warning-badge{display:inline-flex;padding:5px 8px;border-radius:20px;font-size:9px;font-weight:800}.warning-badge.good{background:var(--green-soft);color:var(--green)}.warning-badge.warning{background:var(--gold-soft);color:#876000}.warning-badge.danger{background:#fff0e5;color:#b75300}.warning-badge.critical{background:var(--danger);color:#fff}@media(max-width:900px){.attendance-class-head{display:grid}.topic-field{width:100%}.attendance-filter-grid{grid-template-columns:repeat(2,1fr)}.full-selector{grid-column:auto}.roster-grid{grid-template-columns:1fr}}@media(max-width:620px){.attendance-options{display:grid;grid-template-columns:1fr 1fr}.attendance-filter-grid{grid-template-columns:1fr}.attendance-submit{align-items:stretch;display:grid;gap:12px}}
.review-only-pill{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:#fff}.review-only-pill .icon{width:15px}.dashboard-filter{margin-bottom:15px}.teacher-kpis{grid-template-columns:repeat(4,1fr)!important}.teacher-course-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px}.teacher-course-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:var(--shadow-sm);display:grid;gap:11px}.course-card-top,.card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.course-code{display:inline-flex;padding:6px 9px;border-radius:8px;background:var(--green);color:#fff;font-size:11px;font-weight:800}.teacher-course-card h3{margin:0;font-size:16px}.teacher-course-card p{margin:0;color:var(--muted);font-size:10px}.course-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px}.course-card-metrics span{display:grid;text-align:center;padding:10px 5px;color:var(--muted);font-size:8px}.course-card-metrics strong{font-size:16px;color:var(--ink)}.schedule-preview{display:grid;gap:4px;color:var(--muted)}.gradebook-course-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.gradebook-course-head h2{margin:7px 0 3px}.gradebook-course-head p,.gradebook-course-head small{display:block;margin:0;color:var(--muted);font-size:10px}.gradebook-course-head>div:last-child{text-align:right}.gradebook-course-head>div:last-child strong{font-size:26px;color:var(--green)}.grade-visibility-note{display:flex;gap:9px;align-items:center;padding:13px 17px;background:var(--gold-soft);color:#765600;font-size:10px}.grade-visibility-note .icon{width:16px}.grade-input{width:90px;border:1px solid var(--line);border-radius:8px;padding:9px}.review-boundary{display:flex;gap:12px;align-items:center;padding:14px 17px;border:1px solid #c9ddcf;border-radius:13px;background:var(--green-soft);margin-bottom:15px;color:var(--green)}.review-boundary p{margin:3px 0 0;font-size:10px;color:var(--muted)}@media(max-width:1100px){.teacher-course-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.teacher-kpis{grid-template-columns:repeat(2,1fr)!important}.teacher-course-grid{grid-template-columns:1fr}.gradebook-course-head{align-items:flex-start;display:grid;gap:12px}.gradebook-course-head>div:last-child{text-align:left}}
.barcode-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:15px;align-items:start}.barcode-hero{padding:42px;text-align:center;background:radial-gradient(circle at 50% 20%,rgba(13,112,66,.11),transparent 30%),#fff}.scanner-orbit{width:92px;height:92px;border:1px solid #b9d5c3;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;color:var(--green);box-shadow:0 0 0 12px var(--green-soft),0 0 0 24px rgba(234,244,238,.45)}.scanner-orbit .icon{width:38px;height:38px}.barcode-hero h2{font-size:28px;margin:14px 0 8px}.barcode-hero>p{color:var(--muted);margin:0 auto 25px;max-width:520px}.barcode-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;text-align:left}.barcode-form input{font-size:21px;letter-spacing:.05em;padding:16px!important;border:2px solid #b9d5c3!important}.finance-profile-head{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px;margin-bottom:15px}.profile-identity{display:flex;gap:15px;align-items:center}.finance-avatar{width:68px;height:68px;font-size:20px}.profile-identity h2{margin:4px 0}.profile-identity p,.profile-identity small{margin:0;color:var(--muted);font-size:10px}.receipt-sheet{max-width:840px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:34px}.receipt-sheet header{display:flex;align-items:center;gap:15px;border-bottom:2px solid var(--green);padding-bottom:18px}.receipt-sheet header img{width:74px}.receipt-sheet header h2{margin:0;font-size:23px}.receipt-sheet header p{margin:3px 0;color:var(--muted)}.receipt-sheet header>span{margin-left:auto;border:2px solid var(--green);border-radius:8px;padding:8px 14px;color:var(--green);font-weight:800;letter-spacing:.12em}.receipt-number{display:flex;align-items:center;gap:15px;padding:19px 0}.receipt-number small{color:var(--muted)}.receipt-number strong{font-size:18px}.receipt-number time{margin-left:auto;color:var(--muted)}.receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.receipt-grid>div{background:#fff;padding:16px;display:grid;gap:4px}.receipt-grid small{color:var(--muted);text-transform:uppercase;font-size:8px;letter-spacing:.08em}.receipt-grid span{color:var(--muted);font-size:10px}.receipt-total{display:flex;align-items:center;justify-content:space-between;padding:24px;margin:20px 0;background:var(--green-soft);border-radius:12px;color:var(--green)}.receipt-total strong{font-size:32px}.receipt-note{color:var(--muted);font-size:10px}.receipt-sheet footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:25px;color:var(--muted);font-size:9px}.receipt-actions{display:flex;justify-content:flex-end;gap:8px;max-width:840px;margin:14px auto}@media(max-width:800px){.barcode-layout{grid-template-columns:1fr}.barcode-form{grid-template-columns:1fr}.finance-profile-head{align-items:flex-start;display:grid}.receipt-grid{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.app-footer,.receipt-actions,.breadcrumbs,.no-print{display:none!important}.workspace{grid-column:1}.content{padding:0}.receipt-sheet{border:0;box-shadow:none;max-width:none}}
.template-list{display:grid;gap:10px;position:relative;z-index:1}.template-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:12px;flex-wrap:wrap}.template-row>span{display:grid;gap:3px;min-width:0}.template-row strong{font-size:12px;color:#fff}.template-row small{font-size:10px;color:rgba(255,255,255,.72);line-height:1.5}.template-row .button{flex:none}
.timetable-paper{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 55px rgba(6,61,40,.10);padding:22px;overflow:hidden;position:relative}.timetable-paper:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-170px;top:-210px;background:radial-gradient(circle,rgba(233,169,0,.09),transparent 62%);pointer-events:none}.teacher-paper{max-width:1280px;margin:auto}.timetable-sheet-head{display:grid;grid-template-columns:210px 1fr 360px;gap:22px;align-items:center;margin-bottom:18px;position:relative;z-index:1}.timetable-sheet-head.compact{grid-template-columns:1fr auto;border-bottom:2px solid #6aaa46;padding-bottom:16px}.teacher-photo-card{display:grid;justify-items:center;gap:8px}.teacher-photo{width:156px;height:156px;border-radius:4px;background:linear-gradient(145deg,#eaf4ee,#fff);border:1px solid #d5e4dc;display:grid;place-items:center;color:var(--green);font-size:38px;font-weight:900;box-shadow:0 14px 26px rgba(3,34,20,.18)}.teacher-photo-card small{color:var(--muted);font-size:10px}.sheet-brand{display:grid;justify-items:center;text-align:center;gap:8px}.sheet-brand.horizontal{display:flex;justify-items:start;text-align:left;gap:13px}.sheet-brand img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 8px 15px rgba(6,61,40,.16))}.sheet-brand.horizontal img{width:62px;height:62px}.sheet-brand strong{font-size:16px}.sheet-brand span,.sheet-meta span,.sheet-qr-panel span{font-size:11px;color:var(--muted)}.sheet-meta{text-align:right;display:grid;gap:4px}.sheet-meta strong{font-size:15px}.sheet-qr-panel{display:grid;grid-template-columns:88px 1fr;gap:15px;align-items:center;justify-self:end}.sheet-qr-panel h3{margin:0 0 10px;font-size:16px}.sheet-qr-panel strong{display:block;font-size:14px;margin-bottom:7px}.qr-mock{width:86px;height:86px;border:5px solid #fff;outline:2px solid #178942;background:#eaffef;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(7,1fr);gap:2px;padding:4px;box-shadow:0 8px 18px rgba(6,61,40,.12)}.qr-mock i{background:#178942;border-radius:1px}.qr-mock i:nth-child(3n),.qr-mock i:nth-child(4n+2),.qr-mock i:nth-child(7n+1){background:#fff}.qr-mock i:nth-child(1),.qr-mock i:nth-child(2),.qr-mock i:nth-child(8),.qr-mock i:nth-child(9),.qr-mock i:nth-child(6),.qr-mock i:nth-child(7),.qr-mock i:nth-child(13),.qr-mock i:nth-child(14),.qr-mock i:nth-child(36),.qr-mock i:nth-child(37),.qr-mock i:nth-child(43),.qr-mock i:nth-child(44){background:#0a743f}.timetable-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dce9e0;border:1px solid #dce9e0;border-radius:13px;overflow:hidden;margin:10px 0 20px}.timetable-stats div{background:linear-gradient(180deg,#fff,#fbfdfc);padding:13px;text-align:center}.timetable-stats small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.timetable-stats strong{font-size:20px;color:var(--green)}.timetable-grid-wrap{overflow:auto;border:1px solid #91c773;border-radius:0;position:relative;z-index:1}.weekly-timetable{width:100%;border-collapse:collapse;min-width:980px;table-layout:fixed}.weekly-timetable th{background:#69ab42;color:#fff;padding:13px 10px;border:1px solid #69ab42;text-align:center;font-size:12px}.weekly-timetable thead th:first-child{width:170px}.weekly-timetable tbody th{background:#f5faf2;color:#111;font-weight:800;border:1px solid #a9d293;font-size:12px}.weekly-timetable td{height:68px;vertical-align:middle;text-align:center;border:1px solid #a9d293;padding:6px;background:#fff}.weekly-timetable tr:nth-child(odd) td,.weekly-timetable tr:nth-child(odd) tbody th{background:#e1efd9}.timetable-entry{display:grid;gap:2px;justify-items:center;line-height:1.22}.timetable-entry strong{font-size:12px;color:#050b08}.timetable-entry small{font-size:10px;color:#111}.timetable-entry span,.timetable-entry em{font-size:9px;color:#3f4b44;font-style:normal}.timetable-entry b{margin-top:3px;display:inline-flex;padding:3px 7px;border-radius:20px;background:var(--green-soft);color:var(--green);font-size:8px}.timetable-entry.office strong{font-size:13px}.timetable-entry.office small{color:#506158}.timetable-entry.free{opacity:.42}.timetable-entry.free strong{font-weight:600}.teacher-template .free-cell{background:#e1efd9}.department-template .free-cell,.hall-template .free-cell,.student-template .free-cell{background:#fbfdfb}.weekly-timetable td.class-cell{box-shadow:inset 0 0 0 1px rgba(7,90,53,.06)}.weekly-timetable td.class-cell .timetable-entry.class{background:rgba(255,255,255,.45);border-radius:9px;padding:5px 4px}.weekly-timetable td.class-cell .timetable-entry.class+ .timetable-entry.class{margin-top:4px;border-top:1px dashed #96bf84;padding-top:6px}.print-watermark{position:absolute;inset:auto 25px 25px auto;opacity:.05;width:240px}.public-timetable .sidebar,.public-timetable .topbar{display:none}@media(max-width:1100px){.timetable-sheet-head{grid-template-columns:1fr}.teacher-photo-card{display:none}.sheet-qr-panel{justify-self:center}.timetable-sheet-head.compact{grid-template-columns:1fr}.sheet-meta{text-align:left}.timetable-stats{grid-template-columns:repeat(2,1fr)}}@media print{body{background:#fff}.timetable-paper{box-shadow:none;border:0;border-radius:0;padding:10px}.timetable-sheet-head{grid-template-columns:170px 1fr 320px;gap:14px;margin-bottom:12px}.teacher-photo{width:130px;height:130px}.sheet-brand img{width:112px;height:112px}.weekly-timetable{min-width:0;font-size:10px}.weekly-timetable th{padding:9px 6px}.weekly-timetable td{height:56px;padding:4px}.timetable-entry strong{font-size:10px}.timetable-entry small{font-size:8px}.timetable-entry span,.timetable-entry em,.timetable-entry b{font-size:7px}.timetable-stats{display:none}.filter-panel,.page-actions.no-print{display:none!important}@page{size:A4 landscape;margin:8mm}}
body.public-timetable{min-height:100vh;background:linear-gradient(180deg,#f6faf7,#edf4f0);padding:22px 18px}.public-timetable-content{width:100%;max-width:1320px;margin:0 auto}.public-timetable .timetable-paper{margin:0 auto 28px}@media print{body.public-timetable{background:#fff;padding:0}.public-timetable-content{max-width:none;margin:0}}
