[hidden]{display:none!important}
:root{
  --bg:#f6f4fb;--panel:#fff;--panel-soft:#f1eefc;--ink:#242235;--muted:#716d82;
  --line:#e3deef;--primary:#5546a3;--primary-2:#7667cc;--accent:#0f7b70;
  --danger:#b3261e;--warn:#a35d00;--ok:#237a43;--shadow:0 14px 40px rgba(56,43,105,.10);
  --radius:22px;--safe-bottom:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{touch-action:manipulation}.offline-banner{position:fixed;z-index:1000;top:0;left:0;right:0;padding:8px 14px;background:#fff2cc;color:#654500;text-align:center;font-size:13px;border-bottom:1px solid #e7c65d}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#e7e0ff 0,transparent 35%),radial-gradient(circle at 90% 90%,#d5f0e8 0,transparent 30%),var(--bg)}.auth-card{width:min(440px,100%);background:rgba(255,255,255,.93);border:1px solid var(--line);border-radius:32px;padding:32px;box-shadow:var(--shadow);backdrop-filter:blur(16px)}.brand-mark{width:58px;height:58px;border-radius:19px;display:grid;place-items:center;background:linear-gradient(145deg,var(--primary),var(--primary-2));color:white;font-weight:900;font-size:28px;box-shadow:0 10px 24px rgba(85,70,163,.25)}.brand-mark.small{width:42px;height:42px;border-radius:14px;font-size:21px}.eyebrow{margin:20px 0 5px;color:var(--primary);font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.auth-card h1{font-size:34px;line-height:1.05;margin:0 0 12px;letter-spacing:-.04em}.auth-copy{color:var(--muted);line-height:1.55;margin-bottom:25px}.auth-panel{display:grid;gap:12px}.form-stack{display:grid;gap:14px}.form-stack label,.field{display:grid;gap:7px;font-size:13px;font-weight:750;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary-2);box-shadow:0 0 0 4px rgba(118,103,204,.13)}textarea{min-height:92px;resize:vertical}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 15px;border-radius:999px;font-weight:750;cursor:pointer}.btn:hover{box-shadow:0 5px 16px rgba(56,43,105,.08)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ghost{background:transparent;color:#eee9ff;border-color:rgba(255,255,255,.22)}.btn.link{border:0;background:transparent;color:var(--primary)}.btn.danger{color:var(--danger);border-color:#f1c7c4}.wide{width:100%}.form-message{min-height:20px;margin:0;color:var(--danger);font-size:13px}.local-note{background:#f8f6ff;border:1px solid var(--line);padding:14px;border-radius:15px;color:var(--muted);line-height:1.5;font-size:13px}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;background:#24213a;color:#fff;padding:22px 17px;display:flex;flex-direction:column;gap:22px}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 6px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand strong{display:block;font-size:19px}.sidebar-brand span{display:block;color:#cfc9e4;font-size:12px;margin-top:2px}.desktop-nav{display:grid;gap:7px}.nav-btn{border:0;background:transparent;color:#d9d5e8;text-align:left;padding:11px 13px;border-radius:14px;font-weight:700;cursor:pointer;display:flex;gap:10px;align-items:center}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.11);color:white}.nav-icon{width:22px;text-align:center}.sidebar-status{margin-top:auto;display:flex;align-items:center;gap:9px;color:#cfc9e4;font-size:12px;padding:8px}.sync-dot{width:9px;height:9px;border-radius:50%;background:#90a0ad}.sync-dot.online{background:#50cf85}.sync-dot.syncing{background:#f0bd49}.sync-dot.error{background:#ef746c}.main{min-width:0;width:100%;max-width:1500px;padding:28px 32px 60px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.topbar .eyebrow{margin:0 0 5px}.topbar h1{margin:0;font-size:34px;letter-spacing:-.04em}.top-actions{display:flex;gap:9px}.view{display:none}.view.active{display:block}.grid{display:grid;gap:16px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 12px;letter-spacing:-.02em}.card h2{font-size:21px}.card h3{font-size:17px}.kpi-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.kpi-value{font-size:30px;font-weight:900;margin-top:8px;letter-spacing:-.04em}.kpi-hint{font-size:12px;color:var(--muted);margin-top:8px}.progress-track{height:10px;border-radius:999px;background:#ece8f5;overflow:hidden}.progress-track>span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:inherit}.hero-card{padding:24px;background:linear-gradient(135deg,#302b55,#5546a3);color:white}.hero-card .muted{color:#d9d5ea}.hero-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.hero-score{font-size:50px;line-height:1;font-weight:900}.muted{color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-title h2{margin:0;font-size:22px}.session-list,.task-list,.error-list{display:grid;gap:11px}.session-card,.task-card,.error-card{border:1px solid var(--line);border-radius:17px;padding:15px;background:white}.session-head,.task-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.session-title,.task-title{font-weight:850;line-height:1.35}.meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.chip,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#f2eff9;color:#554b76;border:1px solid #e2ddf0}.badge.done{background:#e3f5e9;color:#21663b;border-color:#c5e9d1}.badge.progress{background:#e9e7ff;color:#4a3e9b;border-color:#d5d0ff}.badge.todo{background:#fff3de;color:#895000;border-color:#f3d7a4}.badge.late,.badge.review{background:#fde9e6;color:#8e2822;border-color:#f3cbc6}.badge.rest{background:#edf2f4;color:#52636d}.session-details{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.session-actions,.task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;cursor:pointer}.mini-btn.active,.mini-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.week-strip{display:flex;gap:8px;overflow:auto;padding-bottom:4px;scrollbar-width:thin}.day-pill{min-width:78px;border:1px solid var(--line);background:#fff;border-radius:17px;padding:10px;text-align:center;cursor:pointer}.day-pill.active{background:var(--primary);color:white;border-color:var(--primary)}.day-pill .day-name{font-size:11px;text-transform:uppercase;font-weight:850}.day-pill .day-num{font-size:21px;font-weight:900}.day-pill .day-count{font-size:10px;margin-top:2px;opacity:.75}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.toolbar input,.toolbar select{width:auto;min-width:180px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}.planning-table{width:100%;border-collapse:collapse;min-width:820px}.planning-table th,.planning-table td{padding:12px 13px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;font-size:13px}.planning-table th{position:sticky;top:0;background:#faf9fd;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.week-card{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center}.week-number{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:var(--panel-soft);color:var(--primary);font-size:24px;font-weight:900}.week-card p{margin:5px 0;color:var(--muted);font-size:13px;line-height:1.45}.week-hours{font-size:20px;font-weight:900;color:var(--primary)}.form-card{display:grid;gap:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-card{border-left:5px solid var(--primary)}.resource-card p{margin:6px 0;color:var(--muted);font-size:13px;line-height:1.45}.settings-actions{display:flex;flex-wrap:wrap;gap:9px}.mobile-nav{display:none}.empty{padding:30px;text-align:center;color:var(--muted)}.toast{position:fixed;z-index:1200;right:22px;bottom:22px;background:#25213a;color:white;padding:12px 16px;border-radius:14px;box-shadow:var(--shadow);font-size:13px;max-width:360px}.hidden{display:none!important}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr}}
@media(max-width:760px){body{padding-bottom:calc(76px + var(--safe-bottom))}.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 30px}.topbar{align-items:flex-start}.topbar h1{font-size:28px}.top-actions .btn{padding:8px 11px;font-size:12px}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.card{padding:15px;border-radius:18px}.kpi-value{font-size:25px}.hero-row{display:block}.hero-score{margin-top:18px}.mobile-nav{position:fixed;z-index:900;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;background:rgba(255,255,255,.96);border-top:1px solid var(--line);padding:7px 7px calc(7px + var(--safe-bottom));backdrop-filter:blur(18px)}.mobile-nav .nav-btn{display:grid;justify-items:center;gap:2px;color:var(--muted);text-align:center;padding:5px 2px;font-size:10px;border-radius:12px}.mobile-nav .nav-btn.active{background:var(--panel-soft);color:var(--primary)}.mobile-nav .nav-icon{font-size:19px}.week-card{grid-template-columns:60px 1fr}.week-number{width:54px;height:54px;border-radius:16px}.week-hours{grid-column:2}.form-grid{grid-template-columns:1fr}.toolbar input,.toolbar select{width:100%}.session-head,.task-head{display:block}.badge{margin-top:8px}.auth-card{padding:24px}.auth-card h1{font-size:30px}}
@media(max-width:390px){.kpi-grid{grid-template-columns:1fr}.mobile-nav .nav-btn{font-size:9px}.top-actions{gap:5px}.top-actions .btn{padding:8px 9px}}
@media print{.sidebar,.mobile-nav,.top-actions,.toolbar,.session-actions,.task-actions{display:none!important}.app-shell{display:block}.main{padding:0}.view{display:block!important;page-break-after:always}.card{box-shadow:none}}
