.b19-shell{display:grid;gap:18px;padding:clamp(18px,3vw,30px);border:1px solid var(--border);border-radius:22px;background:var(--surface);color:var(--text)}
.b19-header{display:grid;gap:8px}.b19-header h2{margin:0;font-size:clamp(24px,3vw,36px)}.b19-header p{margin:0;color:var(--muted);line-height:1.7}.b19-kicker{font:700 11px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.14em;color:var(--accent)}
.b19-body{display:grid;gap:16px;min-width:0}.b19-grid{display:grid;gap:12px}.b19-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.b19-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.b19-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.b19-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.b19-field{display:grid;gap:6px;min-width:0}.b19-field>span{font-weight:650}.b19-field input,.b19-field select,.b19-field textarea{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:10px 12px;font:inherit}.b19-field textarea{resize:vertical;line-height:1.55}.b19-field input:focus-visible,.b19-field select:focus-visible,.b19-field textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.b19-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.b19-actions button{cursor:pointer}.b19-output,.b19-result,.b19-copybook{display:block;min-height:48px;margin:0;padding:14px 16px;overflow:auto;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,var(--accent));white-space:pre-wrap;word-break:break-word;font:500 14px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.b19-result{font-size:clamp(18px,3vw,28px);font-weight:750}.b19-status{min-height:24px;color:var(--muted);line-height:1.5}.b19-status[data-status-kind=error]{color:var(--danger)}.b19-status[data-status-kind=success]{color:var(--success)}.b19-status[data-status-kind=info]{color:var(--primary)}
.b19-dataset{padding:12px 14px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);line-height:1.6}.b19-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.b19-day{display:grid;gap:3px;min-height:42px;place-items:center;padding:6px;border:1px solid var(--border);border-radius:8px}.b19-day.is-weekend{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.b19-day small{font-size:10px}.b19-definition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.b19-definition-list>div{display:grid;grid-template-columns:minmax(100px,.5fr) 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border)}.b19-definition-list dt{font-weight:700}.b19-definition-list dd{margin:0;overflow-wrap:anywhere}
.b19-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.b19-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px}.b19-list li label{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.b19-list li label span{overflow-wrap:anywhere}.b19-list li small{color:var(--muted)}.b19-list li button{margin-left:auto}.b19-list li.is-complete span{text-decoration:line-through;opacity:.62}.b19-list li.is-empty{justify-content:center;color:var(--muted)}
.b19-check{display:flex;min-height:44px;align-items:center;gap:10px;padding:8px 2px;font-weight:650}.b19-check input{inline-size:20px;block-size:20px;margin:0;accent-color:var(--accent)}
.b19-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}.b19-table{width:100%;border-collapse:collapse;min-width:540px}.b19-table th,.b19-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.b19-table th{background:var(--surface-2);font-weight:700}.b19-table tr:last-child td{border-bottom:0}.b19-table td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.b19-zero-width-summary{padding:10px 12px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);line-height:1.6}.b19-ascii{min-height:150px;overflow:auto;white-space:pre;font:700 16px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.b19-keyboard{display:grid;gap:6px;min-width:0;max-width:100%;padding:12px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.b19-keyboard-row{display:flex;justify-content:center;gap:6px;min-width:max-content}.b19-key{display:grid;place-items:center;flex:0 0 44px;min-height:44px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:700 15px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.b19-key.is-space{flex-basis:264px}.b19-key.is-current{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--surface));transform:translateY(1px)}
.b19-practice-region{display:grid;gap:12px;min-width:0;padding:4px;border-radius:16px}.b19-practice-region:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.b19-copybook-sheet{--b19-copybook-columns:12;display:grid;grid-template-columns:repeat(var(--b19-copybook-columns),minmax(44px,1fr));gap:6px;max-width:100%;padding:12px;overflow:auto;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.b19-copybook-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:44px;border:1px solid var(--border);background:linear-gradient(to bottom right,transparent calc(50% - .5px),var(--border) 50%,transparent calc(50% + .5px)),linear-gradient(to top right,transparent calc(50% - .5px),var(--border) 50%,transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),var(--border) 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),var(--border) 50%,transparent calc(50% + .5px)),var(--surface);color:var(--text);font:400 clamp(24px,4vw,46px)/1.1 KaiTi,"STKaiti","FangSong",serif}
@media (max-width:900px){.b19-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}.b19-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.b19-grid.two,.b19-grid.three,.b19-grid.four,.b19-grid.five{grid-template-columns:1fr}.b19-calendar{gap:3px}.b19-day{min-height:34px;padding:4px;font-size:13px}.b19-definition-list{grid-template-columns:1fr}.b19-definition-list>div{grid-template-columns:1fr}}
@media print{body:has(.b19-copybook-mode) *{visibility:hidden}.b19-copybook-mode,.b19-copybook-mode .b19-copybook-sheet,.b19-copybook-mode .b19-copybook-sheet *{visibility:visible}.b19-copybook-mode{position:absolute;inset:0;width:100%;padding:0}.b19-copybook-mode .b19-copybook-sheet{position:absolute;inset:0;width:100%;padding:0;border:0;background:#fff;color:#000}.b19-copybook-mode .b19-copybook-cell{break-inside:avoid;border-color:#999;background:linear-gradient(to bottom right,transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px)),linear-gradient(to top right,transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#bbb 50%,transparent calc(50% + .5px)),#fff;color:#000}}
