/* ==================== АКСиМ DESIGN SYSTEM ==================== */
@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
    --font-display: 'Unbounded', sans-serif;
    --font-body: 'Inter', system-ui, sans-serif;
    --aksim-900: #0c2d3b; --aksim-800: #0f3d4f; --aksim-700: #145068;
    --aksim-600: #1a6685; --aksim-500: #1e7a9e; --aksim-400: #2d9bc4;
    --aksim-300: #5bb8d9; --aksim-200: #a3daf0; --aksim-100: #d9f0fa; --aksim-50: #eef8fd;
    --amber-600: #c17f1a; --amber-500: #d4941f; --amber-400: #e8a92e;
    --amber-300: #f0c15e; --amber-200: #f5d98e; --amber-100: #faedc7; --amber-50: #fdf6e3;
    --bg: #f5f7f9; --surface: #ffffff; --surface-2: #f9fafb;
    --text: #0f1c24; --text-2: #3d5a6b; --text-3: #7a95a5;
    --border: #dde5ea; --border-light: #eef2f5;
    --primary: var(--aksim-700); --primary-light: var(--aksim-50);
    --success: #0d7c5f; --success-light: #e8f8f2;
    --warning: var(--amber-500); --warning-light: var(--amber-50);
    --danger: #c93535; --danger-light: #fef1f1;
    --num-bg: #e0ecff; --num-border: #4a7fd4; --num-text: #1e3f73;
    --den-bg: #fff3d9; --den-border: #d4941f; --den-text: #6b4a0e;
    --always-bg: #dff5ec; --always-border: #1aad6f; --always-text: #0b5e3a;
    --radius: 16px; --radius-sm: 10px; --radius-xs: 6px;
    --shadow-xs: 0 1px 2px rgba(12,45,59,.04); --shadow-sm: 0 2px 8px rgba(12,45,59,.06);
    --shadow: 0 4px 20px rgba(12,45,59,.08); --shadow-lg: 0 12px 48px rgba(12,45,59,.12);
    --transition: .25s cubic-bezier(.4,0,.2,1);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-top: env(safe-area-inset-top, 0px);
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.65;min-height:100vh}

