/* S14: upcoming courses, inside the student shell. Tokens only. */
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/onest-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
.s14{color:var(--color-body);font-family:var(--font-body)}
.s14 .crumb{display:inline-block;margin-bottom:var(--s-4);font-size:var(--t-sm);font-weight:700}
.s14 .btn:focus-visible,.s14 a:focus-visible,.s14 button:focus-visible,.s14 input:focus-visible,.s14 textarea:focus-visible{outline:3px solid var(--color-accent-text);outline-offset:2px}
.s14 button.btn{font-family:inherit;cursor:pointer}
/* filters */
.s14-filters{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center;margin:0 0 var(--s-4)}
.s14-chip{font-family:inherit;font-size:var(--t-sm);font-weight:700;padding:.45rem .95rem;border-radius:999px;border:1.5px solid var(--color-line);background:var(--color-card);color:var(--color-ink);cursor:pointer;line-height:1.2}
.s14-chip:hover{border-color:var(--color-ink)}
.s14-chip[aria-pressed="true"]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-card)}
.s14-filters .gap{flex:1 1 auto}
.s14-count{font-size:var(--t-sm);color:var(--color-muted);margin:0 0 var(--s-3)}
.s14-empty{display:none;padding:var(--s-6) var(--s-4);text-align:center;background:var(--color-card);border:1px dashed var(--color-line);border-radius:var(--radius);color:var(--color-muted)}
.s14-empty.on{display:block}
.s14 .course-list .crow[hidden],.s14 .course-list .mo[hidden]{display:none}
.s14 .crow .what h4 a{color:var(--color-ink);text-decoration:none}
.s14 .crow .what h4 a:hover{text-decoration:underline}
.s14 .crow .acts{display:flex;gap:var(--s-2);align-items:center;flex:0 0 auto;margin-left:auto}
.s14 .crow .acts .btn{margin-left:0}
/* course page */
.s14-hero{background:#fffaf6;border:1px solid var(--color-line);border-left:4px solid var(--color-accent);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s-5)}
.s14-hero .kick{font-size:var(--t-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-text);margin:0 0 var(--s-2)}
.s14-hero h1{margin:0}
.s14-hero .when{font-size:var(--t-lg);color:var(--color-ink);font-weight:700;margin-top:var(--s-2)}
.s14-hero .state{margin-top:var(--s-3);display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap}
.s14-hero .state .pill{margin-top:0}
.s14-hero .cta{margin-top:var(--s-4);display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center}
.s14-hero .cnote{margin:var(--s-3) 0 0;font-size:var(--t-sm);color:var(--color-muted)}
.s14-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s-5);margin-top:var(--s-5);align-items:start}
.s14-box{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s-5)}
.s14-box h2{margin:0 0 var(--s-3);font-family:var(--font-head);font-size:var(--t-lg);color:var(--color-ink)}
.s14-box ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--s-3)}
.s14-box li{position:relative;padding-left:1.7rem;font-size:var(--t-sm);line-height:1.5}
.s14-box li::before{content:"";position:absolute;left:0;top:.3rem;width:.9rem;height:.5rem;border-left:2.5px solid var(--color-success);border-bottom:2.5px solid var(--color-success);transform:rotate(-45deg) scale(.9)}
.s14-facts{display:grid;gap:0;margin:0}
.s14-facts div{display:flex;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--color-line);font-size:var(--t-sm)}
.s14-facts div:first-child{border-top:0;padding-top:0}
.s14-facts dt{color:var(--color-muted)}
.s14-facts dd{margin:0;color:var(--color-ink);font-weight:700;text-align:right}
.s14-side{display:grid;gap:var(--s-4)}
.s14-share{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap;justify-content:space-between}
.s14-share p{margin:0;font-size:var(--t-sm);color:var(--color-muted);flex:1 1 200px}
.s14-note{margin:var(--s-4) 0 0;font-size:var(--t-sm);color:var(--color-muted)}
/* done / telegram panels */
.s14-done{max-width:620px;background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--s-6)}
.s14-done .tick{width:48px;height:48px;border-radius:50%;background:var(--color-success-wash);color:var(--color-success-ink);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s-4)}
.s14-done .tick svg{width:26px;height:26px}
.s14-done h1{font-size:var(--t-xl)}
.s14-done .lead{margin:0 0 var(--s-4);font-size:var(--t-base)}
.s14-done .facts{margin:0 0 var(--s-5);padding:var(--s-4);background:var(--color-bg);border-radius:var(--radius-sm);display:grid;gap:var(--s-2);font-size:var(--t-sm)}
.s14-done .facts b{color:var(--color-ink)}
.s14-done .acts{display:flex;gap:var(--s-3);flex-wrap:wrap}
.s14-tg{display:flex;gap:var(--s-4);align-items:center;margin:0 0 var(--s-4);padding:var(--s-4);background:var(--color-info-wash);border-radius:var(--radius-sm);color:var(--color-info-ink)}
.s14-tg svg{flex:0 0 auto;width:32px;height:32px}
.s14-tg b{display:block;font-size:var(--t-lg);font-family:var(--font-head);color:var(--color-ink)}
.s14-tg span{font-size:var(--t-sm)}
/* share */
.s14-sgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-5);align-items:start}
.s14-sgrid .field label{font-size:var(--t-sm);font-weight:700;color:var(--color-ink)}
.s14-copyrow{display:flex;gap:var(--s-2)}
.s14-copyrow input{flex:1 1 auto;min-width:0}
.s14-copyrow .btn{white-space:nowrap}
.s14-copyrow .btn.ok{background:var(--color-success-wash);color:var(--color-success-ink);border-color:var(--color-success)}
.s14-hint{display:block;margin-top:.35rem;color:var(--color-muted);font-size:var(--t-xs)}
.s14-live{margin-top:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--color-info-wash);color:var(--color-info-ink);border-radius:var(--radius-sm);font-size:var(--t-sm)}
.s14-live[hidden]{display:none}
.s14-mail{background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.s14-mail .mh{padding:var(--s-3) var(--s-4);background:var(--color-bg);border-bottom:1px solid var(--color-line);font-size:var(--t-xs);color:var(--color-muted);display:grid;gap:2px}
.s14-mail .mh b{color:var(--color-ink)}
.s14-mail .mb{padding:var(--s-5);font-size:var(--t-sm);line-height:1.55}
.s14-mail .mb p{margin:0 0 var(--s-3)}
.s14-mail .note{white-space:pre-wrap;padding:var(--s-3) var(--s-4);background:var(--color-bg);border-left:3px solid var(--color-line);border-radius:var(--radius-sm);color:var(--color-ink)}
.s14-mail .note:empty{display:none}
.s14-mail .mc{margin:var(--s-4) 0;padding:var(--s-4);background:#fffaf6;border:1px solid var(--color-line);border-left:4px solid var(--color-accent);border-radius:var(--radius-sm)}
.s14-mail .mc h3{margin:0;font-family:var(--font-head);font-size:var(--t-lg);color:var(--color-ink)}
.s14-mail .mc div{color:var(--color-muted);margin-top:2px}
.s14-mail .mbtn{display:inline-block;background:var(--color-accent);color:var(--color-on-accent);font-weight:700;padding:.6rem 1.1rem;border-radius:var(--radius-sm);text-decoration:none}
.s14-mail .mf{margin:var(--s-4) 0 0;font-size:var(--t-xs);color:var(--color-muted)}
.s14-pvlabel{font-size:var(--t-sm);font-weight:700;color:var(--color-ink);margin:0 0 var(--s-2)}
.s14-sbtns{display:flex;gap:var(--s-3);flex-wrap:wrap;margin:var(--s-3) 0 0}
@media(max-width:860px){.s14-grid,.s14-sgrid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){.s14 h1{font-size:var(--t-xl)}.s14-hero{padding:var(--s-4)}.s14-box,.s14-done{padding:var(--s-4)}.s14 .crow .acts{width:100%;margin-left:0}.s14 .crow .acts .btn{width:100%}.s14-copyrow{flex-direction:column}.s14-hero .cta .btn{width:100%}}
/* share2: counters, tabs, chat previews */
.s14-stats{display:flex;gap:var(--s-3);flex-wrap:wrap;margin:var(--s-4) 0 var(--s-5)}
.s14-stats .st{flex:0 0 auto;min-width:150px;padding:var(--s-3) var(--s-4);background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow)}
.s14-stats .st b{display:block;font-family:var(--font-head);font-size:var(--t-2xl,2rem);line-height:1.1;color:var(--color-ink)}
.s14-stats .st span{font-size:var(--t-sm);color:var(--color-muted)}
.s14-friends{list-style:none;margin:0;padding:0;flex:1 1 280px;display:grid;gap:var(--s-2);align-content:start}
.s14-friends li{display:flex;justify-content:space-between;gap:var(--s-3);align-items:center;padding:var(--s-2) var(--s-3);background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);font-size:var(--t-sm);color:var(--color-ink)}
.s14-friends i{display:block;font-style:normal;font-size:var(--t-xs);color:var(--color-muted)}
.s14-friends em{font-style:normal;font-size:var(--t-xs);font-weight:700;padding:.2rem .6rem;border-radius:999px}
.s14-friends em.ok{background:var(--color-success-wash);color:var(--color-success-ink)}
.s14-friends em.wait{background:var(--color-info-wash);color:var(--color-info-ink)}
.s14-tabs{display:flex;gap:var(--s-1);margin:0 0 var(--s-3);border-bottom:1px solid var(--color-line)}
.s14-tabs button{appearance:none;background:none;border:0;border-bottom:3px solid transparent;padding:.55rem .9rem;font:inherit;font-weight:700;font-size:var(--t-sm);color:var(--color-muted);cursor:pointer}
.s14-tabs button[aria-selected="true"]{color:var(--color-ink);border-bottom-color:var(--color-accent)}
.s14-pane[hidden]{display:none}
.s14-phone{max-width:380px;border:1px solid var(--color-line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:var(--color-card)}
.s14-phone .ph-bar{display:flex;align-items:center;gap:var(--s-2);padding:.7rem var(--s-4);color:#fff;font-weight:700;font-size:var(--t-sm)}
.s14-phone .ph-av{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.28);display:grid;place-items:center}
.s14-phone .ph-chat{padding:var(--s-4);min-height:260px;display:flex;flex-direction:column;justify-content:flex-end}
.s14-phone.wa .ph-bar{background:#1f6f5c}.s14-phone.wa .ph-chat{background:#ece5dd}
.s14-phone.tg .ph-bar{background:#2b6a9c}.s14-phone.tg .ph-chat{background:#dfe9f2}
.s14-phone .bub{align-self:flex-end;max-width:92%;background:#fff;border-radius:12px 12px 2px 12px;padding:.4rem;box-shadow:0 1px 1px rgba(0,0,0,.12);font-size:var(--t-sm);color:var(--color-ink)}
.s14-phone.wa .bub{background:#dcf4c8}
.s14-phone.tg .bub{background:#eaf5da}
.s14-phone .msg{margin:.4rem .4rem .1rem;line-height:1.45;overflow-wrap:anywhere}
.s14-phone .tm{display:block;text-align:right;font-size:11px;color:var(--color-muted);padding:0 .4rem .1rem}
.s14-phone .lcard{border-radius:8px;overflow:hidden;background:rgba(255,255,255,.7);border-left:3px solid var(--color-accent);margin:.2rem 0}
.s14-phone .lc-img{background:var(--color-ink);color:#fff;padding:var(--s-4);display:grid;gap:2px}
.s14-phone .lc-img .cn{font-family:var(--font-head);font-size:var(--t-lg)}
.s14-phone .lc-img .cd{font-size:var(--t-xs);opacity:.85}
.s14-phone .lc-t{padding:.4rem .6rem 0;font-weight:700;font-size:var(--t-xs)}
.s14-phone .lc-u{padding:0 .6rem .4rem;font-size:11px;color:var(--color-muted)}
@media(max-width:720px){.s14-stats .st{flex:1 1 40%}.s14-phone{max-width:none}}
.s14-stats .st{align-self:flex-start}.s14-friends{align-self:flex-start}

/* Waiting list: count, joined chip, leave link */
.s14 .wl-count{display:inline-block;margin-top:var(--s-1);font-size:var(--t-sm);font-weight:600;color:var(--color-ink)}
.s14 .wl-count.wl-mine{color:var(--color-ink)}
.wl-chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:999px;background:var(--color-accent-wash);color:var(--color-ink);border:1px solid var(--color-accent);font-size:var(--t-sm);font-weight:700;white-space:nowrap}
.wl-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-accent)}
.wl-leave{background:none;border:0;padding:var(--s-1);font:inherit;font-size:var(--t-sm);color:var(--color-muted);text-decoration:underline;cursor:pointer}
.wl-leave:hover,.wl-leave:focus-visible{color:var(--color-ink)}
.s14-hero .wl-block{margin-top:var(--s-3);display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}
.s14-hero .wl-num{font-size:var(--t-md);font-weight:700;color:var(--color-ink)}
.wl-next{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);border-left:4px solid var(--color-accent);background:var(--color-accent-wash);border-radius:var(--r-2)}

.wl-leave-note{margin:var(--s-2) 0 0;font-size:var(--t-sm);color:var(--color-muted)}
.s14-done .wl-leave-note{margin:var(--s-4) 0}
.s14-done .tick[hidden]{display:none}
/* FIXFINAL: on a phone the two buttons share the row (no clipped sliver at the right edge). */
@media(max-width:720px){.s14 .crow .acts{flex-wrap:wrap;box-sizing:border-box;max-width:100%}.s14 .crow .acts .btn{width:auto;flex:1 1 8rem;min-width:0;box-sizing:border-box;justify-content:center;text-align:center}.s14 .crow .acts .wl-chip,.s14 .crow .acts .wl-leave-note{flex:1 1 100%}}
