*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f2ede3;--surface: #faf8f3;--surface-dark: #1d2014;--border: #ddd8cc;--border-dark: #2e3225;--orange: #e8570d;--orange-dim: rgba(232, 87, 13, .1);--text: #1a1a16;--text-on-dark: #f0ede5;--muted: #7a7568;--muted-on-dark: #9a9880;--gold: #d4972a;--radius: 12px;--radius-sm: 8px}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;min-height:100vh;line-height:1.6}.page{padding:2.5rem 1.25rem 5rem}.layout{max-width:760px;margin:0 auto}.layout--narrow{max-width:460px}.user-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;font-size:.8rem}.user-bar__who{color:var(--muted);margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-bar__link{color:var(--muted);text-decoration:none;transition:color .15s;white-space:nowrap}.user-bar__link:hover{color:var(--text)}.user-bar__logout{background:none;border:none;padding:0;cursor:pointer;font:inherit}.auth-form{display:flex;flex-direction:column;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem}.auth-form__title{font-size:1.1rem;font-weight:700}.auth-field{display:flex;flex-direction:column;gap:.35rem}.auth-field__label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.auth-form .btn-primary{align-self:stretch;justify-content:center}.auth-form__switch{font-size:.82rem;color:var(--muted);text-align:center}.auth-form__switch a{color:var(--orange);text-decoration:none;font-weight:600}.auth-form__switch a:hover{opacity:.75}.auth-form__invite{font-size:.82rem;color:var(--muted);background:var(--orange-dim);border-radius:var(--radius-sm);padding:.6rem .8rem}.account-block{margin-bottom:1rem}.account-hint{font-size:.78rem;color:var(--muted);line-height:1.5;margin-top:-.4rem;word-break:break-word}.issued-password{background:var(--surface);border:1px solid var(--orange);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.issued-password__title{font-size:.85rem;font-weight:600}.issued-password__value{font-family:ui-monospace,monospace;font-size:1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .8rem;-webkit-user-select:all;user-select:all;word-break:break-all}.issued-password__hint{font-size:.78rem;color:var(--muted);line-height:1.5}.locked-notice .btn-primary{align-self:center}.invite-form{margin-bottom:2rem}.invite-products{display:flex;flex-wrap:wrap;gap:.6rem}.invite-product{display:flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer}.invite-row{display:flex;gap:.75rem;flex-wrap:wrap}.invite-row .auth-field{flex:1;min-width:150px}.invite-url{display:block;margin-top:.4rem;font-family:ui-monospace,monospace;font-size:.72rem;color:var(--muted);word-break:break-all;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .55rem}.course-header{position:relative;overflow:hidden;background:var(--surface-dark) url(/community-hero.jpg) center / cover no-repeat;border-radius:var(--radius);padding:2.5rem 2rem;margin-bottom:2.5rem;min-height:230px;display:flex;align-items:flex-end;gap:1.5rem}.course-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,#14170ff0,#14170fdb,#14170f8c 70%,#14170f4d)}.course-header--compact{min-height:165px;padding:2rem}.course-header__text{position:relative}.course-badge{width:56px;height:56px;border-radius:12px;object-fit:cover;flex-shrink:0}.course-header__title{font-size:1.6rem;font-weight:700;line-height:1.25;color:var(--text-on-dark)}.course-header__subtitle{font-size:.88rem;color:var(--muted-on-dark);margin-top:.3rem}.intro-text{font-size:.95rem;line-height:1.65;color:var(--text);margin-bottom:2.5rem}.section{margin-bottom:2.5rem}.section-title{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.85rem}.card-list{display:flex;flex-direction:column;gap:.5rem}.link-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);transition:border-color .15s,box-shadow .15s}.link-card:hover{border-color:var(--orange);box-shadow:0 2px 12px #e8570d14}.link-card__arrow{font-size:1rem;color:var(--orange);flex-shrink:0}.link-card__body{display:flex;flex-direction:column;gap:.15rem}.link-card__title{font-size:.9rem;font-weight:600;color:var(--text)}.link-card__desc{font-size:.78rem;color:var(--muted)}.module-list{display:flex;flex-direction:column;gap:.5rem}.module-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text)}.module-card--unlocked{transition:border-color .15s,box-shadow .15s;cursor:pointer}.module-card--unlocked:hover{border-color:var(--orange);box-shadow:0 2px 12px #e8570d14}.module-card--locked{opacity:.5;cursor:default}.module-card__num{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--orange);background:var(--orange-dim);padding:.2rem .55rem;border-radius:5px;flex-shrink:0}.module-card__title{flex:1;font-size:.9rem;font-weight:500}.module-card__cta,.module-card__date{font-size:.78rem;color:var(--muted);white-space:nowrap}.back-link{display:inline-block;color:var(--muted);text-decoration:none;font-size:.82rem;margin-bottom:2rem;transition:color .15s}.back-link:hover{color:var(--text)}.module-header{background:var(--surface-dark);border-radius:var(--radius);padding:2rem;margin-bottom:2.5rem;display:flex;align-items:center;gap:1rem}.module-header__num{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--orange);background:#e8570d33;padding:.25rem .65rem;border-radius:6px;flex-shrink:0}.module-header__title{font-size:1.4rem;font-weight:700;color:var(--text-on-dark)}.content-section{margin-bottom:2.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.content-section__title{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.1rem}.content-section__desc{font-size:.82rem;color:var(--muted);margin-top:-.6rem;margin-bottom:1rem}.video-wrap{position:relative;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:.75rem;aspect-ratio:16 / 9}.video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.video-actions{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.video-link{font-size:.78rem;color:var(--muted);text-decoration:none;transition:color .15s}.video-link:hover{color:var(--text)}.video-copy-btn{font-size:.78rem;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;font-family:inherit;transition:color .15s}.video-copy-btn:hover{color:var(--text)}.content-links{list-style:none;display:flex;flex-direction:column;gap:.5rem}.content-link{font-size:.88rem;color:var(--orange);text-decoration:none;font-weight:500;transition:opacity .15s}.content-link--highlight{font-weight:600}.content-link:hover{opacity:.7}.prompt-toggle{margin-top:.6rem}.prompt-toggle__btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.78rem;color:var(--muted);padding:0;transition:color .15s}.prompt-toggle__btn:hover{color:var(--text)}.prompt-toggle__body{margin-top:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem 1.25rem;font-family:ui-monospace,monospace;font-size:.78rem;line-height:1.65;color:var(--text);white-space:pre-wrap;word-break:break-word;overflow-x:auto}.rating-section{margin-top:2.5rem}.rating-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;gap:1.1rem}.rating-form__title{font-size:1rem;font-weight:700;color:var(--text)}.rating-form__input,.rating-form__textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:.9rem;padding:.7rem 1rem;outline:none;transition:border-color .15s}.rating-form__input::placeholder,.rating-form__textarea::placeholder{color:var(--muted)}.rating-form__input:focus,.rating-form__textarea:focus{border-color:var(--orange)}.rating-form__textarea{resize:vertical;min-height:90px;line-height:1.5}.rating-form__hint{font-size:.82rem;color:var(--muted);line-height:1.5}.btn-dark{display:inline-flex;align-items:center;background:var(--surface-dark);color:var(--text-on-dark);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:600;padding:.7rem 1.5rem;transition:opacity .15s;align-self:flex-start;text-decoration:none}.btn-dark:hover{opacity:.85}.btn-dark:disabled{opacity:.4;cursor:default}.rating-form__error{color:#c0392b;font-size:.82rem}.rating-done{display:flex;flex-direction:column;gap:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem}.rating-done__label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}.rating-done__thanks{font-size:.92rem;color:var(--text);line-height:1.6}.rating-done__comment{color:var(--muted);font-size:.88rem;font-style:italic;line-height:1.5}.star-rating{display:flex;gap:.15rem}.star-rating--lg .star-btn{font-size:2rem}.star-rating--md .star-btn{font-size:1.5rem}.star-rating--sm .star-btn{font-size:1rem}.star-btn{background:none;border:none;color:#cec9bc;cursor:pointer;line-height:1;padding:0;transition:color .1s,transform .1s}.star-btn--filled{color:var(--gold)}.star-btn--readonly{cursor:default}.star-btn:not(.star-btn--readonly):hover{transform:scale(1.2);color:var(--gold)}.btn-primary{display:inline-flex;align-items:center;background:var(--orange);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:600;padding:.7rem 1.5rem;transition:opacity .15s;align-self:flex-start;text-decoration:none}.btn-primary:hover{opacity:.88}.btn-primary:disabled{opacity:.4;cursor:default}.content-link-note{margin:6px 0 0;font-size:.85rem;color:var(--text-secondary, #888)}.calendar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.calendar__banner{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:linear-gradient(115deg,#1d1108,#7a3208 45%,#e8570d 78%,#f0912f);border-radius:var(--radius-sm);padding:1.5rem 1.25rem;margin-bottom:.9rem}.calendar__month{font-size:2.4rem;font-weight:400;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:#fff}.calendar__pill{background:#ffffffe6;border-radius:999px;padding:.4rem .9rem;font-size:.72rem;color:var(--text);white-space:nowrap}.calendar__scroll{overflow-x:auto}.calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(88px,1fr));gap:.4rem;min-width:640px}.calendar__weekday{font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--muted);padding-bottom:.2rem}.calendar__spacer{min-height:1px}.calendar__day{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;min-height:104px;padding:.55rem .6rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm)}.calendar__date{font-size:1.15rem;line-height:1.1;color:var(--text)}.calendar__event{font-size:.7rem;font-weight:600;line-height:1.3}.calendar__time{font-size:.68rem;opacity:.75;line-height:1.3}.calendar__tag{margin-top:auto;font-size:.62rem;background:#ffffff40;border-radius:5px;padding:.18rem .4rem}.calendar__day--online,.calendar__day--offline,.calendar__day--meetup{border-color:transparent;color:#fff}.calendar__day--online .calendar__date,.calendar__day--offline .calendar__date,.calendar__day--meetup .calendar__date{color:#fff}.calendar__day--online{background:var(--orange)}.calendar__day--offline{background:#8f5b55}.calendar__day--meetup{background:var(--surface-dark)}.event-card{display:flex;align-items:flex-start;gap:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.event-card__body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.event-card__photo{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--bg);box-shadow:0 0 0 1px var(--border)}.event-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.72rem}.event-card__date{font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange);background:var(--orange-dim);padding:.2rem .55rem;border-radius:5px}.event-card__time,.event-card__format{color:var(--muted)}.event-card__time:after{content:"•";margin-left:.5rem;opacity:.5}.event-card__title{font-size:1rem;font-weight:700;line-height:1.35}.event-card__desc{font-size:.85rem;color:var(--muted);line-height:1.55}.event-card .btn-primary{margin-top:.35rem}.event-card__passcode{font-size:.8rem;color:var(--muted)}.section-note{margin-top:-.35rem;margin-bottom:1.15rem;font-size:.82rem;color:var(--muted)}.event-card__passcode code{font-family:ui-monospace,monospace;font-size:.8rem;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:.1rem .35rem;color:var(--text)}.locked-notice{display:flex;flex-direction:column;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;color:var(--muted);font-size:.9rem}.locked-notice__icon{font-size:2rem}.admin-header{background:var(--surface-dark);border-radius:var(--radius);padding:2rem;margin-bottom:2rem}.admin-header__title{font-size:1.4rem;font-weight:700;color:var(--text-on-dark);margin-bottom:.3rem}.admin-header__sub{font-size:.85rem;color:var(--muted-on-dark)}.admin-user{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.6rem}.admin-user__main{display:flex;flex-direction:column;gap:.3rem;min-width:0}.admin-user__email{font-size:.9rem;font-weight:600;word-break:break-word}.admin-user__name{font-size:.82rem;color:var(--muted)}.admin-user__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.15rem}.admin-user__tag{font-size:.68rem;border-radius:5px;padding:.15rem .45rem;background:var(--bg);border:1px solid var(--border);color:var(--muted)}.admin-user__tag--admin,.admin-user__tag--on{color:var(--orange);background:var(--orange-dim);border-color:transparent}.admin-user__tag--blocked,.admin-user__tag--off{color:#c0392b;background:#c0392b17;border-color:transparent}.admin-user__date{font-size:.72rem;color:var(--muted);margin-top:.15rem}.admin-user__actions{display:flex;flex-wrap:wrap;gap:.4rem}.admin-user__btn{font-family:inherit;font-size:.75rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .7rem;cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.admin-user__btn:hover:not(:disabled){border-color:var(--orange)}.admin-user__btn:disabled{opacity:.45;cursor:default}.admin-user__btn--danger{color:#c0392b}.admin-user__btn--danger:hover:not(:disabled){border-color:#c0392b}.admin-header__sub a{color:var(--orange);text-decoration:none}.admin-module{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden}.admin-module__head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.25rem;background:var(--bg);border-bottom:1px solid var(--border)}.admin-module__num{font-size:.68rem;font-weight:700;letter-spacing:.08em;color:var(--orange);background:var(--orange-dim);padding:.18rem .5rem;border-radius:5px;flex-shrink:0}.admin-module__title{flex:1;font-size:.88rem;font-weight:600}.admin-module__avg{font-size:.88rem;color:var(--gold);font-weight:600}.admin-module__count{font-weight:400;color:var(--muted)}.admin-module__empty{font-size:.8rem;color:var(--muted)}.admin-module__none{padding:.9rem 1.25rem;font-size:.82rem;color:var(--muted)}.admin-rating{padding:.9rem 1.25rem;border-bottom:1px solid var(--border)}.admin-rating:last-child{border-bottom:none}.admin-rating__top{display:flex;align-items:center;gap:.75rem;margin-bottom:.3rem}.admin-rating__name{font-size:.88rem}.admin-rating__date{font-size:.75rem;color:var(--muted);margin-left:auto}.admin-rating__comment{font-size:.83rem;color:var(--muted);font-style:italic}.state-msg{font-size:.88rem;padding:1rem 0;color:var(--muted)}.state-msg--error{color:#c0392b}