/* NAV */
.main-nav{background:var(--aksim-900);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;padding:0 28px;height:68px;gap:4px}
.nav-logo{display:flex;align-items:center;gap:14px;text-decoration:none;margin-right:40px;flex-shrink:0}
.logo-emblem{width:40px;height:40px;background:linear-gradient(135deg,var(--amber-400),var(--amber-600));border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:var(--aksim-900);font-family:var(--font-display);letter-spacing:-.5px;box-shadow:0 2px 12px rgba(232,169,46,.3)}
.logo-text-group{line-height:1.2}
.logo-main-text{font-family:var(--font-display);font-weight:700;font-size:14px;color:#fff;letter-spacing:-.3px}
.logo-sub-text{font-size:9.5px;color:rgba(255,255,255,.4);font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.nav-links{display:flex;gap:2px;flex:1}
.nav-link{display:flex;align-items:center;gap:7px;padding:9px 18px;border-radius:var(--radius-sm);text-decoration:none;color:rgba(255,255,255,.6);font-weight:500;font-size:14px;transition:var(--transition);position:relative}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.07)}
.nav-link.active{color:var(--amber-300);background:rgba(232,169,46,.1)}
.nav-link.active::after{content:'';position:absolute;bottom:-1px;left:18px;right:18px;height:2px;background:var(--amber-400);border-radius:2px}
.nav-right{display:flex;gap:8px;margin-left:auto}
.nav-btn{display:flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius-sm);text-decoration:none;color:rgba(255,255,255,.6);font-weight:500;font-size:13px;transition:var(--transition);border:1px solid rgba(255,255,255,.12)}
.nav-btn:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.2)}
.admin-btn{background:var(--amber-500);color:var(--aksim-900);border-color:var(--amber-500);font-weight:700}
.admin-btn:hover{background:var(--amber-400);color:var(--aksim-900);border-color:var(--amber-400)}
.mobile-menu-btn{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:#fff;width:44px;height:44px;border-radius:var(--radius-sm);align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition);-webkit-tap-highlight-color:transparent}
.mobile-menu-btn:hover{background:rgba(255,255,255,.1)}
.mobile-nav-admin{display:none}

@media(max-width:768px){
    .mobile-menu-btn{display:flex}
    .logo-sub-text{display:none}
    .nav-logo{margin-right:auto}
    .nav-right{display:none}
    .nav-links{
        display:none;
        position:fixed;
        top:68px;left:0;right:0;
        background:var(--aksim-900);
        flex-direction:column;
        padding:12px 16px calc(20px + var(--safe-bottom));
        border-top:1px solid rgba(255,255,255,.08);
        box-shadow:0 24px 48px rgba(0,0,0,.5);
        max-height:calc(100dvh - 68px);
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        z-index:99;
        gap:4px
    }
    .nav-links.open{display:flex;animation:navSlideDown .2s ease}
    @keyframes navSlideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
    .nav-link{padding:14px 16px;font-size:15px;min-height:52px;border-radius:var(--radius-sm)}
    .nav-link.active::after{display:none}
    .nav-inner{padding:0 16px}
    .mobile-nav-admin{
        display:flex;
        flex-direction:column;
        gap:8px;
        margin-top:8px;
        padding-top:12px;
        border-top:1px solid rgba(255,255,255,.08)
    }
    .mobile-nav-admin .nav-btn{
        padding:14px 16px;
        font-size:15px;
        min-height:52px;
        border-radius:var(--radius-sm);
        border:1px solid rgba(255,255,255,.15)
    }
    .mobile-nav-admin .admin-btn{background:var(--amber-500);color:var(--aksim-900);border-color:var(--amber-500)}
}

/* FLASH */
.flash-container,.admin-flash-wrap{max-width:1320px;margin:16px auto;padding:0 28px}
.flash-msg{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:var(--radius-sm);margin-bottom:8px;font-size:14px;font-weight:500;transition:all .4s ease;position:relative;border-left:4px solid}
.flash-success{background:var(--success-light);color:var(--success);border-color:var(--success)}
.flash-error{background:var(--danger-light);color:var(--danger);border-color:var(--danger)}
.flash-info,.flash-warning{background:var(--warning-light);color:var(--amber-600);border-color:var(--amber-500)}
.flash-close{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;cursor:pointer;opacity:.5;color:inherit;width:32px;height:32px;display:flex;align-items:center;justify-content:center}
.flash-close:hover{opacity:1}

/* MAIN */
.main-content{max-width:1320px;margin:0 auto;padding:28px;min-height:calc(100vh - 180px)}

/* FOOTER */
.main-footer{background:var(--aksim-900);color:rgba(255,255,255,.5);padding:0;margin-top:48px}
.footer-top{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding:48px 28px 40px;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-brand .footer-logo{font-family:var(--font-display);font-weight:700;font-size:16px;color:#fff;margin-bottom:12px}
.footer-brand p{font-size:13px;line-height:1.7;max-width:340px}
.footer-col-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.25);margin-bottom:16px}
.footer-link{display:block;color:rgba(255,255,255,.45);text-decoration:none;font-size:13px;padding:4px 0;transition:var(--transition)}
.footer-link:hover{color:var(--amber-300)}
.footer-bottom{max-width:1320px;margin:0 auto;padding:20px 28px;display:flex;justify-content:space-between;align-items:center;font-size:12px}
.week-indicator{padding:6px 14px;border-radius:var(--radius-xs);font-weight:700;font-size:12px}
.week-indicator.num,.week-chip.num{background:rgba(74,127,212,.15);color:#7fb3f0}
.week-indicator.den,.week-chip.den{background:rgba(212,148,31,.15);color:var(--amber-300)}

@media(max-width:768px){
    .footer-top{grid-template-columns:1fr 1fr;gap:28px;padding:32px 20px}
    .footer-bottom{flex-direction:column;gap:8px;text-align:center;padding:16px 20px}
}
@media(max-width:480px){
    .footer-top{grid-template-columns:1fr;gap:20px;padding:24px 16px}
    .footer-bottom{padding:14px 16px;padding-bottom:calc(14px + var(--safe-bottom))}
}

/* HERO */
.hero{position:relative;overflow:hidden;border-radius:var(--radius);margin-bottom:36px;background:var(--aksim-900);min-height:420px;display:flex;align-items:center}
.hero-bg-pattern{position:absolute;inset:0;opacity:.05;background-image:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,.5) 39px,rgba(255,255,255,.5) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,.5) 39px,rgba(255,255,255,.5) 40px)}
.hero-gradient{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 20% 50%,rgba(30,122,158,.3),transparent),radial-gradient(ellipse 60% 50% at 80% 30%,rgba(232,169,46,.15),transparent),radial-gradient(ellipse 40% 40% at 50% 100%,rgba(30,122,158,.2),transparent)}
.hero-content{position:relative;z-index:2;padding:56px 48px;width:100%}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(232,169,46,.12);border:1px solid rgba(232,169,46,.2);color:var(--amber-300);padding:8px 16px;border-radius:50px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:24px}
.hero-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--amber-400);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.hero h1{font-family:var(--font-display);font-size:40px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-1px;margin-bottom:16px;max-width:720px}
.hero h1 .text-accent{color:var(--amber-300)}
.hero-desc{font-size:16px;color:rgba(255,255,255,.55);max-width:560px;margin-bottom:36px;line-height:1.7}
.hero-stats{display:flex;gap:40px;flex-wrap:wrap;margin-bottom:32px}
.hero-stat{position:relative;padding-left:16px}
.hero-stat::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:3px;background:var(--amber-400)}
.hero-stat-value{font-family:var(--font-display);font-size:30px;font-weight:800;color:#fff;line-height:1}
.hero-stat-label{font-size:12px;color:rgba(255,255,255,.4);margin-top:4px;font-weight:500;letter-spacing:.3px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn-hero-primary{background:var(--amber-500);color:var(--aksim-900);padding:14px 30px;border-radius:var(--radius-sm);font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:var(--transition);border:none;cursor:pointer;font-family:var(--font-body);min-height:50px}
.btn-hero-primary:hover{background:var(--amber-400);transform:translateY(-2px);box-shadow:0 8px 24px rgba(232,169,46,.3)}
.btn-hero-secondary{background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.12);padding:14px 30px;border-radius:var(--radius-sm);font-weight:600;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:var(--transition);cursor:pointer;font-family:var(--font-body);min-height:50px}
.btn-hero-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}

