:root{color-scheme:light;--ink:#213c36;--muted:#66766f;--green:#22634e;--line:#dce4dd;--paper:#fff;--bg:#f5f6f0;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:15px}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:9px;padding:11px 15px;font-weight:650;line-height:1.4;min-height:44px;color:var(--ink)}button:disabled{opacity:.4;cursor:default}button:not(:disabled):hover{filter:brightness(.95)}:focus-visible{outline:3px solid #bf6a23;outline-offset:3px}a{color:inherit}h1,h2,p{margin:0}h1{font-size:clamp(26px,3vw,36px);letter-spacing:-1.4px;line-height:1.3}h2{font-size:18px;letter-spacing:-.5px}.app-header{max-width:1440px;margin:auto;min-height:88px;padding:24px 40px;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:850;letter-spacing:-1px;text-decoration:none;display:flex;gap:9px;align-items:center}.brand-icon{color:var(--green);font-size:32px;line-height:1}.header-note{font-size:14px;color:var(--muted)}.privacy-chip{margin-left:auto;font-size:12px;background:#e9eee5;padding:8px 11px;border-radius:20px;color:#53624c}main{max-width:1440px;margin:auto;padding:35px 40px 40px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:700;color:var(--muted);margin-bottom:9px}.intro>.eyebrow{font-size:12px}.intro>p{text-align:right;font-size:14px;line-height:1.8;color:var(--muted)}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px}.controls{border:1px solid var(--line);background:#fff;border-radius:16px;align-self:start;padding:24px}.controls section+section{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.controls h2{font-size:16px;margin-bottom:20px}.controls h2 span{font-size:11px;margin-right:9px;color:#7b877d}.fields{display:flex;align-items:end;gap:10px}.fields label{flex:1;min-width:0}.fields small{display:block;color:var(--muted);font-size:10px;letter-spacing:-.3px;margin-top:5px;white-space:nowrap}.multiply{padding-bottom:15px;color:#819087}label{display:block;font-size:13px;font-weight:650}input,textarea{width:100%;border:1px solid #bdcbc1;border-radius:8px;background:#fbfcf8;color:var(--ink);padding:11px 12px;min-height:46px;margin-top:9px}input[type=number]{font-size:20px;font-variant-numeric:tabular-nums}textarea{resize:vertical;font-size:15px;line-height:1.6}.hint{font-size:12px;color:var(--muted);line-height:1.65;margin-top:9px}.count-row{display:flex;gap:8px;align-items:end}.count-row input{min-width:0}.count-row button{white-space:nowrap;height:48px}.primary{background:var(--green);color:white}.primary span{margin-left:13px}.secondary{background:#f2f5ef;border:1px solid var(--line)}.text-button{padding:8px 0;background:transparent;color:var(--green);font-size:13px;text-decoration:underline;text-underline-offset:4px;text-align:left}.muted{color:var(--muted)}details{margin-top:13px}summary{cursor:pointer;min-height:44px;line-height:44px;font-size:13px;font-weight:650}summary span{font-size:10px;color:var(--muted);font-weight:400;margin-left:4px}details label{font-size:12px}.full{width:100%;margin-top:10px}.privacy-note{display:flex;gap:8px}.privacy-note p{font-size:11px;line-height:1.8;color:var(--muted)}.privacy-note>span{font-size:15px;color:#91a28f}.board-panel{min-width:0;background:#eaf0e9;border:1px solid #d8e2d7;border-radius:16px;padding:26px}.board-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:24px}.board-heading h2{font-size:24px;letter-spacing:-.8px}.board-actions{display:flex;gap:8px}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.mode-switch{display:flex;background:#dce5db;border-radius:10px;padding:4px;gap:3px}.mode-switch button{font-size:13px;background:transparent;padding:8px 14px;min-height:38px}.mode-switch button[aria-pressed=true]{background:#fff;box-shadow:0 1px 3px #213c3612}.shuffle{background:transparent;font-size:13px;border:1px solid #bacbbd}.board-meta{display:flex;justify-content:space-between;gap:10px;margin:20px 0 8px;align-items:center;font-size:12px;color:var(--muted)}#stats{font-weight:650}.legend{display:flex;gap:10px;font-size:11px}.legend>span{display:flex;align-items:center;gap:4px}.legend i{display:inline-block;width:10px;height:10px;background:#fff;border:1px solid #91aa95;border-radius:3px}.legend .empty-key{background:transparent;border-style:dashed}#message{font-size:13px;min-height:34px;color:#47634e;padding:0 0 12px;line-height:1.5}#error{background:#fff0e5;border:1px solid #dba275;color:#803a16;padding:12px;border-radius:8px;margin:0 0 12px;font-size:13px;line-height:1.6}#draft-warning{font-size:12px;color:#803a16;margin-bottom:12px;line-height:1.6}.board-scroll{overflow:auto;max-width:100%;border-radius:10px;background:#fff;border:1px solid #d6e1d5}.paper{padding:24px 24px 16px;min-width:calc(var(--cols,6)*82px + 48px)}.front{text-align:center;margin:0 0 28px}.front span{display:block;background:#f2f4ed;max-width:360px;padding:9px;border-radius:5px;margin:auto;font-size:12px;color:#62765f;letter-spacing:4px;border-bottom:3px solid #c5d4be}#board{display:grid;grid-template-columns:repeat(var(--cols,6),minmax(0,1fr));gap:12px}.seat{min-width:0;min-height:77px;padding:10px 5px;border:1px solid #b9cdb9;background:#f7faf3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;position:relative;box-shadow:0 3px 0 #dce6d7;border-radius:8px}.seat .coordinate{font-size:9px;font-weight:400;color:#71816c}.seat .seat-label{font-size:clamp(16px,2vw,24px);font-weight:750;line-height:1.25;overflow-wrap:anywhere;max-width:100%}.seat.alias .seat-label{font-size:16px}.seat.unassigned{background:#fff;color:#7a8775}.seat.unassigned .seat-label{font-size:15px;font-weight:500}.seat.blocked{box-shadow:none;border:1px dashed #a2b3a1;background:repeating-linear-gradient(135deg,#fff,#fff 5px,#f4f6f1 5px,#f4f6f1 6px);color:#65755e}.seat.blocked .seat-label{font-size:13px;font-weight:500}.seat[aria-pressed=true]{background:#e1ecd1;border:2px solid var(--green);padding:9px 4px;box-shadow:0 0 0 3px #22634e20}.paper-footer{display:flex;justify-content:space-between;margin-top:25px;padding-top:12px;border-top:1px solid #e7ece3;color:#819078;font-size:10px}.board-help{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px;font-size:11px;color:#62775f;margin-top:15px}.site-footer{max-width:1440px;margin:0 auto;padding:0 40px 25px;display:flex;justify-content:space-between;gap:10px;color:#84907e;font-size:11px}.skip-link{position:absolute;top:-60px;left:15px;padding:12px;background:white;z-index:10}.skip-link:focus{top:10px}[hidden]{display:none!important}
@media(max-width:1000px){.workspace{grid-template-columns:240px minmax(0,1fr);gap:18px}.controls{padding:18px}.board-panel{padding:18px}.board-meta{flex-wrap:wrap}.board-actions button{padding:10px}.board-heading h2{font-size:21px}}
@media(max-width:720px){.app-header{padding:16px 18px;min-height:70px;gap:12px}.header-note{display:none}.privacy-chip{font-size:10px;padding:7px 9px}main{padding:25px 14px}.intro{margin-bottom:20px}.intro>p{display:none}.workspace{display:flex;flex-direction:column;gap:16px}.controls{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px}.controls section+section{border-top:0;margin-top:0;padding-top:0}.controls h2{margin-bottom:12px}.controls .privacy-note{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}.controls .privacy-note p br{display:none}.controls>#reset{grid-column:1/-1;min-height:25px;padding:0}.fields{gap:6px}.fields small{font-size:9px}.count-row{flex-wrap:wrap;gap:5px}.count-row input{flex:1;width:50px}.count-row button{padding:9px 8px;font-size:12px}.board-panel{padding:17px 12px}.board-heading{margin-bottom:18px}.board-actions{gap:5px}.board-actions button{font-size:12px}.board-heading h2{font-size:21px}.board-heading .eyebrow{font-size:9px}.primary span{margin-left:3px}.toolbar{gap:6px}.mode-switch button{padding:8px 9px;font-size:12px}.shuffle{padding:9px;font-size:12px}.paper{padding:20px 18px 14px;min-width:calc(var(--cols,6)*78px + 36px)}.board-meta{font-size:11px}.legend{font-size:10px}#board{gap:10px}.seat .seat-label{font-size:23px}.seat.alias .seat-label{font-size:16px}.site-footer{padding:0 18px 20px;flex-wrap:wrap}}
@page{size:A4 landscape;margin:10mm}
@media(max-width:720px){.fields small{white-space:normal;line-height:1.4;min-height:25px}}
@media print{.seat.unassigned .seat-label{visibility:hidden}}
@media print{body{background:#fff;font-size:10pt;color:#111;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-header,.intro,.controls,.toolbar,.board-actions,.board-meta,#message,#error,#draft-warning,.board-help,.site-footer,.skip-link,noscript{display:none!important}main{padding:0;max-width:none;margin:0}.workspace{display:block}.board-panel{padding:0;border:0;border-radius:0;background:#fff}.board-heading{margin:0 0 4mm;height:10mm}.board-heading h2{font-size:18pt;color:#111}.board-heading .eyebrow{display:none}.board-scroll{overflow:visible;border:0;border-radius:0}.paper{min-width:0;padding:0;width:100%}.front{margin:0 0 5mm;height:10mm}.front span{padding:2mm;max-width:95mm;font-size:10pt;color:#333;border-bottom:1mm solid #aaa}.seat{min-height:0;height:calc((125mm - (var(--rows,4) - 1)*2mm)/var(--rows,4));padding:1mm;border:.3mm solid #778471;box-shadow:none;break-inside:avoid;border-radius:2mm;gap:.3mm;background:#fff}.seat .seat-label{font-size:var(--print-font,19pt);color:#111}.seat.alias .seat-label{font-size:var(--alias-font,12pt)}.seat .coordinate{font-size:6pt;color:#555}.seat.unassigned .seat-label,.seat.blocked .seat-label{font-size:8pt}.seat[aria-pressed=true]{padding:1mm;background:#fff;border:.3mm solid #778471;box-shadow:none}.seat.blocked{border-style:dashed;background:#f7f7f7}#board{gap:2mm}.paper-footer{margin-top:4mm;padding-top:2mm;font-size:8pt;color:#555}.paper-footer span:last-child{color:#333}.board-panel{break-inside:avoid}}
