:root{--ink:#191c18;--muted:#5f625b;--paper:#fffaf0;--blue:#315fdd;--blue-soft:#e9efff;--green-soft:#e1f0e7;--yellow:#ffd84d;--shadow:8px 8px 0 var(--ink)}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}
button,input,textarea,select{font:inherit}
button{color:inherit}
.page-width,.site-nav{width:min(1320px,calc(100% - 40px));margin:0 auto}
.site-nav{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:30px}
.site-nav nav{display:flex;align-items:center;gap:24px}
.eyebrow,.step-label{display:block;margin:0 0 12px;font-size:.78rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.system-intro{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.65fr);gap:56px;align-items:end;padding:44px 0 42px}
.system-intro h1{max-width:900px;margin:0;font-size:clamp(3rem,5vw,5.6rem);line-height:.93;letter-spacing:-.055em;text-wrap:balance}
.system-intro>div>p{max-width:760px;margin:22px 0 0;color:#4e514b;font-size:1.14rem;line-height:1.58}
.system-note{padding:26px;border:2px solid var(--ink);background:#fff;box-shadow:var(--shadow)}
.system-note strong{font-size:1.25rem;line-height:1.2}
.system-note p{margin:10px 0 0;color:var(--muted);line-height:1.5}
.choice-band{padding:48px 0 52px;border-block:2px solid var(--ink);background:#fff}
.section-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:52px;align-items:end;margin-bottom:26px}
.section-heading h2,.editor-toolbar h2{margin:0;font-size:clamp(2.1rem,4vw,4.5rem);line-height:.96;letter-spacing:-.055em}
.section-heading p{margin:0;color:var(--muted);font-size:1rem;line-height:1.55}
.output-choice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.output-choice{min-height:108px;padding:17px;border:2px solid var(--ink);background:#fff;text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.output-choice:hover,.output-choice:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.output-choice[aria-pressed=true]{background:var(--blue-soft);box-shadow:5px 5px 0 var(--ink)}
.output-choice small{display:block;margin-bottom:10px;color:#5c6064;font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.output-choice strong{display:block;font-size:1.02rem;line-height:1.2}
.editor-section{padding:52px 0 72px}
.editor-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:22px}
.toolbar-actions,.finish-actions{display:flex;flex-wrap:wrap;gap:9px}
.small-button,.primary-button,.secondary-button,.text-button,.move-grid button,.align-grid button{border:2px solid var(--ink);background:#fff;font-weight:900;cursor:pointer}
.small-button{min-height:42px;padding:8px 13px}
.small-button:disabled{cursor:not-allowed;opacity:.45}
.editor-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(370px,.82fr);gap:28px;align-items:start}
.preview-column{min-width:0;position:sticky;top:96px}
.preview-meta{display:flex;justify-content:space-between;gap:20px;padding:11px 14px;border:2px solid var(--ink);border-bottom:0;background:#fff;font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.save-status{color:#087348}
.surface-stage{display:grid;min-height:680px;place-items:center;padding:32px;background-color:#dfe0dc;background-image:linear-gradient(45deg,#cfd0cc 25%,transparent 25%),linear-gradient(-45deg,#cfd0cc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#cfd0cc 75%),linear-gradient(-45deg,transparent 75%,#cfd0cc 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border:2px solid var(--ink);overflow:auto}
.surface-stage>[data-design-target]{width:min(100%,620px)}
.design-surface{position:relative;width:100%;aspect-ratio:var(--surface-ratio,8.5/11);container-type:inline-size;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.18);overflow:hidden}
.design-shape,.design-line,.design-text,.design-qr,.design-image{position:absolute}
.design-shape,.design-line{z-index:1}
.design-text{z-index:10;display:flex;align-items:flex-start;white-space:pre-line;overflow:visible;cursor:pointer;overflow-wrap:anywhere}
.design-text.is-draggable{cursor:grab;touch-action:none;user-select:none}
.design-text.is-draggable.is-dragging{z-index:20;cursor:grabbing;outline:3px dashed var(--blue);outline-offset:3px}
.design-shape.is-color-selectable,.design-line.is-color-selectable{cursor:pointer}
.design-shape.is-draggable,.design-line.is-draggable{cursor:grab;touch-action:none;user-select:none}
.design-shape.is-selected,.design-line.is-selected,.design-shape.is-dragging,.design-line.is-dragging{outline:3px dashed var(--blue);outline-offset:3px}
.design-qr{z-index:8;display:grid;place-items:center;aspect-ratio:1;background:var(--qr-light,#fff);color:#4f555d;font:700 clamp(7px,1.5cqw,13px)/1.2 Inter,Arial,sans-serif;text-align:center;overflow:hidden}
.design-qr canvas,.design-qr img{display:block!important;width:100%!important;height:100%!important;object-fit:contain}
.design-qr .design-qr-center-image{position:absolute;inset:50% auto auto 50%;z-index:2;width:var(--qr-center-size,18%)!important;height:var(--qr-center-size,18%)!important;padding:2%;border-radius:12%;background:var(--qr-light,#fff);object-fit:contain;transform:translate(-50%,-50%);pointer-events:none}
.design-qr.is-empty,.design-qr.is-unavailable{border:2px dashed #8f949b;padding:6%;background:#fff}
.design-image{z-index:7;display:grid;place-items:center;overflow:hidden;color:#646a70;font:700 clamp(7px,1.4cqw,12px)/1.2 Inter,Arial,sans-serif;text-align:center}
.design-image img{display:block;width:100%;height:100%}
.design-image.is-empty{border:2px dashed #a4a8ad;background:rgba(255,255,255,.76);padding:6%}
.design-image.is-draggable-image{cursor:grab;touch-action:none;user-select:none}
.design-image.is-draggable-image.is-dragging{cursor:grabbing;outline:3px dashed var(--blue);outline-offset:3px}
.design-structured{position:absolute;z-index:6;box-sizing:border-box;overflow:hidden;min-width:0;min-height:0}
.design-list{display:grid;grid-template-columns:repeat(var(--structured-columns),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-content:stretch;gap:var(--structured-gap)}
.design-list-item{display:flex;align-items:center;gap:.65em;min-width:0;padding:.48em .62em;border-bottom:1px solid color-mix(in srgb,var(--structured-border) 32%,transparent);background:var(--structured-cell)}
.design-list-marker{display:grid;place-items:center;flex:0 0 2em;width:2em;height:2em;border-radius:50%;background:var(--structured-accent);font-size:.72em;font-weight:800}
.design-list-label{min-width:0;overflow-wrap:anywhere}
.design-grid{display:grid;grid-template-columns:repeat(var(--structured-columns),minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:var(--structured-gap)}
.design-grid-cell{display:flex;align-items:center;justify-content:center;gap:.35em;min-width:0;min-height:0;padding:.42em;border:1px solid var(--structured-border);background:var(--structured-cell);text-align:center;overflow-wrap:anywhere}
.design-grid-cell small{opacity:.65;font:inherit;font-size:.72em}
.design-table{display:flex;flex-direction:column;border:1px solid var(--structured-border);background:var(--structured-cell)}
.design-table-row{display:grid;grid-template-columns:var(--structured-columns);flex:1;min-height:0;border-bottom:1px solid var(--structured-border)}
.design-table-row:last-child{border-bottom:0}
.design-table-row>span{display:flex;align-items:center;min-width:0;padding:.35em .5em;border-right:1px solid var(--structured-border);overflow-wrap:anywhere}
.design-table-row>span:last-child{border-right:0}
.design-table-header{flex:0 0 auto;background:var(--structured-accent);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.design-structured.is-empty::before{content:'Add items to continue';display:grid;place-items:center;width:100%;height:100%;border:1px dashed currentColor;opacity:.6}
.design-text.is-selected{outline:3px dashed var(--blue);outline-offset:3px}
.design-text:focus-visible{outline:4px solid var(--blue);outline-offset:3px}
.preview-help{margin:11px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}
.card-side-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:2px solid var(--ink);border-top:0;background:#fff}
.card-side-controls[hidden]{display:none!important}
.card-side-controls>div{display:flex;gap:8px}
.card-side-controls [aria-pressed=true]{background:var(--ink);color:#fff}
.control-column{display:grid;gap:16px}
.control-card{padding:22px;border:2px solid var(--ink);background:#fff;box-shadow:6px 6px 0 var(--ink)}
.control-card label{display:grid;gap:7px;margin-top:15px;font-size:.88rem;font-weight:900}
.control-card label[hidden]{display:none!important}
.control-card input[type=text],.control-card input[type=number],.control-card textarea,.control-card select{width:100%;min-height:48px;padding:11px 12px;border:2px solid #858881;background:#fff;color:var(--ink)}
.control-card textarea{resize:vertical;line-height:1.45}
.control-card small{color:var(--muted);font-weight:400}
.qr-center-image-controls{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid #c9cbc5}
.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.theme-choice{min-height:68px;padding:10px;border:2px solid var(--ink);background:var(--theme-paper,#fff);font-weight:900;text-align:left;cursor:pointer}
.theme-choice::before{display:block;width:30px;height:8px;margin-bottom:8px;background:var(--theme-accent,var(--blue));content:""}
.theme-choice[aria-pressed=true]{outline:4px solid var(--blue);outline-offset:2px}
.piece-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}
.piece-grid .output-choice{min-height:64px;padding:10px 12px}
.piece-grid .output-choice small{margin-bottom:4px}
.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.optional-copy-fields{display:grid;gap:4px;margin-top:18px;padding-top:16px;border-top:1px solid #a5a8a2}
.optional-copy-fields>small{line-height:1.45}
.grid-layout-controls{margin-top:2px;padding:12px;border:1px solid #9da1a8;background:#f7f8f5}
.grid-layout-controls[hidden]{display:none!important}
.grid-layout-controls label{margin-top:0}
.selected-controls{background:#f4f7ff}
.graphic-layer-controls{background:#f7f4ff}
.graphic-color-field input[type=color]{width:100%;height:48px;padding:4px;border:2px solid #858881;background:#fff;cursor:pointer}
.text-color-field input[type=color]{width:100%;height:48px;padding:4px;border:2px solid #858881;background:#fff;cursor:pointer}
.image-placement-controls{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #a5a8a2}
.image-placement-controls[hidden]{display:none!important}
.selected-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.selected-heading strong{display:block;font-size:1.25rem;text-transform:capitalize}
.text-button{padding:7px 9px;font-size:.78rem}
.range-field>span{display:flex;justify-content:space-between}
.range-field input{width:100%;accent-color:var(--blue)}
.move-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:16px}
.move-grid button,.align-grid button{min-height:38px;padding:5px;font-size:.72rem}
.align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.check-grid label{display:flex;align-items:center;gap:7px;margin:0;padding:10px;border:1px solid #9da1a8;background:#fff}
.check-grid input{width:18px;height:18px;accent-color:var(--blue)}
.finish-card p{color:var(--muted);line-height:1.5}
.card-print-options{display:grid;gap:11px;background:#f4f7ff}
.card-print-options[hidden]{display:none!important}
.card-print-options p{margin:0;font-size:.88rem}
.card-print-mode,.card-finishing-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.card-print-options label{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid #9da1a8;background:#fff}
.card-print-options input{width:18px;height:18px;accent-color:var(--blue)}
.primary-button,.secondary-button{min-height:48px;padding:10px 14px}
.primary-button{background:var(--blue);color:#fff}
.action-status{min-height:1.4em;margin-bottom:0!important;font-size:.83rem}
.design-print-root{display:none}
.batch-surface-stage{align-content:start;place-items:start center}
.batch-design-target{display:grid;width:min(100%,620px);gap:28px}
.batch-design-target{zoom:var(--batch-preview-zoom,1)}
.preview-navigation{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:.72rem;letter-spacing:0;text-transform:none}
.preview-navigation label{display:flex;align-items:center;gap:7px;white-space:nowrap}
.preview-navigation input{width:110px;accent-color:var(--blue)}
.preview-navigation output{min-width:38px;text-align:right}
.batch-surface-stage{cursor:auto}
.batch-surface-stage.is-panning{cursor:grabbing;user-select:none}
.batch-surface-stage.is-pan-mode{cursor:grab}
.preview-navigation [data-preview-pan][aria-pressed=true]{background:var(--blue);color:#fff}
.design-batch-sheet{position:relative;width:100%;container-type:inline-size;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.18);overflow:hidden}
.design-batch-item{position:absolute;overflow:hidden}
.teacher-card-print-item{overflow:visible}
.teacher-card-print-item .design-batch-item-target{height:100%;overflow:hidden}
.card-crop-mark{position:absolute;z-index:30;width:.16in;height:.16in;pointer-events:none}
.card-crop-mark::before,.card-crop-mark::after{position:absolute;background:#111;content:""}
.card-crop-mark::before{left:-.08in;top:-.005in;width:.16in;height:.01in}
.card-crop-mark::after{left:-.005in;top:-.08in;width:.01in;height:.16in}
.design-batch-item-target,.design-item-surface{width:100%;height:100%}
.design-item-surface{aspect-ratio:auto;box-shadow:none}
.batch-summary{display:flex;justify-content:space-between;gap:12px;margin-top:15px;padding:11px 12px;border:1px solid #9da1a8;background:#f7f8f5;font-size:.85rem}
.list-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.danger-button{color:#8b261f}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media (max-width:980px){.output-choice-grid{grid-template-columns:repeat(3,1fr)}.editor-grid{grid-template-columns:1fr}.preview-column{position:static}.system-intro{grid-template-columns:1fr}.system-note{max-width:620px}.control-column{grid-template-columns:repeat(2,minmax(0,1fr))}.finish-card,.selected-controls{grid-column:1/-1}}
@media (max-width:640px){.page-width,.site-nav{width:min(100% - 24px,1320px)}.site-nav{min-height:68px}.site-nav nav{gap:9px}.site-nav nav>a:not(.nav-pill){display:none}.system-intro{padding:38px 0 42px;gap:30px}.system-intro h1{font-size:clamp(3rem,15vw,4.4rem)}.section-heading{grid-template-columns:1fr;gap:15px}.output-choice-grid{grid-template-columns:repeat(2,1fr)}.editor-toolbar{align-items:flex-start;flex-direction:column}.editor-grid,.control-column{grid-template-columns:1fr}.surface-stage{min-height:410px;padding:15px}.two-fields,.check-grid{grid-template-columns:1fr}.move-grid{grid-template-columns:repeat(2,1fr)}.editor-section{padding-top:38px}.preview-meta{align-items:flex-start;flex-direction:column}.preview-navigation{width:100%;margin-left:0}.preview-navigation label{min-width:0;flex:1}.preview-navigation input{min-width:70px;flex:1}}
@media print{body>*:not(.design-print-root){display:none!important}.design-print-root{display:block!important;width:var(--print-width)!important;height:auto!important;margin:0!important;padding:0!important}.design-print-root>.design-surface,.design-print-root>.design-batch-sheet{display:block!important;width:var(--print-width)!important;height:var(--print-height)!important;max-width:none!important;aspect-ratio:auto!important;overflow:hidden!important;box-shadow:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact;break-after:page;page-break-after:always}.design-print-root>.design-batch-sheet:last-child,.design-print-root>.design-surface:last-child{break-after:auto;page-break-after:auto}.design-text,.design-shape,.design-line,.design-image{outline:0!important}.teacher-card-print-sheet{overflow:visible!important}}
@media print{.design-qr.is-empty,.design-qr.is-unavailable,.design-image.is-empty{display:none!important}}
