@import url('./landing.css');

/* Rule library. Same tokens and typography as the landing page: this page is
   part of the product, not a separate microsite. */

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.library-intro{padding:64px max(5vw,calc((100vw - 1320px)/2)) 42px;border-bottom:1px solid var(--line)}
.library-intro h1{font-size:clamp(38px,4.6vw,64px);margin:22px 0 22px}
.library-intro .lead{max-width:60ch;color:var(--muted)}
.disclosure{font-size:12px;color:var(--muted);max-width:88ch;margin:22px 0 0}
.access-note{font-size:12px;margin:26px 0 0;padding:14px 16px;border-left:3px solid oklch(57% .14 65);background:var(--paper);max-width:88ch}

.library-tools{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto;gap:18px;align-items:end;padding:26px max(5vw,calc((100vw - 1320px)/2));border-bottom:1px solid var(--line)}
.library-tools .field{display:flex;flex-direction:column;gap:7px}
.library-tools label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted)}
.library-tools input,.library-tools select{font:inherit;font-size:13px;padding:11px 12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}
.library-tools button{font:inherit;font-size:12px;padding:11px 16px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}
.library-tools button:hover{background:var(--paper)}
.count{grid-column:1/-1;font-size:11px;color:var(--muted);margin:2px 0 0}

.library-section{padding:60px max(5vw,calc((100vw - 1320px)/2))}
.library-section+.library-section{border-top:1px solid var(--line)}
.section-head{margin-bottom:32px}
.section-head h2{font-size:clamp(26px,2.6vw,36px);letter-spacing:-.03em}
.section-head p{font-size:13px;color:var(--muted);max-width:72ch;margin:12px 0 0}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:26px;display:flex;flex-direction:column;gap:14px}
.card:focus-visible{outline:3px solid oklch(57% .14 65);outline-offset:4px}
.card-highlight{border-color:oklch(56% .06 119);box-shadow:0 0 0 3px oklch(80% .10 119 / .45)}
.card h3{font-size:19px;font-weight:500;letter-spacing:-.4px;margin:0}
.card h4{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin:0 0 10px}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 0}
.tag{font-size:9px;text-transform:uppercase;letter-spacing:1.1px;padding:5px 7px;border-radius:3px;border:1px solid var(--line);white-space:nowrap}
.tag-paid{border-color:oklch(57% .14 65);color:oklch(45% .11 65)}
.tag-preview{border-color:oklch(56% .06 119);background:var(--lime)}
.tag-free{border-color:oklch(56% .06 119)}
.card-summary{font-size:13px;margin:0}
.objectives{list-style:none;padding:0;margin:0;font-size:12px;color:var(--muted)}
.objectives li{padding-left:14px;position:relative;margin:6px 0}
.objectives li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:oklch(61% .06 153)}
.criteria{border-top:1px solid var(--line);padding-top:14px}
.criteria ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.criteria li{display:grid;grid-template-columns:78px 1fr;gap:10px;font-size:12px;align-items:baseline}
.criterion-kind{font-size:9px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted)}
.kind-rule{color:oklch(42% .09 153)}
.kind-technical{color:var(--muted)}
.assumptions{border-top:1px solid var(--line);border-bottom:0}
.assumptions summary{font-size:12px;padding:14px 0 0}
.assumptions ul{margin:12px 0 0;padding-left:16px;font-size:11px;color:var(--muted);line-height:1.65}
.assumptions li{margin:7px 0}
.card-sources{font-size:10px;color:var(--muted);margin:0}
.card-sources a{text-underline-offset:3px}
.card-actions{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:6px}
.card-actions .button{width:100%}
.card-locked-cta{display:inline-flex;align-items:center;gap:9px}
.card-locked-cta svg{flex:none}
.card-pricing-link{font-size:12px;text-align:center;text-underline-offset:3px}
.locked{font-size:12px;margin:0;padding:12px 14px;border:1px dashed var(--line);border-radius:4px;color:var(--muted)}
.setup{font-size:11px;color:var(--muted);margin:0}

.topics{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0 32px}
.topics li{border-top:1px solid var(--line);padding:20px 0}
.topics h3{font-size:16px;font-weight:500;margin:0 0 6px}
.topic-meta{font-size:10px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted);margin:0 0 8px}
.topics p:not(.topic-meta){font-size:12px;color:var(--muted);margin:0}
.topics .topic-runnable{margin-top:8px}
.topics .topic-runnable a{color:var(--ink)}

.empty{font-size:13px;color:var(--muted);margin:20px 0 0}
.boundaries ul{padding-left:18px;max-width:80ch}
.boundaries li{font-size:13px;color:var(--muted);margin:9px 0}

@media(max-width:860px){
  .library-tools{grid-template-columns:1fr;align-items:stretch}
  .cards{grid-template-columns:1fr}
  .topics{grid-template-columns:1fr}
}

