/* Learning space (/notebooks): own notebooks, Explore, the "new notebook"
 * dialog (type first) and one notebook, shown by its type: flashcards,
 * practice questions or notes. Built on the shared parts: report
 * tabs and cards (progress-report.css), deck cards and the deck head
 * (flashcard-hub.css) and profile-form fields; this file adds only what
 * notebooks need. */
/* One tone per type, the colours of the Progres report: flashcards orange,
 * practice questions the accent (as Tes), notes green (as Materi). */
.nb-page,.nb-modal{--tone:var(--color-accent-solid);--tone-text:var(--color-accent);--tone-edge:var(--color-accent-hover);--tone-soft:var(--color-accent-soft)}
.tone-nb-flashcards{--tone:oklch(59% .15 50);--tone-edge:oklch(47% .13 50);--tone-soft:color-mix(in oklch,oklch(96% .03 60),oklch(30% .05 50) var(--dark-mix));--tone-text:color-mix(in oklch,oklch(47% .13 50),oklch(82% .1 50) var(--dark-mix))}
.tone-nb-quiz{--tone:var(--color-accent-solid);--tone-text:var(--color-accent);--tone-edge:var(--color-accent-hover);--tone-soft:var(--color-accent-soft)}
.tone-nb-notes{--tone:oklch(55% .14 152);--tone-edge:oklch(43% .12 152);--tone-soft:color-mix(in oklch,oklch(96% .03 152),oklch(30% .05 152) var(--dark-mix));--tone-text:color-mix(in oklch,oklch(43% .12 152),oklch(82% .1 152) var(--dark-mix))}
.nb-page .btn svg{width:16px;height:16px;stroke-width:2}
.nb-new{margin:0}
.nb-muted,.nb-desc,.nb-card-desc{margin:0;color:var(--color-muted);font-size:13px;white-space:pre-line;overflow-wrap:anywhere}
.nb-card-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nb-desc{max-width:75ch}
.profile-form label:has(.nb-optional){display:block}
.profile-form label .nb-optional{display:inline;color:var(--color-muted);font-weight:400}
.nb-seg-count{font-style:normal;min-width:20px;padding:0 6px;border-radius:99px;background:var(--color-paper-2);font-size:11px;text-align:center}
.report-seg a[aria-current=page] .nb-seg-count{background:var(--color-accent-soft);color:var(--color-accent)}
.nb-search{width:min(420px,100%)}
.nb-filters{justify-content:flex-start}
.nb-filters .nb-search{flex:1 1 260px;max-width:420px}
.nb-filters .nb-sort{margin-left:auto}
.nb-head{margin-bottom:0}
.report-seg a svg{flex-shrink:0}
.nb-type-chip{display:inline-flex;align-items:center;gap:5px;background:var(--tone-soft)!important;color:var(--tone-text,var(--tone-edge))!important;font-weight:500}
.nb-type-chip svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.nb-fixed-type{margin:0 0 4px;font-size:12px}
.nb-fixed-type .nb-type-chip{padding:4px 10px;border-radius:99px}