@media(max-width:768px){
    .hero-content{padding:36px 24px}
    .hero h1{font-size:28px;letter-spacing:-.5px}
    .hero-desc{font-size:14px;margin-bottom:28px}
    .hero-stats{gap:20px}
    .hero-stat-value{font-size:26px}
    .hero{min-height:auto}
}
@media(max-width:480px){
    .hero{border-radius:var(--radius-sm)}
    .hero-content{padding:28px 20px}
    .hero h1{font-size:22px;letter-spacing:-.3px}
    .hero-desc{font-size:13px;margin-bottom:24px}
    .hero-badge{font-size:10px;padding:6px 12px;margin-bottom:16px}
    .hero-stats{gap:16px}
    .hero-stat-value{font-size:22px}
    .hero-stat-label{font-size:11px}
    .hero-actions{flex-direction:column;gap:10px}
    .btn-hero-primary,.btn-hero-secondary{width:100%;justify-content:center;padding:14px 24px}
}

/* CARDS */
.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-xs);transition:var(--transition)}
.card:hover{box-shadow:var(--shadow)}
.card-header{padding:20px 24px;font-weight:700;font-size:14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display)}
.card-body{padding:24px}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;font-family:var(--font-body);cursor:pointer;transition:var(--transition);border:1px solid transparent;text-decoration:none;line-height:1;min-height:44px;-webkit-tap-highlight-color:transparent}
.btn-primary{background:var(--aksim-700);color:white}
.btn-primary:hover{background:var(--aksim-600);transform:translateY(-1px);box-shadow:0 4px 16px rgba(20,80,104,.25)}
.btn-success{background:var(--success);color:white}.btn-success:hover{background:#0a6b51}
.btn-warning{background:var(--amber-500);color:var(--aksim-900)}.btn-warning:hover{background:var(--amber-400)}
.btn-danger{background:var(--danger);color:white}.btn-danger:hover{background:#b02e2e}
.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--text-3)}
.btn-sm{padding:7px 14px;font-size:13px;border-radius:var(--radius-xs);min-height:38px}
.btn-icon{padding:8px;aspect-ratio:1;justify-content:center;min-width:44px;min-height:44px}
.btn-sm.btn-icon{min-width:38px;min-height:38px}

