/* Worksheet maker: the page layout, the paper look of a sheet on screen, and print rules. */
.ws-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ws-steps li{padding:16px 18px;border-radius:18px;background:var(--c-soft,#fbe8e2);display:grid;gap:4px}.ws-steps b{font:600 20px var(--serif);color:var(--c-ink,#8F2F18)}.ws-steps span{color:var(--ink-2)}
@media(max-width:700px){.ws-steps{grid-template-columns:1fr}}
.ws-grades{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ws-grade{display:grid;gap:4px;padding:16px 18px;border-radius:20px;border:1.5px solid var(--line-2);background:#fff;transition:transform .15s,border-color .15s,box-shadow .15s}.ws-grade:hover{transform:translateY(-3px);border-color:var(--c);box-shadow:0 10px 26px rgba(0,0,0,.08)}
.ws-grade b{font:600 24px var(--serif);color:var(--c-ink)}.ws-grade small{font-weight:700;color:var(--c-ink);letter-spacing:.02em}.ws-grade span{font-size:14px;color:var(--ink-2);line-height:1.4}
.ws-topics{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.ws-topics a{display:inline-flex;gap:8px;align-items:center;padding:9px 16px;border-radius:99px;background:var(--c-soft,#fbe8e2);color:var(--c-ink,#8F2F18);font-weight:700}.ws-topics a:hover{background:var(--c,#C24A2C);color:#fff}.ws-topics small{opacity:.7}
.ws-gh{margin:22px 0 8px;font:600 22px var(--serif)}
.ws-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.ws-chip{display:inline-flex;gap:6px;align-items:center;padding:7px 13px;border-radius:14px;border:1.5px solid var(--line-2);background:#fff;font-weight:600;font-size:14px;color:var(--ink)}.ws-chip:hover{border-color:var(--c);background:var(--c-soft)}
.ws-pop{list-style:none;margin:10px 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:8px}.ws-pop a{display:inline-block;padding:6px 14px;border-radius:99px;border:1.5px solid var(--line-2);font-size:14px;font-weight:600}.ws-pop a:hover{border-color:var(--c-ink,#8F2F18);background:var(--c-soft,#fbe8e2)}
.ws-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.ws-card{display:grid;gap:8px;align-content:start;padding:16px 18px;border-radius:20px;border:1.5px solid var(--line-2);background:#fff;transition:transform .15s,border-color .15s,box-shadow .15s}.ws-card:hover{transform:translateY(-3px);border-color:var(--c);box-shadow:0 10px 26px rgba(0,0,0,.08)}
.ws-card-top{display:flex;gap:10px;align-items:center}.ws-card-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--c-soft);font-size:18px}.ws-card small{font:800 10.5px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--c-ink)}
.ws-card b{font:600 19px var(--serif);line-height:1.2}.ws-card-ex{padding:8px 12px;border-radius:12px;background:var(--c-soft);color:var(--c-ink);font-weight:700;font-variant-numeric:tabular-nums}.ws-card-go{font-weight:800;font-size:13px;color:var(--c-ink)}

/* the maker */
.ws-app{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:900px){.ws-app{grid-template-columns:1fr}}
.ws-controls{display:grid;gap:14px;padding:18px;border-radius:22px;background:var(--c-soft);position:sticky;top:84px}
@media(max-width:900px){.ws-controls{position:static}}
.ws-opt{display:grid;gap:6px}.ws-opt small{font:800 10px var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--c-ink)}
.ws-key-opt{display:flex;gap:8px;align-items:center;font-weight:600}.ws-key-opt input{width:18px;height:18px;accent-color:var(--c)}
.ws-actions{display:flex;flex-wrap:wrap;gap:8px}.ws-actions .btn{flex:1 1 auto}
.ws-status{margin:0;font-size:13px;color:var(--ink-2);min-height:1.4em}.ws-links{margin:0}
.ws-stage{display:grid;gap:18px;min-width:0}
.ws-sheet{display:grid;gap:18px;width:100%}
.ws-page{display:flex;flex-direction:column;width:100%;max-width:760px;margin-inline:auto;aspect-ratio:210/297;padding:clamp(14px,3.6cqi,34px);box-sizing:border-box;container-type:inline-size;background:#fff;color:#14122b;border:1px solid var(--line-2);border-radius:6px;box-shadow:0 10px 30px rgba(20,18,58,.12);overflow:hidden}
.ws-keypage{aspect-ratio:auto;min-height:200px}
.ws-head{border-bottom:2px solid #333;padding-bottom:8px}
.ws-title{margin:0;font:700 clamp(15px,3.8cqi,20px) var(--sans)}.ws-sub{margin:2px 0 8px;font-size:clamp(9px,1.9cqi,11px);color:#666}
.ws-name{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;font-weight:700;font-size:clamp(10px,2cqi,12px)}.ws-name span{display:flex;gap:6px;align-items:flex-end}.ws-name i{display:inline-block;width:clamp(70px,24cqi,180px);border-bottom:1.5px solid #333;height:1.1em}.ws-name i.short{width:clamp(50px,14cqi,110px)}.ws-name i.tiny{width:clamp(24px,6cqi,40px)}
.ws-grid{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:0 18px;flex:1;align-content:start;grid-auto-rows:var(--rowh,10cqi)}
.ws-page[data-paper=letter]{aspect-ratio:8.5/11}
.ws-cols-3{grid-template-columns:repeat(3,1fr)}.ws-cols-2{grid-template-columns:repeat(2,1fr)}.ws-cols-1{grid-template-columns:1fr}.ws-vertical.ws-cols-4{grid-template-columns:repeat(4,1fr)}
.ws-item{display:flex;gap:6px;align-items:flex-start;padding:clamp(3px,1.1cqi,10px) 0;font-size:clamp(11px,2.7cqi,16px);line-height:1.5;list-style:none}
.ws-n{color:#888;font-size:.8em;min-width:2.1ch}
.blank{display:inline-block;min-width:2.2em;border-bottom:1.5px solid #222;height:1em;vertical-align:baseline;margin:0 .15em}.blank.wide{min-width:4.4em}
.fr{display:inline-grid;vertical-align:middle;text-align:center;line-height:1.1;font-size:.92em;margin:0 .1em}.fr i{font-style:normal;border-bottom:1.3px solid currentColor;padding:0 .2em}.fr b{font-weight:500}
sup{font-size:.7em;line-height:0}
.ws-v{padding-bottom:clamp(16px,6cqi,40px)}
.ws-col{display:grid;justify-items:end;margin-left:auto;margin-right:clamp(6px,3cqi,22px);font:700 clamp(15px,3.7cqi,22px) ui-monospace,Menlo,Consolas,monospace;min-width:5ch}
.ws-bot{border-bottom:2px solid #222;padding-bottom:2px;padding-left:.2em}.ws-op{margin-right:.55ch}
.ws-foot{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:clamp(8px,1.6cqi,10px);color:#888}
.ws-key{columns:4;column-gap:20px;margin:12px 0 0;padding:0 0 0 2.4ch;font-weight:700;font-size:clamp(11px,2.6cqi,14px)}.ws-key li{padding:4px 0;break-inside:avoid}
.ws-ex{font-weight:700;color:var(--c-ink)}
@media(max-width:600px){.ws-key{columns:3}}

/* printing: only the sheet is printed */
#ws-print{display:none}
@media print{
  body>*:not(#ws-print){display:none!important}
  #ws-print{display:block!important}
  #ws-print .ws-sheet{display:block}
  #ws-print .ws-page{box-shadow:none;border:0;border-radius:0;aspect-ratio:auto;width:100%;max-width:none;height:268mm;padding:0;margin:0;break-after:page;page-break-after:always}
  #ws-print .ws-keypage{height:auto}
  @page{margin:10mm}
}

/* charts */
.ch-page{display:block;width:100%;max-width:760px;margin-inline:auto;padding:clamp(14px,3.4cqi,30px);box-sizing:border-box;container-type:inline-size;background:#fff;color:#14122b;border:1px solid var(--line-2);border-radius:6px;box-shadow:0 10px 30px rgba(20,18,58,.12)}
.ch-title{margin:0 0 6px;font:700 clamp(15px,3.6cqi,20px) var(--sans)}.ch-sub{margin:0 0 10px;font-size:clamp(10px,2cqi,12px);color:#555;font-weight:700}.ch-sub i{display:inline-block;width:clamp(100px,28cqi,200px);border-bottom:1.5px solid #333;height:1.1em;vertical-align:bottom}
.ch-table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
.ch-table th,.ch-table td{border:1px solid #777;text-align:center;padding:clamp(1px,.5cqi,5px) 0;font-size:clamp(7px,2.1cqi,15px);line-height:1.55;overflow:hidden}
.ch-grid thead th{background:#F6D5CB;font-weight:800}.ch-grid tbody th{background:#CDEBE6;font-weight:800}.ch-grid td.hot{background:#FBE7BF;font-weight:800}
.ch-hundred td{font-size:clamp(9px,3cqi,20px);padding:clamp(4px,1.7cqi,15px) 0}.ch-hundred td.hot{background:#E3DDF6;font-weight:800}
.ch-page.bw th,.ch-page.bw td.hot{background:none!important}
.ws-empty{margin:0;padding:24px;border-radius:14px;background:#fff;text-align:center;font-weight:700;color:var(--ink-2)}
/* mixed worksheet picker */
.ws-presets{display:flex;flex-wrap:wrap;gap:6px}
.ws-picker{display:grid;gap:8px;margin-bottom:6px}.ws-picker-h{margin:0;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.ws-picker-h span{color:var(--ink-2);font-size:14px}
.ws-grade-box{border:1.5px solid var(--line-2);border-radius:14px;background:#fff;padding:0 14px}.ws-grade-box summary{cursor:pointer;padding:11px 0;font-weight:800;list-style:none;display:flex;gap:10px;align-items:baseline}.ws-grade-box summary::-webkit-details-marker{display:none}.ws-grade-box summary::before{content:"▸";color:var(--c)}.ws-grade-box[open] summary::before{content:"▾"}.ws-grade-box small{font-weight:600;color:var(--ink-2)}
.ws-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px;padding:0 0 12px}.ws-checks label{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:600;padding:3px 0}.ws-checks input{width:17px;height:17px;accent-color:var(--c)}
@media print{#ws-print .ch-page{box-shadow:none;border:0;max-width:none;break-after:page;page-break-after:always;padding:0}}
