:root{--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, monospace;--bg-canvas: #f7f6f3;--dot-grid: #dddad1;--ink-primary: #141413;--ink-secondary: #6e6d68;--ink-muted: #9b9992;--surface-hud: rgba(255, 255, 255, .92);--surface-hud-hover: #f2f1ed;--surface-hud-active: #141413;--ink-on-active: #ffffff;--border-hairline: rgba(20, 20, 19, .1);--border-strong: rgba(20, 20, 19, .18);--shadow-subtle: 0 2px 10px rgba(20, 20, 19, .06);--accent: #2563eb;--accent-soft: rgba(37, 99, 235, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .1)}[data-theme=dark]{--bg-canvas: #111113;--dot-grid: #25252a;--ink-primary: #f4f4f2;--ink-secondary: #a1a1aa;--ink-muted: #71717a;--surface-hud: rgba(24, 24, 27, .9);--surface-hud-hover: rgba(255, 255, 255, .08);--surface-hud-active: #f4f4f2;--ink-on-active: #111113;--border-hairline: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--shadow-subtle: 0 4px 16px rgba(0, 0, 0, .4);--accent: #60a5fa;--accent-soft: rgba(96, 165, 250, .14);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .15)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg-canvas);color:var(--ink-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none}button{font-family:inherit;color:inherit;background:transparent;border:none;padding:0;margin:0;cursor:pointer}button:disabled{opacity:.35;cursor:default}kbd{font-family:var(--font-mono);font-size:11px;line-height:1;padding:3px 6px;border-radius:4px;background:var(--surface-hud-hover);border:1px solid var(--border-hairline);color:var(--ink-secondary)}.board-root{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg-canvas)}.board-canvas{display:block;width:100%;height:100%;touch-action:none}.empty-state{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;padding:24px}.empty-state-inner{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;max-width:340px;color:var(--ink-secondary)}.empty-state-icon{width:38px;height:38px;border-radius:10px;border:1px solid var(--border-hairline);background:var(--surface-hud);display:flex;align-items:center;justify-content:center;color:var(--ink-secondary);margin-bottom:2px}.empty-state-title{font-size:14px;font-weight:500;color:var(--ink-primary);letter-spacing:-.01em}.empty-state-sub{font-size:13px;line-height:1.5;color:var(--ink-muted);display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:5px}.hud-container{position:fixed;left:16px;bottom:16px;z-index:20;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.hud-bar{display:flex;align-items:center;height:38px;padding:3px;gap:2px;border-radius:10px;background:var(--surface-hud);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hairline);box-shadow:var(--shadow-subtle)}.hud-btn{height:30px;min-width:30px;padding:0 7px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:500;color:var(--ink-secondary);transition:background-color .14s ease,color .14s ease,transform .12s ease}.hud-btn:hover:not(:disabled){background:var(--surface-hud-hover);color:var(--ink-primary)}.hud-btn:active:not(:disabled){transform:scale(.96)}.hud-btn.is-active,.hud-btn.is-active:hover{background:var(--surface-hud-active);color:var(--ink-on-active)}.hud-btn.is-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.hud-zoom-label{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11.5px;min-width:48px;padding:0 6px}.hud-divider{width:1px;height:18px;background:var(--border-hairline);margin:0 3px}.hud-popover{padding:10px 12px;border-radius:10px;background:var(--surface-hud);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hairline);box-shadow:var(--shadow-subtle);font-size:12px}.confirm-popover{display:flex;align-items:center;gap:8px}.confirm-text{color:var(--ink-primary);font-weight:500;margin-right:4px}.mini-btn{height:26px;padding:0 10px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid var(--border-hairline);color:var(--ink-secondary);transition:background-color .14s ease,color .14s ease}.mini-btn:hover{background:var(--surface-hud-hover);color:var(--ink-primary)}.mini-btn-danger{background:var(--danger);border-color:transparent;color:#fff}.mini-btn-danger:hover{opacity:.9;background:var(--danger);color:#fff}.shortcuts-popover{width:248px;display:flex;flex-direction:column;gap:7px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink-secondary)}.shortcut-keys{display:inline-flex;align-items:center;gap:3px}.selection-bar{position:fixed;z-index:25;transform:translate(-50%);display:flex;align-items:center;height:36px;padding:3px;gap:2px;border-radius:9px;background:var(--surface-hud);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hairline);box-shadow:var(--shadow-subtle);pointer-events:auto}.selection-copy-btn{height:28px;padding:0 10px;border-radius:6px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;background:var(--surface-hud-active);color:var(--ink-on-active);transition:opacity .14s ease,transform .12s ease}.selection-copy-btn:hover{opacity:.88}.selection-copy-btn:active{transform:scale(.97)}.selection-bar-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);padding:0 7px;white-space:nowrap}.toast-pill{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:40;height:32px;padding:0 12px;border-radius:8px;background:var(--surface-hud-active);color:var(--ink-on-active);font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:7px;box-shadow:var(--shadow-subtle);pointer-events:none;animation:toast-in .16s cubic-bezier(.16,1,.3,1)}.toast-pill.is-error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.drop-overlay{position:fixed;top:14px;right:14px;bottom:14px;left:14px;z-index:50;border-radius:14px;border:1.5px dashed var(--accent);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;pointer-events:none}.drop-overlay-pill{padding:10px 16px;border-radius:9px;background:var(--surface-hud);border:1px solid var(--border-hairline);font-size:13px;font-weight:500;color:var(--ink-primary);box-shadow:var(--shadow-subtle)}@media(max-width:640px){.hud-container{left:12px;bottom:12px}.hud-zoom-label{min-width:42px;padding:0 4px}}.credit-container{position:fixed;right:16px;bottom:16px;z-index:20}.credit-bar{display:flex;align-items:center;height:38px;padding:3px 4px 3px 11px;gap:6px;border-radius:10px;background:var(--surface-hud);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-hairline);box-shadow:var(--shadow-subtle);font-size:12px}.credit-author{color:var(--ink-secondary);white-space:nowrap}.credit-author strong{font-weight:600;color:var(--ink-primary)}.credit-coffee-btn{height:30px;padding:0 9px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ink-primary);background:var(--surface-hud-hover);border:1px solid var(--border-hairline);white-space:nowrap;transition:background-color .14s ease,border-color .14s ease,transform .12s ease}.credit-coffee-btn:hover{border-color:var(--border-strong);background:var(--surface-hud-active);color:var(--ink-on-active)}.credit-coffee-btn:hover .credit-number{color:var(--ink-on-active);opacity:.82}.credit-coffee-btn:active{transform:scale(.97)}.credit-coffee-btn.is-copied{background:var(--surface-hud-active);color:var(--ink-on-active);border-color:transparent}.credit-coffee-btn.is-copied .credit-number{color:var(--ink-on-active);opacity:.85}.credit-number{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-secondary);letter-spacing:.01em}@media(max-width:1060px){.credit-container{top:12px;right:12px;bottom:auto}}@media(max-width:540px){.credit-bar{height:auto;flex-wrap:wrap;justify-content:flex-end;padding:5px 8px;max-width:calc(100vw - 24px)}.credit-bar .hud-divider{display:none}}