/* New notebook: a dialog over the lists (a page without JavaScript) */
.nb-modal{box-sizing:border-box;width:min(560px,calc(100% - 32px));max-width:none;max-height:min(760px,calc(100dvh - 48px));margin:auto;padding:0;overflow:auto;overscroll-behavior:contain}
.nb-modal[open]{animation:nb-in .18s ease-out}
.nb-modal-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 12px;background:var(--color-surface)}
.nb-modal-head h2{margin:0;font-size:18px;font-weight:500}
.nb-modal-close{display:inline-grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:var(--color-paper-2);color:var(--color-ink);cursor:pointer}
.nb-modal-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.nb-modal .nb-create{padding:0 22px 22px}
.nb-new-page{max-width:640px}
.nb-create{gap:6px}
.nb-types{display:grid;gap:10px;margin:0;padding:0;border:0;min-width:0}
.nb-types legend{padding:0;margin-bottom:10px;font-weight:500}
.nb-type{position:relative;display:flex;align-items:center;gap:14px;margin:0!important;padding:16px;border-radius:var(--radius-surface);background:var(--color-paper-2);cursor:pointer}
.nb-type:hover{box-shadow:inset 0 0 0 2px var(--color-rule)}
.nb-type input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.nb-type:has(input:checked){background:var(--color-surface);box-shadow:inset 0 0 0 2px var(--tone)}
.nb-type:has(input:focus-visible){outline:2px solid var(--color-accent);outline-offset:2px}
.nb-type-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:14px;background:var(--tone);color:#fff;box-shadow:0 3px 0 var(--tone-edge)}
.nb-type-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.nb-type-copy{display:grid;gap:2px;min-width:0}
.nb-type-copy strong{font-size:15px;font-weight:500}
.nb-type-copy small{margin:0;color:var(--color-muted);font-size:12px;line-height:1.45}
.nb-create-fields{display:grid;gap:6px}
.nb-create-fields>label{margin-top:10px}
.nb-chosen{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;font-size:13px}
.nb-chosen .nb-type-chip{padding:6px 12px;border-radius:99px}
.nb-chosen .nb-type-chip svg{width:15px;height:15px;stroke-width:1.8}
.nb-chosen .text-button{padding:0;min-height:40px}
@keyframes nb-in{from{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){.nb-modal[open]{animation:none}}

/* Settings: radio choices as tiles */
.nb-options{display:grid;gap:8px;margin:16px 0 0;padding:0;border:0;min-width:0}
.nb-options legend{padding:0;margin-bottom:8px;font-weight:500}
.nb-option{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-control);background:var(--color-paper-2);cursor:pointer;margin:0}
.nb-option input{margin:3px 0 0;accent-color:var(--color-accent);width:16px;height:16px;flex-shrink:0}
.nb-option span{display:grid;gap:2px}
.nb-option strong{font-weight:500}
.nb-option small{margin:0;color:var(--color-muted);font-size:12px}
.nb-option:has(input:checked){box-shadow:inset 0 0 0 2px var(--color-accent);background:var(--color-surface)}

/* Notebook head: settings, and on phones the button that opens the add form */
.nb-head-actions{display:flex;align-items:center;gap:8px}
.nb-head-actions .btn{margin:0}
.nb-add{display:none!important}

/* Notebook page: form beside the entries */
.nb-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;min-width:0}
.nb-layout.has-aside{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}
.nb-layout.has-aside .nb-aside{grid-column:2;grid-row:1;position:sticky;top:calc(var(--sticky-top) + 12px);max-height:calc(100dvh - var(--sticky-top) - 36px);overflow-y:auto;scrollbar-width:thin}
.nb-layout.has-aside .nb-main{grid-column:1;grid-row:1}
.nb-main{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
.nb-form .profile-form{gap:6px}
.nb-form .profile-form label{margin-top:10px}
.nb-form .profile-form textarea{min-height:0;resize:vertical}
.nb-form .profile-form .btn{margin-top:14px}
.nb-kind{display:flex;gap:4px;margin:0;padding:4px;border:0;border-radius:14px;background:var(--color-paper-2)}
.nb-kind label{flex:1;margin:0!important;position:relative}
.nb-kind input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.nb-kind span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:6px 10px;border-radius:10px;font-size:13px;color:var(--color-muted);text-align:center}
.nb-kind input:checked+span{background:var(--color-surface);color:var(--color-ink);font-weight:500;box-shadow:0 1px 3px var(--color-shadow)}
.nb-kind input:focus-visible+span{outline:2px solid var(--color-accent);outline-offset:2px}

