:root{--accent:#665091;--soft:#eee8f6;--bg:#fff8f2;--ink:#30283d;--muted:#665e70;--border:#ded6e5;--peach:#fae4d6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.55 system-ui,sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}button,input,textarea,select{border:1px solid #b9adc7;border-radius:12px;padding:.75rem 1rem;min-height:48px;color:var(--ink);max-width:100%}input,textarea,select{width:100%;background:#fff}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--accent);vertical-align:middle;margin:0 .6rem 0 0}button{background:var(--accent);color:#fff;margin:.6rem .7rem 0 0}button[type=button]{background:var(--soft);color:#513d76}a{color:#63468b;text-underline-offset:3px}:focus-visible{outline:3px solid #936420;outline-offset:3px}label{display:block;margin:1rem 0 .4rem}textarea{min-height:6rem;resize:vertical}h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;letter-spacing:-.035em;margin:0 0 1rem}h2{font-size:1.4rem;line-height:1.3}h3{font-size:1.1rem}p{margin:.65rem 0 1.2rem}.muted,.intro,.note{color:var(--muted)}.test-banner{background:#ffedb9;color:#594615;text-align:center;padding:.55rem 1rem;font-size:.9rem;font-weight:700}.app-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100dvh - 40px)}.sidebar{background:#fff;padding:2.5rem 1.4rem;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.brand{font-size:1.45rem;font-weight:800;text-decoration:none;line-height:1.15}.sidebar .muted{font-size:.8rem;margin-top:1rem}.sidebar nav{display:grid;gap:.6rem;margin-top:1.5rem}.sidebar nav button{background:transparent;text-align:left;border:0;margin:0}.sidebar nav button[aria-current]{background:var(--soft);font-weight:700}.identity{margin-top:auto;font-weight:700}.identity small{display:block;color:var(--muted);font-weight:400}main{width:100%;max-width:1120px;padding:2.5rem clamp(1rem,4vw,4rem);min-width:0}.login-main{max-width:520px;margin:3rem auto}section,form{background:white;border:1px solid var(--border);padding:1.4rem;border-radius:20px;margin:1rem 0}section section,section form{border-radius:14px}fieldset{min-width:0;border:1px solid var(--border);border-radius:16px;padding:1.2rem;margin:1rem 0}legend{font-weight:700;padding:0 .4rem}.actions{display:flex;gap:.7rem;flex-wrap:wrap}.actions button{flex:1;min-width:8rem;margin:.6rem 0 0}.message,.invalid{border-left:4px solid #a1442c;background:#fff0e7;padding:1rem;border-radius:8px}.card-content{white-space:pre-wrap;overflow-wrap:anywhere}article{padding:1rem 0;border-bottom:1px solid var(--border)}li{margin-bottom:.6rem;overflow-wrap:anywhere}[hidden]{display:none!important}.set-picker details{background:#fff;border:1px solid var(--border);border-radius:14px;margin:.8rem 0;padding:1rem}.set-picker summary{font-weight:700;cursor:pointer;min-height:32px}.set-picker label{display:flex;align-items:center;gap:.5rem;padding:.6rem;border-radius:10px;margin:.4rem 0;background:var(--bg)}.set-picker label span{min-width:0;overflow-wrap:anywhere}.set-picker small{display:block;color:var(--muted)}.study-dialog{border:1px solid var(--border);border-radius:24px;background:var(--bg);color:var(--ink);padding:1.5rem;width:min(620px,calc(100% - 24px));max-height:95dvh;overflow:auto}.study-dialog::backdrop{background:#271d3c99;backdrop-filter:blur(4px)}.study-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.study-heading h2{font-size:1.15rem}.study-heading button{margin:0}.study-card{width:100%;height:clamp(260px,44dvh,400px);padding:0!important;margin:1rem 0!important;perspective:1200px;border:0;background:transparent!important;display:block;text-align:center;touch-action:pan-y}.study-card-inner{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .4s}.study-card.is-flipped .study-card-inner{transform:rotateY(180deg)}.study-face{position:absolute;inset:0;backface-visibility:hidden;background:white;border:1px solid var(--border);border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;overflow:auto}.study-face h3,.study-face .answer{font-size:clamp(1.6rem,5vw,2.3rem);margin:.5rem 0}.study-face .extra{font-size:.95rem;color:var(--muted);max-width:100%}.study-face.back{transform:rotateY(180deg)}.study-dialog .wrong{background:var(--peach);color:#743e27}.study-dialog .right{background:var(--soft);color:#513d76}.study-status{min-height:3em;font-size:.95rem}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.metric{background:var(--soft);padding:1rem;border-radius:16px}.metric strong{display:block;font-size:1.6rem}.metric span{font-size:.85rem}.stat-filters{display:flex;gap:1rem;flex-wrap:wrap}.stat-filters label{flex:1;min-width:180px}.history-row{padding:1.2rem 0;border-bottom:1px solid var(--border)}.history-row h3{margin:.2rem 0}.history-row small{display:block;color:var(--muted)}.session-sets{margin-top:.8rem;background:var(--bg);padding:.8rem;border-radius:12px}table{border-collapse:collapse;width:100%}th,td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border)}@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:relative;padding:1rem;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:1.2rem}.brand br{display:none}.sidebar .muted,.identity{display:none}.sidebar nav{display:flex;gap:.2rem;margin-top:1rem}.sidebar nav button{flex:1;font-size:.8rem;text-align:center;padding:.7rem .3rem;min-width:0}main{padding:1.5rem 1rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}section,form{padding:1rem}.study-dialog{padding:1rem}.study-face{padding:1rem}.study-heading h2{font-size:1rem}.actions button{min-width:7rem}table{display:block;overflow:auto}}@media(prefers-reduced-motion:reduce){.study-card-inner{transition:none}}

body:has(dialog[open]){overflow:hidden}.study-face{justify-content:flex-start}.study-face>:first-child{margin-top:auto}.study-face>:last-child{margin-bottom:auto}#online-library details{border:1px solid var(--border);border-radius:12px;padding:1rem;margin:1rem 0}#online-library summary{cursor:pointer;font-weight:700;min-height:32px}#online-library details form{border:0;margin:.5rem 0 0;padding:.5rem 0 0}

.mobile-label{display:none}@media(max-width:760px){.desktop-label{display:none}.mobile-label{display:inline}}

main,.study-dialog{overflow-wrap:anywhere}.study-heading h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.set-picker label{min-height:52px}

/* Compact import actions keep separate touch targets and wrap on narrow screens. */
.import-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem}
.import-actions button{flex:0 1 auto;min-width:0;min-height:44px;margin:0;padding:.55rem .85rem;font-size:.9rem;line-height:1.4;white-space:normal}
@media(max-width:480px){.import-actions{gap:.65rem}.import-actions button{max-width:100%}}