/* FORMS */
.form-group{margin-bottom:16px}
.form-label{display:block;font-weight:600;font-size:12px;color:var(--text-3);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
.form-input,.form-select{width:100%;padding:11px 16px;border:2px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:14px;color:var(--text);transition:var(--transition);background:white;min-height:46px}
.form-input:focus,.form-select:focus{outline:none;border-color:var(--aksim-500);box-shadow:0 0 0 3px rgba(30,122,158,.1)}
.form-input::placeholder{color:var(--text-3)}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:24px;border:1px solid var(--border);box-shadow:var(--shadow-xs);transition:var(--transition);position:relative;overflow:hidden}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--aksim-500)}
.stat-card.green::before{background:var(--success)}.stat-card.amber::before{background:var(--amber-500)}.stat-card.red::before{background:var(--danger)}.stat-card.blue::before{background:var(--num-border)}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.stat-value{font-family:var(--font-display);font-size:34px;font-weight:800;color:var(--text);line-height:1}
.stat-label{font-size:12px;color:var(--text-3);margin-top:6px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}

/* SCHEDULE */
.schedule-day-header{display:flex;align-items:center;gap:12px;padding:16px 24px;font-weight:700;font-size:14px;background:var(--aksim-800);color:white;border-radius:var(--radius) var(--radius) 0 0;margin-top:24px;font-family:var(--font-display);letter-spacing:-.2px}
.schedule-day-header.today{background:linear-gradient(135deg,var(--aksim-700),var(--aksim-500));box-shadow:0 4px 20px rgba(30,122,158,.2)}
.day-badge{background:rgba(255,255,255,.12);padding:3px 12px;border-radius:50px;font-size:11px;font-weight:600;font-family:var(--font-body)}
.schedule-day-header.today .day-badge:first-of-type{background:var(--amber-500);color:var(--aksim-900)}

/* LESSON ROW */
.lesson-row{display:grid;grid-template-columns:130px 1fr 110px 100px 80px;gap:16px;align-items:center;padding:16px 24px;border-bottom:1px solid var(--border-light);transition:var(--transition);position:relative;border-left:4px solid transparent}
.lesson-row:last-child{border-bottom:none}
.lesson-row:hover{background:var(--aksim-50)}
.lesson-row.numerator{border-left-color:var(--num-border);background:rgba(74,127,212,.03)}
.lesson-row.denominator{border-left-color:var(--den-border);background:rgba(212,148,31,.03)}
.lesson-row.always{border-left-color:var(--always-border)}
.lesson-row.current{background:rgba(30,122,158,.04);box-shadow:inset 0 0 0 1px rgba(30,122,158,.15)}
.lesson-time{font-weight:700;color:var(--aksim-700);font-family:var(--font-display);font-size:13px}
.lesson-info{min-width:0}
.lesson-subject{font-weight:600;font-size:15px;color:var(--text)}
.lesson-teacher{font-size:13px;color:var(--text-2);margin-top:3px}
.lesson-room{display:inline-flex;padding:5px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:13px;font-weight:600;color:var(--text-2)}
.week-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--radius-xs);font-weight:700;font-size:11px;letter-spacing:.3px;text-transform:uppercase}
.week-badge.numerator{background:var(--num-bg);color:var(--num-text)}
.week-badge.denominator{background:var(--den-bg);color:var(--den-text)}
.week-badge.always{background:var(--always-bg);color:var(--always-text)}
.lesson-actions{display:flex;gap:4px;justify-content:flex-end}
.chip{display:inline-flex;padding:4px 10px;border-radius:var(--radius-xs);font-size:11px;font-weight:600;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}

/* Mobile lesson row — card layout */
@media(max-width:640px){
    .lesson-row{
        grid-template-columns:1fr auto;
        grid-template-rows:auto auto auto;
        gap:6px 8px;
        padding:14px 16px;
        align-items:start;
        border-left-width:3px
    }
    .lesson-row > .lesson-time{
        grid-column:1;grid-row:1;
        font-size:12px;font-weight:800;
        background:var(--aksim-50);
        color:var(--aksim-700);
        padding:3px 10px;
        border-radius:50px;
        display:inline-flex;
        width:fit-content;
        align-self:center
    }
    .lesson-row > .lesson-info{
        grid-column:1/3;grid-row:2
    }
    .lesson-row .lesson-subject{font-size:15px}
    .lesson-row > div:nth-child(3){
        grid-column:1;grid-row:3;
        align-self:center
    }
    .lesson-row > div:nth-child(4){
        grid-column:2;grid-row:1;
        justify-self:end;
        align-self:center
    }
    .lesson-row > div:nth-child(5){
        grid-column:2;grid-row:3;
        justify-self:end;
        align-self:center
    }
    .lesson-actions{justify-content:flex-end}
    .week-badge{font-size:10px;padding:4px 8px}
}