/* Application layout: compact navigation and progressively disclosed detail. */
html{scroll-behavior:auto}body{background:#f1f3ed}.site-header{height:72px;background:#f8faf4;padding-inline:32px}.site-header .brand{font-size:24px}
.nav-cta,.button,.library-tools button{border-radius:999px;min-height:44px}.button:hover{transform:none}.button-outline{color:var(--ink);border-color:var(--ink)}
.library-shell{display:grid;grid-template-columns:224px minmax(0,1fr);max-width:1600px;margin:auto;min-height:calc(100vh - 72px)}
.library-nav{padding:36px 20px;border-right:1px solid var(--line)}.library-nav .eyebrow{padding:0 14px;margin:0 0 20px}.library-nav>a{display:flex;justify-content:space-between;align-items:center;padding:14px;border-radius:12px;font-size:14px;text-decoration:none;margin-bottom:5px}.library-nav>a:hover{background:#e8eddf}.library-nav .nav-current{background:#dfe9ce;font-weight:600}.library-nav span{font-size:12px}.nav-note{margin:64px 14px 0;font-size:13px;font-weight:600}.nav-note p{font-size:12px;color:var(--muted);font-weight:400;line-height:1.6}
main{min-width:0}.library-intro{padding:36px 36px 20px;border:0}.library-intro .eyebrow{margin:0 0 12px}.library-intro h1{font-size:36px;letter-spacing:-1.3px;margin:0 0 12px;line-height:1.15}.library-intro .lead{font-size:16px;letter-spacing:0;margin:0}.disclosure{font-size:12px;margin-top:12px;line-height:1.6;max-width:95ch}.access-note{border:1px solid #d5dfc9;background:#e8efdc;border-radius:12px;margin:18px 0 0;padding:12px 16px;font-size:12px}
.library-tools{padding:8px 36px 24px;gap:14px;border:0;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) auto}.library-tools input,.library-tools select{border-radius:12px;background:#fff;min-height:44px;min-width:0;width:100%;font-size:14px}.library-tools label{text-transform:none;letter-spacing:0;font-size:12px}.library-tools button{background:#fff}.library-tools input:focus-visible,.library-tools select:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.library-section{padding:12px 36px 32px}.library-section+.library-section{padding-top:28px}.section-head{margin-bottom:20px}.section-head h2{font-size:22px;font-weight:600;letter-spacing:-.6px}.section-head p{margin-top:6px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{padding:22px;border-radius:18px;background:#fff;gap:16px;box-shadow:0 2px 4px #20392504}.card h3{font-size:19px;line-height:1.3;font-weight:600}.tags{gap:6px}.tag{border-radius:999px;text-transform:none;letter-spacing:0;white-space:normal;font-size:11px;padding:5px 9px;line-height:1.35}.tag-category{border:0;background:#f0f3eb}.tag-paid{color:#765516;border-color:#d4c5a4}.tag-free{border-color:#c3d2b7}.card-summary{font-size:14px;line-height:1.6}.exercise-details{border:0;margin:0}.exercise-details>summary{padding:0;font-size:12px;font-weight:600}.exercise-details>summary::after{display:none}.exercise-details[open]>summary{margin-bottom:16px}.exercise-details .objectives{margin-bottom:16px}.exercise-details .card-sources{margin-top:16px;overflow-wrap:anywhere}.card-actions .button{justify-content:center;min-height:44px;padding:12px 18px;font-weight:600}.setup{line-height:1.5}.locked{border-radius:10px}.topics{gap:0 24px;grid-template-columns:repeat(2,minmax(0,1fr))}.topics h3{font-size:15px}.site-footer{padding:28px 32px}.boundaries li{line-height:1.6}
@media(min-width:1500px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1080px){.library-shell{grid-template-columns:190px minmax(0,1fr)}.library-nav{padding-inline:12px}.library-intro,.library-section{padding-inline:24px}.library-tools{padding-inline:24px;grid-template-columns:1fr 1fr}.field-actions{grid-column:1/-1;align-items:flex-start}.library-tools .field-actions button{min-height:36px;padding:8px 16px}.cards{grid-template-columns:1fr}}
@media(max-width:720px){.site-header{padding-inline:18px;height:68px}.site-header nav{display:none}.nav-cta{font-size:12px;padding:10px 14px;gap:10px}.library-shell{display:block}.library-nav{padding:12px 16px;display:flex;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.library-nav>.eyebrow,.nav-note{display:none}.library-nav>a{white-space:nowrap;font-size:12px;gap:8px;padding:10px;margin:0}.library-intro{padding:26px 18px 20px}.library-intro h1{font-size:30px}.library-tools{padding:0 18px 22px;grid-template-columns:1fr}.library-section{padding:12px 18px 26px}.topics{grid-template-columns:1fr}.card{padding:20px}.site-footer{padding:24px 18px;flex-wrap:wrap;gap:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* The practice-exam entry: three duration choices, the same button language as
   the cards, with the access state stated plainly. */
.exam-entry .exam-choices{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 0}
.exam-entry .exam-choice{justify-content:center;min-width:170px;padding:14px 24px;font-weight:600}
.exam-entry .exam-note{margin:16px 0 0;font-size:12px;color:var(--muted);line-height:1.6}
.exam-entry .locked{font-size:13px;color:var(--muted);margin:0}
.exam-entry .button-outline{align-self:center}
@media(max-width:720px){.exam-entry .exam-choice{flex:1 1 100%;min-width:0}}
@media(max-width:720px){.card-actions .button,.exam-entry .exam-choice{min-height:60px;font-size:15px;justify-content:center}}
.exam-type-group{display:flex;flex-wrap:wrap;gap:10px;flex:1;min-width:250px}
.exam-type-group h3{flex-basis:100%;margin:0 0 4px;font-size:17px}

.exercise-preview{margin:0 0 20px}.exercise-preview img{display:block;width:100%;height:auto;aspect-ratio:3/2;border-radius:10px}.exercise-preview figcaption{font-size:12px;line-height:1.5;color:var(--muted,#526459);margin-top:8px}

/* Text labels and +/- communicate actions without arrow ornamentation. */
select{appearance:none}summary{list-style:none}summary::marker{content:''}summary::-webkit-details-marker{display:none}summary::after{content:'+';margin-left:12px}details[open]>summary::after{content:'−'}

.exam-type-group .tag-beta{vertical-align:middle;margin-left:6px;background:#f1ead8;color:#695224;border:1px solid #cabc98;font-size:10px;letter-spacing:.08em;font-weight:700}
