:root{--bg: #ffffff;--bg-soft: #f7f7f5;--bg-canvas: #fafaf8;--text: #37352f;--text-soft: #787774;--text-faint: #9b9a97;--border: #e9e9e7;--border-strong: #d3d1cb;--accent: #4f46e5;--accent-soft: #eef2ff;--danger: #eb5757;--danger-soft: #fdecec;--green: #0f7b6c;--green-soft: #e7f3f0;--shadow-sm: 0 1px 2px rgba(15, 15, 15, .06), 0 0 0 1px rgba(15, 15, 15, .03);--shadow-md: 0 4px 12px rgba(15, 15, 15, .1), 0 0 0 1px rgba(15, 15, 15, .04);--shadow-lg: 0 12px 32px rgba(15, 15, 15, .16), 0 0 0 1px rgba(15, 15, 15, .05);--radius: 10px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:8px;font-size:14px;font-weight:500;line-height:1.2;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);transition:background .12s ease,border-color .12s ease,opacity .12s;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--bg-soft)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#4338ca}.btn-ghost{border-color:transparent;color:var(--text-soft)}.btn-ghost:hover{background:#0f0f0f0f}.btn-danger{color:var(--danger);border-color:transparent}.btn-danger:hover{background:var(--danger-soft)}.btn-icon{padding:7px;border-radius:8px}.input{width:100%;padding:8px 12px;border:1px solid var(--border-strong);border-radius:8px;font-size:14px;background:var(--bg);outline:none;transition:border-color .12s,box-shadow .12s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em}.error-text{color:var(--danger);font-size:13px;margin-top:8px}.muted{color:var(--text-soft);font-size:13px}.spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.auth-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-canvas);padding:24px}.auth-card{width:100%;max-width:380px;background:var(--bg);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:32px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:20px;font-weight:700}.auth-logo img{width:32px;height:32px;border-radius:8px}.auth-sub{color:var(--text-soft);font-size:14px;margin-bottom:24px}.auth-switch{margin-top:18px;font-size:13px;color:var(--text-soft);text-align:center}.topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.topbar-logo{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px}.topbar-logo img{width:24px;height:24px;border-radius:6px}.topbar-spacer{flex:1}.boards-wrap{max-width:960px;margin:0 auto;padding:32px 20px 60px}.boards-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.boards-head h1{font-size:26px;letter-spacing:-.02em}.boards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.board-tile{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 16px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease;text-align:left}.board-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.board-tile-emoji{font-size:22px;margin-bottom:6px}.board-tile-name{font-weight:600;font-size:15px;word-break:break-word}.board-tile-meta{font-size:12px;color:var(--text-faint)}.board-tile-actions{position:absolute;top:8px;right:8px;display:flex;gap:2px;opacity:0;transition:opacity .12s}.board-tile:hover .board-tile-actions,.board-tile:focus-within .board-tile-actions{opacity:1}@media(pointer:coarse){.board-tile-actions{opacity:1}}.board-tile-actions .btn-icon{padding:5px;font-size:13px;color:var(--text-faint)}.board-tile-rename{font-weight:600;font-size:15px;border:1px solid var(--accent);border-radius:6px;padding:2px 6px;outline:none;width:100%}.empty-state{text-align:center;padding:70px 20px;color:var(--text-soft)}.empty-state .big{font-size:40px;margin-bottom:12px}.canvas-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.canvas-topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:20}.canvas-title{font-weight:600;font-size:15px;border:1px solid transparent;border-radius:6px;padding:4px 8px;outline:none;min-width:60px;max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-title:hover{background:var(--bg-soft)}.canvas-title:focus{border-color:var(--accent);background:var(--bg)}.canvas-viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background-color:var(--bg-canvas);touch-action:none;cursor:default}.canvas-viewport.panning{cursor:grabbing}.canvas-world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.item-card{position:absolute;background:var(--bg);border-radius:12px;box-shadow:var(--shadow-md);overflow:hidden;user-select:none;-webkit-user-select:none;display:flex;flex-direction:column;transition:box-shadow .12s ease}.item-card.selected{box-shadow:0 0 0 2.5px var(--accent),var(--shadow-lg)}.item-card.dragging{box-shadow:var(--shadow-lg);opacity:.95}.item-card-img{width:100%;display:block;background:var(--bg-soft);pointer-events:none;min-height:40px;object-fit:cover}.item-card-noimg{display:flex;align-items:center;justify-content:center;height:110px;font-size:34px;background:linear-gradient(135deg,#f4f3ff,#eef7f4);pointer-events:none}.item-card-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px}.item-card-title{font-size:13.5px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.item-card-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.item-card-price{font-size:13px;font-weight:700;color:var(--green);background:var(--green-soft);padding:2px 8px;border-radius:6px;white-space:nowrap}.item-card-domain{font-size:11.5px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.item-card-note{font-size:12px;color:var(--text-soft);line-height:1.4}.resize-handle{position:absolute;right:-7px;bottom:-7px;width:18px;height:18px;border-radius:50%;background:var(--accent);border:2.5px solid #fff;box-shadow:var(--shadow-sm);cursor:nwse-resize;touch-action:none}.selection-bar{position:absolute;display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:3px;z-index:30;transform:translate(-50%,-100%)}.selection-bar .btn-icon{font-size:15px;padding:6px 9px}.fab{position:absolute;right:20px;bottom:24px;width:54px;height:54px;border-radius:50%;background:var(--accent);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #4f46e566;z-index:25;transition:transform .12s ease,background .12s}.fab:hover{background:#4338ca;transform:scale(1.05)}.zoom-controls{position:absolute;left:14px;bottom:24px;display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm);z-index:25;overflow:hidden}.zoom-controls button{padding:8px 12px;font-size:16px;color:var(--text-soft)}.zoom-controls button:hover{background:var(--bg-soft)}.zoom-level{font-size:12px;color:var(--text-soft);min-width:46px;text-align:center;cursor:pointer}.canvas-hint{position:absolute;bottom:90px;left:50%;transform:translate(-50%);background:#1e1e1ed9;color:#fff;font-size:13px;padding:8px 16px;border-radius:20px;z-index:25;pointer-events:none;white-space:nowrap}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0f0f73;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.dialog{width:100%;max-width:440px;max-height:92vh;overflow-y:auto;background:var(--bg);border-radius:14px;box-shadow:var(--shadow-lg);padding:22px;animation:dialog-in .16s ease}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.dialog h2{font-size:17px;margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.url-fetch-row{display:flex;gap:8px}.url-fetch-row .input{flex:1}.preview-img-wrap{position:relative;margin-bottom:14px}.preview-img{width:100%;max-height:220px;object-fit:contain;border-radius:10px;border:1px solid var(--border);background:var(--bg-soft)}.preview-img-remove{position:absolute;top:6px;right:6px;background:#1e1e1eb3;color:#fff;border-radius:50%;width:26px;height:26px;font-size:13px;display:flex;align-items:center;justify-content:center}.divider-label{display:flex;align-items:center;gap:10px;color:var(--text-faint);font-size:12px;margin:14px 0}.divider-label:before,.divider-label:after{content:"";flex:1;height:1px;background:var(--border)}.share-wrap{max-width:520px;margin:0 auto;padding:32px 20px}.share-board-list{display:flex;flex-direction:column;gap:8px;margin-top:18px}.share-board-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-size:15px;font-weight:500;text-align:left;box-shadow:var(--shadow-sm);transition:box-shadow .12s,transform .12s}.share-board-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
