/* Public sets + first-run (New layout only). Paper look: hairline ink borders, serif titles, flat surfaces. Works with
   either token set (app-theme.css in the app, theme.css on Welcome / sets.html). */
.rwl,.rwl-vis,.rwf{--l-bd:var(--border,var(--bd,#d8d2c4));--l-tx:var(--text,var(--tx,#1d1b16));--l-mu:var(--muted,var(--mu,#6b665c));--l-sf:var(--surface,var(--sf,#fffdf8));--l-sf2:var(--surface-2,var(--sf-2,#f6f2e8));--l-ac:var(--accent-text,var(--accent,var(--pen,#3a43b5)));--l-line:var(--line,var(--border,#e6e0d2));--l-ease:cubic-bezier(.2,.8,.2,1)}
.rwl{display:block;color:var(--l-tx)}
.rwl-status{min-height:1.2em;margin:0 0 8px;color:var(--l-mu);font-size:14px}
.rwl-bar{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}
.rwl-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rwl-in,.rwl-sel{min-height:44px;padding:0 12px;border:1.5px solid var(--l-bd);border-radius:10px;background:var(--l-sf);color:var(--l-tx);font:inherit;font-size:16px;width:100%;box-sizing:border-box}
.rwl-filters .rwl-sel{width:auto;flex:1 1 150px}.rwl-filters .rwl-course{width:auto;flex:1 1 170px}
.rwl-in:focus-visible,.rwl-sel:focus-visible,.rwl-btn:focus-visible,.rwl-card-t:focus-visible,.rwl-handle:focus-visible{outline:2px solid var(--l-ac);outline-offset:2px}
.rwl-seg{display:inline-flex;padding:3px;border:1.5px solid var(--l-bd);border-radius:12px;background:var(--l-sf2)}
.rwl-seg-b{min-height:38px;min-width:44px;padding:0 14px;border:0;border-radius:9px;background:none;color:var(--l-mu);font:inherit;font-weight:600;cursor:pointer;transition:background .25s var(--l-ease),color .25s var(--l-ease)}
.rwl-seg-b.on{background:var(--l-sf);color:var(--l-tx);box-shadow:0 1px 0 var(--l-bd),0 1px 3px rgba(0,0,0,.08)}
.rwl-btn{min-height:44px;padding:0 16px;border:1.5px solid var(--l-bd);border-radius:10px;background:var(--l-sf);color:var(--l-tx);font:inherit;font-weight:600;cursor:pointer;transition:transform .15s var(--l-ease),background .2s}
.rwl-btn:active{transform:scale(.97)}.rwl-btn:disabled{opacity:.6;cursor:default}
.rwl-primary{background:var(--l-tx);color:var(--l-sf);border-color:var(--l-tx)}
.rwl-ghost{background:transparent}
.rwl-quiet{border-color:transparent;background:none;color:var(--l-mu);font-weight:500;text-decoration:underline;text-underline-offset:3px;padding:0 6px}
.rwl-danger{color:var(--danger,#b3261e)}
.rwl-back{border:0;background:none;color:var(--l-ac);padding:0 4px;margin:0 0 8px;font-weight:500}
.rwl-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.rwl-list[aria-busy=true]{opacity:.6;transition:opacity .2s}
.rwl-card{display:flex;flex-direction:column;border:1.5px solid var(--l-bd);border-radius:14px;background:var(--l-sf);overflow:hidden;animation:rwl-up .32s var(--l-ease) both;animation-delay:calc(var(--i,0) * 24ms)}
.rwl-card-t{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:14px 16px 10px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;flex:1}
.rwl-card-t:hover .rwl-title{text-decoration:underline;text-underline-offset:3px}
.rwl-subj{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--l-mu);font-weight:600}
.rwl-title{font:600 19px/1.25 var(--serif,Georgia,serif)}
.rwl-meta{color:var(--l-mu);font-size:14px;margin:0}
.rwl-card-f{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 16px 14px;border-top:1px solid var(--l-line)}
.rwl-card-f .rwl-btn{margin-left:auto}
.rwl-by{margin:0;font-size:14px;color:var(--l-mu);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rwl-handle{color:var(--l-ac);font-weight:600;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.rwl-handle:hover{text-decoration:underline}
.rwl-pill{font-size:11px;padding:2px 8px;border:1px solid var(--l-bd);border-radius:999px;color:var(--l-mu)}
.rwl-adds{font-size:13px;color:var(--l-mu)}
.rwl-empty{color:var(--l-mu);padding:18px 0}
.rwl-more{margin:14px auto 0;display:block}
.rwl-set,.rwl-creator{max-width:680px}
.rwl-h{font:600 clamp(24px,4vw,32px)/1.15 var(--serif,Georgia,serif);margin:6px 0 4px;outline:none}
.rwl-h3{font:600 17px/1.3 var(--serif,Georgia,serif);margin:20px 0 8px}
.rwl-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.rwl-prev{list-style:none;padding:0;margin:0;border:1.5px solid var(--l-bd);border-radius:12px;background:var(--l-sf);overflow:hidden}
.rwl-pc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:12px 14px;border-bottom:1px solid var(--l-line)}.rwl-pc:last-child{border-bottom:0}
.rwl-pc span{color:var(--l-mu)}
@media (max-width:520px){.rwl-pc{grid-template-columns:1fr;gap:2px}}
.rwl-tools{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rwl-report{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.rwl-report .rwl-sel{width:auto}
.rwl-lab{display:block;font-weight:600;font-size:14px;margin:6px 0 4px;width:100%}
.rwl-warn{padding:10px 12px;border-left:3px solid var(--danger,#b3261e);background:var(--l-sf2);font-size:14px}
.rwl-in-anim{animation:rwl-up .32s var(--l-ease) both}
@keyframes rwl-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rwl-card,.rwl-in-anim,.rwf-step{animation:none}}
html[data-fx="off"] .rwl-card,html[data-fx="off"] .rwl-in-anim{animation:none}
/* Share sheet: Visibility */
.rwl-vis{margin:14px 0 6px;padding:12px 0 0;border-top:1px solid var(--l-line)}
.rwl-vis-h{font-size:14px;font-weight:600;margin:0 0 8px}
.rwl-vis-n{font-size:14px;color:var(--l-mu);margin:8px 0 0}
.rwl-pubf{display:flex;flex-direction:column;gap:2px;margin-top:8px}.rwl-pubf .rwl-row{margin:8px 0 0}
/* Google button (Welcome / sets.html) */
.rwl-google{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;border:1.5px solid var(--l-tx,#1d1b16);border-radius:12px;background:var(--l-sf,#fff);color:var(--l-tx,#1d1b16);font-weight:600;text-decoration:none;font-size:16px}
.rwl-g{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid currentColor;font:700 13px/1 system-ui,sans-serif}

/* ---- Home: Get a set / Make a study plan / Today's plan (in the app) ---- */
.rw-getset,.rw-plancard,.rw-today{border:1.5px solid var(--border);border-radius:16px;background:var(--surface);padding:16px 18px;margin:0 0 14px;animation:rwl-up .32s cubic-bezier(.2,.8,.2,1) both}
.rw-getset h2,.rw-plancard h2,.rw-today h2{font:600 20px/1.25 var(--serif,Georgia,serif);margin:0 0 4px}
.rw-getset p,.rw-plancard p{color:var(--muted);margin:0 0 12px}
.rw-pc-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rw-pc-x{margin-left:auto}
.rw-today ol{list-style:none;padding:0;margin:8px 0 0}
.rw-today li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}
.rw-today li:first-child{border-top:0}
.rw-today .rw-tk{flex:1;min-width:0}.rw-today .rw-tk b{display:block}.rw-today .rw-tk small{color:var(--muted)}
.rw-today-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.rw-today-h small{color:var(--muted)}
.rw-planf{display:flex;flex-direction:column;gap:12px}
.rw-planf label{font-weight:600;font-size:14px;display:flex;flex-direction:column;gap:6px}
.rw-planf input[type=date],.rw-planf input[type=number]{min-height:44px;padding:0 12px;border:1.5px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:16px}
.rw-planf fieldset{border:1.5px solid var(--border);border-radius:12px;padding:8px 12px;margin:0}
.rw-planf legend{font-weight:600;font-size:14px;padding:0 4px}
.rw-planf .rw-chk{flex-direction:row;align-items:center;gap:10px;font-weight:500;min-height:40px}
.rw-planf .rw-chk input{width:20px;height:20px}
.rw-mins{display:flex;flex-wrap:wrap;gap:6px}
/* Library tab: Public sets view hides the bundle's own library content */
html.rw-simple[data-rw-pub="1"][data-rw-area="library"] main.content>*:not(.rw-lib){display:none!important}
/* ---- Welcome (first run) ---- */
.rwf-step{animation:rwl-up .36s cubic-bezier(.2,.8,.2,1) both}
.rwf-signin{margin:8px 0 18px}
.rwf-fine{max-width:46ch}
.rwf-alt{margin-top:22px;font-size:15px}
.rwf-chips{display:flex;flex-wrap:wrap;gap:8px}
.rwf-chip{min-height:44px;padding:0 14px;border:1.5px solid var(--bd,#d8d2c4);border-radius:999px;background:var(--sf,#fff);color:var(--tx,#1d1b16);font:inherit;font-size:15px;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.rwf-chip:active{transform:scale(.97)}
.rwf-chip[aria-pressed=true]{background:var(--tx,#1d1b16);color:var(--sf,#fff);border-color:var(--tx,#1d1b16)}
.rwf-at{display:flex;align-items:center;border:1.5px solid var(--bd,#d8d2c4);border-radius:10px;background:var(--sf,#fff);padding-left:12px}
.rwf-at span{color:var(--mu,#6b665c);font-weight:600}
.rwf-at input{border:0;background:transparent;min-height:44px;flex:1;font-size:16px;padding:0 8px;outline:none}
.rwf-at:focus-within{outline:2px solid var(--pen,#3a43b5);outline-offset:2px}
.rwf-hn{display:block;margin-top:6px;color:var(--mu,#6b665c)}
.rwf-own,.rwf-lib{margin-top:16px}
.rwf-own{display:grid;border:1.5px solid var(--bd,#d8d2c4);border-radius:var(--r2,14px);background:var(--sf,#fff);overflow:hidden}
.rwf-own .opt-card{text-decoration:none}
.wl-main:has(.rwf-lib:not([hidden])){max-width:1000px}
/* sets.html */
.rws-sp{flex:1}
.rwp-who .rwl-google{min-height:44px;font-size:15px}
.rwp-main{max-width:1100px}
/* No sets yet: Home is just "Get your first set"; the sample set never shows as the default */
html.rw-simple[data-rw-noset="1"][data-rw-tab="today"] main.content>*:not(.rw-home):not(.hero){display:none!important}
html.rw-simple[data-rw-noset="1"] .top .setsel{visibility:hidden}
.rw-public{margin-top:6px}
.rwf-form input[type=text],.rwf-form .rwf-at{box-sizing:border-box;width:100%;max-width:100%}
.rwf-at input{min-width:0}
html.rw-simple:not([data-rw-planned="1"]) main.content .hero .count{display:none}
/* segmented controls: beat the app's generic button styles inside sheets/panels */
.rwl-seg .rwl-seg-b{border:0!important;background:none!important;box-shadow:none!important;color:var(--l-mu)!important;min-height:38px}
.rwl-seg .rwl-seg-b.on{background:var(--l-sf)!important;color:var(--l-tx)!important;box-shadow:0 1px 0 var(--l-bd),0 1px 3px rgba(0,0,0,.1)!important}
.rwl-seg{background:var(--l-sf2)!important}
/* phone: the welcome column used margin-left + width:100%, which overflowed by 20px */
.wl-main{width:auto;min-width:0;box-sizing:border-box}
@media (max-width:700px){.wl-main{margin:0;width:100%}}
.rwl-set .rwl-subj{display:block;margin-top:16px}
html.rw-simple[data-rw-noset="1"] main.content .hero .hero-sub{display:none}
