*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #fbf8f3;--card: #ffffff;--text: #2e2620;--muted: #95897b;--accent: #a47551;--accent-deep: #8a5f3f;--soft: #f1e8dd;--border: rgba(46, 38, 32, .09);--danger: #b0584a;--ok: #5f8a5e;--shadow: 0 2px 14px rgba(46, 38, 32, .06);--radius: 16px}html[data-scheme=dark]{--bg: #1f1a14;--card: #2a231c;--text: #f3ece2;--muted: #a2937f;--accent: #c09a72;--accent-deep: #a87f58;--soft: #352c23;--border: rgba(243, 236, 226, .09);--shadow: 0 2px 14px rgba(0, 0, 0, .3)}body{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.page{padding:14px 16px 92px;max-width:560px;margin:0 auto;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}h1,h2,h3{font-weight:700;letter-spacing:-.015em}.eyebrow{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--accent)}.cover{position:relative;border-radius:22px;overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow)}.cover.with-photo{aspect-ratio:4 / 3;max-height:360px}.cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.cover-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#1c150f00 38%,#1c150fbd)}.cover.with-photo .cover-content{position:absolute;left:20px;right:20px;bottom:18px;color:#fff}.cover.with-photo .eyebrow{color:#ffffffd9}.cover.no-photo{background:radial-gradient(130% 110% at 100% 0%,var(--soft) 0%,transparent 58%),var(--card);border:1px solid var(--border);padding:26px 20px 22px}.cover h1{font-size:25px;line-height:1.18;margin:7px 0}.cover p{font-size:13.5px;line-height:1.5;opacity:.92;max-width:34ch}.cover.no-photo p{color:var(--muted);opacity:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 16px;margin-bottom:12px;box-shadow:var(--shadow)}.card h3{font-size:16px;margin-bottom:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--muted);font-size:13px;line-height:1.45}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.ok{background:#5f8a5e1c;color:var(--ok)}.badge.off{background:#b0584a1a;color:var(--danger)}.badge.pending{background:var(--soft);color:var(--accent-deep)}.btn{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;padding:14px 16px;border:none;border-radius:13px;font-size:14.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .08s ease,background .15s ease,opacity .15s ease;background:var(--accent);color:#fff}.btn:active{transform:scale(.985);background:var(--accent-deep)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}.btn.secondary{background:var(--soft);color:var(--accent-deep)}.btn.ghost{background:var(--card);border:1px solid var(--border);color:var(--text)}.btn.small{width:auto;padding:9px 14px;font-size:13px;border-radius:10px}.btn.danger{background:#b0584a1a;color:var(--danger)}.btn+.btn{margin-top:10px}.btn svg{flex-shrink:0}.plan{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 14px;border:1.5px solid var(--border);border-radius:14px;margin-bottom:10px;cursor:pointer;background:var(--card);transition:border-color .15s ease,background .15s ease}.plan.selected{border-color:var(--accent);background:var(--soft)}.plan .price{font-size:19px;font-weight:700;color:var(--accent-deep);white-space:nowrap}.collage{column-count:2;column-gap:9px}.collage .tile{display:block;width:100%;margin-bottom:9px;border-radius:14px;overflow:hidden;break-inside:avoid;background:var(--soft);border:none;padding:0;cursor:pointer}.collage .tile img{width:100%;height:auto;display:block;transition:transform .25s ease}.collage .tile:active img{transform:scale(1.03)}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#140f0aed;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.viewer img{max-width:100%;max-height:80vh;border-radius:12px}.viewer .caption{color:#fff;margin-top:14px;font-size:14px;text-align:center;opacity:.9}.viewer .close{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;border:none;background:#ffffff24;color:#fff;font-size:18px;cursor:pointer}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;background:var(--card);border-top:1px solid var(--border);padding:9px 4px calc(9px + env(safe-area-inset-bottom))}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;font-family:inherit;font-size:10.5px;font-weight:500;color:var(--muted);cursor:pointer;padding:4px 0}.tabbar button.active{color:var(--accent-deep);font-weight:600}.tabbar .icon{display:flex;line-height:1}.input,textarea.input{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);font-size:15px;font-family:inherit;outline:none;transition:border-color .15s ease}.input:focus{border-color:var(--accent)}textarea.input{resize:none;min-height:80px;line-height:1.5}.input::placeholder{color:var(--muted);opacity:.75}.field{margin-bottom:10px}.field label{display:block;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:6px}.chat{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.bubble{max-width:82%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.bubble.mine{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}.bubble.theirs{align-self:flex-start;background:var(--card);border:1px solid var(--border);border-bottom-left-radius:5px}.bubble time{display:block;font-size:10px;opacity:.65;margin-top:4px}.chat-input{display:flex;gap:8px}.chat-input .input{flex:1}.subtabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.subtabs::-webkit-scrollbar{display:none}.subtabs button{flex-shrink:0;padding:8px 15px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer}.subtabs button.active{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}.stat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px}.stat .num{font-size:22px;font-weight:700;color:var(--accent-deep)}.stat .label{font-size:12px;color:var(--muted);margin-top:3px}.list-item{padding:13px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.thumb-grid .thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--soft)}.thumb-grid img{width:100%;height:100%;object-fit:cover;display:block}.thumb-grid .del{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:none;background:#140f0a99;color:#fff;font-size:13px;cursor:pointer}.cover-preview{width:100%;border-radius:12px;margin-bottom:10px;display:block}.empty{text-align:center;color:var(--muted);padding:36px 16px;font-size:14px}.error-banner{background:#b0584a17;color:var(--danger);border-radius:12px;padding:12px 14px;font-size:13px;margin-bottom:12px}.course-desc{white-space:pre-wrap;font-size:14.5px;line-height:1.6}.spinner{width:26px;height:26px;margin:40px auto;border:3px solid var(--soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
