.practice-center{--practice-ink:#19293d;--practice-soft:#65758a;--practice-border:#d7e0ea;--practice-blue:#245b8f;--practice-pale:#eef3f8;max-width:1340px;margin:0 auto;padding:12px 22px 48px;color:var(--practice-ink);background:#f3f6fa;font-variant-numeric:tabular-nums}
.practice-center *{box-sizing:border-box}
.practice-center button:not(.practice-primary){background:#fff;border:1px solid #cbd7e3;color:#365b7c;border-radius:6px}.practice-center button:not(.practice-primary):hover{background:#f1f6fb;border-color:#91b0cc}.practice-center input,.practice-center select{background:#fff;border:1px solid #cbd7e3;color:var(--practice-ink);border-radius:5px}.practice-center input:focus,.practice-center select:focus{outline:2px solid #a7c8e6;outline-offset:1px}.practice-center .practice-tabs a{background:transparent;border-radius:0;color:#56677d}.practice-center .practice-tabs a[aria-current=page]{background:transparent;color:var(--practice-blue)}
.practice-heading{padding:15px 3px 17px}.practice-heading h1{margin:0;font:700 clamp(30px,3vw,42px)/1.2 "Microsoft YaHei",sans-serif;letter-spacing:-.04em}.practice-heading>p:last-child{margin:8px 0 0;color:var(--practice-soft);font-size:14px}.practice-eyebrow{margin:0 0 7px;color:#4b718f;font-size:11px;font-weight:700;letter-spacing:.12em}.practice-back{display:inline-block;margin-bottom:15px;color:var(--practice-blue);font-size:13px;text-decoration:none}
.practice-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid var(--practice-border);background:#fff;padding:0 16px}.practice-tabs{display:flex;gap:5px;overflow:auto}.practice-tabs a{display:inline-block;white-space:nowrap;border-bottom:3px solid transparent;padding:15px 14px 12px;color:#56677d;text-decoration:none;font-size:14px}.practice-tabs a:hover{color:var(--practice-blue);background:#f6f9fc}.practice-tabs a[aria-current=page]{border-color:var(--practice-blue);color:var(--practice-blue);font-weight:700}.practice-context{display:flex;gap:14px;padding-bottom:15px;white-space:nowrap;font-size:11px;color:var(--practice-soft)}.practice-context strong{display:block;margin-top:3px;font-size:12px;color:var(--practice-ink)}.practice-page{padding-top:4px}
.practice-card{background:#fff;border:1px solid var(--practice-border);border-radius:10px;padding:23px;margin:17px 0;box-shadow:0 3px 12px #1b36540a}.practice-card h2{margin:0 0 8px;font-size:21px;line-height:1.35}.practice-card h3{font-size:16px;margin:0 0 8px}.practice-card-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.practice-muted{color:var(--practice-soft);font-size:13px;line-height:1.55}.practice-tag{display:inline-block;padding:5px 9px;border:1px solid #dce5ed;border-radius:5px;background:#f6f9fc;color:#47627d;font-size:11px;white-space:nowrap}.practice-center a{color:var(--practice-blue)}.practice-center button{cursor:pointer}.practice-center button:disabled{cursor:not-allowed;opacity:.55}.practice-center .practice-primary,.practice-center button.practice-primary,.practice-link-button.practice-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--practice-blue);border:1px solid var(--practice-blue);color:#fff;text-decoration:none;font-weight:700}.practice-center .practice-primary:hover{background:#194776;color:#fff}.practice-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 13px;border:1px solid var(--practice-border);border-radius:6px;text-decoration:none;font-size:13px;font-weight:700}
.practice-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 28px}.practice-entry{display:flex;flex-direction:column;gap:10px;min-height:175px;padding:22px;border:1px solid var(--practice-border);border-radius:9px;background:white;color:var(--practice-ink)!important;text-decoration:none;box-shadow:0 3px 12px #1b36540a}.practice-entry:hover{border-color:#86a8c8;background:#fbfdff}.practice-entry:not(a){background:#f8fafc;color:#8795a7!important}.practice-entry-icon{font:700 12px Consolas,monospace;color:var(--practice-blue)}.practice-entry strong{font-size:19px}.practice-entry>span:not(.practice-entry-icon){font-size:13px;line-height:1.55;color:var(--practice-soft)}.practice-entry em{margin-top:auto;font-size:12px;font-style:normal;font-weight:700;color:var(--practice-blue)}
.practice-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px;margin-top:20px}.practice-form label,.practice-library-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#40536b}.practice-form input,.practice-form select,.practice-library-filters input,.practice-library-filters select{width:100%;font-weight:400}.practice-form-note{align-self:end;margin:0;font-size:12px;color:var(--practice-soft)}.practice-form-actions{grid-column:1/-1;display:flex;gap:9px;flex-wrap:wrap}.practice-lookup{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-advanced summary{cursor:pointer;font-size:16px;font-weight:700}.practice-advanced summary span{margin-left:12px;color:var(--practice-soft);font-size:12px;font-weight:400}.practice-advanced .practice-form{margin-top:18px}.practice-wide{grid-column:span 2}.practice-rule-valid{color:#24734c;font-size:13px}.practice-rule-invalid{color:#a93f3c;font-size:13px}.practice-rule-controls{display:contents}.practice-rule-controls[hidden]{display:none!important}.practice-rule-sample{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 18px;padding:10px 0;border-bottom:1px solid var(--practice-border);font-size:13px}.practice-rule-sample strong{grid-column:1}.practice-rule-sample span{grid-column:1/-1}.practice-rule-sample span:first-of-type{grid-column:2;text-align:right}.practice-rule-sample details{grid-column:1/-1}.practice-rule-sample pre{overflow:auto;max-height:180px;padding:10px;background:#f5f7f9;white-space:pre-wrap}
.practice-layout-wrap{display:grid;grid-template-columns:minmax(320px,.88fr) minmax(500px,1.12fr);gap:20px;margin-top:18px}.practice-inspector{min-width:0;padding:17px;border:1px solid var(--practice-border);border-radius:8px;background:#fbfcfe}.practice-layout{display:grid;grid-template-rows:repeat(6,76px);grid-auto-rows:76px;gap:5px;padding:8px;border:1px solid #cbd8e5;background:#eef1f5}.practice-layout-module{min-height:0;overflow:hidden;padding:9px 11px;border:1px solid #b8c8d8;border-radius:5px;background:#fff;cursor:grab}.practice-layout-module:hover{border-color:#6995be;background:#f9fcff}.practice-layout-module:focus-within{outline:2px solid var(--practice-blue);outline-offset:-2px}.practice-layout-module-head,.practice-module-controls{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}.practice-layout-module-head span{font-size:11px;color:var(--practice-soft)}.practice-layout-scribble{margin:6px 0;color:#96a7b8;font-size:11px;line-height:1.4}.practice-module-controls{font-size:11px}.practice-module-controls select{width:58px;padding:2px}.practice-module-controls button{min-height:24px;padding:2px 6px}.practice-inspector>button{margin-top:11px}.practice-layout-summary{margin-top:15px;padding:14px;border:1px solid var(--practice-border);border-radius:7px;background:white}.practice-layout-summary p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:8px 0;border-bottom:1px solid #e7edf3;font-size:12px}.practice-layout-summary p span{color:var(--practice-soft);text-align:right}.practice-layout-summary hr{border:0;border-top:1px solid var(--practice-border)}
.practice-canvas{min-width:0;padding:13px;border:1px solid #d6dfe8;border-radius:8px;background:#eef1f5}.practice-canvas-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:3px 5px 12px;font-size:12px}.practice-canvas-head span{color:var(--practice-soft)}.practice-preview-shell{position:relative;width:100%;overflow:hidden;border:1px solid #c9d2dd;background:#fff;box-shadow:0 12px 28px #20364e25}.practice-preview-shell iframe{position:absolute;top:0;left:0;width:826px;height:1160px;border:0;transform-origin:top left;background:#fff}
.practice-blocks{overflow:auto;margin-top:18px}.practice-block-header,.practice-block-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(80px,.7fr) minmax(100px,.8fr) minmax(100px,.8fr) minmax(125px,1fr);gap:12px;align-items:center;min-width:680px;padding:9px 8px;border-bottom:1px solid var(--practice-border)}.practice-block-header{background:#f1f5f9;color:var(--practice-soft);font-size:11px;font-weight:700}.practice-block-row small{display:block;margin-top:4px;color:var(--practice-soft);font-size:11px}.practice-block-row label{font-size:12px}.practice-block-row input[type=number],.practice-block-row select{width:100%;padding:6px}.practice-block-reserved{opacity:.55}.practice-submit{display:flex;justify-content:space-between;align-items:center;gap:20px}.practice-submit button{min-width:210px}.practice-success{border-left:4px solid #2f8a63}.practice-success-facts{display:flex;gap:10px;margin:12px 0}.practice-success-facts strong{padding:8px 12px;background:#f1f5f9;border-radius:5px;font-size:13px}.practice-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.practice-actions button{min-height:34px;padding:5px 10px;font-size:12px}.practice-history{margin-top:15px;padding-top:8px;border-top:1px solid var(--practice-border)}.practice-version{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #e7edf3}.practice-version small{display:block;color:var(--practice-soft)}.practice-version .practice-actions{margin:0}
.practice-library-filters{display:grid;grid-template-columns:1.1fr repeat(2,1fr) .9fr .8fr 1.2fr auto;align-items:end;gap:9px;margin-top:18px}.practice-library-filters button{min-height:37px;white-space:nowrap}.practice-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:17px;border:1px solid var(--practice-border);background:var(--practice-border)}.practice-stats>div{display:flex;flex-direction:column;gap:5px;padding:11px 14px;background:#fff}.practice-stats small{color:var(--practice-soft);font-size:11px}.practice-stats strong{font-size:20px;line-height:1.2}.practice-list-controls{display:flex;justify-content:space-between;align-items:center;margin:19px 2px 0}.practice-list-controls button{margin-left:7px;font-size:12px}.practice-empty-library{text-align:center;padding:50px 20px}.practice-empty-library p{color:var(--practice-soft)}.practice-library-day{margin:12px 0}.practice-latest{margin-left:7px;padding:2px 6px;border-radius:3px;background:#e3effa;color:#245b8f;font-size:11px;letter-spacing:0}.practice-status{color:#9a6527}.practice-status.is-published{color:#29805a}.practice-day-details{margin-top:15px}.practice-day-details summary{cursor:pointer;color:var(--practice-blue);font-weight:700;font-size:13px}.practice-table-wrap{overflow:auto;margin:14px 0}.practice-question-table{border-collapse:collapse;min-width:1200px;width:100%;font-size:12px}.practice-question-table th,.practice-question-table td{padding:7px 9px;border:1px solid #dce4ec;text-align:left;white-space:nowrap}.practice-question-table th{position:sticky;top:0;background:#edf2f7;color:#465d76}.practice-question-table tr:nth-child(even){background:#f8fafc}.practice-question-table tr:hover{background:#eef4fb}.practice-coming{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:220px}.practice-coming p{max-width:620px}
@media(max-width:1150px){.practice-toolbar{display:block}.practice-context{padding:8px 0 12px}.practice-layout-wrap{grid-template-columns:1fr}.practice-library-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.practice-center{padding:8px 10px 30px}.practice-card{padding:17px}.practice-form,.practice-lookup{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-library-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-submit{display:block}.practice-submit button{width:100%}.practice-context{overflow:auto}.practice-layout-wrap{display:block}.practice-canvas{margin-top:18px}}
@media(max-width:510px){.practice-form,.practice-lookup,.practice-library-filters,.practice-entry-grid{grid-template-columns:1fr}.practice-wide{grid-column:1}.practice-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-context{gap:10px}.practice-tabs a{padding:12px 10px}.practice-layout{grid-template-rows:repeat(6,64px);grid-auto-rows:64px}.practice-list-controls{display:block}.practice-list-controls>div{margin-top:8px}}


/* Phase C.1: Daily Math uses a cooler, denser engineering-workbench visual language. */
.practice-center{--practice-ink:#162538;--practice-soft:#607086;--practice-border:#d5dee8;--practice-blue:#1f5f99;--practice-blue-dark:#153f66;--practice-canvas:#e9eef4;max-width:1540px;background:#f2f5f8;box-shadow:0 0 0 100vmax #f2f5f8;font-size:15px;line-height:1.42}
.practice-heading{padding:17px 3px 13px}.practice-heading h1{font-size:clamp(32px,3vw,44px);letter-spacing:-.035em}.practice-heading>p:last-child{font-size:15px;line-height:1.45}.practice-eyebrow{font-family:Consolas,"SFMono-Regular",monospace;font-size:11px;letter-spacing:.14em;color:#426989}
.practice-card{border-radius:7px;padding:20px 22px;margin:14px 0;box-shadow:0 2px 9px #15283e0a}.practice-card h2{font-size:22px}.practice-card h3{font-size:16px}.practice-muted{font-size:14px;line-height:1.45}.practice-tag{font-size:12px;border-radius:4px}
.practice-form{gap:9px 12px;margin-top:15px}.practice-form label,.practice-library-filters label{gap:4px;font-size:14px}.practice-form input,.practice-form select,.practice-library-filters input,.practice-library-filters select{min-height:38px;padding:7px 9px;font-size:15px}.practice-form-note{font-size:13px;line-height:1.4}.practice-secondary-settings{grid-column:1/-1;border-top:1px solid var(--practice-border);padding-top:8px}.practice-secondary-settings summary{cursor:pointer;color:#4e6379;font-size:13px;font-weight:700}.practice-secondary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:9px}
.practice-layout-wrap{grid-template-columns:minmax(380px,460px) minmax(600px,1fr);gap:18px}.practice-inspector{padding:14px;background:#f8fafc;border-radius:6px}.practice-layout{grid-template-rows:repeat(6,92px);grid-auto-rows:92px;gap:4px;padding:7px;background:#e8edf3}.practice-layout-module{padding:8px 9px;border-radius:4px;background:#fff;box-shadow:0 1px 0 #fff inset}.practice-layout-module[data-capacity-state="over"]{border-color:#d56565;background:#fffafa}.practice-layout-module[data-capacity-state="under"]{border-color:#d5aa59;background:#fffdf7}.practice-layout-module[data-capacity-state="ok"]{border-color:#9bb3c9}.practice-layout-module-head{flex-wrap:nowrap;min-height:25px}.practice-layout-module-head strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-drag-handle{color:#8090a2;font-size:12px}.practice-row-stepper{display:inline-grid;grid-template-columns:28px auto 28px;align-items:center;gap:4px;margin-left:auto}.practice-row-stepper button{width:28px;height:25px;min-height:25px;padding:0;font-size:16px;line-height:1}.practice-row-stepper span{min-width:49px;text-align:center;font-size:12px;font-weight:700;color:#314b66}.practice-layout-scribble{font-size:11px;line-height:1.3}.practice-module-controls{justify-content:flex-start;gap:5px;font-size:11px}.practice-module-controls .practice-capacity{margin-right:auto;font-weight:700;color:#53677c}.practice-layout-module[data-capacity-state="over"] .practice-capacity{color:#b33e3e}.practice-layout-module[data-capacity-state="under"] .practice-capacity{color:#9b6a20}.practice-layout-module[data-rows="1"] .practice-layout-scribble{display:none}.practice-layout-module[data-rows="1"] .practice-module-controls{margin-top:4px}.practice-family-chips{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:5px 0 3px}.practice-family-chips>span{margin-right:2px;color:#718195;font-size:10px;font-weight:700}.practice-family-chip{min-height:22px!important;padding:2px 7px!important;border-radius:11px!important;font-size:10px!important;line-height:1.2}.practice-family-chip.is-active{background:#e2eef9!important;border-color:#76a1c8!important;color:#184f7c!important;font-weight:700}.practice-layout-module[data-rows="1"] .practice-family-chips{margin:3px 0 2px}.practice-layout-module[data-rows="1"] .practice-family-chip{padding:1px 6px!important}.practice-layout-summary{padding:11px 13px}.practice-layout-summary p{padding:6px 0;font-size:12px}.practice-layout-summary p[data-capacity-state="over"] span{color:#b33e3e;font-weight:700}.practice-layout-summary p[data-capacity-state="under"] span{color:#9b6a20;font-weight:700}
.practice-canvas{padding:13px;background:var(--practice-canvas);border-radius:6px}.practice-canvas-head{font-size:13px}.practice-preview-shell{display:flex;justify-content:center;align-items:flex-start;min-height:620px;padding:22px;background:#dfe6ee;border:1px solid #cbd5e0;overflow:auto;box-shadow:none}.practice-paper{display:grid;grid-template-rows:auto 1fr;width:min(100%,760px);aspect-ratio:210/297;background:#fff;border:1px solid #c5ced8;box-shadow:0 15px 35px #21374f2b;color:#1c2530;overflow:hidden}.practice-paper-head{padding:22px 26px 14px;border-bottom:1px solid #bcc6d1}.practice-paper-head>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.practice-paper-head strong{font-size:20px;letter-spacing:.03em}.practice-paper-head #practice-paper-day{font-size:13px;color:#485968}.practice-paper-meta{display:grid;grid-template-columns:1.2fr 1.4fr .8fr;gap:18px;margin-top:13px;font-size:13px}.practice-paper-body{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(6,1fr);min-height:0;padding:0 26px 24px}.practice-paper-module{grid-column:1;display:grid;grid-template-rows:auto 1fr;min-height:0;padding:8px 0 6px;border-bottom:1px solid #d9dee5;overflow:hidden}.practice-paper-module:last-child{border-bottom:0}.practice-paper-module h4{margin:0 0 5px;font-size:14px;line-height:1.2}.practice-paper-compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);column-gap:18px;row-gap:1px;min-height:0}.practice-paper-question{display:flex;align-items:center;min-width:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-paper-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:0;column-gap:18px;row-gap:5px}.practice-paper-work-item{display:grid;grid-template-rows:auto repeat(3,1fr);min-height:0;padding:2px 0 3px}.practice-paper-work-item strong{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-paper-work-item span{border-bottom:1px solid #eef1f4}
.practice-blocks{margin-top:14px}.practice-block-header,.practice-block-row{gap:10px;padding:7px 8px}.practice-block-header{font-size:12px}.practice-block-row>div>strong{font-size:14px}.practice-block-row small{margin-top:2px;font-size:12px}.practice-block-row label{font-size:13px}.practice-block-row input[type=number],.practice-block-row select{min-height:34px;padding:5px 7px;font-size:14px}
.practice-rule-sample{font-size:14px}.practice-rule-sample strong{font-size:16px}.practice-strategy-preview{margin-top:14px;padding:14px;border:1px solid #d5dee8;border-radius:6px;background:#f7f9fc}.practice-strategy-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.practice-strategy-samples{display:grid;gap:8px;margin-top:10px}.practice-strategy-sample{padding:10px 12px;border:1px solid #dce4ec;background:#fff;border-radius:4px}.practice-strategy-sample strong{display:block;font-size:16px}.practice-strategy-sample small{display:block;margin-top:5px;color:var(--practice-soft);font-size:12px}
.practice-question-table{font-size:13px}.practice-question-table th,.practice-question-table td{padding:7px 8px}.practice-library-filters{gap:8px}.practice-stats strong{font-size:22px}
@media(max-width:1150px){.practice-layout-wrap{grid-template-columns:1fr}.practice-preview-shell{min-height:0}.practice-paper{width:min(100%,720px)}}
@media(max-width:720px){.practice-secondary-grid{grid-template-columns:1fr}.practice-preview-shell{padding:10px}.practice-paper-head{padding:15px 16px 10px}.practice-paper-body{padding:0 16px 16px}.practice-paper-meta{gap:8px}.practice-layout{grid-template-rows:repeat(6,84px);grid-auto-rows:84px}}


/* Persistent Daily Math scope: class + generation/library dates + print dates. */
.practice-heading-workspace{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:28px}
.practice-heading-copy{min-width:0}
.practice-workspace-dock{display:grid;grid-template-columns:180px 250px 250px;gap:9px;align-items:stretch}
.practice-workspace-card{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:74px;margin:0;padding:9px 11px;border:1px solid #cdd8e4;border-radius:7px;background:#fff;box-shadow:0 2px 8px #17314d0a;color:#53677d;font-size:11px;font-weight:700}
.practice-workspace-card>span{letter-spacing:.04em}
.practice-workspace-card select,.practice-workspace-card input{min-width:0;width:100%;height:30px;min-height:30px!important;padding:4px 6px!important;border-color:#d1dbe6!important;border-radius:4px!important;background:#fbfcfe!important;font-size:12px!important;color:#172b40!important}
.practice-workspace-dates{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;align-items:center}
.practice-workspace-dates b{font-weight:400;color:#8a99a9}
@media(max-width:1280px){.practice-heading-workspace{grid-template-columns:1fr}.practice-workspace-dock{grid-template-columns:180px repeat(2,minmax(220px,1fr));max-width:100%}}
@media(max-width:800px){.practice-workspace-dock{grid-template-columns:1fr}.practice-workspace-card{min-height:62px}.practice-heading-workspace{gap:12px}}


/* Phase D.1: single-day immutable-version editor */
.practice-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.practice-editor-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.practice-editor-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:16px;align-items:start;margin:14px 0}
.practice-editor-paper-card,.practice-editor-inspector{border:1px solid var(--practice-border);border-radius:7px;background:#fff;box-shadow:0 2px 9px #15283e0a}
.practice-editor-paper-card{padding:14px;background:#e9eef4}
.practice-editor-paper-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:13px}
.practice-editor-paper-head>div:first-child{display:flex;align-items:center;gap:10px}
.practice-editor-paper-head #practice-editor-version{padding:3px 7px;border-radius:4px;background:#eef3f7;color:#5b6e82;font-size:11px}
.practice-editor-paper-head #practice-editor-version.is-dirty{background:#fff1d7;color:#8a5e14}
.practice-editor-paper{width:min(100%,780px);min-height:1040px;margin:auto;padding:28px 30px 34px;background:#fff;border:1px solid #c9d2dc;box-shadow:0 14px 34px #24394f22;color:#182330}
.practice-editor-paper>header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;gap:12px;padding-bottom:10px;border-bottom:1px solid #bac6d1}
.practice-editor-paper>header strong{text-align:center;font-size:21px}.practice-editor-paper>header span{font-size:12px}
.practice-editor-student-info{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:12px 0 7px;font-size:12px}
.practice-editor-section{padding:7px 0 9px;border-bottom:1px solid #d7dee6}.practice-editor-section:last-child{border-bottom:0}
.practice-editor-section h4{margin:0 0 7px;font-size:14px}
.practice-editor-question-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 15px}
.practice-editor-question{display:grid;grid-template-rows:auto 1fr 1fr;min-height:44px;padding:5px 7px;border:1px solid transparent;border-radius:4px;background:#fff;text-align:left;font:inherit;color:#172230}
.practice-editor-question:hover{border-color:#9ab6cf;background:#f8fbfe}
.practice-editor-question.is-selected{border-color:#2c72ab;background:#edf5fb;box-shadow:0 0 0 1px #2c72ab33}
.practice-editor-question span{font-size:12px;line-height:1.35}.practice-editor-question i{display:block;border-bottom:1px solid #edf0f3}
.practice-editor-inspector{position:sticky;top:14px;padding:17px}
.practice-editor-inspector h3{margin:2px 0 12px;font-size:18px}.practice-editor-inspector label{display:grid;gap:5px;margin:11px 0;font-size:13px;font-weight:700}
.practice-editor-inspector input,.practice-editor-inspector textarea{width:100%;padding:8px 9px;border:1px solid #cbd6e1;border-radius:5px;background:#fff;font:inherit;font-weight:400;resize:vertical}
.practice-editor-meta{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.practice-editor-meta span{padding:3px 7px;border:1px solid #d5dee8;border-radius:10px;background:#f7f9fb;color:#53677b;font-size:11px}
.practice-editor-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}
.practice-editor-tools button{min-height:36px}
@media(max-width:1050px){.practice-editor-shell{grid-template-columns:1fr}.practice-editor-inspector{position:static}.practice-editor-paper{min-height:0}}
@media(max-width:720px){.practice-editor-head{display:block}.practice-editor-head-actions{justify-content:flex-start;margin-top:12px}.practice-editor-paper{padding:18px 16px}.practice-editor-question-grid{grid-template-columns:1fr}.practice-editor-paper>header{grid-template-columns:1fr}.practice-editor-paper>header strong{text-align:left}}


/* Daily Math library deletion + additive practice groups */
.practice-danger{border-color:#d8b8b4!important;background:#fff8f7!important;color:#8d342d!important}
.practice-danger:hover{border-color:#b96d65!important;background:#fff1ef!important}
.practice-delete-note{margin:10px 0 0}
.practice-editor-group+.practice-editor-group{margin-top:18px;padding-top:18px;border-top:2px dashed #c9d5e0}
.practice-editor-group-label{margin:0 0 10px;padding:6px 9px;border-radius:5px;background:#eef4f9;color:#345b7b;font-size:13px;letter-spacing:.04em}


/* Explicit five-level difficulty controls */
.practice-difficulty-card{margin:12px 0;padding:11px;border:1px solid #d4dee8;border-radius:7px;background:#f8fafc}
.practice-section-difficulty{margin-top:14px;background:#f4f8fb}
.practice-difficulty-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.practice-difficulty-head strong{font-size:13px;color:#20384f}.practice-difficulty-head span{font-size:11px;color:#60758a}
.practice-difficulty-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.practice-difficulty-levels button{display:grid;gap:1px;min-height:48px;padding:5px 2px;border:1px solid #cad6e2;border-radius:5px;background:#fff;color:#52697f;text-align:center}
.practice-difficulty-levels button b{font-size:15px;color:#284762}.practice-difficulty-levels button small{font-size:10px}
.practice-difficulty-levels button:hover{border-color:#7ea5c8;background:#f2f7fb}
.practice-difficulty-levels button.is-active{border-color:#276da6;background:#e7f2fb;box-shadow:0 0 0 1px #276da633}
.practice-difficulty-levels button.is-active b{color:#175988}
@media(max-width:520px){.practice-difficulty-levels{grid-template-columns:repeat(5,1fr)}.practice-difficulty-levels button small{font-size:9px}}


/* Library quick ranges, bulk table actions and calendar deletion */
.practice-date-shortcuts{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px solid #e1e7ed}
.practice-date-shortcuts>span{margin-right:3px;color:#607489;font-size:12px;font-weight:700}
.practice-danger-outline{border-color:#d9aaa5!important;background:#fff!important;color:#963b34!important}
.practice-danger-outline:hover{background:#fff5f4!important;border-color:#c77770!important}
.practice-question-bulk{display:flex;align-items:center;gap:14px;min-height:45px;margin:10px 0 8px;padding:7px 9px;border:1px solid #d8e1e9;border-radius:6px;background:#f8fafc}
.practice-question-bulk>label{display:flex;align-items:center;gap:6px;font-weight:700}
.practice-question-bulk>span{color:#536a80;font-size:12px}
.practice-question-bulk>div{display:flex;gap:6px;margin-left:auto}
.practice-select-cell{text-align:center!important;vertical-align:middle!important}
.practice-select-cell input,.practice-question-bulk input{width:15px;height:15px;accent-color:#22699f}
.practice-delete-calendar-card{margin-top:14px}
.practice-delete-calendar-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:14px 0 8px}
.practice-delete-calendar-nav strong{text-align:center;font-size:17px;color:#203a52}
.practice-delete-calendar-weekdays,.practice-delete-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.practice-delete-calendar-weekdays{margin-bottom:6px}
.practice-delete-calendar-weekdays span{padding:4px;text-align:center;color:#718397;font-size:11px;font-weight:700}
.practice-delete-calendar-grid .is-empty{min-height:64px}
.practice-delete-calendar-day{display:grid;align-content:space-between;min-height:66px;padding:8px;border:1px solid #d6e0e9;border-radius:6px;background:#f8fafc;text-align:left;color:#75879a}
.practice-delete-calendar-day b{font-size:15px;color:#3b5369}.practice-delete-calendar-day small{font-size:10px;color:#8b99a7}
.practice-delete-calendar-day:disabled{cursor:default;opacity:.48;background:#f7f8fa}
.practice-delete-calendar-day.has-data{background:#fff;color:#233b51}
.practice-delete-calendar-day.has-data:hover{border-color:#bf8580;background:#fff7f6}
.practice-delete-calendar-day.is-selected{border-color:#d7453d!important;background:#fff0ee!important;box-shadow:0 0 0 2px #d7453d33}
.practice-delete-calendar-day.is-selected b,.practice-delete-calendar-day.is-selected small{color:#a72e28}
.practice-delete-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid #e0e6ec}
.practice-delete-calendar-footer>span{color:#526a80;font-size:12px}.practice-delete-calendar-footer>span strong{font-size:16px;color:#a5302a}
.practice-delete-calendar-footer>div{display:flex;gap:7px}
@media(max-width:760px){.practice-question-bulk{align-items:flex-start;flex-wrap:wrap}.practice-question-bulk>div{width:100%;margin-left:0}.practice-delete-calendar-grid,.practice-delete-calendar-weekdays{gap:3px}.practice-delete-calendar-day{min-height:54px;padding:5px}.practice-delete-calendar-footer{align-items:flex-start;flex-direction:column}}


/* Generation-date shortcuts + flat question library */
.practice-generation-date-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 0 2px}
.practice-generation-date-tools>span{margin-right:3px;color:#607489;font-size:12px;font-weight:700}
.practice-generation-date-tools button{min-height:34px}
.practice-library-table-card{padding-top:12px}
.practice-library-flat-table{min-width:1460px}
.practice-library-flat-table thead th{position:sticky;top:0;z-index:1;background:#f4f7fa}
.practice-library-day-link{font-weight:700;color:var(--practice-blue);text-decoration:none;white-space:nowrap}
.practice-library-day-link:hover{text-decoration:underline}
.practice-history-inline{padding:4px 7px;white-space:nowrap}
@media(max-width:720px){.practice-generation-date-tools{align-items:stretch}.practice-generation-date-tools>span{width:100%}}


/* Advanced generation config workbench */
.practice-generation-config{margin-top:16px;padding-top:16px;border-top:1px solid #d9e2ea}
.practice-generation-config h3{margin:0 0 4px}
.practice-config-guide,.practice-config-default{margin:10px 0;border:1px solid #d6e0e9;border-radius:7px;background:#f8fafc}
.practice-config-guide>summary,.practice-config-default>summary{padding:10px 12px;cursor:pointer;font-weight:700;color:#28445f}
.practice-config-guide-body{padding:0 12px 12px}
.practice-config-guide-body ol{margin:8px 0 10px;padding-left:22px}
.practice-config-guide-body li{margin:4px 0}
.practice-config-guide textarea,.practice-config-default textarea,.practice-config-editor-label textarea{width:100%;padding:10px;border:1px solid #cbd6e1;border-radius:6px;background:#fff;font:12px/1.55 Consolas,"SFMono-Regular",monospace;resize:vertical;tab-size:2}
.practice-config-default textarea{border:0;border-top:1px solid #dbe3ea;border-radius:0 0 7px 7px;background:#f4f7fa}
.practice-config-editor-label{display:grid;gap:6px;margin:12px 0;font-size:13px;font-weight:700}
.practice-config-actions{display:flex;gap:7px;flex-wrap:wrap}
.practice-config-actions .practice-primary{background:#1f5f99}
.practice-generation-config-status{margin:6px 0 0;padding:7px 9px;border-left:3px solid #2f76ad;background:#f3f8fc;color:#365a79;font-size:12px}
#practice-config-samples{margin-top:10px}
#practice-config-samples h4{margin:8px 0}
@media(max-width:720px){.practice-config-actions{align-items:stretch}.practice-config-actions button{flex:1 1 46%}}


/* Generation profile hierarchy: low-frequency context, high-frequency lesson/date, technical footer */
.practice-generation-profile{padding-bottom:17px}
.practice-generation-profile-head{align-items:flex-start}
.practice-generation-form{display:grid;gap:12px;margin-top:14px}
.practice-generation-form label{display:grid;gap:5px;color:#40536b;font-size:13px;font-weight:700}
.practice-generation-form input,.practice-generation-form select{width:100%;min-height:39px;padding:7px 9px;border:1px solid #c7d4e0;border-radius:5px;background:#fff;color:#182c40;font-size:14px;font-weight:400}
.practice-generation-form input:focus,.practice-generation-form select:focus{border-color:#6e9cc5;outline:2px solid #dcebf7;outline-offset:0}
.practice-profile-scope{border:1px solid #d8e1ea;border-radius:7px;background:#f8fafc}
.practice-profile-scope>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;cursor:pointer;list-style:none}
.practice-profile-scope>summary::-webkit-details-marker{display:none}
.practice-profile-scope>summary>span{display:flex;align-items:center;gap:10px;min-width:0}
.practice-profile-scope>summary small{color:#74869a;font-size:10px;font-weight:700;letter-spacing:.08em}
.practice-profile-scope>summary strong{overflow:hidden;color:#263f57;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.practice-profile-scope>summary em{color:#718398;font-size:11px;font-style:normal;white-space:nowrap}
.practice-profile-scope[open]>summary{border-bottom:1px solid #e0e6ec;background:#f3f7fa}
.practice-profile-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:11px 12px 12px}
.practice-generation-primary{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(390px,.84fr);gap:12px}
.practice-generation-panel{min-width:0;padding:14px 15px;border:1px solid #d4dee8;border-radius:8px;background:#fff}
.practice-lesson-panel{border-top:3px solid #2a6fa8}
.practice-date-panel{border-top:3px solid #7a8da0}
.practice-generation-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.practice-generation-panel-head>div{display:grid;gap:1px}
.practice-generation-panel-head small{color:#2b6b9e;font-size:10px;font-weight:800;letter-spacing:.08em}
.practice-generation-panel-head h3{margin:0;color:#1d344b;font-size:17px}
.practice-generation-panel-head>span{max-width:180px;color:#7a8999;font-size:11px;line-height:1.35;text-align:right}
.practice-lesson-grid{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(260px,1.25fr);gap:10px}
.practice-knowledge-field{margin-top:10px}
.practice-knowledge-field input{min-height:36px;border-color:#dde5ec;background:#f7f9fb;color:#476078}
.practice-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.practice-date-panel .practice-generation-date-tools{margin:9px 0 10px;padding:0;border:0}
.practice-generation-date-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.practice-generation-date-tools>span{margin-right:2px;color:#718397;font-size:11px;font-weight:700}
.practice-generation-date-tools button{min-height:32px;padding:5px 10px;border-color:#c8d6e2;background:#f8fbfd;color:#365b7a;font-size:12px}
.practice-generation-date-tools button:hover{border-color:#7ea6c7;background:#eef6fb}
.practice-write-mode select{font-size:13px}
.practice-generation-footer{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:10px;align-items:stretch}
.practice-generation-footer .practice-secondary-settings{grid-column:auto;margin:0;padding:0;border:1px solid #dde4eb;border-radius:7px;background:#fafbfd}
.practice-generation-footer .practice-secondary-settings>summary{padding:10px 12px;cursor:pointer;color:#475f76;font-size:12px;font-weight:700}
.practice-generation-footer .practice-secondary-settings>summary span{margin-left:7px;color:#8593a2;font-weight:400}
.practice-generation-footer .practice-secondary-grid{padding:0 12px 12px;margin-top:0}
.practice-generation-system-state{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.9fr);gap:8px;align-items:stretch}
.practice-generation-system-state .practice-generation-config-status,.practice-generation-system-state .practice-form-note{display:flex;align-items:center;margin:0;min-height:42px;padding:8px 10px;border-radius:6px}
.practice-generation-system-state .practice-generation-config-status{border-left:3px solid #2f76ad;background:#f1f7fb;color:#365a79}
.practice-generation-system-state .practice-form-note{border:1px solid #e0e6ec;background:#fafbfc;color:#738294;font-size:11px;line-height:1.35}
@media(max-width:1120px){.practice-generation-primary{grid-template-columns:1fr}.practice-generation-footer{grid-template-columns:1fr}.practice-generation-system-state{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.practice-profile-scope>summary{align-items:flex-start;flex-direction:column;gap:3px}.practice-profile-scope-grid,.practice-lesson-grid,.practice-date-grid,.practice-generation-system-state{grid-template-columns:1fr}.practice-generation-panel-head{display:block}.practice-generation-panel-head>span{display:block;margin-top:3px;max-width:none;text-align:left}.practice-generation-footer .practice-secondary-grid{grid-template-columns:1fr}}


/* Persistent generation action dock */
.practice-submit-dock-spacer{height:92px}
.practice-submit-dock{position:fixed;left:50%;bottom:max(12px,env(safe-area-inset-bottom));z-index:80;width:min(1496px,calc(100vw - 44px));min-height:74px;margin:0;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 14px 11px 18px;border:1px solid #b8c9d8;border-radius:10px;background:rgba(255,255,255,.97);box-shadow:0 12px 34px #10283f2b,0 2px 7px #10283f1f;backdrop-filter:blur(10px)}
.practice-submit-copy{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:10px;min-width:0}
.practice-submit-copy>span{grid-column:1/-1;margin-bottom:2px;color:#6e8194;font:700 9px/1.2 Consolas,"SFMono-Regular",monospace;letter-spacing:.12em}
.practice-submit-copy>strong{font-size:16px;color:#21394f;white-space:nowrap}
.practice-submit-copy>p{min-width:0;margin:0;color:#6b7d8e;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.practice-submit-dock[data-ready="true"]{border-color:#84abc9;box-shadow:0 14px 38px #0d477126,0 2px 7px #10283f1f}
.practice-submit-dock[data-ready="true"] .practice-submit-copy>span{color:#2a6e9f}
.practice-submit-dock #practice-generate{display:grid;gap:1px;min-width:270px;min-height:50px;padding:8px 20px;border-radius:8px;background:#1767a3;border-color:#1767a3;box-shadow:0 7px 16px #1767a32e;font-size:15px}
.practice-submit-dock #practice-generate:hover:not(:disabled){background:#10598e;border-color:#10598e;transform:translateY(-1px);box-shadow:0 9px 20px #1767a33a}
.practice-submit-dock #practice-generate span{font-weight:800;letter-spacing:.01em}
.practice-submit-dock #practice-generate small{color:#dceaf5;font-size:10px;font-weight:500}
.practice-submit-dock #practice-generate:disabled{cursor:not-allowed;background:#a8b7c4;border-color:#a8b7c4;box-shadow:none;opacity:.72}
.practice-submit-dock #practice-generate:disabled small{color:#edf2f5}
@media(max-width:760px){.practice-submit-dock{bottom:max(7px,env(safe-area-inset-bottom));width:calc(100vw - 14px);min-height:72px;gap:8px;padding:9px 9px 9px 12px}.practice-submit-copy{display:block;min-width:0}.practice-submit-copy>span{display:none}.practice-submit-copy>strong{display:block;font-size:13px}.practice-submit-copy>p{max-width:42vw;margin-top:2px;font-size:10px}.practice-submit-dock #practice-generate{min-width:170px;min-height:48px;padding:7px 10px;font-size:13px}.practice-submit-dock #practice-generate small{font-size:9px}.practice-submit-dock-spacer{height:86px}}


/* Compact flat-library table: core fields first, technical fields on demand */
.practice-library-table-wrap{max-height:68vh;overflow:auto;border:1px solid #d7e0e8;border-radius:6px;scrollbar-gutter:stable both-edges;background:#fff}
.practice-library-flat-table{table-layout:fixed;width:100%;min-width:1040px;margin:0;font-size:11.5px}
.practice-library-flat-table .col-select{width:44px}
.practice-library-flat-table .col-date{width:96px}
.practice-library-flat-table .col-group{width:62px}
.practice-library-flat-table .col-block{width:126px}
.practice-library-flat-table .col-no{width:48px}
.practice-library-flat-table .col-difficulty{width:58px}
.practice-library-flat-table .col-question{width:250px}
.practice-library-flat-table .col-answer{width:100px}
.practice-library-flat-table .col-status{width:68px}
.practice-library-flat-table .col-action{width:60px}
.practice-library-flat-table .col-technical{width:96px}
.practice-library-flat-table th,.practice-library-flat-table td{padding:6px 7px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.practice-library-flat-table th{top:0;z-index:3}
.practice-library-flat-table .practice-library-question-cell,.practice-library-flat-table .practice-library-answer-cell{white-space:normal;overflow-wrap:anywhere;line-height:1.35;text-overflow:clip}
.practice-library-flat-table .practice-library-question-cell{font-weight:600;color:#20364b}
.practice-library-flat-table .practice-technical-column{display:none}
.practice-library-flat-table.show-technical-columns{min-width:1650px}
.practice-library-flat-table.show-technical-columns .practice-technical-column{display:table-cell}
.practice-library-flat-table .practice-sticky-select{position:sticky;left:0;z-index:4;text-align:center}
.practice-library-flat-table .practice-sticky-date{position:sticky;left:44px;z-index:4}
.practice-library-flat-table thead .practice-sticky-select,.practice-library-flat-table thead .practice-sticky-date{z-index:6;background:#edf2f7}
.practice-library-flat-table tbody .practice-sticky-select,.practice-library-flat-table tbody .practice-sticky-date{background:#fff}
.practice-library-flat-table tbody tr:nth-child(even) .practice-sticky-select,.practice-library-flat-table tbody tr:nth-child(even) .practice-sticky-date{background:#f8fafc}
.practice-library-flat-table tbody tr:hover .practice-sticky-select,.practice-library-flat-table tbody tr:hover .practice-sticky-date{background:#eef4fb}
#practice-library-toggle-columns[aria-pressed="true"]{border-color:#78a0c2;background:#eef6fb;color:#245b8f}
@media(max-width:900px){.practice-library-table-wrap{max-height:72vh}.practice-library-flat-table{min-width:980px}.practice-library-flat-table .col-question{width:210px}.practice-library-flat-table .col-block{width:112px}}


/* Excel-inspired question library: teaching fields visible by default, management fields optional */
.practice-library-table-wrap{max-height:72vh;overflow:auto;margin:10px 0 0;border:1px solid #d6dfe8;border-radius:6px;background:#fff;scrollbar-gutter:stable}
.practice-library-flat-table{table-layout:fixed;width:max(100%,1172px);min-width:1172px;margin:0;font-size:11.5px}
.practice-library-flat-table .col-select{width:42px}
.practice-library-flat-table .col-date{width:92px}
.practice-library-flat-table .col-group{width:54px}
.practice-library-flat-table .col-block{width:125px}
.practice-library-flat-table .col-no{width:44px}
.practice-library-flat-table .col-category{width:92px}
.practice-library-flat-table .col-subcategory{width:132px}
.practice-library-flat-table .col-difficulty{width:62px}
.practice-library-flat-table .col-question{width:205px}
.practice-library-flat-table .col-answer{width:84px}
.practice-library-flat-table .col-requirement{width:98px}
.practice-library-flat-table .col-row{width:42px}
.practice-library-flat-table .col-column{width:42px}
.practice-library-flat-table .col-gold{width:58px}
.practice-library-flat-table th,.practice-library-flat-table td{padding:6px 7px;line-height:1.3;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.practice-library-flat-table .practice-library-question-cell,.practice-library-flat-table .practice-library-answer-cell,.practice-library-flat-table .practice-library-requirement-cell{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.practice-library-flat-table .practice-library-question-cell{font-weight:600;color:#20364b}
.practice-library-flat-table .practice-management-column{display:none}
.practice-library-flat-table.show-management-columns{width:max(100%,1425px);min-width:1425px}
.practice-library-flat-table.show-management-columns .practice-management-column{display:table-cell}
.practice-library-flat-table .practice-sticky-select{position:sticky;left:0;z-index:4;text-align:center}
.practice-library-flat-table .practice-sticky-date{position:sticky;left:42px;z-index:4}
.practice-library-flat-table thead th{position:sticky;top:0;z-index:3;background:#edf2f7}
.practice-library-flat-table thead .practice-sticky-select,.practice-library-flat-table thead .practice-sticky-date{z-index:6}
.practice-library-flat-table tbody .practice-sticky-select,.practice-library-flat-table tbody .practice-sticky-date{background:#fff}
.practice-library-flat-table tbody tr:nth-child(even) .practice-sticky-select,.practice-library-flat-table tbody tr:nth-child(even) .practice-sticky-date{background:#f8fafc}
.practice-library-flat-table tbody tr:hover .practice-sticky-select,.practice-library-flat-table tbody tr:hover .practice-sticky-date{background:#eef4fb}
#practice-library-toggle-columns[aria-pressed="true"]{border-color:#78a0c2;background:#eef6fb;color:#245b8f}
@media(max-width:1100px){.practice-library-flat-table{width:1172px}.practice-library-table-wrap{max-height:74vh}}


/* Phase D completion: section reroll, immutable version diff and publish workflow */
.practice-editor-section-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}
.practice-editor-section-tools button{min-height:35px}
.practice-version-manager{margin-top:14px}
.practice-version-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.practice-version-status strong,.practice-version-status span{padding:5px 8px;border-radius:5px;background:#f1f5f9;font-size:12px}
.practice-version-status strong{color:#255d89}.practice-version-status span{color:#66798b}
.practice-version-compare-bar{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr) auto;gap:8px;align-items:end;margin:14px 0}
.practice-version-compare-bar label{display:grid;gap:5px;color:#465b70;font-size:12px;font-weight:700}
.practice-version-compare-bar select{min-height:36px;padding:6px 8px;border:1px solid #cbd6e1;border-radius:5px;background:#fff}
.practice-version-compare-bar>span{align-self:center;padding-bottom:8px;color:#7890a4}
.practice-version-diff{border:1px solid #dbe3ea;border-radius:7px;background:#fafcfd;padding:10px}
.practice-version-diff-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-bottom:9px;border-bottom:1px solid #e4e9ee}
.practice-version-diff-summary>*{padding:3px 7px;border-radius:4px;background:#eef3f7;font-size:11px}
.practice-version-diff-summary>span:first-child{background:#e8f1f8;color:#2b648f;font-weight:700}
.practice-version-diff-list{display:grid;gap:7px;margin-top:9px}
.practice-version-change{padding:8px 9px;border:1px solid #dde5ec;border-left-width:4px;border-radius:5px;background:#fff}
.practice-version-change.is-modified{border-left-color:#d49a3f}.practice-version-change.is-added{border-left-color:#3c916b}.practice-version-change.is-deleted{border-left-color:#c75d55}
.practice-version-change header{display:flex;gap:8px;align-items:center;margin-bottom:5px}.practice-version-change header b{font-size:11px}.practice-version-change header span{color:#64798e;font-size:11px}
.practice-version-change>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.practice-version-change>div span{padding:6px 7px;border-radius:4px;background:#f7f9fb;font-size:12px;overflow-wrap:anywhere}
.practice-version-list{display:grid;gap:6px;margin-top:12px}
.practice-version-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border:1px solid #dbe3ea;border-radius:6px;background:#fff}
.practice-version-card.is-published{border-color:#9fc7b2;background:#f4fbf7}
.practice-version-card>div:first-child{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center}
.practice-version-card strong{font-size:14px;color:#264a68}.practice-version-card span{font-size:11px;color:#597085}.practice-version-card small{grid-column:1/-1;color:#8a98a6}
.practice-version-card .practice-actions{margin:0}
#practice-editor-publish:not(:disabled){border-color:#2f865f;background:#eef8f2;color:#256e4f;font-weight:700}
#practice-editor-published-print:disabled{opacity:.45}
@media(max-width:760px){.practice-version-compare-bar{grid-template-columns:1fr}.practice-version-compare-bar>span{display:none}.practice-version-change>div{grid-template-columns:1fr}.practice-version-card{align-items:flex-start;flex-direction:column}.practice-version-card .practice-actions{width:100%}}


/* Live average-difficulty controls inside paper-layout modules */
.practice-module-difficulty{display:flex;align-items:center;gap:5px;min-height:22px;margin:4px 0 3px;color:#63778c;font-size:10px}
.practice-module-difficulty>span{font-weight:700;white-space:nowrap}
.practice-module-difficulty>strong{min-width:28px;color:#315a7d;font-size:10px;white-space:nowrap}
.practice-module-difficulty>small{margin-left:auto;color:#8a99a8;font-size:9px;white-space:nowrap}
.practice-module-difficulty-levels{display:grid;grid-template-columns:repeat(5,18px);gap:2px}
.practice-module-difficulty-levels button{width:18px;height:18px;min-height:18px!important;padding:0!important;border:1px solid #c9d5e0;border-radius:3px!important;background:#f8fafc;color:#607489;font-size:9px!important;line-height:16px}
.practice-module-difficulty-levels button:hover{border-color:#7fa5c5;background:#eef5fa}
.practice-module-difficulty-levels button.is-active{border-color:#2e74aa;background:#dcecf8;color:#174f7b;font-weight:800;box-shadow:0 0 0 1px #2e74aa22}
.practice-layout-module[data-rows="1"] .practice-module-difficulty{margin:2px 0;gap:4px;min-height:18px}
.practice-layout-module[data-rows="1"] .practice-module-difficulty-levels{grid-template-columns:repeat(5,16px)}
.practice-layout-module[data-rows="1"] .practice-module-difficulty-levels button{width:16px;height:16px;min-height:16px!important;line-height:14px}
.practice-layout-module[data-rows="1"] .practice-module-difficulty>strong,.practice-layout-module[data-rows="1"] .practice-module-difficulty>small{display:none}
.practice-layout-module[data-rows="1"] .practice-family-chips{margin-bottom:0}
.practice-layout-module[data-rows="1"] .practice-module-controls{margin-top:1px}


/* Generation workspace refinement: explicit scope status + scalable class targets */
.practice-profile-scope-grid{grid-template-columns:minmax(230px,.34fr) minmax(0,1fr);gap:12px;align-items:stretch}
.practice-scope-status{display:flex;min-width:0;flex-direction:column;padding:15px 16px;border:1px solid #c9d9e6;border-left:4px solid #2e74aa;border-radius:7px;background:#f4f9fd}
.practice-scope-status>span{color:#6f8498;font-size:10px;font-weight:800;letter-spacing:.08em}
.practice-scope-status>strong{margin-top:7px;color:#174f7b;font-size:24px;line-height:1.2;overflow-wrap:anywhere}
.practice-scope-status>small{margin-top:7px;color:#405d75;font-size:12px;font-weight:800}
.practice-scope-status>p{margin:auto 0 0;padding-top:13px;color:#7a8d9e;font-size:10px;line-height:1.55}
.practice-scope-settings{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid #d8e2eb;border-radius:7px;background:#fff}
.practice-scope-settings-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.practice-scope-settings-head>div{display:grid;gap:2px}
.practice-scope-settings-head span{color:#75889a;font-size:10px;font-weight:800;letter-spacing:.08em}
.practice-scope-settings-head strong{color:#294760;font-size:14px}
.practice-scope-settings-head>small{color:#7b8b9a;font-size:10px;white-space:nowrap}
.practice-class-targets{display:grid;gap:8px;padding:0;border:0;background:transparent}
.practice-class-targets-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.practice-class-targets-head>div{display:flex;align-items:baseline;gap:9px;min-width:0}
.practice-class-targets-head span{color:#425b72;font-size:12px;font-weight:800}
.practice-class-targets-head strong{color:#1e5f94;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.practice-class-target-tools{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:6px}
.practice-class-target-tools input{min-height:34px!important}
.practice-class-target-tools button{min-height:34px;padding:5px 9px;font-size:11px}
.practice-class-target-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:6px;max-height:150px;overflow:auto;padding:7px;border:1px solid #e0e7ee;border-radius:5px;background:#f8fafc}
.practice-class-target-list label{display:flex!important;align-items:center;gap:7px;min-width:0;padding:8px 10px;border:1px solid #d9e3ec;border-radius:5px;background:#fff;color:#334e67;font-size:13px!important;font-weight:700!important;cursor:pointer}
.practice-class-target-list label:has(input:checked){border-color:#79a6c9;background:#eaf4fb;color:#1d5d8f}
.practice-class-target-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.practice-class-target-list input{width:auto!important;min-height:0!important;margin:0}
.practice-scope-term-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:2px}

.practice-paper-layout-card .practice-layout-wrap{align-items:start}
.practice-paper-layout-card .practice-inspector{align-self:start}
.practice-paper-layout-card .practice-layout{grid-template-rows:repeat(6,108px);grid-auto-rows:108px}
.practice-paper-layout-card .practice-layout-module{overflow:hidden}
.practice-paper-layout-card .practice-layout-module[data-rows="1"]{padding-top:7px;padding-bottom:6px}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-layout-module-head{flex-wrap:nowrap}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-drag-handle{display:none}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-family-chips{flex-wrap:nowrap;overflow:hidden}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-module-difficulty{min-height:16px}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-module-controls{flex-wrap:nowrap}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-module-controls .practice-sync-module{margin-left:auto}
.practice-paper-layout-card .practice-layout-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin:14px 0 0;padding:10px 12px}
.practice-paper-layout-card .practice-layout-summary h3{grid-column:1/-1;margin:0 0 4px;font-size:13px}
.practice-paper-layout-card .practice-layout-summary p{display:grid;grid-template-columns:1fr;gap:2px;padding:7px 10px;border:0;border-right:1px solid #e1e7ed}
.practice-paper-layout-card .practice-layout-summary p:last-child{border-right:0}
.practice-paper-layout-card .practice-layout-summary p strong{font-size:11px}
.practice-paper-layout-card .practice-layout-summary p span{text-align:left;font-size:10px}
.practice-paper-layout-card .practice-layout-summary hr{display:none}

.practice-setup-root{padding-bottom:82px}
.practice-submit-dock{position:fixed;left:0;right:0;bottom:0;z-index:80;width:100%;min-height:70px;margin:0;transform:none;padding:0;border:0;border-top:1px solid #b9c9d7;border-radius:0;background:#f8fafc;box-shadow:0 -5px 14px #17324a12;backdrop-filter:none}
.practice-submit-dock[data-ready="true"]{border-color:#8eb2cd;box-shadow:0 -5px 14px #17324a12}
.practice-submit-dock-inner{width:min(1496px,calc(100vw - 44px));min-height:69px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 0}
.practice-submit-dock #practice-generate{min-width:286px}
@media(max-width:900px){
 .practice-profile-scope-grid{grid-template-columns:1fr}
 .practice-scope-status>p{margin-top:8px}
 .practice-class-target-tools{grid-template-columns:1fr 1fr}.practice-class-target-tools input{grid-column:1/-1}
 .practice-paper-layout-card .practice-layout{grid-template-rows:repeat(6,104px);grid-auto-rows:104px}
 .practice-submit-dock-inner{width:calc(100vw - 20px)}
}
@media(max-width:620px){
 .practice-scope-settings-head,.practice-class-targets-head{align-items:flex-start;flex-direction:column;gap:3px}
 .practice-scope-settings-head>small{white-space:normal}
 .practice-class-target-tools,.practice-scope-term-grid{grid-template-columns:1fr}
 .practice-class-target-tools input{grid-column:auto}
 .practice-class-target-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .practice-scope-status>strong{font-size:21px}
 .practice-submit-dock-inner{gap:8px}.practice-submit-copy>p{max-width:40vw}
}


/* True frozen generation workspace: the page scrolls above the bottom action row instead of behind it */
.practice-center.has-generation-dock{height:var(--practice-frozen-height,calc(100vh - 120px));display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.practice-center.has-generation-dock>.practice-heading,.practice-center.has-generation-dock>.practice-toolbar{flex:0 0 auto}
.practice-center.has-generation-dock>.practice-page{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 6px 18px 0;scrollbar-gutter:stable}
.practice-center.has-generation-dock>.practice-submit-dock{position:static;left:auto;right:auto;bottom:auto;z-index:auto;flex:0 0 auto;width:auto;min-height:70px;margin:0 -22px;padding:0 22px;transform:none;border:0;border-top:1px solid #b9c9d7;border-radius:0;background:#f8fafc;box-shadow:none}
.practice-center.has-generation-dock>.practice-submit-dock[data-ready="true"]{border-top-color:#7fa9c8;box-shadow:none}
.practice-center.has-generation-dock>.practice-submit-dock .practice-submit-dock-inner{width:100%;min-height:69px;margin:0;padding:8px 0}
.practice-center.has-generation-dock .practice-setup-root{padding-bottom:0}
@media(max-width:760px){
 .practice-center.has-generation-dock{height:var(--practice-frozen-height,calc(100vh - 96px))}
 .practice-center.has-generation-dock>.practice-submit-dock{margin:0 -12px;padding:0 12px}
 .practice-center.has-generation-dock>.practice-page{padding-right:0}
}


/* Generation workspace v2: keep the browser's main scrollbar, reserve space for a flat frozen footer */
.practice-center.has-generation-dock{height:auto!important;display:block!important;overflow:visible!important;padding-bottom:92px!important}
.practice-center.has-generation-dock>.practice-heading,.practice-center.has-generation-dock>.practice-toolbar{display:initial}
.practice-center.has-generation-dock>.practice-page{display:block;min-height:0;overflow:visible!important;padding:0!important;scrollbar-gutter:auto}
.practice-center.has-generation-dock>.practice-submit-dock{position:fixed!important;left:50%!important;right:auto!important;bottom:0!important;z-index:80!important;width:min(1496px,calc(100vw - 44px))!important;min-height:66px;margin:0!important;padding:0 14px!important;transform:translateX(-50%)!important;border:1px solid #b9c9d7!important;border-bottom:0!important;border-radius:8px 8px 0 0!important;background:#f8fafc!important;box-shadow:0 -3px 10px #17324a12!important}
.practice-center.has-generation-dock>.practice-submit-dock .practice-submit-dock-inner{width:100%;min-height:65px;margin:0;padding:7px 0}
.practice-center.has-generation-dock .practice-setup-root{padding-bottom:12px!important}

/* One-row modules stay readable when a fourth question section is added */
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-layout-scribble{display:none}
.practice-paper-layout-card .practice-layout-module[data-rows="1"]{padding:6px 8px}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-module-controls{gap:4px}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-capacity{font-size:9px}
.practice-paper-layout-card .practice-layout-module[data-rows="1"] .practice-sync-module{padding:2px 5px!important;font-size:9px!important}

/* The live preview now renders the exact HTML used by PDF/print */
.practice-print-preview-wrap{position:relative;margin:0 auto;overflow:hidden;background:#fff;box-shadow:0 12px 28px #20364e25}
.practice-print-preview-wrap[hidden]{display:none!important}
.practice-print-preview-wrap iframe{position:absolute;top:0;left:0;border:0;background:#fff;transform-origin:top left}
.practice-preview-shell:has(.practice-print-preview-wrap:not([hidden])){display:flex;justify-content:center;align-items:flex-start;min-height:0;padding:12px;overflow:hidden;background:#dfe6ee}
@media(max-width:760px){
 .practice-center.has-generation-dock{padding-bottom:82px!important}
 .practice-center.has-generation-dock>.practice-submit-dock{width:calc(100vw - 14px)!important;padding:0 8px!important}
 .practice-center.has-generation-dock>.practice-submit-dock .practice-submit-dock-inner{min-height:61px}
}


/* Generation action v3: independent right-side floating summary; do not alter toolbar/page flow */
.practice-setup-root{padding-bottom:12px!important}
.practice-submit-dock{position:fixed!important;left:auto!important;right:18px!important;top:180px!important;bottom:auto!important;z-index:90!important;width:250px!important;min-height:0!important;margin:0!important;transform:none!important;display:block!important;padding:0!important;border:1px solid #b9c9d7!important;border-radius:10px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 12px 28px #17324a24!important;backdrop-filter:blur(8px)}
.practice-submit-dock-inner{display:grid!important;gap:10px;width:100%!important;min-height:0!important;margin:0!important;padding:13px!important}
.practice-submit-copy{display:block!important}
.practice-submit-copy>span{display:block!important;margin:0 0 3px!important;color:#6e8194;font:700 9px/1.2 Consolas,"SFMono-Regular",monospace;letter-spacing:.12em}
.practice-submit-copy>strong{display:block;font-size:15px!important;color:#21394f;white-space:normal!important}
.practice-submit-copy>p{margin:5px 0 0!important;color:#6b7d8e;font-size:11px!important;line-height:1.45;white-space:normal!important;overflow:visible!important}
.practice-submit-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid #dde5ec;border-radius:6px;overflow:hidden;background:#dde5ec}
.practice-submit-facts>div{min-width:0;padding:7px 8px;background:#f8fafc}
.practice-submit-facts span{display:block;margin-bottom:2px;color:#8190a0;font-size:9px}
.practice-submit-facts strong{display:block;color:#29455f;font-size:10.5px;line-height:1.3;overflow-wrap:anywhere}
.practice-submit-dock #practice-generate{width:100%!important;min-width:0!important;min-height:50px!important;padding:8px 10px!important;border-radius:7px!important;font-size:13px!important;box-shadow:none!important}
.practice-submit-dock[data-ready="true"]{border-color:#7fa9c8!important;box-shadow:0 14px 30px #14557b22!important}
.practice-submit-dock[data-ready="true"] .practice-submit-copy>span{color:#2a6e9f}
@media(max-width:1580px){
 .practice-submit-dock{right:10px!important;top:auto!important;bottom:14px!important;width:218px!important}
 .practice-submit-facts{grid-template-columns:1fr}
 .practice-submit-facts>div:nth-child(n+4){display:none}
}
@media(max-width:1180px){
 .practice-submit-dock{position:sticky!important;right:auto!important;top:auto!important;bottom:8px!important;width:100%!important;margin:16px 0 0!important}
 .practice-submit-facts{grid-template-columns:repeat(3,1fr)}
 .practice-submit-facts>div:nth-child(n+4){display:block}
}

/* Keep the original toolbar/header layout untouched. */
.practice-toolbar{display:flex!important;justify-content:space-between!important;align-items:end!important}
.practice-context{display:flex!important}

/* Exact print preview framing */
.practice-print-preview-wrap{position:relative;margin:0 auto;overflow:hidden;background:#fff;box-shadow:0 12px 28px #20364e25}
.practice-print-preview-wrap[hidden]{display:none!important}
.practice-print-preview-wrap iframe{position:absolute;top:0;left:0;border:0;background:#fff;transform-origin:top left}


/* Generation summary v4: larger, clearer, and directly editable */
.practice-submit-dock{width:318px!important;right:24px!important;top:156px!important}
.practice-submit-dock-inner{gap:12px!important;padding:16px!important}
.practice-submit-copy>strong{font-size:18px!important}
.practice-submit-copy>p{font-size:12px!important}
.practice-submit-facts{grid-template-columns:1fr 1fr!important;gap:6px!important;border:0!important;background:transparent!important;overflow:visible!important}
.practice-submit-facts>button,.practice-submit-facts>div{min-width:0;min-height:76px;padding:9px 10px!important;border:1px solid #dbe4ec!important;border-radius:7px!important;background:#f8fafc!important;text-align:left}
.practice-submit-facts>button{cursor:pointer}
.practice-submit-facts>button:hover{border-color:#80a7c8!important;background:#eef6fb!important}
.practice-submit-facts span{font-size:10px!important}
.practice-submit-facts strong{font-size:12px!important}
.practice-submit-facts small{display:block;margin-top:4px;color:#8190a0;font-size:9px;line-height:1.25}
#practice-submit-days{font-size:26px!important;line-height:1!important;color:#175d91!important}
.practice-submit-mode-control select{width:100%;min-height:30px;margin-top:3px;padding:4px 6px;border:1px solid #c8d6e2;border-radius:5px;background:#fff;color:#274760;font-size:11px}
.practice-submit-dock #practice-generate{min-height:62px!important}
.practice-submit-dock #practice-generate .practice-generate-main{font-size:24px!important;font-weight:900!important;line-height:1.05}
.practice-submit-dock #practice-generate small{font-size:10px!important}
.practice-jump-highlight{animation:practiceJumpPulse .9s ease}
@keyframes practiceJumpPulse{0%,100%{box-shadow:0 0 0 0 #2e76ad00}35%{box-shadow:0 0 0 4px #2e76ad38}}
@media(max-width:1580px){.practice-submit-dock{width:280px!important;right:12px!important;top:150px!important;bottom:auto!important}.practice-submit-facts{grid-template-columns:1fr 1fr!important}.practice-submit-facts>div:nth-child(n+4){display:block!important}}
@media(max-width:1180px){.practice-submit-dock{position:sticky!important;width:100%!important;right:auto!important;top:auto!important;bottom:8px!important}.practice-submit-facts{grid-template-columns:repeat(3,1fr)!important}}

/* Print center: large preview, day navigation, floating print summary */
.practice-print-settings{margin-right:0}
.practice-print-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;margin-top:12px}
.practice-print-form label{display:grid;gap:5px;color:#41586e;font-size:12px;font-weight:700}
.practice-print-form input,.practice-print-form select{min-height:38px;width:100%;padding:7px 9px;border:1px solid #c9d5e0;border-radius:5px;background:#fff}
.practice-print-title-field{grid-column:span 2}
.practice-encouragement-settings{margin-top:14px;border:1px solid #d9e2ea;border-radius:7px;background:#fafcfd}
.practice-encouragement-settings>summary{padding:9px 11px;cursor:pointer;color:#36536d;font-size:12px;font-weight:800}
.practice-encouragement-settings>summary span{margin-left:8px;color:#8795a3;font-weight:400}
.practice-encouragement-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:0 11px 11px}
.practice-encouragement-body textarea{width:100%;min-height:116px;padding:8px 10px;border:1px solid #cbd6e1;border-radius:5px;background:#fff;font:12px/1.55 "Microsoft YaHei",sans-serif;resize:vertical}
.practice-encouragement-body>div{display:flex;flex-direction:column;justify-content:flex-end;gap:7px;min-width:126px}
.practice-encouragement-body>div span{color:#6e8193;font-size:11px}
.practice-print-range-result{margin-top:9px;color:#61778a;font-size:11px}
.practice-print-preview-card{padding-bottom:14px}
.practice-print-preview-head{align-items:flex-start}
.practice-print-preview-actions{display:grid;justify-items:end;gap:10px;min-width:280px}
.practice-print-refresh-button{min-height:40px;padding:8px 14px;border:1px solid #68a9d6;border-radius:8px;background:linear-gradient(180deg,#f7fcff,#e6f4fb);color:#176391;font-weight:900;box-shadow:0 5px 14px #1d6c9d1c}
.practice-print-refresh-button:hover{border-color:#2e85bc;background:#e9f7fe}
.practice-print-refresh-button[data-busy="true"]{background:#eef3f6;color:#70818d;box-shadow:none}
@media(max-width:760px){.practice-print-preview-head{display:grid}.practice-print-preview-actions{justify-items:start;min-width:0;width:100%}}
.practice-print-preview-shell{height:min(82vh,1040px);min-height:720px;overflow:auto;padding:18px;background:#dfe6ee;border:1px solid #d1dce6;border-radius:7px}
.practice-print-preview-shell iframe{display:block;width:100%;height:100%;min-height:980px;border:0;background:#e7e9e4}
.practice-print-day-nav{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;gap:10px;align-items:center;margin-top:10px}
.practice-print-day-nav input[type="range"]{width:100%}
.practice-print-float{position:fixed;right:24px;top:154px;z-index:92;width:318px;padding:16px;border:1px solid #b9c9d7;border-radius:10px;background:rgba(255,255,255,.97);box-shadow:0 12px 30px #17324a24;backdrop-filter:blur(8px)}
.practice-print-float h3{margin:2px 0 10px;color:#21394f;font-size:18px}
.practice-print-fact{display:block;width:100%;margin:6px 0;padding:9px 10px;border:1px solid #dce5ec;border-radius:7px;background:#f8fafc;text-align:left}
button.practice-print-fact{cursor:pointer}
button.practice-print-fact:hover{border-color:#80a7c8;background:#eef6fb}
.practice-print-fact span,.practice-print-mode>span{display:block;color:#8190a0;font-size:10px}
.practice-print-fact strong{display:block;margin-top:2px;color:#274760;font-size:13px}
.practice-print-fact:first-of-type strong{font-size:27px;line-height:1;color:#175d91}
.practice-print-fact small{display:block;margin-top:4px;color:#7b8c9c;font-size:9px}
.practice-print-mode{margin:8px 0;padding:9px 10px;border:1px solid #dce5ec;border-radius:7px;background:#f8fafc}
.practice-print-mode>div{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}
.practice-print-mode button{min-height:34px;padding:5px;border:1px solid #c7d4df;border-radius:5px;background:#fff;color:#4d6579}
.practice-print-mode button.is-active{border-color:#2d75ab;background:#e6f1f9;color:#165a8c;font-weight:800}
.practice-print-save{display:grid!important;width:100%;min-height:58px!important;margin-top:10px}
.practice-print-save span{font-size:17px;font-weight:900}
.practice-print-save small{font-size:9px!important}
@media(max-width:1580px){.practice-print-float{right:12px;width:280px}.practice-print-form{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-print-preview-shell{height:76vh}}
@media(max-width:1180px){.practice-print-float{position:sticky;right:auto;top:auto;bottom:8px;width:100%;margin-top:14px}.practice-print-form{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-print-preview-shell{min-height:640px}.practice-print-title-field{grid-column:1/-1}}
@media(max-width:680px){.practice-print-form{grid-template-columns:1fr}.practice-print-title-field{grid-column:auto}.practice-encouragement-body{grid-template-columns:1fr}.practice-print-preview-shell{height:70vh;min-height:520px;padding:8px}.practice-print-day-nav{grid-template-columns:1fr 1fr}.practice-print-day-nav input{grid-column:1/-1;grid-row:1}}


/* Phase E1: teacher check-in workspace */
.practice-checkin-hero{display:grid;gap:14px}
.practice-checkin-scope{display:grid;grid-template-columns:minmax(180px,240px) minmax(310px,1fr) minmax(280px,1.2fr);gap:12px;align-items:stretch}
.practice-checkin-scope>label{display:grid;gap:5px;color:#486078;font-size:11px;font-weight:800}
.practice-checkin-scope select,.practice-checkin-scope input{min-height:38px;width:100%;padding:7px 9px;border:1px solid #c9d5e0;border-radius:5px;background:#fff}
.practice-checkin-day-nav{display:grid;grid-template-columns:38px minmax(150px,1fr) auto 38px;gap:6px;align-items:end}
.practice-checkin-day-nav>label{display:grid;gap:5px;color:#486078;font-size:11px;font-weight:800}
.practice-checkin-day-nav button{min-height:38px}
.practice-checkin-practice{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:9px;align-content:center;padding:10px 12px;border:1px solid #d6e1ea;border-left-width:4px;border-radius:7px;background:#f8fafc}
.practice-checkin-practice>span{grid-row:1/4;align-self:center;color:#8392a0;font-size:9px;font-weight:800;letter-spacing:.08em;writing-mode:vertical-rl}
.practice-checkin-practice strong{color:#2f4b63;font-size:14px}
.practice-checkin-practice small{margin-top:2px;color:#6e8192;font-size:10px;line-height:1.35}
.practice-checkin-practice em{margin-top:4px;color:#80909f;font-size:9px;font-style:normal}
.practice-checkin-practice.is-published{border-left-color:#3d936b;background:#f4faf7}
.practice-checkin-practice.is-published strong{color:#286e50}
.practice-checkin-practice.is-draft{border-left-color:#d39b48;background:#fffaf2}
.practice-checkin-practice.is-draft strong{color:#8d6120}
.practice-checkin-practice.is-missing{border-left-color:#9aa9b6}
.practice-checkin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.practice-checkin-metrics article{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:12px 13px;border:1px solid #d8e2eb;border-radius:7px;background:#fff}
.practice-checkin-metrics span{color:#718497;font-size:10px;font-weight:700}
.practice-checkin-metrics strong{grid-row:1/3;grid-column:2;font-size:24px;color:#254a68}
.practice-checkin-metrics small{color:#91a0ad;font-size:9px}
.practice-checkin-roster-card{padding-bottom:10px}
.practice-checkin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.practice-checkin-filters{display:flex;gap:5px;flex-wrap:wrap}
.practice-checkin-filters button{min-height:32px;padding:5px 10px}
.practice-checkin-filters button.is-active{border-color:#2e74aa;background:#e6f1f9;color:#175b8d;font-weight:800}
#practice-checkin-search{width:min(320px,100%);min-height:34px;padding:6px 9px;border:1px solid #cbd7e1;border-radius:5px}
.practice-checkin-bulk{display:flex;align-items:center;gap:14px;padding:9px 10px;border:1px solid #d9e3eb;border-radius:6px;background:#f8fafc}
.practice-checkin-bulk>label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700}
.practice-checkin-bulk>span{color:#6c8194;font-size:11px}
.practice-checkin-bulk>div{display:flex;gap:6px;margin-left:auto}
.practice-checkin-bulk button{min-height:33px;padding:5px 10px}
.practice-checkin-table-wrap{max-height:62vh;overflow:auto;margin-top:10px;border:1px solid #d7e1e9;border-radius:6px;scrollbar-gutter:stable}
.practice-checkin-table{margin:0;min-width:920px}
.practice-checkin-table thead th{position:sticky;top:0;z-index:2;background:#edf2f7}
.practice-checkin-table td,.practice-checkin-table th{padding:7px 8px;vertical-align:middle}
.practice-checkin-status{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}
.practice-checkin-status.is-normal{background:#dff3e8;color:#26704e}
.practice-checkin-status.is-makeup{background:#edf8e6;color:#557a32;border:1px solid #cde3bb}
.practice-checkin-status.is-missing{background:#eef2f5;color:#71808e}
.practice-checkin-row-actions{display:flex;gap:4px}
.practice-checkin-row-actions button{min-height:29px;padding:4px 7px;font-size:10px}
.practice-danger-outline{border-color:#e2b7b2!important;background:#fff8f7!important;color:#a34c45!important}
.practice-empty{padding:20px;text-align:center;color:#8190a0;font-size:12px}
@media(max-width:980px){
 .practice-checkin-scope{grid-template-columns:1fr 1fr}.practice-checkin-practice{grid-column:1/-1}
 .practice-checkin-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
 .practice-checkin-scope{grid-template-columns:1fr}.practice-checkin-day-nav{grid-template-columns:36px 1fr 58px 36px}
 .practice-checkin-metrics{grid-template-columns:1fr 1fr}.practice-checkin-toolbar{align-items:stretch;flex-direction:column}
 #practice-checkin-search{width:100%}.practice-checkin-bulk{align-items:flex-start;flex-wrap:wrap}.practice-checkin-bulk>div{width:100%;margin-left:0}.practice-checkin-bulk>div button{flex:1}
}


/* Curriculum-aware unit conversion scope controls */
.practice-block-row.is-unit-conversion{align-items:start}
.practice-block-row.is-unit-conversion>.practice-unit-scope-panel{grid-column:1/-1}
.practice-unit-inline-summary{display:block;padding:6px 8px;border:1px solid #d9e3eb;border-radius:5px;background:#f8fafc;color:#60758a;font-size:10px;line-height:1.35}
.practice-unit-scope-panel{margin-top:6px;padding:11px 12px;border:1px solid #d8e2ea;border-radius:7px;background:#fafcfd}
.practice-unit-scope-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px}
.practice-unit-scope-head>div{display:grid;gap:3px}
.practice-unit-scope-head>div strong{color:#2f4b63;font-size:12px}
.practice-unit-scope-head>div small{color:#8191a0;font-size:10px;line-height:1.4}
.practice-unit-decimal-toggle{display:grid!important;grid-template-columns:auto 1fr;gap:2px 7px;align-items:center;min-width:190px;padding:7px 9px;border:1px solid #d7e2eb;border-radius:6px;background:#fff}
.practice-unit-decimal-toggle input{grid-row:1/3;margin:0}
.practice-unit-decimal-toggle span{color:#34536e;font-size:11px;font-weight:800}
.practice-unit-decimal-toggle small{color:#8997a4;font-size:9px}
.practice-unit-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.practice-unit-groups fieldset{min-width:0;margin:0;padding:8px;border:1px solid #dce5ec;border-radius:6px;background:#fff}
.practice-unit-groups legend{padding:0 4px;color:#526d84;font-size:10px;font-weight:800}
.practice-unit-groups fieldset>label{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;align-items:center;padding:5px 3px;border-radius:4px}
.practice-unit-groups fieldset>label:hover{background:#f5f9fc}
.practice-unit-groups fieldset>label input{grid-row:1/3;margin:0}
.practice-unit-groups fieldset>label span{min-width:0;color:#304c65;font-size:10.5px;font-weight:700;line-height:1.3}
.practice-unit-groups fieldset>label small{color:#8997a5;font-size:9px;line-height:1.25}
.practice-unit-groups fieldset>label.is-locked{opacity:.48}
.practice-unit-groups fieldset>label.is-locked:hover{background:transparent}
@media(max-width:980px){
 .practice-unit-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
 .practice-unit-scope-head{flex-direction:column}
 .practice-unit-decimal-toggle{width:100%}
 .practice-unit-groups{grid-template-columns:1fr}
}


/* Phase E2: monthly teacher check-in matrix */
.practice-checkin-month-nav{grid-column:span 2;display:grid;grid-template-columns:38px minmax(150px,1fr) auto 38px;gap:6px;align-items:end}
.practice-checkin-month-nav>label{display:grid;gap:5px;color:#486078;font-size:11px;font-weight:800}
.practice-checkin-month-nav input{min-height:38px;width:100%;padding:7px 9px;border:1px solid #c9d5e0;border-radius:5px;background:#fff}
.practice-checkin-month-nav button{min-height:38px}
.practice-checkin-month-card{padding-bottom:14px}
.practice-checkin-month-card>.practice-card-head{align-items:flex-start}
.practice-checkin-month-legend{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.practice-checkin-month-legend span{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border:1px solid #d6e0e8;border-radius:999px;background:#f5f7f9;color:#6f7f8d;font-size:9px;font-weight:800}
.practice-checkin-month-legend span.is-normal{border-color:#afd8c1;background:#dff3e8;color:#26704e}
.practice-checkin-month-legend span.is-makeup{border-color:#cde3bb;background:#edf8e6;color:#557a32}
.practice-checkin-month-legend span.is-missing{background:#eef2f5;color:#71808e}
.practice-checkin-month-legend span.is-idle{background:#fafbfc;color:#9aa6b1}
.practice-checkin-month-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}
.practice-checkin-month-metrics article{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;padding:11px 12px;border:1px solid #d8e2eb;border-radius:7px;background:#fbfcfd}
.practice-checkin-month-metrics span{color:#718497;font-size:10px;font-weight:700}
.practice-checkin-month-metrics strong{grid-row:1/3;grid-column:2;color:#254a68;font-size:22px}
.practice-checkin-month-metrics small{color:#91a0ad;font-size:9px}
.practice-checkin-month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}
.practice-checkin-month-toolbar>div{display:flex;align-items:baseline;gap:9px}
.practice-checkin-month-toolbar strong{color:#244963;font-size:16px}
.practice-checkin-month-toolbar span{color:#7c8d9c;font-size:10px}
#practice-checkin-month-search{width:min(320px,100%);min-height:34px;padding:6px 9px;border:1px solid #cbd7e1;border-radius:5px;background:#fff}
.practice-checkin-month-table-wrap{max-height:64vh;overflow:auto;border:1px solid #d6e0e8;border-radius:7px;background:#fff;scrollbar-gutter:stable}
.practice-checkin-month-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:10px}
.practice-checkin-month-table th,.practice-checkin-month-table td{height:38px;min-width:34px;padding:0;border-right:1px solid #e6ebf0;border-bottom:1px solid #e6ebf0;text-align:center;background:#fff}
.practice-checkin-month-table thead th{position:sticky;top:0;z-index:5;height:45px;background:#eef3f7;color:#526b80;font-weight:800}
.practice-checkin-month-table thead th strong,.practice-checkin-month-table thead th small{display:block}
.practice-checkin-month-table thead th small{margin-top:2px;color:#8a99a6;font-size:8px;font-weight:600}
.practice-checkin-month-table thead th.is-active-day{background:#eaf2f8;color:#2a5f88}
.practice-checkin-month-table thead th.is-future-day{background:#f6f8fa;color:#9aa7b2}
.practice-checkin-month-table .is-sticky-seat{position:sticky;left:0;z-index:4;min-width:54px;width:54px;background:#f8fafc}
.practice-checkin-month-table .is-sticky-name{position:sticky;left:54px;z-index:4;min-width:116px;width:116px;padding:0 8px;text-align:left;background:#fff;box-shadow:2px 0 0 #dfe6ec}
.practice-checkin-month-table thead .is-sticky-seat,.practice-checkin-month-table thead .is-sticky-name{z-index:7;background:#eaf0f5}
.practice-checkin-month-table .is-sticky-name strong{display:block;overflow:hidden;color:#29465d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.practice-checkin-month-table .is-sticky-name small{display:block;overflow:hidden;color:#8997a4;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.practice-checkin-month-cell button{display:flex;width:100%;height:100%;min-height:37px;align-items:center;justify-content:center;padding:0;border:0;border-radius:0;background:transparent;font-size:10px;font-weight:900;cursor:pointer}
.practice-checkin-month-cell.is-normal,.practice-checkin-month-cell.is-normal button{background:#dff3e8;color:#26704e}
.practice-checkin-month-cell.is-makeup,.practice-checkin-month-cell.is-makeup button{background:#edf8e6;color:#557a32}
.practice-checkin-month-cell.is-missing,.practice-checkin-month-cell.is-missing button{background:#eef2f5;color:#83909b}
.practice-checkin-month-cell.is-future,.practice-checkin-month-cell.is-future button{background:#fafbfc;color:#b0bac3}
.practice-checkin-month-cell.is-idle,.practice-checkin-month-cell.is-idle button{background:#fff;color:#c0c8cf}
.practice-checkin-month-cell button:hover{outline:2px solid #73a2c6;outline-offset:-2px}
.practice-checkin-month-total{min-width:58px!important;background:#f8fafc!important;color:#2e566f}
.practice-checkin-month-total strong,.practice-checkin-month-total small{display:block}
.practice-checkin-month-total small{color:#8b99a5;font-size:8px}
.practice-checkin-month-makeup-total{min-width:48px!important;background:#f5faef!important;color:#5b7b39;font-weight:800}
@media(max-width:980px){
 .practice-checkin-month-nav{grid-column:1/-1}
 .practice-checkin-month-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
 .practice-checkin-month-nav{grid-template-columns:36px 1fr 58px 36px}
 .practice-checkin-month-card>.practice-card-head,.practice-checkin-month-toolbar{align-items:stretch;flex-direction:column}
 .practice-checkin-month-legend{justify-content:flex-start}
 .practice-checkin-month-metrics{grid-template-columns:1fr 1fr}
 #practice-checkin-month-search{width:100%}
}

/* Deployable MVP: shared status calendar and primary publish workflow */
.practice-workspace-body{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start;min-width:0;container-type:inline-size}
.practice-workspace-body>*{min-width:0}.practice-page{min-width:0;max-width:100%}
.curriculum-lesson.is-current{background:#7f1d32!important;border-color:#7f1d32!important;color:#fff!important;border-radius:8px}.curriculum-lesson.is-current strong,.curriculum-lesson.is-current span,.curriculum-lesson.is-current small{color:#fff!important}.curriculum-lesson.is-current .curriculum-lesson-actions button{background:#fff!important;color:#7f1d32!important;border-color:#fff!important}
.matrix-layout{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:12px}.matrix-scroll{overflow:auto;max-height:65vh;min-width:0}.matrix-table{border-collapse:separate;border-spacing:0;white-space:nowrap;font-size:12px}.matrix-table td,.matrix-table th{padding:9px;border-right:1px solid #dce4ec;border-bottom:1px solid #dce4ec;text-align:center;min-width:78px}.matrix-table thead th{position:sticky;top:0;z-index:2;background:#edf2f7}.matrix-table th:first-child{position:sticky;left:0;z-index:1;background:#edf2f7;min-width:150px;text-align:left}.matrix-table thead th:first-child{z-index:3}.matrix-table input{width:18px;height:18px;vertical-align:middle;margin-right:6px}.matrix-actions{display:flex;flex-direction:column;gap:8px;min-width:0}.matrix-actions input{width:100%;min-width:0}.matrix-actions label{font-size:12px}.matrix-actions button{min-height:40px}
@media(max-width:760px){.matrix-layout{grid-template-columns:minmax(0,1fr)}.matrix-actions{display:flex;flex-direction:row;flex-wrap:wrap}.matrix-actions label{flex-basis:100%}.practice-workspace-body{grid-template-columns:minmax(0,1fr)}}
@container(max-width:900px){.practice-status-calendar{display:none}.practice-page{grid-column:1/-1}.practice-action-rail{grid-column:1/-1}}
.roster-picker{width:min(480px,90vw);max-height:85vh;border:1px solid #cbd8e5;border-radius:14px;padding:20px}.roster-picker-scroll{max-height:45vh;overflow:auto;margin:12px 0}.roster-picker table{width:100%;border-collapse:collapse}.roster-picker td,.roster-picker th{padding:8px;border-bottom:1px solid #e2e8f0;text-align:left}.roster-picker input[type=checkbox]{width:18px;height:18px}
.practice-status-calendar{position:sticky;top:12px;min-width:0}
.practice-status-calendar-card{padding:12px;border:1px solid #d4e0e9;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 7px 20px #17324a12}
.practice-status-calendar-head{display:grid;grid-template-columns:34px 1fr 34px;gap:6px;align-items:center;margin-bottom:8px}
.practice-status-calendar-head strong{text-align:center;color:#294a63;font-size:13px}
.practice-status-calendar-head button{min-height:32px;padding:3px}
.practice-status-calendar-week,.practice-status-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.practice-status-calendar-week span{text-align:center;color:#8795a2;font-size:8px;font-weight:800}
.practice-status-calendar-grid{margin-top:4px;min-height:166px}
.practice-status-calendar-grid>.is-empty{min-height:30px}
.practice-status-day{display:grid;place-items:center;gap:0;min-width:0;min-height:32px;padding:2px;border:1px solid #e0e6eb;border-radius:6px;background:#f4f6f7;color:#75828d}
.practice-status-day b{font-size:10px;line-height:1}.practice-status-day small{font-size:8px;line-height:1}
.practice-status-day.state-draft{border-color:#e4c685;background:#fff7df;color:#8b641f}
.practice-status-day.state-published{border-color:#9dcfbb;background:#e8f7f0;color:#2b7759}
.practice-status-day:hover{transform:translateY(-1px);box-shadow:0 4px 10px #19394f18}
.practice-status-calendar-loading{grid-column:1/-1;padding:30px 0;text-align:center;color:#8b98a4;font-size:10px}
.practice-status-calendar-legend{display:grid;gap:3px;margin-top:9px;color:#748494;font-size:9px}
.practice-status-calendar-legend .state-draft{color:#8b641f}.practice-status-calendar-legend .state-published{color:#2b7759}
.practice-status-calendar-checkin{display:block;margin-top:9px;padding:8px;border-radius:6px;background:#edf5fa;color:#2f6286;text-align:center;font-size:10px;font-weight:800}
.practice-submit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:330px}
.practice-generate-publish{display:grid!important;place-items:center;min-height:58px!important;text-decoration:none}
.practice-generate-publish .practice-generate-main{font-size:17px;font-weight:900}
.practice-generate-publish small{font-size:9px}
.practice-print-save{min-height:72px!important;background:#1f6d51!important;border-color:#1f6d51!important}
.practice-print-save span{font-size:19px!important}
@media(max-width:1180px){.practice-workspace-body{grid-template-columns:1fr}.practice-status-calendar{position:static}.practice-status-calendar-card{max-width:none}.practice-status-calendar-grid{min-height:auto}.practice-submit-actions{min-width:0}}
@media(max-width:680px){.practice-status-calendar-card{padding:10px}.practice-submit-actions{grid-template-columns:1fr 1fr}.practice-generate-publish .practice-generate-main{font-size:14px}}

/* Monthly check-in heat calendar */
.practice-checkin-heat-wrap{margin:14px 0 16px;padding:14px;border:1px solid #d8e3eb;border-radius:10px;background:linear-gradient(145deg,#fbfdff,#f5faf8)}
.practice-checkin-heat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.practice-checkin-heat-head>div{display:grid;gap:2px}.practice-checkin-heat-head strong{color:#294a63;font-size:15px}.practice-checkin-heat-head span{color:#8293a0;font-size:9px}
.practice-checkin-heat-head a{padding:6px 9px;border-radius:6px;background:#e7f1f7;color:#2f6488;font-size:9px;font-weight:800}
.practice-checkin-heat-week,.practice-checkin-heat-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.practice-checkin-heat-week span{text-align:center;color:#8a98a5;font-size:9px;font-weight:800}
.practice-checkin-heat-calendar{margin-top:6px}.practice-checkin-heat-empty{min-height:62px}
.practice-checkin-heat-day{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 6px;min-height:62px;padding:7px;border:1px solid #dfe6eb;border-radius:8px;background:#f4f6f7;color:#71808d;text-align:left}
.practice-checkin-heat-day>span{font-size:11px;font-weight:900}.practice-checkin-heat-day>strong{justify-self:end;font-size:11px}.practice-checkin-heat-day>small{grid-column:1/-1;align-self:end;font-size:9px;font-weight:800}
.practice-checkin-heat-day.is-r0{background:#f5f0ee;color:#8c6b61}.practice-checkin-heat-day.is-r1{background:#eff7f3;color:#5c7d70}.practice-checkin-heat-day.is-r70{background:#dff2e9;color:#3d765e}.practice-checkin-heat-day.is-r90{background:#c9eadc;color:#286d50}.practice-checkin-heat-day.is-r100{background:#9ed8c0;color:#145c40;border-color:#7fc7aa}
.practice-checkin-heat-day.is-future,.practice-checkin-heat-day.is-idle{background:#f8fafb;color:#a2adb6}.practice-checkin-heat-day:hover{outline:2px solid #6fa6ca;outline-offset:1px}
@media(max-width:680px){.practice-checkin-heat-wrap{padding:10px}.practice-checkin-heat-day{min-height:54px;padding:5px}.practice-checkin-heat-day>strong{font-size:9px}.practice-checkin-heat-head{flex-direction:column}}

/* 2026-10-02: compact recent check-in feed in the floating calendar */
.practice-recent-checkins{margin-top:11px;padding-top:10px;border-top:1px solid #e3eaf0}
.practice-recent-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.practice-recent-head strong{font-size:11px;color:#294a63}.practice-recent-head small{font-size:8px;color:#8b98a4}
.practice-recent-list{display:grid;gap:4px}
.practice-recent-list>button{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:1px 6px;width:100%;min-height:42px;padding:6px 7px!important;border-radius:7px!important;text-align:left}
.practice-recent-list>button>span{display:grid;min-width:0}.practice-recent-list>button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#294a63}
.practice-recent-list>button small{font-size:8px;color:#8795a2}.practice-recent-list>button em{align-self:center;font-size:8px;font-style:normal;font-weight:900}
.practice-recent-list>button em.is-normal{color:#267052}.practice-recent-list>button em.is-makeup{color:#9a6527}
.practice-recent-list>button time{grid-column:2;font-size:8px;color:#a0abb5}
.practice-status-day.state-checkin{border-color:#79bca0;background:#dff4ea;color:#1f6e50;box-shadow:inset 0 0 0 1px #ffffff80}
/* Read-only challenge catalog beside check-in settings. */
.challenge-mode-admin{margin:16px 0}.challenge-mode-admin summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;min-height:44px;cursor:pointer}.challenge-mode-admin summary span{font-size:12px;color:#55748b}.challenge-mode-admin>p{font-size:13px;color:#55748b;line-height:1.7;margin:12px 0}.challenge-mode-admin ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.challenge-mode-admin li{display:flex;justify-content:space-between;gap:10px;padding:12px;border:1px solid #d5e5ef;border-radius:12px;font-size:12px}.challenge-mode-admin li span{color:#55748b;white-space:nowrap}.challenge-mode-admin fieldset{display:flex;flex-wrap:wrap;align-items:end;gap:12px;border:1px solid #d5e5ef;border-radius:12px;padding:14px}.challenge-mode-admin legend{font-size:12px;color:#55748b}.challenge-mode-admin label{display:grid;gap:6px;font-size:12px}.challenge-mode-admin select{min-height:40px;max-width:100%}.challenge-mode-admin fieldset:disabled{opacity:.65}

.practice-row-difficulties{padding:12px;border:1px solid #cbd8e5;border-radius:8px;background:#fff;margin-bottom:12px}.practice-row-difficulties fieldset{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0;border:1px solid #e1e9f1}.practice-row-difficulties label{display:flex;align-items:center;gap:6px;font-size:13px}.practice-row-difficulties select{width:76px;padding:4px}


.practice-paper-layout-card .practice-layout-wrap{grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:18px}
.practice-canvas{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;min-width:0;position:sticky;top:16px}
.practice-canvas-head{grid-column:1;flex-wrap:wrap;gap:8px}
.practice-canvas .practice-preview-shell{grid-column:1;grid-row:2;min-width:0;padding:12px;overflow:auto}
.practice-inspector .practice-row-difficulties{margin:16px 0 0;padding:10px;grid-column:auto;grid-row:auto}
.practice-row-difficulties fieldset{padding:6px}.practice-row-difficulties legend{font-size:12px}
.practice-paper-layout-card .practice-layout{display:flex;flex-direction:column;gap:8px}
.practice-paper-layout-card .practice-layout-module{min-height:145px;overflow:visible}
.practice-preview-shell[aria-busy="true"]{outline:2px solid #b5d4ee;outline-offset:-2px}
.practice-paper-layout-card{container-type:inline-size}
@container(max-width:1000px){.practice-paper-layout-card .practice-layout-wrap{grid-template-columns:1fr}.practice-canvas{position:static}.practice-paper-layout-card .practice-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto;grid-auto-rows:auto}.practice-paper-layout-card .practice-layout-module{grid-row:auto!important}.practice-inspector .practice-row-difficulties fieldset{display:inline-flex;vertical-align:top;margin-right:8px}.practice-canvas .practice-preview-shell{display:flex;justify-content:center}}
@container(max-width:650px){.practice-paper-layout-card .practice-layout{display:flex}}
@media(max-width:1150px){.practice-paper-layout-card .practice-layout-wrap{grid-template-columns:1fr}.practice-canvas{position:static}.practice-inspector .practice-row-difficulties fieldset{display:inline-flex;vertical-align:top;margin-right:8px}.practice-canvas .practice-preview-shell{display:flex;justify-content:center}}

.practice-module-difficulty{flex-wrap:wrap;gap:4px}.practice-module-difficulty small{flex-basis:100%;white-space:normal}
.practice-shortcut-options{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;border:1px solid #cbdbee;border-radius:8px;padding:12px;margin:12px 0}.practice-shortcut-options legend{font-weight:700}.practice-shortcut-options label{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center;font-size:13px}.practice-shortcut-options small{grid-column:2;color:#586d87}.practice-shortcut-options input{width:auto}
.practice-shortcut-reference-head,.practice-shortcut-cards{grid-column:1/-1}.practice-shortcut-levels{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.practice-shortcut-levels button{min-height:36px;padding:6px 10px;font-size:12px}.practice-shortcut-levels button[aria-pressed=true]{color:white;background:#195d91;border-color:#195d91}.practice-shortcut-level-note{margin:8px 0;color:#244869}.practice-shortcut-reference-head>small{display:block;margin-top:6px;line-height:1.7}.practice-shortcut-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}.practice-shortcut-card{background:white;border:1px solid #ccdbed;border-radius:8px;padding:12px;min-width:0}.practice-shortcut-card:has(input:checked){border-color:#69a6cf;background:#fbfdff}.practice-shortcut-card>label{display:flex;align-items:center;min-height:34px;gap:8px}.practice-shortcut-samples ol{padding-left:20px;margin:8px 0 0}.practice-shortcut-samples li{padding:7px 0;border-top:1px solid #eef3f8;line-height:1.65}.practice-shortcut-expression{display:block;white-space:normal;overflow-wrap:anywhere;font-size:13px;color:#225281;font-variant-numeric:tabular-nums}.practice-shortcut-samples details{font-size:12px;color:#657f98}.practice-shortcut-samples summary{cursor:pointer;font-size:11px}.practice-shortcut-samples details p{margin:6px 0}.practice-shortcut-samples details strong{color:#285347}.practice-shortcut-apply-level{font-size:12px}
