:root{--bg:#f6f5fb;--bg-soft:#f0eef9;--surface:#fff;--ink:#1b1b2b;--ink-mid:#5e6070;--muted:#9296a6;--violet:#7b5cfc;--violet-d:#6a45e0;--violet-l:#f1ecff;--blue:#3e8bff;--blue-l:#e6f0ff;--green:#34c77b;--green-l:#e7f8ef;--orange:#ff9b3d;--orange-l:#fff1e1;--red:#f0564b;--red-l:#fdeae8;--ok:#1fa971;--ok-bg:#e7f8ef;--warn:#e05b4a;--warn-bg:#fdeae8;--line:#1b1b2b14;--line-2:#1b1b2b24;--sans:"Plus Jakarta Sans", "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--script:"Caveat", cursive;--r:14px;--r-lg:20px;--shadow:0 1px 2px #1b1b2b0a, 0 10px 30px -14px #1b1b2b24;--shadow-lg:0 30px 70px -32px #3c288c59}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:inherit;text-decoration:none}::selection{background:var(--violet);color:#fff}:focus-visible{outline:2px solid var(--violet);outline-offset:2px}h1,h2,h3,.display{letter-spacing:-.02em;font-weight:800}.display em{color:var(--violet);font-style:normal}.mono-label{letter-spacing:.08em;text-transform:uppercase;color:var(--violet);font-size:12px;font-weight:700}.muted{color:var(--ink-mid)}.script{font-family:var(--script);color:var(--violet);font-weight:700}.logo-emo{flex-direction:column;line-height:.9;display:inline-flex}.logo-emo .l1{letter-spacing:-.03em;align-items:center;gap:6px;font-size:21px;font-weight:800;display:inline-flex}.logo-emo .l1 .bub{color:var(--violet)}.logo-emo .l2{font-family:var(--script);color:var(--violet);margin-top:-2px;font-size:24px}.btn{border:1px solid var(--violet);background:var(--violet);color:#fff;font-family:var(--sans);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;transition:filter .15s,transform 80ms,background .15s;display:inline-flex;box-shadow:0 8px 20px -8px #7b5cfc80}.btn:hover{background:var(--violet-d);border-color:var(--violet-d)}.btn:active{transform:translateY(1px)}.btn.ghost{color:var(--violet);border-color:var(--violet-l);box-shadow:none;background:#fff}.btn.ghost:hover{background:var(--violet-l)}.btn.sm{border-radius:10px;padding:8px 14px;font-size:13px}.btn.lg{border-radius:14px;padding:14px 24px;font-size:15px}.btn.danger{background:var(--red);border-color:var(--red);box-shadow:none}.btn.dark{background:var(--ink);border-color:var(--ink);box-shadow:none}.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px}.tag{background:var(--bg-soft);color:var(--ink-mid);border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:700;display:inline-flex}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.cobalt{background:var(--violet-l);color:var(--violet-d)}.field{margin-bottom:14px}.field label{color:var(--ink-mid);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--line-2);width:100%;color:var(--ink);font-family:var(--sans);background:#fff;border-radius:12px;padding:11px 14px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-l);outline:none}.field textarea{resize:vertical;min-height:84px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=560px){.grid2{grid-template-columns:1fr}}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:700}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--bg-soft)}.shell{background:var(--bg);grid-template-columns:258px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.sidebar .brand{margin-bottom:26px;padding:0 6px}.navlink{color:var(--ink-mid);border-radius:12px;align-items:center;gap:12px;margin-bottom:3px;padding:11px 13px;font-size:14.5px;font-weight:600;display:flex}.navlink svg{opacity:.8;width:19px;height:19px}.navlink:hover{background:var(--bg-soft);color:var(--ink)}.navlink.active{background:var(--violet-l);color:var(--violet-d)}.navlink.active svg{opacity:1}.main{max-width:1180px;padding:30px 38px}.topbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.03em;font-size:30px;font-weight:800}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px 18px}.stat .n{letter-spacing:-.02em;font-size:28px;font-weight:800}.stat .l{color:var(--ink-mid);margin-top:2px;font-size:13px}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;gap:4px;height:auto;padding:10px;position:static;overflow-x:auto}.sidebar .brand,.sidebar .spacer{display:none}.navlink{white-space:nowrap;margin:0}.navlink span.lbl{display:inline}.main{padding:20px}}.spacer{flex:1}.modal-bg{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1b1b2b70;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);padding:24px;overflow:auto}.modal h3{font-size:21px;font-weight:800}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.flex{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.notice{background:var(--violet-l);color:var(--ink-mid);border:1px solid #7b5cfc38;border-radius:12px;padding:14px;font-size:13px}.center-narrow{max-width:430px;margin:8vh auto;padding:0 20px}.price-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.price{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;padding:24px;display:flex}.price.featured{border:2px solid var(--violet);box-shadow:0 26px 60px -28px #7b5cfc80}.price .amt{letter-spacing:-.03em;margin:6px 0 4px;font-size:42px;font-weight:800}.price .amt small{color:var(--muted);font-size:15px;font-weight:600}.price ul{flex:1;margin:14px 0 20px;list-style:none}.price li{color:var(--ink-mid);padding:7px 0 7px 26px;font-size:14px;position:relative}.price li:before{content:"✓";color:var(--violet);font-weight:800;position:absolute;left:0}.cards3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.blocked-wrap{text-align:center;max-width:640px;margin:9vh auto;padding:0 20px}.blocked-wrap .lock{background:var(--violet-l);width:60px;height:60px;color:var(--violet);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 14px;font-size:28px;display:flex}.userchip{align-items:center;gap:10px;display:flex}.userchip .av{background:var(--violet-l);width:40px;height:40px;color:var(--violet-d);border-radius:50%;justify-content:center;align-items:center;font-weight:800;display:flex}.userchip b{font-size:14px}.userchip span{color:var(--muted);font-size:12px;display:block}.bell{background:var(--surface);border:1px solid var(--line);width:42px;height:42px;color:var(--ink-mid);border-radius:12px;justify-content:center;align-items:center;display:flex;position:relative}.bell .d{background:var(--red);border-radius:50%;width:7px;height:7px;position:absolute;top:10px;right:12px}.hello{letter-spacing:-.03em;font-size:30px;font-weight:800}.hello-sub{color:var(--ink-mid);margin:4px 0 22px}.dcards{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;display:grid}@media (width<=900px){.dcards{grid-template-columns:1fr}}.dcard{border-radius:var(--r-lg);border:1px solid var(--line);padding:22px}.dcard .ic{color:#fff;border-radius:15px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;display:flex}.dcard .h{margin-bottom:10px;font-size:15px;font-weight:700}.dcard.purple{background:linear-gradient(#f3eeff,#fbfaff)}.dcard.purple .ic{background:var(--violet)}.dcard.blue{background:linear-gradient(#eaf2ff,#fbfdff)}.dcard.blue .ic{background:var(--blue)}.dcard.green{background:linear-gradient(#e9f8ef,#fbfefc)}.dcard.green .ic{background:var(--green)}.dcard .big{letter-spacing:-.02em;font-size:26px;font-weight:800}.dcard .big.v{color:var(--violet-d)}.dcard .small{color:var(--ink-mid);font-size:13px}.dcard .btn{margin-top:14px}.progbar{background:#1b1b2b14;border-radius:999px;height:8px;margin:8px 0 4px;overflow:hidden}.progbar>i{background:var(--blue);border-radius:999px;height:100%;display:block}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:22px}.panel .ph{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.panel .ph h3{font-size:18px;font-weight:800}.panel .ph a{color:var(--violet);font-size:13px;font-weight:700}.lrow{border:1px solid var(--line);border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:12px;display:flex}.lrow .date{text-align:center;background:var(--violet-l);width:52px;color:var(--violet-d);border-radius:12px;padding:8px 0}.lrow .date b{font-size:18px;line-height:1;display:block}.lrow .date span{text-transform:uppercase;font-size:10px}.lrow .mid{flex:1}.lrow .mid b{font-size:14px}.lrow .mid span{color:var(--muted);font-size:13px;display:block}.todo{border:1px solid var(--line);border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px;display:flex}.todo .ck{border:2px solid var(--line-2);border-radius:50%;flex-shrink:0;width:20px;height:20px;margin-top:2px}.todo b{font-size:14px}.todo .due{color:var(--red);font-size:12px;font-weight:600}.prog-line{align-items:center;gap:12px;margin-bottom:14px;display:flex}.prog-line .pi{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.prog-line .lbl{width:92px;font-size:14px;font-weight:600}.prog-line .pv{text-align:right;width:44px;font-size:14px;font-weight:700}.fbadge{color:#fff;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:10px;font-weight:800;display:flex}.fbadge.docx{background:var(--blue)}.fbadge.pdf{background:var(--red)}.fbadge.pptx{background:var(--orange)}.fbadge.link{background:var(--violet)}.matrow{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.matrow:last-child{border-bottom:none}.matrow .t{font-size:14px;font-weight:600}.matrow .s{color:var(--muted);font-size:12px}.quoteband{background:var(--violet-l);border-radius:var(--r-lg);align-items:center;gap:20px;margin-top:22px;padding:26px 28px;display:flex}.quoteband .q{color:var(--violet);font-size:40px;font-family:var(--script);line-height:0}.quoteband b{font-size:17px}.quoteband p{color:var(--ink-mid);margin-top:4px}.grid-2col{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=900px){.grid-2col{grid-template-columns:1fr}}.sidecard{background:var(--violet-l);border-radius:var(--r-lg);text-align:center;margin-top:18px;padding:22px}.sidecard h4{margin:8px 0 4px;font-size:16px;font-weight:800}.sidecard p{color:var(--ink-mid);margin-bottom:14px;font-size:13px}.appbar{z-index:40;-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line);background:#ffffffe6;justify-content:space-between;align-items:center;padding:14px 30px;display:flex;position:sticky;top:0}.appbar nav{align-items:center;gap:4px;display:flex}.appbar nav a.link{color:var(--ink-mid);border-radius:10px;padding:8px 12px;font-size:14px;font-weight:600}.appbar nav a.link:hover,.appbar nav a.link.active{color:var(--violet)}@media (width<=820px){.appbar nav a.link{display:none}}.wrap{max-width:1160px;margin:0 auto;padding:0 30px}.hero2{background:linear-gradient(180deg,#f3eeff 0%,var(--bg) 100%);padding:60px 0 70px}.hero2 .grid{grid-template-columns:1.02fr .98fr;align-items:center;gap:40px;display:grid}@media (width<=900px){.hero2 .grid{grid-template-columns:1fr}}.hero2 h1{letter-spacing:-.035em;font-size:clamp(38px,5.4vw,60px);font-weight:800;line-height:1.02}.hero2 h1 .v{color:var(--violet)}.hero2 .lead{color:var(--ink-mid);max-width:470px;margin:20px 0 26px;font-size:18px}.hero2 .cta-row{flex-wrap:wrap;gap:12px;display:flex}.hero2 .mini{flex-wrap:wrap;gap:26px;margin-top:28px;display:flex}.hero2 .mini .m{color:var(--ink-mid);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.hero2 .mini .m .i{background:var(--violet-l);width:30px;height:30px;color:var(--violet);border-radius:9px;justify-content:center;align-items:center;display:flex}.heroart{position:relative}.heroart .photo{aspect-ratio:4/3.4;box-shadow:var(--shadow-lg);color:#fff;background:linear-gradient(135deg,#7b5cfc,#a98bff 60%,#c7b6ff);border-radius:24px;justify-content:center;align-items:center;display:flex;overflow:hidden}.heroart .photo .hp{font-size:70px}.bubble{box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:10px 14px;font-size:14px;font-weight:600;position:absolute}.bubble.b1{top:10%;right:-6%}.bubble.b2{top:42%;left:-8%}.bubble.b3{bottom:6%;right:4%}@media (width<=560px){.bubble.b1,.bubble.b2{display:none}}.section{padding:64px 0}.section.soft{background:var(--surface)}.section-head{text-align:center;max-width:640px;margin:0 auto 40px}.section-head h2{letter-spacing:-.03em;font-size:clamp(26px,3.6vw,36px);font-weight:800}.section-head h2 .u{border-bottom:3px solid var(--violet);padding-bottom:4px}.section-head p{color:var(--ink-mid);margin-top:10px;font-size:16px}.steps4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (width<=860px){.steps4{grid-template-columns:1fr 1fr}}@media (width<=480px){.steps4{grid-template-columns:1fr}}.stp{text-align:center;padding:0 8px}.stp .circ{background:var(--violet-l);width:88px;height:88px;color:var(--violet);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex;position:relative}.stp .circ .no{background:var(--violet);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:flex;position:absolute;bottom:-6px;right:50%;transform:translate(50%)}.stp h3{margin-bottom:6px;font-size:17px;font-weight:800}.stp p{color:var(--ink-mid);font-size:13.5px}.courses{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}@media (width<=980px){.courses{grid-template-columns:1fr 1fr}}@media (width<=560px){.courses{grid-template-columns:1fr}}.course{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;overflow:hidden}.course:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.course .img{aspect-ratio:16/10;color:#fff;justify-content:center;align-items:center;font-size:34px;display:flex}.course .body{padding:18px}.course h3{margin-bottom:6px;font-size:17px;font-weight:800}.course p{color:var(--ink-mid);margin-bottom:14px;font-size:13px}.course .foot{justify-content:space-between;align-items:center;display:flex}.course .lvl{color:var(--violet-d);background:var(--violet-l);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.course .go{border:1px solid var(--line-2);width:34px;height:34px;color:var(--violet);border-radius:50%;justify-content:center;align-items:center;display:flex}.statband2{background:var(--violet-l);border-radius:var(--r-lg)}.statband2 .in{text-align:center;grid-template-columns:repeat(4,1fr);gap:20px;padding:28px;display:grid}@media (width<=700px){.statband2 .in{grid-template-columns:1fr 1fr}}.statband2 .n{color:var(--violet-d);letter-spacing:-.02em;font-size:30px;font-weight:800}.statband2 .l{color:var(--ink-mid);font-size:13px}.tgrid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=860px){.tgrid{grid-template-columns:1fr}}.tcard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow);padding:22px}.tcard .stars{color:#ffb020;letter-spacing:1px;margin-bottom:10px;font-size:14px}.tcard p{color:var(--ink-mid);font-size:14px;line-height:1.6}.tcard .who{align-items:center;gap:10px;margin-top:16px;display:flex}.tcard .av{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:flex}.tcard .who b{font-size:14px}.ctaband{border-radius:var(--r-lg);color:#fff;background:linear-gradient(103deg,#7b5cfc,#6a45e0);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:34px 40px;display:flex}.ctaband .l{align-items:center;gap:18px;display:flex}.ctaband .l .ic{background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.ctaband h2{font-size:24px;font-weight:800}.ctaband p{color:#ffffffd9;margin-top:4px}.ctaband .btn{color:var(--violet-d);background:#fff;border-color:#fff}.frich{background:var(--surface);border-top:1px solid var(--line)}.frich .in{max-width:1160px;margin:0 auto;padding:50px 30px 28px}.fgrid{grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:30px;display:grid}@media (width<=820px){.fgrid{grid-template-columns:1fr 1fr;gap:26px}}.fcol h4{margin-bottom:14px;font-size:13px;font-weight:800}.fcol a,.fcol p{color:var(--ink-mid);margin-bottom:9px;font-size:14px;display:block}.fcol a:hover{color:var(--violet)}.fnews{gap:8px;margin-top:6px;display:flex}.fnews input{border:1px solid var(--line-2);font-family:var(--sans);border-radius:10px;flex:1;padding:10px 12px;font-size:13px}.fsoc{gap:10px;margin-top:12px;display:flex}.fsoc a{background:var(--violet-l);width:36px;height:36px;color:var(--violet);border-radius:10px;justify-content:center;align-items:center;display:flex}.fbar{border-top:1px solid var(--line);text-align:center;color:var(--muted);margin-top:30px;padding-top:18px;font-size:13px}button.link-btn{color:var(--violet);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:700}button.link-btn:hover{text-decoration:underline}button.link-btn.danger{color:var(--red)}.navsec{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:14px 13px 6px;font-size:11px;font-weight:800}@media (width<=860px){.navsec{display:none}}.navlink .cnt{background:var(--red);color:#fff;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:800}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--ink-mid);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-size:14px;font-weight:700}.tabs button.on{color:var(--violet-d);border-bottom-color:var(--violet)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar select,.toolbar input{border:1px solid var(--line-2);font-family:var(--sans);color:var(--ink);background:#fff;border-radius:10px;padding:9px 12px;font-size:14px}.toolbar .grow{flex:1}.empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:14px}.empty b{color:var(--ink);margin-bottom:4px;font-size:15px;display:block}.loading{text-align:center;color:var(--muted);padding:40px}.err{background:var(--red-l);color:var(--warn);border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13px}.okmsg{background:var(--ok-bg);color:var(--ok);border-radius:12px;margin-bottom:14px;padding:12px 14px;font-size:13px}.table-wrap{overflow-x:auto}.table td .sub{color:var(--muted);font-size:12px;display:block}.grade{cursor:default;border-radius:9px;justify-content:center;align-items:center;min-width:30px;height:30px;margin:2px;padding:0 7px;font-size:14px;font-weight:800;display:inline-flex;position:relative}.grade.g6{color:#13895a;background:#e7f8ef}.grade.g5{color:#1f6fd6;background:#e9f5ff}.grade.g4{background:var(--violet-l);color:var(--violet-d)}.grade.g3{color:#b7791f;background:#fff6e0}.grade.g2{background:var(--orange-l);color:#d9670f}.grade.g1{background:var(--red-l);color:var(--warn)}.grade.gx{background:var(--bg-soft);color:var(--ink-mid)}.grade.w2,.grade.w3,.grade.w4,.grade.w5{box-shadow:inset 0 0 0 2px}.grade[title]{cursor:help}.avg{font-size:15px;font-weight:800}.gbook{border-collapse:collapse;width:100%;font-size:14px}.gbook th,.gbook td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px}.gbook th{color:var(--muted);font-size:12px;font-weight:700}.gbook td.name{white-space:nowrap;font-weight:700}.gbook td.add button{border:1px dashed var(--line-2);width:30px;height:30px;color:var(--violet);cursor:pointer;background:#fff;border-radius:9px;font-weight:800}.gbook td.add button:hover{border-color:var(--violet);background:var(--violet-l)}.att{gap:4px;display:inline-flex}.att button{border:1px solid var(--line-2);font:inherit;color:var(--ink-mid);cursor:pointer;background:#fff;border-radius:9px;padding:6px 10px;font-size:12px;font-weight:700}.att button.on.obecny{background:var(--ok-bg);color:var(--ok);border-color:#0000}.att button.on.nieobecny{background:var(--red-l);color:var(--warn);border-color:#0000}.att button.on.spozniony{background:var(--orange-l);color:#d9670f;border-color:#0000}.att button.on.usprawiedliwiony{background:var(--blue-l);color:#1f6fd6;border-color:#0000}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot.obecny{background:var(--green)}.dot.nieobecny{background:var(--red)}.dot.spozniony{background:var(--orange)}.dot.usprawiedliwiony{background:var(--blue)}.att-cal{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.att-cal .d{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px;font-size:12px}.att-cal .d b{font-size:13px;display:block}.remark{border:1px solid var(--line);border-radius:14px;gap:12px;margin-bottom:10px;padding:12px;display:flex}.remark .k{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;display:flex}.remark .k.pochwala{background:var(--ok-bg)}.remark .k.uwaga{background:var(--red-l)}.remark .k.informacja{background:var(--blue-l)}.remark .s{color:var(--muted);font-size:12px}.gcards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.gcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);cursor:pointer;padding:18px;transition:transform .15s}.gcard:hover{transform:translateY(-2px)}.gcard .bar{border-radius:999px;height:6px;margin-bottom:14px}.gcard h3{font-size:17px}.gcard .s{color:var(--ink-mid);font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--bg-soft);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip button{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:14px;line-height:1}.chat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);min-height:520px;box-shadow:var(--shadow);grid-template-columns:280px 1fr;display:grid;overflow:hidden}.chat.single{grid-template-columns:1fr}@media (width<=760px){.chat{grid-template-columns:1fr}}.chat .list{border-right:1px solid var(--line);max-height:640px;overflow-y:auto}.chat .list button{text-align:left;border:none;border-bottom:1px solid var(--line);width:100%;font:inherit;cursor:pointer;background:0 0;padding:14px 16px;display:block}.chat .list button.on{background:var(--violet-l)}.chat .list button b{justify-content:space-between;gap:8px;font-size:14px;display:flex}.chat .list button span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.chat .thread{flex-direction:column;display:flex}.chat .msgs{flex-direction:column;flex:1;gap:8px;max-height:520px;padding:18px;display:flex;overflow-y:auto}.bub-msg{white-space:pre-wrap;word-wrap:break-word;border-radius:16px;max-width:78%;padding:10px 14px;font-size:14px;line-height:1.45}.bub-msg.me{background:var(--violet);color:#fff;border-bottom-right-radius:6px;align-self:flex-end}.bub-msg.them{background:var(--bg-soft);border-bottom-left-radius:6px;align-self:flex-start}.bub-msg .t{opacity:.7;margin-top:4px;font-size:11px;display:block}.chat form{border-top:1px solid var(--line);gap:8px;padding:12px;display:flex}.chat form textarea{resize:none;border:1px solid var(--line-2);height:46px;font-family:var(--sans);border-radius:12px;flex:1;padding:12px 14px;font-size:14px}.q{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:16px}.q .opts{gap:8px;margin-top:10px;display:grid}.q .opts label{border:1px solid var(--line-2);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.q .opts label.sel{border-color:var(--violet);background:var(--violet-l)}.q .opts label.good{border-color:var(--green);background:var(--green-l)}.q .opts label.bad{border-color:var(--red);background:var(--red-l)}.kid-switch{align-items:center;gap:6px;display:flex}.kid-switch select{border:1px solid var(--line-2);font-family:var(--sans);border-radius:10px;padding:8px 12px;font-weight:700}.wide-modal{max-width:760px}.hint{color:var(--muted);margin-top:4px;font-size:12px}.right{text-align:right}.nowrap{white-space:nowrap}.mt{margin-top:18px}.mb{margin-bottom:18px}.week{grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;display:grid;overflow-x:auto}@media (width<=860px){.week{grid-template-columns:repeat(7,150px)}}.wday{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;min-height:180px;padding:8px;display:flex}.wday.today{border-color:var(--violet);box-shadow:0 0 0 2px var(--violet-l)}.wday .wh{color:var(--ink-mid);border-bottom:1px solid var(--line);text-transform:capitalize;padding:2px 4px 6px;font-size:12px}.wday .wh b{color:var(--ink)}.wslot{text-align:left;width:100%;font:inherit;border-radius:10px;padding:7px 8px;font-size:12px;line-height:1.35;display:block}.wslot span{color:var(--muted);font-size:11px;display:block}.wslot.lesson{background:var(--violet-l);border:none;border-left:3px solid var(--violet);cursor:pointer}.wslot.lesson.do_potwierdzenia{background:var(--orange-l);border-left-color:var(--orange)}.wslot.lesson.odwołana{opacity:.45;text-decoration:line-through}.wslot.free{border:1px dashed var(--line-2);color:var(--ok);cursor:pointer;background:#fff;font-weight:700}.wslot.free:hover{border-color:var(--ok);background:var(--ok-bg)}.wslot.off{background:var(--blue-l);color:#1f6fd6;font-weight:600}.slotgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.slotday b{text-transform:capitalize;margin-bottom:6px;font-size:13px;display:block}.slotday .times{flex-wrap:wrap;gap:6px;display:flex}.slotday button{border:1px solid var(--line-2);font:inherit;color:var(--violet-d);cursor:pointer;background:#fff;border-radius:9px;padding:6px 10px;font-size:13px;font-weight:700}.slotday button:hover,.slotday button.on{background:var(--violet);color:#fff;border-color:var(--violet)}.rowgrid{gap:12px;display:grid}@media (width<=760px){.rowgrid{grid-template-columns:1fr!important}}.legal h3{margin:22px 0 8px;font-size:18px}.legal h3:first-child{margin-top:0}.legal ol,.legal ul{margin:0 0 8px;padding-left:22px}.legal li{margin-bottom:6px}.legal p{margin:0 0 10px}.install-card .navlink{background:var(--violet-l);cursor:pointer;width:100%;font:inherit;text-align:left;color:var(--violet);border:0}.mascot .m-head{transform-origin:100px 110px;animation:3.2s ease-in-out infinite mBob}.mascot .m-cape{transform-origin:90px 120px;animation:2.6s ease-in-out infinite mCape}.mascot.wave .m-arm{transform-origin:124px 146px;animation:1.4s ease-in-out infinite mWave}@keyframes mBob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-3px)rotate(-1.5deg)}}@keyframes mCape{0%,to{transform:skew(0)}50%{transform:skew(-4deg)}}@keyframes mWave{0%,to{transform:rotate(0)}50%{transform:rotate(-14deg)}}@media (prefers-reduced-motion:reduce){.mascot *{animation:none!important}}.ai-hero{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.ai-modes{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.ai-mode{text-align:left;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:inherit;box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:16px;transition:transform .1s,border-color .15s;display:flex}.ai-mode:hover{border-color:var(--violet);transform:translateY(-2px)}.ai-mode.static{cursor:default}.ai-mode.static:hover{border-color:var(--line);transform:none}.ai-mode .i{font-size:26px}.ai-mode span:last-child{color:var(--ink-mid);font-size:13px}.ai-stage{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-direction:column;height:calc(100vh - 150px);min-height:480px;display:flex;overflow:hidden}.ai-face{border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--violet-l),var(--surface));align-items:center;gap:14px;padding:10px 16px;display:flex}.ai-meta{flex-direction:column;display:flex}.ai-meta span{color:var(--ink-mid);font-size:13px}.ai-chat{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow:auto}.ai-msg{flex-direction:column;max-width:78%;display:flex}.ai-msg.user{align-self:flex-end;align-items:flex-end}.ai-msg .bubble{background:var(--bg-soft);border-radius:16px;padding:10px 14px;line-height:1.5}.ai-msg.user .bubble{background:var(--violet);color:#fff;border-bottom-right-radius:4px}.ai-msg.assistant .bubble{border-bottom-left-radius:4px}.ai-corr{background:var(--orange-l);border-radius:12px;margin-top:6px;padding:8px 12px;font-size:14px}.ai-corr s{color:var(--red)}.typing{gap:4px;display:flex}.typing i{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1s infinite tdot}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes tdot{0%,to{opacity:.3}50%{opacity:1}}.ai-input{border-top:1px solid var(--line);gap:8px;padding:12px;display:flex}.ai-input input{flex:1}.ai-input .mic{background:var(--violet-l);cursor:pointer;border:0;border-radius:50%;width:46px;height:46px;font-size:20px}.ai-input .mic.on{background:var(--red);color:#fff;animation:1s infinite tdot}.ai-pay{border-color:var(--violet)}.ticks{margin:6px 0;padding-left:18px}.ticks li{margin:3px 0}.statsrow{flex-wrap:wrap;gap:14px;display:flex}.statsrow div{flex:1;min-width:110px}.statsrow b{font-size:24px;display:block}.statsrow span{color:var(--ink-mid);font-size:13px}.chip.on{background:var(--violet);color:#fff}button.chip{cursor:pointer;font:inherit;border:0;font-size:13px;font-weight:600}.ai-langs{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.ai-lang{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.ai-lang span{font-size:24px}.ai-hero-art{justify-content:center;align-items:center;min-height:340px;display:flex;position:relative}.ai-hero-art .bubble{position:absolute}.ai-hero-art .b1{top:30px;right:0}.ai-hero-art .b3{bottom:40px;left:0}.onb{text-align:center;max-width:440px}.onb-top{justify-content:center;display:flex}.onb-dots{justify-content:center;gap:6px;display:flex}.onb-dots i{background:var(--line-2);border-radius:50%;width:8px;height:8px}.onb-dots i.on{background:var(--violet);border-radius:4px;width:20px}@media (width<=760px){.ai-msg{max-width:92%}.ai-stage{height:calc(100vh - 120px)}}.ai-msg .link-btn{align-self:flex-start;margin-top:4px}.ai-hero-art .bubble{white-space:nowrap;width:auto;max-width:none}@media (width<=760px){.ai-langs{grid-template-columns:1fr 1fr}.ai-hero-art{min-height:280px}}img.mascot{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 10px 18px #1e285a2e);display:block}img.mascot.wave{transform-origin:50% 92%;animation:3.4s ease-in-out infinite sunnySway}@keyframes sunnySway{0%,to{transform:rotate(0)translateY(0)}25%{transform:rotate(-3deg)translateY(-3px)}75%{transform:rotate(3deg)translateY(-1px)}}@media (prefers-reduced-motion:reduce){img.mascot{animation:none!important}}.ai-hero-art .bubble{left:auto;right:auto;width:max-content!important}.ai-hero-art .b1{top:40px;left:auto!important;right:4%!important}.ai-hero-art .b3{bottom:90px;left:4%!important;right:auto!important}
