:root{--bg:#1a1520;--bg-elevated:#261f2e;--surface:#312838;--text:#f4efe8;--muted:#b9aeb0;--accent:#d4a017;--accent-soft:#d4a01729;--success:#3d9a6a;--danger:#c45c5c;--border:#f4efe81f;--serif:"Source Serif 4", Georgia, serif;--sans:"DM Sans", "Segoe UI", sans-serif;--radius:14px;--shadow:0 18px 50px #00000059;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%}body{font-family:var(--sans);color:var(--text);background-color:#0000;background-image:radial-gradient(80% 50% at 10% -10%,#d4a0172e,#0000 55%),radial-gradient(60% 40% at 90% 0,#78468c38,#0000 50%),linear-gradient(#120e16 0%,#1a1520 40%,#221a28 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0;overflow-x:hidden}body.nav-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{width:100%;max-width:960px;padding:calc(1rem + var(--safe-top)) 1rem calc(2.5rem + var(--safe-bottom));flex-direction:column;min-height:100vh;margin:0 auto;display:flex}.page{flex:1;min-width:0}.site-footer{border-top:1px solid var(--border);text-align:center;color:var(--muted);letter-spacing:.02em;margin-top:2.5rem;padding-top:1rem;font-size:.85rem}.site-footer strong{color:var(--accent);font-weight:600}.topbar{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#120e16f5 60%,#120e16bf 100%);flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:.65rem 0 .75rem;display:flex;position:sticky;top:0}.topbar-main{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.topbar-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.brand{font-family:var(--serif);letter-spacing:.02em;min-width:0;font-size:clamp(1.35rem,5vw,2.2rem);font-weight:700;line-height:1.1}.brand span{color:var(--accent)}.nav-actions{flex-direction:column;gap:.45rem;padding:.35rem 0 .15rem;display:none}.nav-actions.open{display:flex}.nav-actions .btn{justify-content:center;width:100%;min-height:44px}.lang-toggle{display:none}.menu-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:42px;height:42px;padding:0;display:inline-flex}.menu-toggle span{background:var(--text);border-radius:2px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.menu-toggle.open span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:center;touch-action:manipulation;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:.65rem 1.1rem;transition:transform .15s,background .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#1a1205;border-color:#0000;font-weight:600}.btn-ghost{background:0 0}.btn-danger{color:#ffb4b4;background:#c45c5c33;border-color:#c45c5c73}.hero{margin:.5rem 0 1.5rem}.hero h1{font-family:var(--serif);word-break:break-word;max-width:16ch;margin:0 0 .75rem;font-size:clamp(1.75rem,8vw,3.2rem);line-height:1.15}.hero p{color:var(--muted);overflow-wrap:anywhere;max-width:42ch;margin:0;font-size:clamp(.95rem,3.5vw,1.05rem)}.dedication{border-top:1px solid var(--border);padding:.75rem 0 0;line-height:1.45;max-width:36ch!important;color:var(--text)!important;margin-top:1.15rem!important;font-size:clamp(.92rem,3.2vw,1.02rem)!important}.dedication strong{color:var(--accent);font-family:var(--serif);letter-spacing:.02em;font-weight:700;display:inline}.panel{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(160deg,#312838f2,#1e1824eb);padding:clamp(.9rem,3vw,1.25rem)}.form-grid{gap:1rem;display:grid}label{color:var(--muted);gap:.4rem;font-size:.92rem;display:grid}input,select,textarea{border:1px solid var(--border);width:100%;max-width:100%;color:var(--text);background:#00000040;border-radius:10px;padding:.75rem .85rem;font-size:16px}.topic-list{gap:.85rem;display:grid}.topic-item{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff08;flex-direction:column;align-items:stretch;gap:.85rem;padding:1rem;display:flex}.topic-item .btn{width:100%}.topic-item h3{font-family:var(--serif);overflow-wrap:anywhere;margin:0 0 .35rem;font-size:clamp(1.05rem,4vw,1.25rem)}.meta{color:var(--muted);font-size:.9rem}.exam-header{z-index:30;border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1520eb;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:.75rem .9rem;display:flex;position:sticky;top:4.5rem}.exam-header h2{overflow-wrap:anywhere;font-size:clamp(1.1rem,4.5vw,1.5rem)}.timer{font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;align-self:flex-start;padding:.45rem .9rem;font-weight:700}.exam-page{padding-top:.25rem}.exam-timer-bar{z-index:35;border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#312838fa,#1a1520f5);border:1px solid #d4a01759;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin:0 0 1rem;padding:.85rem 1rem;display:flex;position:sticky;top:4.25rem;box-shadow:0 10px 30px #00000059}.exam-timer-bar.urgent{background:linear-gradient(135deg,#501c1cf2,#281216f5);border-color:#c45c5ca6;animation:1.2s ease-in-out infinite pulse-urgent}.exam-timer-meta{gap:.2rem;min-width:0;display:grid}.exam-timer-meta strong{font-family:var(--serif);overflow-wrap:anywhere;font-size:clamp(1rem,3.8vw,1.2rem)}.exam-timer-meta span{color:var(--muted);font-size:.88rem}.exam-timer-clock{flex-direction:column;align-items:flex-end;gap:.15rem;margin-left:auto;display:flex}.exam-timer-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.exam-timer-value{font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.04em;font-size:clamp(1.6rem,7vw,2.1rem);font-weight:700;line-height:1}.exam-timer-bar.urgent .exam-timer-value{color:#ffb4b4}.exam-panel{margin-bottom:1rem}@keyframes pulse-urgent{0%,to{box-shadow:0 10px 30px #00000059}50%{box-shadow:0 0 0 1px #c45c5c73,0 10px 30px #c45c5c40}}.question-block{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1.1rem}.question-block:last-child{border-bottom:0}.question-block strong{overflow-wrap:anywhere;line-height:1.45;display:block}.options{gap:.65rem;margin-top:.85rem;display:grid}.option{border:1px solid var(--border);cursor:pointer;overflow-wrap:anywhere;background:#0000002e;border-radius:12px;align-items:flex-start;gap:.7rem;min-height:48px;padding:.85rem .9rem;display:flex}.option input{flex-shrink:0;width:auto;margin-top:.2rem}.option.selected{border-color:var(--accent);background:var(--accent-soft)}.option.correct{border-color:var(--success);background:#3d9a6a26}.option.wrong{border-color:var(--danger);background:#c45c5c26}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:520px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.7rem .55rem}th{color:var(--muted);font-size:.88rem;font-weight:600}.error{color:#ffb4b4;overflow-wrap:anywhere;margin:.5rem 0 0}.admin-nav{grid-template-columns:1fr;gap:.5rem;margin-bottom:1.25rem;display:grid}.admin-nav .btn{width:100%}.admin-nav a.active,.admin-nav .active{background:var(--accent-soft);color:var(--accent)}.stack{gap:1rem;display:grid}.row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.row-actions .btn{flex:auto;min-width:7rem}.badge{white-space:nowrap;background:#ffffff14;border-radius:999px;padding:.2rem .55rem;font-size:.8rem;display:inline-block}.badge.ok{color:#8fdfb4;background:#3d9a6a33}.badge.bad{color:#ffb4b4;background:#c45c5c33}.muted{color:var(--muted)}@media (width<=720px){.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap th,.table-wrap td,.table-wrap tr{width:100%;min-width:0;display:block}.table-wrap thead{display:none}.table-wrap tr{border:1px solid var(--border);background:#0000002e;border-radius:12px;margin-bottom:.75rem;padding:.85rem}.table-wrap td{border:0;grid-template-columns:minmax(5.5rem,34%) 1fr;align-items:start;gap:.5rem;padding:.35rem 0;display:grid}.table-wrap td:before{content:attr(data-label);color:var(--muted);font-size:.82rem;font-weight:600}.table-wrap td:last-child{padding-top:.65rem}.table-wrap td:last-child:not([data-label]){display:block}.table-wrap td:last-child .row-actions,.table-wrap td:last-child .btn{width:100%}}@media (width>=641px){.topic-item{flex-direction:row;justify-content:space-between;align-items:center}.topic-item .btn{width:auto}.exam-header{flex-direction:row;justify-content:space-between;align-items:center}.exam-timer-bar{flex-wrap:nowrap}.admin-nav{flex-wrap:wrap;display:flex}.admin-nav .btn{width:auto}}@media (width>=860px){.app-shell{padding:calc(1.25rem + var(--safe-top)) 1.25rem calc(3rem + var(--safe-bottom))}.topbar{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:2rem}.menu-toggle{display:none}.nav-actions{flex-flow:wrap;align-items:center;gap:.5rem;padding:0;display:flex}.nav-actions .btn{width:auto}.hero{margin:2rem 0 2.5rem}.exam-header,.exam-timer-bar{top:5rem}}body.modal-open{overflow:hidden}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08060cb8;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-dialog{border:1px solid var(--border);background:linear-gradient(165deg,#322838 0%,#1e1824 100%);border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-width:640px;max-height:min(92vh,900px);animation:.22s ease-out modal-up;display:flex;box-shadow:0 -12px 40px #00000073}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.modal-header h2{font-family:var(--serif);margin:0;font-size:clamp(1.2rem,4vw,1.55rem)}.modal-close{border:1px solid var(--border);width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border-radius:999px;font-size:1.5rem;line-height:1}.modal-body{padding:1rem 1.1rem calc(1.25rem + var(--safe-bottom));-webkit-overflow-scrolling:touch;overflow-y:auto}.checkbox-row{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;display:flex}.checkbox-row input[type=checkbox],.checkbox-row input[type=radio]{width:auto;min-width:1.15rem;min-height:1.15rem}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.page-toolbar .filter-field{flex:12rem;margin:0}@keyframes modal-up{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (width>=641px){.modal-backdrop{align-items:center;padding:1.25rem}.modal-dialog{border-radius:var(--radius);box-shadow:var(--shadow);animation:.2s ease-out modal-fade}@keyframes modal-fade{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}}