/* Entries */
.nb-group .report-card-head{align-items:center}
.nb-group .report-card-head small{padding:1px 8px;border-radius:99px;background:var(--color-paper-2)}
.nb-group .nb-hide{margin:0 0 0 auto}
.nb-entries{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.nb-entries.is-grammar{grid-template-columns:minmax(0,1fr)}
.nb-entry{display:flex;gap:8px;padding:14px 16px;border-radius:var(--radius-control);background:var(--color-paper-2);min-width:0;scroll-margin-top:calc(var(--sticky-top) + 16px)}
.nb-entry:target{box-shadow:inset 0 0 0 2px var(--color-accent)}
.nb-entry-main{display:grid;gap:6px;flex:1;min-width:0}
.nb-term{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.nb-term strong{font:500 22px/1.25 var(--font-japanese);overflow-wrap:anywhere}
.is-kanji .nb-term strong{font-size:30px}
.nb-entries.is-card{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.is-grammar .nb-term strong{font-size:18px}
.nb-reading{font:400 14px var(--font-japanese);color:var(--color-muted)}
.nb-say{align-self:center;display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:99px;background:var(--color-surface);color:var(--color-accent);cursor:pointer}
.nb-say svg{width:16px;height:16px;stroke-width:1.8}
.nb-say:hover{background:var(--color-accent-soft)}
.nb-meaning{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.nb-notes{display:grid;gap:6px;margin:4px 0 0;padding-top:8px;border-top:1px dashed var(--color-rule);font-size:13px}
.nb-notes div{display:grid;gap:1px}
.nb-notes dt{font-size:11px;font-weight:500;color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em}
.nb-notes dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.nb-entry-actions{display:flex;align-self:flex-start;gap:2px;margin:-4px -6px 0 0}
.nb-entry-actions form{margin:0}
.nb-entry-actions .report-edit{width:32px;height:32px;border:0;background:none;cursor:pointer}
.nb-entry-actions .report-edit:hover{background:var(--color-surface)}
/* Hide answers: readings, meanings and notes blur until the card is tapped */
.nb-main[data-nb-hidden] .nb-entry:not(.is-shown) .nb-answer{filter:blur(6px);user-select:none}
.nb-main[data-nb-hidden] .nb-entry{cursor:pointer}
[data-nb-hide][aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}

/* Flashcard and practice sessions */
.nb-study{gap:18px}
.nb-setup{display:grid}
.nb-setting{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;min-height:72px;padding:14px 0;border-bottom:1px solid var(--color-rule)}
.nb-setting:first-child{min-height:0;padding-top:0}
.nb-setting>strong,.nb-setting>label{margin:0;font-size:16px;font-weight:500;color:var(--color-ink);overflow-wrap:anywhere}
.nb-setting select{width:auto;min-width:140px;margin:0}
.nb-setting .nb-kind{flex:0 1 340px}
.nb-setup .btn.full{margin:20px 0 0}
.nb-session{display:grid;gap:16px;max-width:760px;width:100%}
.nb-progress{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--color-muted);font-variant-numeric:tabular-nums}
.nb-progress span{white-space:nowrap}
.nb-progress .report-meter{flex:1}
.nb-progress .text-button{padding:0}
.nb-flash{display:grid;place-items:center;gap:12px;min-height:260px;padding:28px 22px;border:0;border-radius:var(--radius-surface);background:var(--color-paper-2);color:var(--color-ink);font:inherit;text-align:center;cursor:pointer}
.nb-flash:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
.nb-flash-front{font:500 clamp(30px,6vw,52px)/1.25 var(--font-japanese);overflow-wrap:anywhere}
.nb-flash-front.is-text{font:500 clamp(20px,3.4vw,28px)/1.4 var(--font-body)}
.nb-flash-back{display:grid;gap:8px;width:100%;max-width:560px;padding-top:14px;border-top:1px dashed var(--color-rule)}
.nb-flash-back .nb-big{font:500 clamp(22px,4vw,34px)/1.3 var(--font-japanese);overflow-wrap:anywhere}
.nb-flash-back .nb-sub{font:400 16px var(--font-japanese);color:var(--color-muted)}
.nb-flash-back .nb-text{font-size:17px;white-space:pre-line}
.nb-flash-back dl{display:grid;gap:6px;margin:6px 0 0;text-align:left;font-size:13px}
.nb-flash-back dt{font-size:11px;font-weight:500;color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em}
.nb-flash-back dd{margin:0 0 4px;white-space:pre-line}
.nb-actions{display:flex;flex-wrap:wrap;gap:10px}
.nb-actions .btn{margin:0}
.nb-rate{display:flex;gap:10px;flex:1}
.nb-rate .btn{flex:1}
.nb-session>.nb-actions>.btn{flex:1}
.nb-prompt{margin:0;font-size:18px;font-weight:500;white-space:pre-line;overflow-wrap:anywhere}
.nb-prompt .nb-ja{font-family:var(--font-japanese)}
.nb-choices{display:grid;gap:8px}
.nb-choice{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 16px;border:1px solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.nb-choice:hover:not(:disabled){border-color:var(--color-accent)}
.nb-choice:disabled{cursor:default;color:var(--color-ink);opacity:1}
.nb-choice b{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--color-paper-2);font-size:12px}
.nb-choice.is-correct{border-color:var(--color-success);background:var(--color-success-soft)}
.nb-choice.is-correct b{background:var(--color-success);color:var(--color-accent-ink)}
.nb-choice.is-wrong{border-color:var(--color-error);background:color-mix(in oklch,var(--color-error) 8%,var(--color-surface))}
.nb-choice.is-wrong b{background:var(--color-error);color:var(--color-accent-ink)}
.nb-feedback{margin:0;padding:12px 14px;border-radius:var(--radius-control);background:var(--color-success-soft);color:var(--color-success);font-weight:500;white-space:pre-line}
.nb-feedback.is-wrong{background:color-mix(in oklch,var(--color-error) 8%,var(--color-surface));color:var(--color-error)}
.nb-feedback small{display:block;margin-top:4px;color:var(--color-ink);font-weight:400}
.nb-summary{display:grid;justify-items:center;gap:8px;padding:20px 0;text-align:center}
.nb-summary>svg{width:36px;height:36px;color:var(--color-success);stroke-width:2}
.nb-summary h2{font-size:18px}
.nb-summary p{margin:0 0 8px;color:var(--color-muted)}
.nb-summary .nb-actions{justify-content:center}

/* Own questions */
.nb-choice-list{display:grid;gap:8px;margin:12px 0 0;padding:0;border:0;min-width:0}
.nb-choice-list legend{padding:0;margin-bottom:4px;font-weight:500}
.nb-choice-list small{margin:0 0 4px;color:var(--color-muted);font-size:12px}
.nb-choice-row{display:flex;align-items:center;gap:10px}
.nb-choice-row input[type=radio]{width:20px;height:20px;flex-shrink:0;margin:0;accent-color:var(--color-success)}
.nb-questions{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.nb-questions>li{display:flex;gap:8px;padding:14px 16px;border-radius:var(--radius-control);background:var(--color-paper-2);scroll-margin-top:calc(var(--sticky-top) + 16px)}
.nb-questions>li:target{box-shadow:inset 0 0 0 2px var(--color-accent)}
.nb-question-main{display:grid;gap:8px;flex:1;min-width:0}
.nb-q-prompt{margin:0;font-weight:500;white-space:pre-line;overflow-wrap:anywhere}
.nb-q-choices{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;font-size:13px}
.nb-q-choices li{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;background:var(--color-surface);color:var(--color-muted)}
.nb-q-choices li.is-correct{background:var(--color-success-soft);color:var(--color-success);font-weight:500}
.nb-q-choices svg{width:14px;height:14px;stroke-width:2.2}
.nb-q-explain{margin:0;font-size:13px;color:var(--color-muted);white-space:pre-line}

@media(max-width:1023px){
 .nb-layout.has-aside{grid-template-columns:minmax(0,1fr)}
 .nb-layout.has-aside .nb-main{grid-row:auto}
 .nb-add{display:inline-flex!important}
 .nb-layout.has-aside .nb-aside{display:none}
 .nb-layout.has-aside .nb-aside:has(#item-form:target):not(.is-closed),.nb-layout.has-aside .nb-aside.is-open{display:block;position:fixed;inset:auto 0 0;z-index:70;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:24px 24px 0 0;background:var(--color-surface);box-shadow:0 0 0 100vmax var(--color-overlay);padding-bottom:env(safe-area-inset-bottom);animation:nb-up .2s ease-out}
 .nb-aside .report-card-head{position:sticky;top:0;z-index:1;align-items:center;margin:-22px -22px 0;padding:18px 22px 10px;background:var(--color-surface)}
 .nb-aside .nb-sheet-close{display:inline-grid;margin-left:auto}
 .nb-aside .report-link+.nb-sheet-close{margin-left:0}
}
.nb-sheet-close{display:none}
html.nb-sheet-open{overflow:hidden}
@keyframes nb-up{from{transform:translateY(32px);opacity:.6}}
@media(prefers-reduced-motion:reduce){.nb-aside{animation:none!important}}
@media(max-width:767px){
 .nb-new{flex:1 1 100%;justify-content:center}
 .nb-search{width:100%}
 .report-filters .report-seg{flex:1 1 100%}
 .report-filters .report-seg a{flex:1;justify-content:center}
 .nb-modal{width:100%;max-height:92dvh;margin:auto 0 0;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom)}
 .nb-modal-head{padding:16px 16px 10px}
 .nb-modal .nb-create{padding:0 16px 16px}
 .nb-type{padding:14px}
 .nb-modal .btn[type=submit]{width:100%}
 .nb-card-desc{grid-column:1/-1}
 .nb-entries{grid-template-columns:minmax(0,1fr)}
 .nb-flash{min-height:220px;padding:22px 16px}
 .nb-setting .nb-kind{flex:1 1 100%}
 .nb-head-actions{flex:1 1 100%}
 .nb-head .nb-head-actions .nb-add{flex:1;width:auto}
 .nb-head .nb-head-actions .nb-settings-link{flex:0 0 44px;width:44px;padding:0}
 .nb-settings-link span{display:none}
 .nb-aside .report-card-head{margin:-16px -16px 0;padding:16px 16px 10px}
 .nb-main,.nb-layout{gap:12px}
}
@media(max-width:480px){.report-filters .report-seg a svg,.nb-seg-count{display:none}}