/* LEGEND */
.legend{display:flex;flex-wrap:wrap;gap:24px;align-items:center;padding:16px 24px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:24px;font-size:13px;font-weight:500;box-shadow:var(--shadow-xs)}
.legend-item{display:flex;align-items:center;gap:8px}
.legend-dot{width:16px;height:16px;border-radius:5px;border:2px solid}
.legend-dot.num{background:var(--num-bg);border-color:var(--num-border)}
.legend-dot.den{background:var(--den-bg);border-color:var(--den-border)}
.legend-dot.alw{background:var(--always-bg);border-color:var(--always-border)}
.current-week-chip{margin-left:auto;padding:10px 20px;border-radius:var(--radius-sm);font-weight:700;font-family:var(--font-display);font-size:12px}
.current-week-chip.num{background:var(--num-bg);color:var(--num-text);border:2px solid var(--num-border)}
.current-week-chip.den{background:var(--den-bg);color:var(--den-text);border:2px solid var(--den-border)}

@media(max-width:640px){
    .legend{gap:12px;padding:12px 16px}
    .current-week-chip{margin-left:0;width:100%;text-align:center;padding:8px 16px}
}
@media(max-width:480px){
    .legend{flex-direction:column;align-items:flex-start;gap:10px}
}

/* GROUP SELECTOR */
.group-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:24px}
.group-chip{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 18px;border-radius:var(--radius-sm);background:var(--surface);border:2px solid var(--border);font-weight:600;font-size:14px;color:var(--text-2);text-decoration:none;transition:var(--transition);cursor:pointer;min-height:50px;-webkit-tap-highlight-color:transparent}
.group-chip:hover{border-color:var(--aksim-500);color:var(--aksim-700);transform:translateY(-2px);box-shadow:var(--shadow)}
.group-chip.active{background:var(--aksim-700);color:white;border-color:var(--aksim-700);box-shadow:0 4px 16px rgba(20,80,104,.25)}
.badge{display:inline-flex;padding:2px 8px;border-radius:50px;font-size:11px;font-weight:700}
.badge-primary{background:var(--aksim-100);color:var(--aksim-700)}
.badge-success{background:var(--success-light);color:var(--success)}

@media(max-width:480px){
    .group-selector{grid-template-columns:repeat(2,1fr);gap:8px}
    .group-chip{padding:12px 10px;font-size:13px;min-height:48px}
}

/* TEACHER CARDS */
.teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.teacher-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-xs);transition:var(--transition);text-decoration:none;color:var(--text)}
.teacher-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.teacher-card-head{padding:20px 24px;display:flex;align-items:center;gap:16px;background:var(--aksim-800);color:white}
.teacher-avatar{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--amber-400),var(--amber-600));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:var(--aksim-900);flex-shrink:0;font-family:var(--font-display)}
.teacher-card-name{font-weight:700;font-size:15px}
.teacher-card-dept{font-size:12px;opacity:.5;margin-top:2px}

@media(max-width:640px){.teacher-grid{grid-template-columns:1fr}}
@media(min-width:641px) and (max-width:900px){.teacher-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}

/* SEARCH */
.search-bar{display:flex;gap:12px;margin-bottom:32px}
.search-input{flex:1;padding:16px 24px 16px 52px;border:2px solid var(--border);border-radius:var(--radius);font-family:var(--font-body);font-size:16px;font-weight:500;background:var(--surface);transition:var(--transition)}
.search-input:focus{outline:none;border-color:var(--aksim-500);box-shadow:0 0 0 4px rgba(30,122,158,.08),var(--shadow)}
.search-wrap{position:relative;flex:1}
.search-wrap i{position:absolute;left:20px;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:18px}
.search-result-section{margin-bottom:36px}
.search-result-title{font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--text-3);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid var(--border)}
.search-result-item{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:8px;transition:var(--transition);text-decoration:none;color:var(--text)}
.search-result-item:hover{border-color:var(--aksim-500);box-shadow:var(--shadow);transform:translateX(6px)}
.result-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.result-icon.group{background:var(--aksim-100);color:var(--aksim-700)}
.result-icon.teacher{background:var(--success-light);color:var(--success)}
.result-icon.subject{background:var(--amber-100);color:var(--amber-600)}
.result-name{font-weight:700;font-size:15px}
.result-meta{font-size:13px;color:var(--text-3)}

