*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f5f5;--surface: #ffffff;--border: #d0d0d0;--text: #1a1a1a;--muted: #666;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #dc2626;--danger-hover: #b91c1c;--header-bg: #1a1a1a;--header-text: #f5f5f5;--mono: "Courier New", Courier, monospace;--radius: 6px}body{font-family:system-ui,-apple-system,sans-serif;font-size:14px;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}header{background:var(--header-bg);color:var(--header-text);padding:12px 20px;display:flex;align-items:center;gap:12px}.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions .btn-secondary{border-color:#444;color:#ddd}.header-actions .btn-secondary:hover{background:#333}.menu-wrapper{position:relative}.menu-trigger{font-family:inherit;font-size:13px}.menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000040;min-width:160px;padding:4px;display:flex;flex-direction:column;gap:2px;z-index:50;opacity:0;visibility:hidden;transform:translateY(-4px);transform-origin:top right;pointer-events:none;transition:opacity .12s ease-out,transform .12s ease-out,visibility 0s linear .12s}.menu-dropdown.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .12s ease-out,transform .12s ease-out,visibility 0s}@media(prefers-reduced-motion:reduce){.menu-dropdown,.menu-dropdown.is-open{transition:none}}.menu-item{font-family:inherit;font-size:13px;text-align:left;background:transparent;color:var(--text);border:none;border-radius:4px;padding:7px 10px;cursor:pointer}.menu-item:hover,.menu-item:focus-visible{background:var(--bg);outline:none}header h1{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.04em}header .badge{font-family:var(--mono);font-size:11px;background:#333;border:1px solid #555;color:#aaa;padding:2px 8px;border-radius:3px}main{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.preview-cell{background:#2a2a2a;border-bottom:1px solid #111;display:flex;flex-direction:column;align-items:flex-start;padding:24px 20px;gap:12px;min-width:0;min-height:0}.eink-display{width:calc(var(--eink-w, 240) * 1px);height:calc(var(--eink-h, 200) * 1px);background:#000;border:2px solid #444;border-radius:3px;overflow:hidden;display:flex;flex-direction:column;padding:0;position:relative}.eink-display:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 1px,rgba(255,255,255,.015) 1px,rgba(255,255,255,.015) 2px);pointer-events:none;z-index:10}.eink-box{font-family:var(--mono);font-size:9px;color:#fff;line-height:1.3;border-bottom:1px solid #222;padding:3px 4px;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.eink-box:last-child{border-bottom:none}.eink-box .eink-label{font-size:7px;color:#888;text-transform:uppercase;letter-spacing:.08em;display:block}.eink-box .eink-value{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eink-empty{font-family:var(--mono);font-size:10px;color:#999;text-align:center;padding:20px 8px}.preview-meta{font-family:var(--mono);font-size:10px;color:#555;text-align:left;line-height:1.6}.editor-cell{display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;flex:1}.config-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 20px;display:flex;align-items:center;gap:10px}.config-toolbar h2{font-size:13px;font-weight:600;flex:1}button{font-family:inherit;font-size:13px;cursor:pointer;border:none;border-radius:var(--radius);padding:6px 12px;transition:background .1s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:4px 8px;font-size:12px}.btn-danger:hover{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border);padding:4px 7px;font-size:12px;line-height:1}.btn-ghost:hover{background:var(--border)}.btn-ghost:disabled{opacity:.3;cursor:default}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.add-box-wrapper{position:relative;display:inline-flex;gap:0}.add-box-wrapper select{font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-right:none;border-radius:var(--radius) 0 0 var(--radius);background:var(--surface);color:var(--text);cursor:pointer}.add-box-wrapper button{border-radius:0 var(--radius) var(--radius) 0}#box-list{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;min-height:0}.box-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.box-card-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fafafa;border-bottom:1px solid var(--border)}.box-drag-handle{display:flex;flex-direction:column;gap:3px;margin-right:2px;opacity:.3}.box-drag-handle span{display:block;width:16px;height:2px;background:var(--text);border-radius:1px}.box-type-badge{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em}.type-text{background:#e0f2fe;color:#0369a1}.type-countdown{background:#fef3c7;color:#92400e}.type-weather{background:#d1fae5;color:#065f46}.type-qr{background:#ede9fe;color:#5b21b6}.type-quote{background:#fce7f3;color:#9d174d}.box-label-input{flex:1;border:none;background:transparent;font-size:13px;font-weight:500;padding:0;color:var(--text)}.box-label-input:focus{outline:none;border-bottom:1px solid var(--accent)}.box-order-controls{display:flex;gap:4px}.box-card-body{padding:12px;display:flex;flex-direction:column;gap:10px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.field input,.field textarea,.field select{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%;transition:border-color .1s}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent)}.field textarea{resize:vertical;min-height:72px;font-family:var(--mono);font-size:12px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-error{border-color:var(--danger)!important}.field-error:focus{border-color:var(--danger)!important}.error-message{font-size:11px;color:var(--danger);margin-top:2px}.empty-state{text-align:center;padding:48px 24px;color:var(--muted)}.empty-state p{font-size:14px;margin-bottom:6px}.empty-state small{font-size:12px;color:#aaa}#box-list::-webkit-scrollbar{width:6px}#box-list::-webkit-scrollbar-track{background:transparent}#box-list::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px}.consent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0fc7;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.consent-card{background:var(--surface);color:var(--text);border-radius:var(--radius);max-width:560px;width:100%;max-height:calc(100vh - 48px);overflow-y:auto;padding:24px 28px;box-shadow:0 16px 48px #0006;display:flex;flex-direction:column;gap:14px}.consent-card h2{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.04em}.consent-tagline{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.08em;margin-top:-8px}.consent-section h3{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:6px}.consent-section ul{list-style:disc;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.45;color:var(--text)}.consent-section code{font-family:var(--mono);font-size:12px;background:var(--bg);padding:1px 4px;border-radius:3px}.consent-actions{display:flex;justify-content:flex-end;margin-top:6px}.consent-actions .btn-primary{font-size:14px;padding:10px 22px}@media(max-width:720px){header{padding:10px 14px}header h1{font-size:14px}.preview-cell{width:100%;min-width:0;border-bottom:1px solid #111;padding:16px 14px;gap:12px;align-items:center}.eink-display{width:100%;max-width:calc(var(--eink-w, 240) * 1px);height:auto;aspect-ratio:var(--eink-w, 240) / var(--eink-h, 200)}.preview-meta{font-size:9px}.editor-cell{overflow:visible;min-height:0}.config-toolbar{padding:10px 14px;flex-wrap:wrap;gap:8px}.config-toolbar h2{font-size:12px;width:100%;flex:none}.add-box-wrapper{flex:1;min-width:0}.add-box-wrapper select{min-width:0;flex:1}#box-list{padding:12px 14px;gap:10px}.box-card-header{padding:8px 10px}.box-card-body{padding:10px}body{font-size:13px}button{font-size:12px}.field label{font-size:10px}.field input,.field textarea,.field select{font-size:12px;padding:6px 8px}.field textarea{min-height:60px;font-size:11px}.field-row{grid-template-columns:1fr}}
