:root{--primary:#440608;--secondary:#ff906b;--tertiary:#fff2ed;--primary-soft:color-mix(in srgb, var(--primary) 6%, transparent);--primary-muted:color-mix(in srgb, var(--primary) 62%, transparent);--secondary-soft:color-mix(in srgb, var(--secondary) 16%, transparent);--surface:#fffffff0;--surface-solid:#fff;--border:color-mix(in srgb, var(--primary) 9%, transparent);--danger:#b3261e;--text:var(--primary);--text-muted:var(--primary-muted);--font:"DM Sans", system-ui, sans-serif;--gap:12px;--radius-panel:18px;--radius-control:10px;--shadow-panel:0 1px 2px color-mix(in srgb, var(--primary) 5%, transparent), 0 10px 30px color-mix(in srgb, var(--primary) 8%, transparent);--shadow-pop:0 2px 6px color-mix(in srgb, var(--primary) 8%, transparent), 0 16px 40px color-mix(in srgb, var(--primary) 14%, transparent);--topbar-h:60px;--panel-top:calc(var(--gap) * 2 + var(--topbar-h));--sidebar-w:320px;--palette-w:80px;--zoom-panel-h:48px;font:14px/1.45 var(--font);color:var(--text);background:var(--tertiary);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{margin:0;font-weight:700}.app{background:var(--tertiary);position:fixed;inset:0;overflow:hidden}.board{position:absolute;inset:0;overflow:hidden}.panel{z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(10px);position:absolute}.panel-heading{color:var(--text-muted);font-size:14px}.icon-button{border-radius:var(--radius-control);width:38px;height:38px;color:var(--primary);background:0 0;border:0;place-items:center;padding:0;transition:background .15s,color .15s;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--secondary-soft)}.icon-button:active:not(:disabled){background:color-mix(in srgb, var(--secondary) 28%, transparent)}.icon-button:disabled{opacity:.3;cursor:default}.button-primary{background:var(--primary);height:38px;color:var(--tertiary);white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-weight:600;transition:background .15s;display:inline-flex}.button-primary:hover{background:color-mix(in srgb, var(--primary) 85%, white)}.button-secondary,.button-danger{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 16px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.button-round{border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);background:var(--surface-solid);width:38px;height:38px;color:var(--primary);border-radius:999px;place-items:center;padding:0;transition:background .15s,border-color .15s;display:inline-grid}.button-round:hover,.button-round[aria-pressed=true]{background:var(--secondary-soft);border-color:var(--secondary)}.button-secondary{border:1px solid color-mix(in srgb, var(--primary) 18%, transparent);background:var(--surface-solid);color:var(--primary)}.button-secondary:hover{background:var(--secondary-soft);border-color:var(--secondary)}.button-danger{background:var(--danger);color:#fff;border:0}.button-danger:hover{background:#95201a}:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.topbar{top:var(--gap);left:var(--gap);right:var(--gap);height:var(--topbar-h);grid-template-columns:1fr auto 1fr;align-items:center;padding:0 10px 0 18px;display:grid}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand img{width:auto;height:34px;display:block}.brand-divider{background:var(--border);width:1px;height:26px}.brand h1{white-space:nowrap;font-size:16px;font-weight:600}.toolbar{gap:4px;display:flex}.board-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.zoom-value{text-align:center;font-variant-numeric:tabular-nums;min-width:48px;font-size:13px;font-weight:600}.sidebar{top:var(--panel-top);left:var(--gap);bottom:var(--gap);width:var(--sidebar-w);flex-direction:column;gap:14px;padding:18px 16px 12px;display:flex;overflow:hidden}.kind-tabs{background:var(--primary-soft);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;padding:4px;display:grid}.kind-tabs button{color:var(--text-muted);background:0 0;border:0;border-radius:999px;padding:8px 4px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.kind-tabs button.active{background:var(--primary);color:var(--tertiary)}.category-filters{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface-solid);border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.chip:hover{border-color:var(--chip-color,var(--secondary))}.chip .dot{background:var(--chip-color);border-radius:50%;width:8px;height:8px}.chip.active{border-color:var(--chip-color,var(--primary));background:color-mix(in srgb, var(--chip-color,var(--primary)) 14%, white);font-weight:700}.card-list{flex-direction:column;gap:8px;margin:0 -6px;padding:2px 6px 6px;list-style:none;display:flex;overflow-y:auto}.card-preview{border:1px solid var(--border);background:var(--surface-solid);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;gap:12px;padding:8px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.card-preview:hover{border-color:color-mix(in srgb, var(--card-color) 45%, white);box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 8%, transparent);transform:translateY(-1px)}.card-preview:active{cursor:grabbing}.card-preview .thumb{background:color-mix(in srgb, var(--card-color) 16%, white);width:46px;height:46px;color:var(--card-color);border-radius:10px;flex-shrink:0;place-items:center;font-size:22px;font-weight:700;display:grid;overflow:hidden}.card-preview .thumb img{object-fit:cover;object-position:top;width:100%;height:100%}.card-preview.is-domain{background:color-mix(in srgb, var(--card-color) 12%, white);border-color:color-mix(in srgb, var(--card-color) 45%, white)}.card-preview .name{min-width:0;font-weight:600}.card-list::-webkit-scrollbar{width:8px}.card-list::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--primary) 12%, transparent);border-radius:8px}.object-palette{top:var(--panel-top);right:var(--gap);width:var(--palette-w);max-height:calc(100% - var(--panel-top) - var(--zoom-panel-h) - var(--gap) * 3);flex-direction:column;gap:2px;padding:8px;display:flex;overflow-y:auto}.palette-item{cursor:grab;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 6px;font-size:11px;font-weight:600;transition:background .15s;display:flex}.palette-item:hover{background:var(--secondary-soft)}.palette-item img,.palette-item svg,.palette-item .icon-placeholder{object-fit:contain;width:40px;height:40px}.palette-item svg{padding:5px}.palette-divider{background:var(--border);height:1px;margin:4px 6px}.palette-colors{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:8px;margin-top:4px;padding-top:10px;display:flex}.palette-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.swatches{grid-template-columns:repeat(2,24px);gap:8px;display:grid}.swatch{border:1px solid color-mix(in srgb, var(--primary) 15%, transparent);border-radius:50%;width:24px;height:24px;padding:0;transition:transform .15s}.swatch:hover{transform:scale(1.12)}.swatch.active{outline:2px solid var(--primary);outline-offset:2px}.custom-color{color:var(--text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.custom-color input{border:1px solid var(--border);background:var(--surface-solid);cursor:pointer;border-radius:8px;width:40px;height:26px;padding:2px}.zoom-controls{right:var(--gap);bottom:var(--gap);height:var(--zoom-panel-h);border-radius:999px;align-items:center;gap:2px;padding:0 5px;display:flex}.zoom-controls .icon-button{border-radius:999px;width:36px;height:36px}.zoom-divider{background:var(--border);width:1px;height:22px;margin:0 4px}.modal-overlay{z-index:20;background:#0000008c;place-items:center;padding:24px;animation:.18s ease-out overlay-in;display:grid;position:fixed;inset:0}.card-detail{background:var(--surface-solid);border-radius:var(--radius-panel);outline:none;grid-template-columns:minmax(0,300px) minmax(0,1fr);width:min(860px,100%);max-height:min(640px,100%);animation:.2s ease-out modal-in;display:grid;overflow:hidden;box-shadow:0 24px 60px #0000004d}@keyframes overlay-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.modal-overlay,.card-detail{animation:none}}.card-detail .image{background:color-mix(in srgb, var(--card-color) 12%, white);border-right:4px solid var(--card-color);color:var(--card-color);place-items:center;padding:20px;font-size:96px;font-weight:700;display:grid}.card-detail .image img{object-fit:contain;border-radius:12px;width:100%;max-height:100%}.card-detail .content{flex-direction:column;gap:12px;min-height:0;padding:22px 22px 24px 26px;display:flex}.card-detail header{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-detail .category{background:color-mix(in srgb, var(--card-color) 14%, white);color:color-mix(in srgb, var(--card-color) 70%, black);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-flex}.card-detail h2{font-size:26px;line-height:1.2}.card-detail .description{padding-right:6px;overflow-y:auto}.card-detail .description p{color:var(--text-muted);margin:0 0 12px;font-size:15px;line-height:1.65}.card-detail .description p:last-child{margin-bottom:0}@media (width<=720px){.card-detail{grid-template-columns:1fr;overflow-y:auto}.card-detail .image{border-right:0;border-bottom:4px solid var(--card-color);max-height:260px}.card-detail .description{overflow:visible}}.confirm-dialog{background:var(--surface-solid);border-radius:var(--radius-panel);flex-direction:column;gap:12px;width:min(420px,100%);padding:24px;animation:.2s ease-out modal-in;display:flex;box-shadow:0 24px 60px #0000004d}.confirm-dialog h2{font-size:22px;line-height:1.25}.confirm-dialog p{color:var(--text-muted);margin:0;font-size:14px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}@media (prefers-reduced-motion:reduce){.confirm-dialog{animation:none}}.context-menu{z-index:10;background:var(--surface-solid);border:1px solid var(--border);min-width:230px;box-shadow:var(--shadow-pop);border-radius:14px;padding:6px;position:absolute}.context-menu button{text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:7px 10px;display:flex}.context-menu button:hover:not(:disabled){background:var(--secondary-soft)}.context-menu button:disabled{opacity:.35;cursor:default}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover:not(:disabled){background:#b3261e14}.context-menu kbd{font:inherit;color:var(--text-muted);font-size:12px}.context-menu .separator{background:var(--border);height:1px;margin:5px 8px}.text-editor{z-index:5;outline:1.5px dashed var(--secondary);outline-offset:3px;resize:none;transform-origin:0 0;word-break:normal;overflow-wrap:break-word;background:#ffffffbf;border:0;margin:0;padding:0;position:absolute;overflow:hidden}.selection-toolbar{z-index:4;background:var(--surface-solid);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:999px;gap:2px;padding:4px;display:flex;position:absolute}.selection-toolbar .icon-button{border-radius:999px;width:34px;height:34px}.fallback-screen{z-index:50;background:var(--tertiary);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.fallback-card{text-align:center;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-panel);width:100%;max-width:460px;box-shadow:var(--shadow-panel);flex-direction:column;align-items:center;gap:14px;padding:32px 28px;display:flex}.fallback-logo{width:auto;height:40px;margin-bottom:4px}.fallback-icon{fill:none;width:56px;height:56px;stroke:var(--secondary);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.fallback-card h1{font-size:22px}.fallback-card p{color:var(--text-muted);margin:0;font-size:15px;line-height:1.6}.fallback-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.fallback-details{width:100%;color:var(--text-muted);text-align:left;margin-top:6px;font-size:12px}.fallback-details summary{cursor:pointer}.fallback-details pre{white-space:pre-wrap;word-break:break-word;background:var(--primary-soft);border-radius:8px;margin:8px 0 0;padding:10px}.sidebar,.object-palette,.zoom-controls{transition:transform .25s,opacity .25s}.panels-hidden .sidebar{transform:translateX(calc(-100% - var(--gap) * 2))}.panels-hidden .object-palette{transform:translateX(calc(100% + var(--gap) * 2))}.panels-hidden .zoom-controls{transform:translateY(calc(100% + var(--gap) * 2))}.panels-hidden .sidebar,.panels-hidden .object-palette,.panels-hidden .zoom-controls{opacity:0;pointer-events:none;visibility:hidden;transition:transform .25s,opacity .25s,visibility 0s .25s}@media (prefers-reduced-motion:reduce){.sidebar,.object-palette,.zoom-controls{transition:none}}.mode-toggle{background:var(--primary-soft);border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:inline-grid}.mode-toggle button{height:32px;color:var(--text-muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:0 14px;font-weight:600;transition:background .15s,color .15s}.mode-toggle button.active{background:var(--primary);color:var(--tertiary)}