@media(max-width:640px){
    .search-bar{flex-direction:column;gap:8px}
    .search-bar .btn{width:100%;justify-content:center;padding:14px}
    .search-input{padding-left:44px;font-size:16px}
    .search-wrap i{left:16px}
    .search-result-item:hover{transform:none}
}

/* EMPTY STATE */
.empty-state{text-align:center;padding:64px 24px;background:var(--surface);border-radius:var(--radius);border:2px dashed var(--border)}
.empty-state-icon{font-size:52px;margin-bottom:16px}
.empty-state h3{color:var(--text);font-size:18px;font-weight:700;margin-bottom:8px;font-family:var(--font-display)}
.empty-state p{color:var(--text-3);margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}

/* SECTION / PAGE HEADERS */
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.section-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.3px}
.section-subtitle{font-size:14px;color:var(--text-3);margin-top:2px}
.page-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:12px}
.page-title{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.5px}
.page-subtitle{font-size:14px;color:var(--text-3);margin-top:2px}

/* QUICK ACCESS */
.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:36px}
.quick-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:28px;display:flex;align-items:flex-start;gap:18px;transition:var(--transition);text-decoration:none;color:var(--text);box-shadow:var(--shadow-xs)}
.quick-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.quick-card-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.quick-card-icon.teal{background:var(--aksim-100);color:var(--aksim-700)}
.quick-card-icon.amber{background:var(--amber-100);color:var(--amber-600)}
.quick-card-icon.green{background:var(--success-light);color:var(--success)}
.quick-card-title{font-weight:700;font-family:var(--font-display);font-size:14px;margin-bottom:4px}
.quick-card-desc{font-size:13px;color:var(--text-3);line-height:1.5}

@media(max-width:640px){
    .quick-grid{grid-template-columns:1fr;gap:10px}
    .quick-card{padding:18px;gap:14px}
    .quick-card:hover{transform:none}
}

