/* Product components and shared interaction states. Layout lives in theme.css;
   learning content lives in learning.css; semantic values live in tokens.css. */
:root { --q-space-1:4px; --q-space-2:8px; --q-space-3:12px; --q-space-4:16px; --q-space-6:24px; --q-space-8:32px; }
body { background:var(--pa-bg); font-size:16px; }
button,input,select,textarea { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
[hidden] { display:none !important; }
a { color:var(--pa-brand); }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.65; }
button,.pa-btn,.pa-settings-btn,.pa-icon-btn,.pa-nav-link { min-height:44px; }
.pa-icon-btn { min-width:44px; }
:focus-visible,.pa-opt.focus,.opt.focus { outline:3px solid var(--pa-brand); outline-offset:3px; }
#paContent:focus { outline:none; }
.pa-card,.pa-hero,.pa-concept,.pa-q,.pa-weak-panel,.v-card,.v-stat { box-shadow:none; }
.pa-card { border:1px solid var(--pa-line-2); background:var(--pa-surface-1); animation:none; transform:none; }
.pa-card:hover { transform:none; border-color:var(--pa-brand); }
.pa-hero { background:none; border:0; padding:16px 0 24px; margin-bottom:0; }
.pa-hero h2 { background:none; -webkit-text-fill-color:var(--pa-ink); color:var(--pa-ink); }
.pa-hero p { max-width:65ch; }
.pa-brandbar { box-shadow:none; color:var(--pa-ink); text-decoration:none; }
.pa-brandbar:hover { color:var(--pa-ink); text-decoration:none; }
.pa-sidebar { background:var(--pa-surface-1); }
.pa-topbar { background:var(--pa-surface-1); backdrop-filter:none; }
.pa-btn,.pa-settings-btn,.v-btn { text-decoration:none; border-radius:8px; padding:10px 16px; font-weight:600; }
.pa-btn.primary,.pa-settings-btn.primary,.v-primary { background:var(--pa-brand); color:#10182c; border-color:var(--pa-brand); box-shadow:none; }
:root[data-theme="light"] .pa-btn.primary,:root[data-theme="light"] .pa-settings-btn.primary,:root[data-theme="light"] .v-primary { color:white; }
.quilyn-eyebrow { font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--pa-muted); }
.quilyn-section-title { font-size:22px; margin:32px 0 16px; }
.quilyn-provenance { color:var(--pa-muted); font-size:14px; margin:12px 0 24px; max-width:75ch; }
.pa-concept p,.pa-analogy p,.pa-q .scenario,.pa-pitfall p,.pa-q .rationale { font-size:16px; line-height:1.65; max-width:75ch; }
.pa-tabs { overflow-x:auto; }
.pa-tabs button { white-space:nowrap; }
.quilyn-choice-input { position:relative; width:20px; height:20px; flex-shrink:0; accent-color:var(--pa-brand); margin:0 8px 0 0; }
.pa-opt,.opt { min-height:48px; }
.pa-view--mock .examcard { font:inherit; text-align:left; color:var(--pa-ink); cursor:pointer; }
.quilyn-exam-title { display:block; font-size:18px; font-weight:700; margin-bottom:8px; }
.quilyn-storage-error { position:fixed; bottom:16px; left:16px; right:16px; max-width:680px; background:var(--pa-surface-1); color:var(--pa-ink); border:2px solid var(--pa-bad); padding:16px; border-radius:8px; z-index:10030; }
.quilyn-update { position:fixed; bottom:16px; right:16px; max-width:400px; padding:16px; border:1px solid var(--pa-brand); border-radius:12px; background:var(--pa-surface-1); z-index:10010; }
.quilyn-update span { display:block; margin-bottom:12px; }
#quilyn-offline-panel select { width:100%; padding:12px; border:1px solid var(--pa-line-2); border-radius:8px; color:var(--pa-ink); background:var(--pa-surface-1); }
#pa-import-preview { padding:16px; border:1px solid var(--pa-brand); border-radius:8px; }
#pa-import-preview ul { overflow-wrap:anywhere; }
.pa-modal-body { overscroll-behavior:contain; }
.quilyn-sidebar-close { display:none; }
@media(max-width:860px) { .quilyn-sidebar-close { display:block; margin-bottom:16px; } }
.pa-modal,.pa-srch-dialog { max-height:85dvh; overflow:auto; }
@media(max-width:600px) { .pa-topbar-inner { gap:8px; } .pa-content { padding:20px 16px; } .pa-crumb { overflow-wrap:anywhere; } .pa-recap { display:block; overflow:auto; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
.quilyn-menu-backdrop { display:none; }
@media(max-width:860px) {
  body.quilyn-menu-open { position:fixed; top:var(--drawer-scroll); width:100%; overflow:hidden; }
  .quilyn-menu-backdrop { display:block; position:fixed; inset:0; z-index:39; border:0; border-radius:0; padding:0; background:rgba(0,0,0,.55); }
  .pa-sidebar { background:var(--pa-surface-1); overscroll-behavior:contain; padding-top:max(16px,env(safe-area-inset-top)); padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .pa-sidebar .pa-modlist a { min-height:48px; background:var(--pa-surface-1); }
  .quilyn-sidebar-close { width:100%; position:sticky; top:0; z-index:101; background:var(--pa-surface-1); }
  .pa-topbar-inner { grid-template-columns:minmax(0,1fr) auto auto; gap:8px; }
  .pa-topbar-left { grid-column:1; min-width:0; gap:8px; }
  .pa-topbar-tools { grid-column:2; grid-row:1; gap:0; }
  .pa-topbar-inner>.pa-theme-toggle { grid-column:3; grid-row:1; }
  .pa-nav { grid-column:1/-1; width:100%; box-sizing:border-box; }
  .pa-menu-toggle,.pa-theme-toggle,.pa-icon-btn { min-width:44px; min-height:44px; padding:10px; flex-shrink:0; }
  .pa-menu-toggle .i,.pa-topbar-tools .i,.pa-theme-toggle .i,.pa-nav .i { width:22px; height:22px; }
  .pa-topbar .crumbs { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pa-sidebar .pa-brandbar { margin-top:8px; }
  .pa-opt,.pa-view--mock .opt { overflow-wrap:anywhere; }
  #pa-search-overlay { padding:16px; }
  .pa-modal,.pa-srch-dialog { max-height:calc(100dvh - 32px); }
  .pa-modal-body { overflow-wrap:anywhere; }
}
@media(max-width:600px) {
  .pa-view--mock .exambar,.pa-view--review .sess-bar { margin:0; width:100%; box-sizing:border-box; padding:10px; gap:8px; }
  .pa-view--mock .exambar .v-btn { padding:10px; }
  .pa-view--mock .exambar { display:flex; flex-wrap:nowrap; }
  .pa-view--mock .exambar .prog { display:none; }
  .pa-view--mock .exambar .ac { text-align:right; font-size:12px; }
  .pa-view--mock .q .stem { font-size:16px; }
  .pa-view--mock .q,.pa-view--review .qcard { padding:16px; }
  .pa-toast { max-width:calc(100vw - 32px); white-space:normal; box-sizing:border-box; }
  .pa-srch-input { min-width:0; }
  .pa-topic-link { max-width:100%; box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; flex-wrap:wrap; }
  .pa-topic-dur { flex-shrink:0; }
  .pa-tabs { background:var(--pa-surface-1); backdrop-filter:none; }
  .pa-nav-label { display:inline; font-size:12px; }
  .pa-nav-link { padding:6px 4px; gap:2px; flex:1; min-width:0; flex-direction:column; }
  .pa-nav { justify-content:space-around; }
  .pa-nav .i { width:18px; height:18px; }
}
.tab-label-short,.exam-action-toggle { display:none; }
.pa-view--mock .exam-sources { display:block; padding:0 12px; }
.exam-sources summary { min-height:44px; cursor:pointer; padding:12px 0; box-sizing:border-box; }
.exam-source-links { display:grid; gap:8px; max-height:40dvh; overflow:auto; padding-bottom:12px; }
.pa-view--mock .exam-source-links a { white-space:normal; overflow-wrap:anywhere; padding:8px; min-height:44px; box-sizing:border-box; }
@media(max-width:860px) {
  .pa-topbar { position:static; }
  .pa-tabs,.pa-view--mock .exambar,.pa-view--review .sess-bar { top:8px; }
  .pa-view--review .sess-bar { flex-wrap:nowrap; }
  .pa-view--review .sess-bar .sprg { flex-basis:0; }
  .pa-view--mock .exambar { padding:8px; gap:6px; flex-wrap:nowrap; }
  .pa-view--mock .exambar .prog { display:none; }
  .pa-view--mock .exambar .ac { margin-left:auto; white-space:nowrap; }
  .pa-view--mock .ac-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .pa-view--mock .exambar .timer { font-size:17px; }
  .pa-view--mock .exambar>.v-row { display:none; }
  .pa-view--mock .exambar.actions-open>.v-row { display:flex; position:absolute; top:calc(100% + 4px); right:0; padding:8px; background:var(--pa-surface-1); border:1px solid var(--pa-line-2); border-radius:8px; box-shadow:var(--pa-sh-md); }
  .pa-view--mock .exam-action-toggle { display:block; }
  .pa-tabs { gap:0; padding:3px; box-shadow:none; }
  .pa-tabs button { flex:1; min-width:0; min-height:48px; display:flex; flex-direction:column; align-items:center; padding:4px; font-size:12px; gap:2px; }
  .pa-tabs .i { width:18px; height:18px; }
  .tab-label-full { display:none; }
  .tab-label-short { display:inline; }
  .pa-tabs button.active { background:var(--pa-surface-2); color:var(--pa-brand); box-shadow:none; }
}

/* Personal study is global navigation; lesson actions stay with the lesson. */
.pa-study-nav{display:grid;grid-template-columns:1fr;gap:6px;margin:4px 0 16px}
.pa-study-nav a{display:flex;align-items:center;gap:7px;min-height:44px;padding:8px;border:1px solid var(--pa-line);border-radius:10px;color:var(--pa-ink-soft);text-decoration:none;font-size:13px;background:var(--pa-surface-1)}
.pa-study-nav a:hover,.pa-study-nav a[aria-current=page]{color:var(--pa-brand);background:var(--pa-surface-2);border-color:var(--pa-brand)}
.pa-study-nav .i,.pa-learning-links .i{width:18px;height:18px;flex-shrink:0}

/* A stale session stays readable while its answer choices are locked. */
.pa-view--mock .opt[aria-disabled="true"],.pa-opt[aria-disabled="true"]{opacity:.55;cursor:not-allowed;}

/* Sidebar interaction: stable geometry and a distinct, theme-aware surface. */
.pa-sidebar .pa-modlist a,.pa-sidebar .pa-study-nav a{transition:color .16s var(--pa-ease),border-color .16s var(--pa-ease),background-color .16s var(--pa-ease);}
.pa-sidebar .pa-modlist a:hover{transform:none;}
.pa-sidebar .pa-modlist a:not(.active):focus-visible,.pa-sidebar .pa-study-nav a:not([aria-current=page]):focus-visible{background:var(--pa-nav-hover-bg);border-color:var(--pa-nav-hover-line);color:var(--pa-ink);}
.pa-sidebar .pa-modlist a:not(.active):focus-visible::before{opacity:1;background:var(--pa-nav-hover-bg);box-shadow:none;}
.pa-sidebar .pa-modlist a:not(.active):focus-visible .mnum,.pa-sidebar .pa-modlist a:not(.active):focus-visible .pa-shell-sidebar-num:not(.done){border-color:var(--pa-nav-hover-line);color:var(--pa-hover-ink);}
@media(hover:hover){
  .pa-sidebar .pa-modlist a:not(.active):hover,.pa-sidebar .pa-study-nav a:not([aria-current=page]):hover{background:var(--pa-nav-hover-bg);border-color:var(--pa-nav-hover-line);color:var(--pa-ink);}
  .pa-sidebar .pa-modlist a:not(.active):hover::before{opacity:1;background:var(--pa-nav-hover-bg);box-shadow:none;}
  .pa-sidebar .pa-modlist a:not(.active):hover .mnum,.pa-sidebar .pa-modlist a:not(.active):hover .pa-shell-sidebar-num:not(.done){border-color:var(--pa-nav-hover-line);color:var(--pa-hover-ink);}
}

/* Shared pointer feedback; colors retain the meaning of selected and danger states. */
@media(hover:hover){
  :is(.pa-card,.pa-view--mock .examcard):hover{background:var(--pa-nav-hover-bg);color:var(--pa-ink);box-shadow:var(--pa-hover-shadow);transform:translateY(-2px);text-decoration:none;}
  :is(.pa-btn,.v-btn,.pa-settings-btn):not(:disabled,.primary,.v-primary,.danger,.v-danger,.sp-resume-action,.sp-bookmark-action):hover{background:var(--pa-nav-hover-bg);border-color:var(--pa-hover-ink);color:var(--pa-ink);box-shadow:var(--pa-hover-shadow);transform:translateY(-1px);opacity:1;}
  :is(.pa-btn.primary,.v-btn.v-primary,.pa-settings-btn.primary):not(:disabled):hover{background:var(--pa-primary-hover);color:var(--pa-primary-ink);box-shadow:var(--pa-hover-shadow);transform:translateY(-1px);filter:none;opacity:1;}
  :is(.pa-icon-btn,.pa-theme-toggle,.pa-modal-close,.pa-nav-link:not(.active),.pa-tabs button:not(.active),.pa-learning-links a,.pa-topic-link,.pa-module-ext,.pa-quiz-ext,.pa-pdf-btn,.pa-srch-item,.pa-hint-btn,.cbtn,.pa-weak-row,.pa-pdf-lib-item,.pa-srch-trigger-hint):not(:disabled,[aria-disabled=true]):hover{background:var(--pa-nav-hover-bg);color:var(--pa-hover-ink);box-shadow:inset 0 0 0 1px var(--pa-nav-hover-line);text-decoration:none;}
  :is(.pa-settings-btn.danger,.v-btn.v-danger):not(:disabled):hover{border-color:var(--pa-bad);box-shadow:inset 0 0 0 1px var(--pa-bad);opacity:1;}
  .pa-opt:not(.disabled,.selected):hover,.pa-view--mock .q:not(.reviewed) .opt:not(.disabled,.sel,.correct,.wrong):hover,.pa-view--review .opt:not(.dis,.sel,.cor,.wrg):hover{background:var(--pa-nav-hover-bg);border-color:var(--pa-hover-ink);box-shadow:inset 0 0 0 1px var(--pa-nav-hover-line);transform:none;}
  :is(.lib-view,.jl-view,.sp-view,.pa-content) a:not([class]):hover{color:var(--pa-hover-ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;}
  :is(.jl-view,.jl-feedback,.exam-sources) summary:hover{color:var(--pa-hover-ink);text-decoration:underline;text-underline-offset:4px;}
}
@media(prefers-reduced-motion:reduce){.pa-card:hover,.pa-view--mock .examcard:hover,.pa-btn:hover,.v-btn:hover,.pa-settings-btn:hover{transform:none;}}

/* Scoped practice controls follow the active reading theme. */
#paQuizScope,#mv-duration,#mv-mode{display:block;width:100%;max-width:100%;min-height:44px;padding:10px;margin:8px 0 12px;border:1px solid var(--pa-line-2);border-radius:8px;background:var(--pa-surface-1);color:var(--pa-ink)}