.photo-preview{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:1rem auto;border-radius:12px}.photo-inputs{display:flex;flex-wrap:wrap;gap:1rem}.photo-inputs label{flex:1;min-width:200px}.photo-table-scroll{overflow:auto;margin:1rem 0;max-height:550px}.photo-table-scroll textarea{min-width:150px;min-height:5rem}.photo-table-scroll td{vertical-align:top}.photo-table-scroll button{font-size:.85rem;padding:.5rem;min-height:44px;margin:.3rem}.photo-table-scroll small{display:block}#online-photo-import{margin:1.2rem 0}#online-photo-import [inert]{opacity:.6}

.photo-image-wrap{position:relative;width:fit-content;max-width:100%;margin:1rem auto}.photo-image-wrap .photo-preview{margin:0}.photo-markers{position:absolute;inset:0;pointer-events:none}.photo-markers span{position:absolute;top:0;bottom:0;border-left:2px dashed #665091;filter:drop-shadow(1px 0 white)}

/* Folder visibility menus and personal set stars. */
.folder-access{margin:.65rem 0;padding:.85rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.folder-access summary{cursor:pointer;font-weight:650}.folder-access label{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:.6rem}.folder-access input{flex:none;margin:0}.set-choice{display:flex;align-items:center;gap:.75rem;margin:.55rem 0;min-width:0}.set-choice>button,.set-choice>label:first-child{flex:1;min-width:0;margin:0;text-align:left;overflow-wrap:anywhere}.set-choice>button{font-size:.95rem;padding:.6rem .8rem}.set-choice .set-star{flex:0 0 auto;display:flex;align-items:center;gap:.35rem;min-height:44px;padding:.5rem;margin:0;cursor:pointer;background:transparent}.set-star input{flex:none;margin:0}.set-star span{font-size:1.4rem;color:var(--muted)}.set-star:has(input:checked) span{color:#805895}.folder-sets:empty{display:none}

/* Compact creation tools and directly clickable favorite stars. */
.language-picker{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.75rem}.language-picker>label{flex:1;min-width:180px}.language-picker>button{margin:0 0 .4rem;padding:.55rem .8rem;font-size:.9rem}.set-choice>button.set-star{flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;margin:0;display:grid;place-items:center;border:0;background:transparent;color:var(--accent);font-size:2rem;line-height:1;text-align:center}.set-choice>button.set-star:hover,.set-choice>button.set-star:focus-visible{background:var(--soft)}.set-choice>button.set-star[aria-pressed=true]{color:#805895}.import-actions{align-items:center}

/* Direct swipe feedback, independent of the card's inner flip. */
.study-card{position:relative;will-change:transform,opacity;user-select:none;-webkit-user-select:none}.swipe-hint{position:absolute;top:1.2rem;left:50%;transform:translateX(-50%);padding:.5rem 1rem;border:2px solid currentColor;border-radius:12px;font-size:1.05rem;font-weight:750;pointer-events:none;z-index:2;white-space:nowrap}.swipe-hint.is-right{color:#513d76;background:#eee8f6}.swipe-hint.is-wrong{color:#743e27;background:#fae4d6}.study-dialog .mark-card{background:#f8efd5;color:#634c1f}.study-ratings button{flex:1;min-width:0;padding:.7rem .5rem;font-size:.95rem}@media(prefers-reduced-motion:reduce){.study-card{transition:none!important}}

.study-card-viewport{overflow:hidden;padding:.4rem;margin:0 -.4rem}

/* Import first, destination last; feedback stays near the active step. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.import-entrypoints{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:0 0 1.3rem}.import-entrypoints button{margin:0;padding:1rem;font-weight:650}.round-summary{background:var(--soft);border-color:#cfc0e1}.message{scroll-margin:1rem}.photo-inputs input{min-width:0}@media(max-width:650px){.import-entrypoints{grid-template-columns:1fr}.import-entrypoints button{text-align:left}}

fieldset.destination-step{border:0;padding:0;margin:1rem 0;min-width:0}

.study-face,.study-face .card-content{text-align:center}.checkbox-label{display:flex;align-items:flex-start;gap:.5rem}.checkbox-label input[type=checkbox]{flex:0 0 22px;margin:.2rem 0 0}.checkbox-label span{min-width:0}

/* Study Buddy navigation and manual topic editor. */
.sidebar{overflow-y:auto}.sidebar nav button{overflow-wrap:anywhere}
[data-manage-kind][aria-pressed="true"]{background:var(--accent);color:#fff}
#study-topics>fieldset{border:0;padding:0;margin:0}#study-reader details{padding:1rem;background:#fff;border:1px solid var(--border);border-radius:12px;margin:1rem 0}#study-reader summary{cursor:pointer;font-weight:600}
.learning-document{background:var(--bg);border:1px solid var(--border);border-radius:16px;padding:clamp(1rem,3vw,1.6rem);margin:1rem 0}.learning-document h5{font-size:1.08rem;margin:1.35rem 0 .45rem;color:#513d76}.learning-document h5:first-child{margin-top:0}.learning-document p{margin:.45rem 0 1rem}.learning-document ul{padding-left:1.4rem;margin:.5rem 0 1.2rem}.learning-document li{margin-bottom:.4rem}
.test-topic-choice{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:1rem;margin:.8rem 0}.test-topic-choice h4{margin:.1rem 0 .6rem}.test-card-session{max-width:760px}.test-flashcard{background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:clamp(1.2rem,4vw,2rem);min-height:280px;display:flex;flex-direction:column;justify-content:center;text-align:center}.test-flashcard h3{font-size:clamp(1.35rem,4vw,2rem)}.test-flashcard .actions{justify-content:center}.test-flashcard .actions button{flex:1}.test-card-session>button:last-child{margin-top:1.2rem}
@media(max-width:760px){.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem}.sidebar nav button{text-align:left;padding:.6rem}.sidebar{overflow:visible}}

/* Study Bloom branding and clearly centered learning-card answers. */
.brand{display:flex;align-items:center;gap:.65rem}.brand-logo{display:block;width:112px;height:112px;border-radius:24px;object-fit:cover}.study-progress strong{font-weight:800;color:var(--ink)}.study-face.back{justify-content:center}.study-face.back>:first-child{margin-top:.5rem}.study-face.back>:last-child{margin-bottom:.5rem}@media(max-width:760px){.brand-logo{width:58px;height:58px;border-radius:14px}}