/* WEEK FILTER */
.week-filter-group{display:flex;gap:4px;padding:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:24px;width:fit-content;max-width:100%}
.week-filter-btn{padding:8px 18px;border-radius:var(--radius-xs);font-weight:600;font-size:13px;cursor:pointer;background:transparent;border:none;color:var(--text-3);transition:var(--transition);font-family:var(--font-body);min-height:38px;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.week-filter-btn:hover{color:var(--text);background:rgba(0,0,0,.03)}
.week-filter-btn.active{background:var(--aksim-700);color:white;box-shadow:0 2px 8px rgba(20,80,104,.2)}

@media(max-width:640px){
    .week-filter-group{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
    .week-filter-btn{padding:10px 14px;font-size:13px}
}

/* ADMIN LAYOUT */
.admin-body{display:flex;min-height:100vh;background:var(--bg)}
.admin-sidebar{width:260px;background:var(--aksim-900);color:#cbd5e1;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:200;transition:transform .3s ease}
.sidebar-header{padding:20px 24px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-logo{font-size:24px}.sidebar-title{font-weight:700;font-size:14px;color:white;font-family:var(--font-display)}
.sidebar-nav{flex:1;padding:12px;overflow-y:auto}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);color:#94a3b8;text-decoration:none;font-size:14px;font-weight:500;transition:var(--transition);margin-bottom:2px;min-height:44px;-webkit-tap-highlight-color:transparent}
.sidebar-link:hover{background:rgba(255,255,255,.08);color:#e2e8f0}
.sidebar-link.active{background:var(--aksim-600);color:white}
.sidebar-link i{width:20px;text-align:center}
.sidebar-divider{height:1px;background:rgba(255,255,255,.06);margin:12px 0}
.sidebar-section-title{padding:8px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#64748b}
.sidebar-footer{padding:12px;border-top:1px solid rgba(255,255,255,.08);padding-bottom:calc(12px + var(--safe-bottom))}
.sidebar-user{display:block;padding:8px 14px;font-size:12px;color:#64748b}
.text-danger{color:#f87171!important}
.admin-main{margin-left:260px;flex:1;min-height:100vh}
.admin-topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;height:60px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:50}
.topbar-menu-btn{display:none;background:none;border:none;font-size:22px;cursor:pointer;width:44px;height:44px;border-radius:var(--radius-sm);display:none;align-items:center;justify-content:center;flex-shrink:0;color:var(--text);-webkit-tap-highlight-color:transparent}
.topbar-menu-btn:hover{background:var(--surface-2)}
.topbar-title{font-weight:700;font-size:15px;flex:1;font-family:var(--font-display)}
.topbar-right{display:flex;align-items:center;gap:12px}
.week-chip{padding:6px 14px;border-radius:var(--radius-xs);font-weight:700;font-size:12px}
.admin-content{padding:24px}

/* Sidebar overlay */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:150;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}

@media(max-width:1024px){
    .admin-sidebar{transform:translateX(-100%)}
    .admin-sidebar.open{transform:translateX(0)}
    .admin-main{margin-left:0}
    .topbar-menu-btn{display:flex!important}
    .sidebar-overlay.show{display:block}
}
@media(max-width:640px){
    .admin-content{padding:16px}
    .admin-topbar{padding:0 16px;gap:10px}
    .admin-flash-wrap{padding:0 16px}
    .topbar-title{font-size:14px}
}
@media(max-width:480px){
    .admin-content{padding:12px}
    .admin-flash-wrap{padding:0 12px}
}

/* ADMIN TABLE */
.data-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
.data-table th{text-align:left;padding:14px 18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text-3);background:var(--surface-2);border-bottom:2px solid var(--border);white-space:nowrap}
.data-table td{padding:14px 18px;font-size:14px;border-bottom:1px solid var(--border-light)}
.data-table tbody tr:hover{background:var(--aksim-50)}
.data-table tbody tr:last-child td{border-bottom:none}
/* Table responsive wrapper */
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}
.table-responsive .data-table{border-radius:0;min-width:480px}

/* BUILDER */
.builder-day{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:20px;overflow:hidden}
.builder-day-header{padding:16px 20px;background:var(--aksim-800);color:white;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:15px}
.builder-lesson{padding:16px 20px;border-bottom:1px solid var(--border-light);display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;align-items:end}
.builder-lesson:last-child{border-bottom:none}

@media(max-width:768px){
    .builder-lesson{grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px}
    .builder-lesson > div:last-child{grid-column:1/3;display:flex;justify-content:flex-end}
    .builder-day-header{padding:14px 16px;font-size:14px}
    .builder-day-header .day-selector{width:100%!important;max-width:none!important}
}
@media(max-width:480px){
    .builder-lesson{grid-template-columns:1fr}
    .builder-lesson > div:last-child{grid-column:1;justify-content:flex-start}
}

/* FILTER BAR */
.filter-bar{background:linear-gradient(135deg,var(--aksim-700),var(--aksim-500));border-radius:var(--radius);padding:24px;margin-bottom:24px;box-shadow:0 8px 32px rgba(20,80,104,.25)}
.filter-bar-title{color:white;font-weight:700;font-size:13px;margin-bottom:16px;font-family:var(--font-display);letter-spacing:.3px}
.filter-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.filter-grid .form-select,.filter-grid .form-input{background:rgba(255,255,255,.95);border-color:rgba(255,255,255,.3);min-width:180px}
.filter-grid .form-label{color:rgba(255,255,255,.7)}
.filter-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.filter-actions .btn-white{background:white;color:var(--aksim-700);border:none;font-weight:700}
.filter-actions .btn-white:hover{background:var(--aksim-50)}
.filter-actions .btn-clear{background:transparent;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.25)}
.filter-actions .btn-clear:hover{background:rgba(255,255,255,.08);color:white}

@media(max-width:768px){
    .filter-bar{padding:18px 16px;border-radius:var(--radius-sm)}
    .filter-grid{flex-direction:column;gap:10px}
    .filter-grid .form-select,.filter-grid .form-input{min-width:0;width:100%}
    .filter-grid > .form-group{width:100%;margin:0}
    .filter-actions{margin-top:12px}
    .filter-actions .btn{flex:1;justify-content:center}
}

/* LOGIN */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--aksim-900);padding:24px;position:relative}
.login-page::before{content:'';position:absolute;inset:0;opacity:.04;background-image:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,.5) 39px,rgba(255,255,255,.5) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,.5) 39px,rgba(255,255,255,.5) 40px)}
.login-card{width:100%;max-width:440px;background:var(--surface);border-radius:20px;padding:48px 40px;box-shadow:var(--shadow-lg);position:relative}
.login-card h1{text-align:center;font-family:var(--font-display);font-size:22px;font-weight:800;margin-bottom:8px}
.login-card p{text-align:center;color:var(--text-3);margin-bottom:32px;font-size:14px}
.login-card .form-input{padding:14px 18px;font-size:15px;margin-bottom:16px}
.login-card .btn{width:100%;justify-content:center;padding:14px;font-size:15px}

