:root{--blue-950:#061830;--blue-900:#0a2a4a;--blue-800:#0e3d6b;--blue-700:#145a9e;--blue-600:#1a73be;--blue-500:#2b8fd4;--blue-400:#5aadde;--blue-300:#8ec8ea;--blue-200:#c5e2f4;--blue-100:#e4f2fb;--blue-50:#f3f9fd;--ink:#082038;--muted:#4a6a88;--white:#fff;--danger:#c53030;--shadow:0 12px 40px #0828502e;--note-yellow:#ffe566;--note-pink:#ff8eb5;--note-orange:#ffb24a;--note-red:#ff6b6b;--note-purple:#c792ea;--note-green:#7ddea3;--note-turquoise:#5ee0d0;--note-white:#fffdf8;--font-ui:"DM Sans", sans-serif;--font-brand:"Fraunces", Georgia, serif;font-family:var(--font-ui);color:var(--ink);line-height:1.45}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue-500)}.brand{font-family:var(--font-brand);letter-spacing:-.02em;font-weight:700}.app-shell{background:var(--blue-900);min-height:100%}.gate{background:radial-gradient(ellipse 80% 60% at 20% 10%, #2b8fd473, transparent 55%), radial-gradient(ellipse 70% 50% at 90% 80%, #0e3d6be6, transparent 50%), linear-gradient(160deg, var(--blue-950), var(--blue-800) 45%, var(--blue-700));place-items:center;min-height:100%;padding:2rem;display:grid}.gate-inner{text-align:center;width:min(420px,100%);color:var(--white);animation:.45s both brand-in}.gate-inner .brand{background:linear-gradient(120deg, var(--blue-100), var(--blue-300));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 .65rem;font-size:clamp(2.2rem,6vw,3rem)}.gate-inner p{color:var(--blue-200)}.gate-inner a{color:var(--blue-300)}.gate-form{text-align:left;gap:.85rem;margin-top:1.5rem;display:grid}.gate-form label{letter-spacing:.04em;text-transform:uppercase;color:var(--blue-300);font-size:.8rem;font-weight:600}.input{width:100%;color:var(--ink);background:#f3f9fdf2;border:1px solid #8ec8ea59;border-radius:10px;padding:.85rem 1rem}.input:focus{border-color:var(--blue-400);outline:none;box-shadow:0 0 0 3px #5aadde59}.btn{background:linear-gradient(135deg, var(--blue-500), var(--blue-700));color:#fff;border:none;border-radius:10px;padding:.85rem 1.2rem;font-weight:600;transition:transform .15s,filter .15s}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{color:var(--blue-100);background:#ffffff1a;border:1px solid #8ec8ea4d}.btn.ghost{color:var(--blue-200);background:0 0;border:1px solid #0000}.btn.danger{background:var(--danger)}.btn.sm{border-radius:8px;padding:.4rem .75rem;font-size:.85rem}.card{color:var(--white);box-shadow:var(--shadow);background:#ffffff0f;border:1px solid #8ec8ea33;border-radius:16px;padding:1.5rem}.meta{color:var(--blue-300);font-size:.85rem}.list-shell{background:radial-gradient(ellipse 70% 40% at 10% 0%, #2b8fd440, transparent 50%), linear-gradient(180deg, var(--blue-950), var(--blue-900));min-height:100%}.list-topbar{background:linear-gradient(180deg, var(--blue-900), var(--blue-800));color:var(--white);border-bottom:1px solid #8ec8ea2e;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.list-topbar .brand{color:var(--blue-100);font-size:1.35rem}.board-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;padding:1.25rem;display:grid}.board-card{text-align:left;color:var(--white);background:#ffffff0f;border:1px solid #8ec8ea33;border-radius:14px;padding:1.15rem;transition:transform .2s,box-shadow .2s,background .2s}.board-card:hover{box-shadow:var(--shadow);background:#ffffff1a;transform:translateY(-2px)}.board-card h3{color:var(--blue-100);margin:0 0 .35rem;font-size:1.05rem}.modal-backdrop{z-index:50;background:#0618308c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--blue-900);width:min(760px,100%);max-height:85vh;color:var(--white);box-shadow:var(--shadow);border:1px solid #8ec8ea40;border-radius:16px;padding:1.25rem;overflow:auto}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}.tpl-card{text-align:left;color:var(--white);background:#ffffff0d;border:1px solid #8ec8ea38;border-radius:12px;padding:.85rem}.tpl-card:hover{border-color:var(--blue-400);background:#2b8fd426}.tpl-card .phase{color:var(--blue-300);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.editor{background:var(--blue-900);height:100%;color:var(--white);flex-direction:column;display:flex;overflow:hidden}.editor-notice{color:#163a56;background:#d6ebf8;border-bottom:1px solid #3182ce40;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .9rem;font-size:.85rem;font-weight:600;display:flex}.editor-notice button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:1.1rem;line-height:1}.topbar{background:linear-gradient(180deg, var(--blue-900), var(--blue-800));z-index:20;border-bottom:1px solid #8ec8ea2e;flex-shrink:0;align-items:center;gap:.85rem;padding:.65rem 1rem;display:flex}.topbar__brand{font-family:var(--font-brand);letter-spacing:-.02em;color:var(--blue-100);white-space:nowrap;font-size:1.35rem;font-weight:700;text-decoration:none}.topbar__title{flex-wrap:wrap;flex:1;align-items:center;gap:.65rem;min-width:0;display:flex}.topbar__title input{width:min(320px,42vw);color:var(--white);background:#ffffff14;border:none;border-radius:6px;outline:none;padding:.35rem .55rem;font-size:.95rem;font-weight:500}.topbar__title input:focus{background:#ffffff24}.topbar__title input:disabled{opacity:.7}.topbar__max-votes{color:var(--blue-100);white-space:nowrap;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:inline-flex}.topbar__max-votes input{text-align:center;width:3.25rem;padding:.3rem .4rem}.topbar__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.topbar__actions button,.topbar__actions .chip{color:var(--blue-100);background:#ffffff0f;border:1px solid #8ec8ea38;border-radius:8px;padding:.35rem .6rem;font-size:.8rem;font-weight:600}.topbar__actions button:hover{background:#5aadde33}.topbar__actions button:disabled{opacity:.45;cursor:not-allowed}.topbar__actions button:disabled:hover{background:#ffffff0f}.presence{align-items:center;gap:.15rem;display:flex}.presence__dot{width:28px;height:28px;color:var(--white);border:2px solid var(--blue-800);border-radius:50%;place-items:center;margin-left:-6px;font-size:.68rem;font-weight:700;display:grid}.presence__dot:first-child{margin-left:0}.presence__you{color:var(--blue-200);white-space:nowrap;margin-left:.55rem;font-size:.82rem}.presence__you strong{color:var(--white)}.workspace{flex:1;grid-template-columns:auto 1fr;min-height:0;display:grid;position:relative}.toolbar{background:linear-gradient(180deg, var(--blue-800), var(--blue-900));z-index:15;border-right:1px solid #8ec8ea26;flex-direction:column;gap:.35rem;padding:.75rem .55rem;display:flex;overflow:visible}.tool{width:44px;height:44px;color:var(--blue-200);background:0 0;border:none;border-radius:10px;place-items:center;transition:background .15s,color .15s,transform .15s;display:grid;position:relative}.tool svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tool:hover{color:var(--white);background:#5aadde2e}.tool:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.tool.is-active{background:var(--blue-600);color:var(--white);box-shadow:0 4px 14px #1a73be73}.tool__sep{background:#8ec8ea33;height:1px;margin:.35rem .4rem}.tool-flyout-wrap{z-index:40;position:relative}.tool-flyout{box-shadow:var(--shadow);z-index:50;pointer-events:auto;background:#0a2a4af5;border:1px solid #8ec8ea40;border-radius:10px;flex-direction:column;gap:.25rem;padding:.35rem;display:flex;position:absolute;top:0;left:calc(100% + 8px)}.tool-flyout .tool{width:40px;height:40px}.canvas-wrap{background:linear-gradient(#e4f2fb8c,#0000 30%),radial-gradient(circle at 1px 1px,#1a73be24 1px,#0000 0) 0 0/28px 28px;background-color:var(--blue-50);cursor:grab;min-height:0;position:relative;overflow:hidden}.canvas-wrap.panning{cursor:grabbing}.canvas-stage{transform-origin:0 0;will-change:transform;position:absolute}.comments-panel{z-index:22;width:min(280px,100% - 1.5rem);max-height:40%;color:var(--blue-100);box-shadow:var(--shadow);background:#0a2a4aeb;border:1px solid #8ec8ea38;border-radius:12px;padding:.75rem;position:absolute;top:.75rem;right:.75rem;overflow:auto}.top-ideas-panel{z-index:22;width:min(300px,100% - 1.5rem);max-height:min(52%,420px);color:var(--blue-100);box-shadow:var(--shadow);touch-action:none;background:#0a2a4af0;border:1px solid #8ec8ea38;border-radius:12px;padding:.65rem .7rem .75rem;position:absolute;overflow:auto}.top-ideas-panel__head{color:var(--white);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;margin:-.15rem -.2rem .55rem;padding:.25rem .2rem;font-size:.9rem;display:flex}.top-ideas-panel__head:active{cursor:grabbing}.top-ideas-panel__close{width:28px;height:28px;color:var(--white);cursor:pointer;background:#ffffff14;border:none;border-radius:6px;font-size:1.1rem;line-height:1}.top-ideas-panel__close:hover{background:#ffffff29}.top-ideas-panel__empty{color:var(--blue-200);margin:0;font-size:.82rem}.top-ideas-panel__list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.top-ideas-panel__item{width:100%;color:var(--blue-100);text-align:left;cursor:pointer;background:#ffffff0d;border:1px solid #0000;border-radius:8px;grid-template-columns:1.4rem .7rem minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.4rem .45rem;display:grid}.top-ideas-panel__item:hover{background:#5aadde2e;border-color:#8ec8ea47}.top-ideas-panel__item.is-selected{background:#5aadde47;border-color:#8ec8ea73}.top-ideas-panel__rank{color:var(--blue-200);text-align:center;font-size:.75rem;font-weight:700}.top-ideas-panel__swatch{border:1px solid #0000002e;border-radius:2px;flex-shrink:0;width:10px;height:10px}.top-ideas-panel__text{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;line-height:1.25;overflow:hidden}.top-ideas-panel__votes{color:#ffd76a;white-space:nowrap;font-size:.75rem;font-weight:700}.bottom-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);z-index:20;background:#0a2a4aeb;border:1px solid #8ec8ea38;border-radius:999px;align-items:center;gap:.75rem;padding:.45rem .65rem;display:flex;position:absolute;bottom:1.15rem;left:50%;transform:translate(-50%)}.swatches{gap:.35rem;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0}.swatch:hover{transform:scale(1.12)}.swatch.is-selected{border-color:var(--white);box-shadow:0 0 0 1px var(--blue-400)}.zoom{color:var(--blue-200);align-items:center;gap:.25rem;font-size:.8rem;font-weight:600;display:flex}.zoom button{width:28px;height:28px;color:var(--white);background:#ffffff14;border:none;border-radius:6px;font-weight:700}.zoom button:hover{background:#ffffff29}.pages{z-index:20;gap:.35rem;display:flex;position:absolute;bottom:1.15rem;right:1rem}.page-pill{min-width:36px;height:36px;color:var(--blue-100);background:#0a2a4ae6;border:1px solid #8ec8ea40;border-radius:8px;padding:0 .65rem;font-size:.85rem;font-weight:600}.page-pill.is-active{background:var(--blue-600);color:var(--white);border-color:#0000}.el{-webkit-user-select:none;user-select:none;border-radius:8px;position:absolute}.el.selected{outline:2px solid var(--blue-500);outline-offset:2px}.el-sticky{color:#1a2430;border-radius:2px;flex-direction:column;padding:.2rem .4rem;font-size:.92rem;line-height:1.3;animation:.35s cubic-bezier(.2,.9,.3,1.2) both note-in;display:flex;overflow:hidden;box-shadow:2px 3px #0828500f,0 10px 24px #0828501f}.el-sticky.selected{overflow:visible}.el-sticky-drag{z-index:2;color:#1a243073;cursor:grab;touch-action:none;border-radius:3px;place-items:center;width:16px;height:16px;display:grid;position:absolute;top:2px;left:2px}.el-sticky-drag:hover{color:#1a2430bf;background:#08285014}.el-sticky-drag:active{cursor:grabbing}.el-sticky-text{resize:none;width:100%;min-height:0;font:inherit;color:inherit;line-height:inherit;background:0 0;border:none;flex:auto;margin:0;padding:14px 2px 2px;overflow:auto}.el-sticky-votes{opacity:.7;flex:none;padding:1px 2px 0;font-size:11px;line-height:1}.el-resize-handle{cursor:nwse-resize;z-index:2;touch-action:none;background:linear-gradient(135deg,#0000 55%,#08285038 55% 70%,#0000 70%),linear-gradient(135deg,#0000 75%,#08285059 75%);border-radius:0 0 2px;width:14px;height:14px;position:absolute;bottom:-2px;right:-2px}.el-resize-handle:hover{background:linear-gradient(135deg, transparent 55%, var(--blue-500) 55%, var(--blue-500) 70%, transparent 70%), linear-gradient(135deg, transparent 75%, var(--blue-600) 75%)}.el-frame{border:2px dashed var(--blue-600);color:var(--blue-800);background:#e4f2fbb3;padding:.5rem;font-weight:600}.el-frame.selected{overflow:visible}.el-text{white-space:pre-wrap;color:var(--ink);cursor:grab;box-sizing:border-box;padding:.35rem .5rem}.el-text.selected{overflow:visible}.el-text-input{resize:none;width:100%;height:100%;font:inherit;color:inherit;pointer-events:none;cursor:inherit;background:0 0;border:none;margin:0;padding:0;line-height:1.25;display:block;overflow:hidden}.el-text-input.is-editing{pointer-events:auto;cursor:text;overflow:auto}.el-shape{border:2.5px solid var(--blue-600);background:#2b8fd414}.search-hit{outline:3px solid #ffb24a!important}.focus-flash{animation:.5s ease-in-out 3 focus-color-pulse;z-index:9999!important;outline:3px solid #ff6b6b!important}@keyframes focus-color-pulse{0%,to{background-color:var(--sticky-base,#ffe566);outline-color:#ff6b6b;box-shadow:0 0 #ff6b6b73}50%{background-color:#ff4d6d;outline-color:#ffb24a;box-shadow:0 0 0 8px #ff4d6d59}}.remote-cursor{pointer-events:none;z-index:10000;transition:left 50ms linear,top 50ms linear;position:absolute}.remote-cursor span{color:var(--white);white-space:nowrap;border-radius:4px;margin-top:-2px;margin-left:12px;padding:.15rem .45rem;font-size:.68rem;font-weight:700;display:block}@keyframes brand-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes note-in{0%{opacity:0;transform:scale(.86)rotate(-2deg)}to{opacity:1;transform:none}}@media (width<=720px){.presence__you span:not(strong){display:none}.topbar__title input{width:110px}.topbar__actions{display:none}.bottom-bar{max-width:calc(100% - 5rem);overflow-x:auto}}
