@font-face{font-family:MontserratLocal;src:url("assets/fonts/Montserrat.ttf") format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:Literature;src:url("assets/fonts/Literature.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Kaluga;src:url("assets/fonts/Kaluga.otf") format("opentype");font-weight:400;font-display:swap}
:root{font-family:MontserratLocal,Montserrat,Arial,sans-serif;color:#302a2a;background:#f7f4ef;font-size:14px;--blue:#800020;--muted:#746869;--border:#e1d2ce;--green:#5e7d60;--paper:#fbf9f6;--rose:#eedcdd;--wine:#800020;--ink:#302a2a;--cream:#f9f7f2}
body{background:radial-gradient(ellipse at 78% 4%,#eee4dd 0,transparent 29%),var(--cream);letter-spacing:.005em}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:radial-gradient(#a28a80 .55px,transparent .55px);background-size:7px 7px;z-index:-1}
button,input,select,textarea{font-family:inherit}a{color:var(--wine)}button:focus-visible,a:focus-visible{outline-color:#b56b7c}h1,h2,h3{color:#352b2b}h1{font-family:Literature,Georgia,serif;font-weight:400;font-size:34px;letter-spacing:-.025em}h2{font-family:Literature,Georgia,serif;font-weight:400;letter-spacing:0;font-size:22px}h3{font-weight:650;letter-spacing:.005em}
.sidebar{background:#f4eee8;border-right:1px solid #ddc9c4;padding:27px 16px 20px}.brand{font-family:Literature,Georgia,serif;font-size:29px;letter-spacing:-.035em;color:var(--wine);padding-bottom:18px}.brandmark{background:var(--wine);color:#fff;border-radius:50% 50% 45% 45%;transform:none;width:38px;height:42px}
.brand-logo{display:flex;justify-content:center;align-items:center;padding:4px 0 14px;text-decoration:none}
.brand-logo img{width:min(168px,100%);height:auto;display:block;object-fit:contain}.profile{background:#ebdada;border:1px solid #dec1c4;border-left:3px solid var(--wine);border-radius:8px;box-shadow:0 3px 10px #59232c0a}.avatar{background:#d7b7ba;color:#6f1c32}.role{color:#7f263a}.nav{gap:5px}.nav button{border-radius:7px;color:#625657;padding:12px 14px;font-weight:600}.nav button svg{color:#947d7b}.nav button:hover{background:#eadfda}.nav button.active{background:var(--wine);color:#fff;box-shadow:0 4px 14px #65001f33}.nav button.active svg{color:#fff}.sidebottom{border-top:1px solid #dfd0cb;margin-top:auto;padding-top:20px}.dot{background:#718e68}.local{color:#665958}.sidebottom p{color:#948381}
.main{background:transparent}.topbar{height:75px;background:#f8f5f1d9;border-bottom:1px solid #e1d4cf;backdrop-filter:blur(12px);padding:0 40px}.breadcrumb{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#8a7877}.breadcrumb span{color:#4b3637}.topright{color:#604f50}.mode{background:#f0e8e2;border:1px solid #dfd0ca;border-radius:6px}.content{padding:35px 42px 48px}.pagehead{margin-bottom:27px}.pagehead p{color:#827475;font-size:14px}.pagehead h1{text-transform:uppercase;letter-spacing:.04em;font-size:32px}.pagehead h1:after{content:"";display:block;width:52px;height:2px;background:var(--wine);margin-top:14px;opacity:.8}
.btn{border:1px solid #d8c8c4;border-radius:6px;background:#fbf9f6;color:#584647;min-height:41px;box-shadow:0 1px 1px #4c171208;transition:background .16s,border-color .16s,transform .16s}.btn:hover{filter:none;background:#f1e7e2;border-color:#b99b98;transform:translateY(-1px)}.btn.primary{background:var(--wine);border-color:var(--wine);color:white;box-shadow:0 4px 10px #69001e20}.btn.primary:hover{background:#69001e}.btn.danger{color:#a83242}.textbtn{color:var(--wine)}
.welcome{background:#eadbda;border:1px solid #ddc3c4;border-radius:9px;padding:25px 29px;position:relative;margin-bottom:22px}.welcome:after{content:"";position:absolute;right:155px;top:0;bottom:0;width:1px;background:#cfabad;opacity:.45}.welcome h2{font-family:Literature,Georgia,serif;color:#6e152e;font-size:28px;text-transform:uppercase;letter-spacing:.02em}.welcome p{color:#705e5e}.emblem{color:#8a344a}.emblem:before{border-color:#c49ba0}
.stats{gap:16px}.stat{background:#fbf9f6;border:1px solid #dfcfca;border-radius:8px;padding:19px;box-shadow:0 4px 14px #5c1d2407}.stat-icon{background:#f0e0df;color:var(--wine);border-radius:7px}.stat:nth-child(2) .stat-icon{color:#8d5365;background:#f0e6e5}.stat:nth-child(3) .stat-icon{color:#a16f3b;background:#f5ecdf}.stat strong{font-family:Literature,Georgia,serif;font-size:31px;font-weight:400;color:#462c31}.stat label{color:#806f70}
.columns{gap:20px}.panel{background:#fbf9f6;border:1px solid #d9c6c2;border-radius:9px;padding:23px;box-shadow:0 5px 20px #4d1b1b08}.panelhead{border-bottom:1px solid #e6d9d5;padding-bottom:13px;margin-bottom:10px}.panelhead h2{color:#73152d;font-family:Literature,Georgia,serif;letter-spacing:.02em}.row{border-color:#eee5e1}.rowbody h3{font-size:15px}.rowbody p{color:#817171}.tag{background:#f1e4e2;color:#783346;border-radius:4px}.tag.history{background:#efe4e8;color:#74485a}.status{background:#efeae7;color:#675859;border-radius:4px}.status.review{background:#f5ead7;color:#8e632b}.status.done{background:#e6ece1;color:#526d4c}.status.late{background:#f5e3df;color:#a2443f}.quicklinks button{border:1px solid #e0d1cd;border-radius:6px;background:#f8f3ef;color:#594849}.quicklinks button:hover{background:#efe2de}.quicklinks svg{color:#864254}
/* Figma desktop prototype: day / next-lesson rhythm */
.lessondate h3,.panelhead h2.section-label{text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-family:MontserratLocal,Montserrat,Arial,sans-serif;font-weight:650;color:#7a4a52}
.columns .panel:last-child{border-top:3px solid var(--wine)}
.toolbar{gap:10px;margin-bottom:18px}.toolbar input,.toolbar select,input,select,textarea{border-color:#d9c9c5;border-radius:6px;background:#fdfbf9;color:#3e3333}input:focus,textarea:focus,select:focus{border-color:#984459;outline:2px solid #f0dedf}.tabs{border-color:#e2d4d0;gap:2px}.tabs button.active{color:var(--wine);border-bottom-color:var(--wine);font-weight:650}.tabs button{color:#887777}.tabs .badge{background:transparent;color:var(--wine);font-weight:700;padding:0 0 0 4px}.taskcard,.subjectcard{background:#fbf9f6;border:1px solid #decec9;border-radius:8px;box-shadow:0 4px 15px #54202908}.taskcard h3{font-family:Literature,Georgia,serif;font-size:20px}.notice{background:#efe2e0;color:#76585d}.progress{background:#eee4e1}.progress span{background:var(--wine)}.answer{background:#f3eeea}.feedback{border-color:#9b5366;background:#f5e9e9}.demo{background:#f4eadc;border-color:#e6d3b8;color:#87642c}.subjectcard svg{color:var(--wine)}.lessondate{border-color:#964356}.score{color:#5e7d60}
.columns .panel>h2{font-family:Literature,Georgia,serif;color:#73152d;text-transform:uppercase;letter-spacing:.04em;font-size:18px;margin:0 0 16px}
.modalhead,.modalfoot{border-color:#e6d9d5}.modalhead h2{color:#74172f}.close{color:#856f71}.option{border-color:#e0d2ce;border-radius:6px}.option input,.checkbox input{accent-color:var(--wine)}dialog{border-color:#ddc9c5;border-radius:10px;background:#fbf9f6;z-index:80}dialog::backdrop{background:#34212680;backdrop-filter:blur(3px);z-index:79}#toast{background:#531426;border-radius:6px;z-index:200}#toast:popover-open{display:block}.footnote{color:#958582;font-size:12px;margin-top:28px}.badge{background:#f0e3e3;color:#794455}
.tablewrap th{background:#f2ebe6;color:#725f61}.tablewrap td,.tablewrap th{border-color:#e6d9d5}.program-topic-btn:hover{background:#f6efeb}.program-topic-hint{color:var(--wine)}.video-material{border-color:#ddcbc5;background:#f5efea}.video-material-head svg{color:#874458}
@media(max-width:1150px){.topbar{padding:0 25px}.content{padding:28px 25px}}
@media(max-width:850px){.sidebar{background:#f4eee8}.content{padding:24px 20px}.welcome:after{display:none}}
@media(max-width:520px){h1{font-size:28px}.content{padding:22px 14px}.welcome{padding:20px}.panel{padding:17px}.topbar{padding:0 15px}}

/* Auth + ученик / педагог */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(ellipse at 78% 4%,#eee4dd 0,transparent 29%),var(--cream)}
.auth-shell:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:radial-gradient(#a28a80 .55px,transparent .55px);background-size:7px 7px;z-index:-1}
.auth-card{background:#fbf9f6;border:1px solid #ddc9c5;border-radius:12px;box-shadow:0 18px 50px #4d1b1b14;width:min(420px,92vw);padding:34px 32px 28px;margin:auto;position:relative;z-index:1}
.auth-brand strong{font-family:Literature,Georgia,serif;font-weight:400;font-size:26px;color:var(--wine);letter-spacing:-.03em}
.auth-brand span{color:#8a7877}
.auth-brand .brandmark{background:var(--wine);color:#fff;border-radius:50% 50% 45% 45%}
.auth-brand-logo{display:flex;justify-content:center;margin-bottom:4px}
.auth-brand-logo img{width:min(240px,72vw);height:auto;display:block;object-fit:contain}
.auth-kicker{text-align:center;margin:0 0 18px;color:#8a7877;font-size:13px;letter-spacing:.04em}
.auth-tabs{background:#efe4e0;padding:5px;border-radius:10px;display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:18px}
.auth-tabs button{color:#7a6566;border-radius:7px;padding:10px 12px;font-weight:600}
.auth-tabs button.active{background:#fff;color:var(--wine);box-shadow:0 1px 4px #59232c18}
.auth-form .field{margin-bottom:14px}
.auth-consent{display:flex;align-items:flex-start;gap:12px;margin:4px 0 12px;padding:12px 14px;border:1px solid #e0cfcb;border-radius:10px;background:#f7f1ef;font-size:13px;font-weight:500;color:#5f4a4c;line-height:1.45;cursor:pointer}
.auth-consent input{margin-top:2px;flex-shrink:0;width:18px;height:18px;accent-color:var(--wine)}
.auth-consent a{color:var(--wine);text-decoration:underline;text-underline-offset:2px}
.auth-consent a:hover{color:#5c1024}
.auth-pdn-note{margin:2px 0 4px;font-size:12px;line-height:1.45;text-align:left;color:#7a6566}
.auth-pdn-note a{color:var(--wine);text-decoration:underline;text-underline-offset:2px}
.auth-pdn-note a:hover{color:#5c1024}
.auth-submit,.auth-form .btn.primary{width:100%;min-height:46px;margin-top:6px}
.auth-switch{text-align:center;margin:16px 0 0;font-size:13px}
.auth-hint{text-align:center;margin:14px 0 0;font-size:12px;color:#958582}
.auth-error{background:#f5e3df;color:#a2443f;border-color:#e7c4c0}
.auth-error.auth-ok{background:#ebe6d8;color:#4a5a3a;border-color:#d4cdb8}
.auth-dev-link{background:#efe2e0;border-color:#ddc3c4;color:#76585d}
.auth-dev-link a{color:var(--wine)}
.cred-box{background:#efe2e0;border-color:#ddc3c4}
.cred-box span{color:#806f70}
.cred-box strong{color:#531426;font-family:MontserratLocal,Montserrat,monospace}
.class-card,.folder-card,.achievement-card{background:#fbf9f6;border-color:#decec9}
.collapse-btn{background:var(--wine);box-shadow:0 6px 16px #65001f2b}
.folder-ico{background:#f0e0df;color:var(--wine)}
.folder-create{border-color:#c4a8a8;background:#f7f1ed;color:#7a4a52}
.assign-mode button.active{color:var(--wine)}
.member-option{border-color:#e0d1cd}
/* Force Figma sidebar footer (overrides leftover blue from style.css) */
.sidebottom button,
.sidebottom [data-action="nav:settings"],
.sidebottom [data-action="logout"],
.sidebottom .textbtn{color:var(--wine)!important}
.sidebottom button svg,
.sidebottom [data-action="nav:settings"] svg{color:var(--wine)!important;stroke:var(--wine)}
.sidebottom [data-action="logout"]{margin-top:8px}
.logout-btn{background:#f3e6e6!important;color:var(--wine)!important;border:1px solid #e2c4c6;border-radius:8px;width:100%;justify-content:flex-start;padding:11px 12px;font-weight:700}
.logout-btn:hover{background:#ead5d6!important}
.sidebar-toggle{border-color:#ddc9c5;color:var(--wine)!important;background:#fff}
.nav button.active{border-radius:10px}
.profile{background:#ebdada!important;border:1px solid #dec1c4!important;border-left:3px solid var(--wine)!important}
.pagehead h1{font-size:36px!important;letter-spacing:.06em!important}
.welcome{background:#e8d4d4!important;border-color:#d4b0b2!important}
.welcome h2{font-size:30px!important;color:#6a1028!important}
.btn.primary{background:#800020!important;border-color:#800020!important}
.tabs button.active{color:#800020!important;border-bottom:2px solid #800020!important}
.tabs .badge{color:#800020!important}