@media(max-width:480px){
    .login-card{padding:32px 24px;border-radius:16px}
    .login-card h1{font-size:18px}
}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(12,45,59,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay.show{display:flex}
.modal-box{background:var(--surface);border-radius:20px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--surface);z-index:1}
.modal-header h3{font-family:var(--font-display);font-weight:700;font-size:16px}
.modal-body{padding:24px}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:var(--surface)}

@media(max-width:640px){
    .modal-overlay{align-items:flex-end;padding:0}
    .modal-box{
        border-radius:20px 20px 0 0;
        max-height:92dvh;
        max-width:100%;
        padding-bottom:var(--safe-bottom)
    }
}

/* LOGS */
.log-entry{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--border-light);font-size:14px}
.log-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.log-icon.create{background:var(--success-light);color:var(--success)}
.log-icon.update{background:var(--warning-light);color:var(--amber-600)}
.log-icon.delete{background:var(--danger-light);color:var(--danger)}
.log-details{font-size:13px;color:var(--text-2);margin-top:2px}
.log-time{font-size:12px;color:var(--text-3);margin-top:4px}

/* UTILS */
.flex{display:flex}.flex-wrap{flex-wrap:wrap}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}
.text-center{text-align:center}.text-sm{font-size:13px}.text-muted{color:var(--text-3)}
.font-bold{font-weight:700}.w-full{width:100%}

/* ==================== GLOBAL MOBILE ADJUSTMENTS ==================== */

/* Prevent iOS input zoom */
@media(max-width:768px){
    .form-input,.form-select,.search-input{font-size:16px}
    .login-card .form-input{font-size:16px}
}

/* Main content padding on mobile */
@media(max-width:640px){
    .main-content{padding:16px;padding-bottom:calc(16px + var(--safe-bottom))}
    .flash-container{padding:0 16px}
}
@media(max-width:480px){
    .main-content{padding:12px}
}

/* Page/section headers on mobile */
@media(max-width:640px){
    .page-title{font-size:20px;letter-spacing:-.3px}
    .page-subtitle{font-size:13px}
    .section-title{font-size:17px}
    .page-header-row{margin-bottom:20px;gap:8px}
    .section-header{margin-bottom:16px}
}

/* Schedule day header on mobile */
@media(max-width:640px){
    .schedule-day-header{padding:12px 16px;font-size:13px;gap:8px;margin-top:18px}
    .schedule-day-header .day-badge{padding:2px 10px;font-size:10px}
}

/* Cards on mobile */
@media(max-width:640px){
    .card-body{padding:16px}
    .card-header{padding:14px 16px;font-size:13px}
}

/* Stats grid on mobile */
@media(max-width:640px){
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}
    .stat-value{font-size:26px}
    .stat-card{padding:18px}
    .stat-label{font-size:11px}
}
@media(max-width:360px){
    .stats-grid{grid-template-columns:1fr}
}

/* Empty state on mobile */
@media(max-width:640px){
    .empty-state{padding:40px 20px}
    .empty-state-icon{font-size:40px}
    .empty-state h3{font-size:16px}
}

/* Hero margin */
@media(max-width:640px){.hero{margin-bottom:20px}}

/* Better table row actions on mobile */
@media(max-width:640px){
    .data-table td{padding:12px 14px;font-size:13px}
    .data-table th{padding:12px 14px}
}

@media print{.main-nav,.main-footer,.filter-bar,.legend,.btn,.no-print,.week-filter-group{display:none!important}body{background:white!important}.main-content{max-width:100%;padding:0}.lesson-row{break-inside:avoid}.hero{display:none!important}}
