*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cork: #c19a6b;--cork-dark: #a07850;--cork-light: #d4b483;--string-red: #8B1A1A;--string-alt: #1a3c8b;--string-grn: #1a6b2a;--ui-bg: #1a1210;--ui-bg2: #261c18;--ui-border: #4a3020;--ui-accent: #8B1A1A;--ui-text: #e8d5b0;--ui-muted: #7a6050;--font-type: "Courier Prime", monospace;--font-hand: "Caveat", cursive;--font-stamp: "Special Elite", cursive}[data-theme=light]{--ui-bg: #f2e8d8;--ui-bg2: #e8dcc8;--ui-border: #b89060;--ui-accent: #8B1A1A;--ui-text: #2c1a0a;--ui-muted: #8a6840}[data-theme=light] html,[data-theme=light] body,html[data-theme=light],html[data-theme=light] body,html[data-theme=light] #root{background:var(--ui-bg);color:var(--ui-text)}html,body,#root{height:100%;overflow:hidden;background:var(--ui-bg);color:var(--ui-text);font-family:var(--font-type)}button{cursor:pointer;border:none;outline:none;font-family:var(--font-stamp)}input,textarea{font-family:var(--font-hand);font-size:1rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:3px}.postit{width:100%;height:100%;padding:28px 12px 10px;display:flex;flex-direction:column;box-shadow:3px 4px 10px #00000059,inset 0 -2px 4px #00000014;border-radius:2px;overflow:hidden;position:relative}.postit:after{content:"";position:absolute;bottom:0;right:0;border-style:solid;border-width:0 0 18px 18px;border-color:transparent transparent rgba(0,0,0,.2) transparent}.postit-swatches{position:absolute;top:6px;left:6px;display:flex;gap:3px}.postit-swatch{width:10px;height:10px;border-radius:50%;border:none;cursor:pointer;outline-offset:1px;transition:transform .1s}.postit-swatch:hover{transform:scale(1.3)}.postit-text{flex:1;font-family:var(--font-hand);font-size:1rem;line-height:1.45;color:#1a1208;word-break:break-word;overflow:hidden}.postit-placeholder{color:#1a120859;font-style:italic}.postit-textarea{flex:1;width:100%;border:none;background:transparent;resize:none;font-family:var(--font-hand);font-size:1rem;line-height:1.45;color:#1a1208;outline:none;cursor:text}.photo-card{width:100%;height:100%;background:#f0e8d0;display:flex;flex-direction:column;padding:8px 8px 6px;box-shadow:3px 4px 12px #0006;gap:6px;border-radius:1px}.photo-frame{flex:1;background:#1a1210;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;position:relative;border:2px solid #e0d4b0;transition:border-color .15s,background-color .15s}.photo-frame--drag-over{border-color:#f0c040;background-color:#2a2010;outline:2px dashed #f0c040;outline-offset:-4px}.photo-img{width:100%;height:100%;object-fit:cover;display:block}.photo-replace{position:absolute;top:4px;right:4px;background:#0009;color:#fff;border-radius:50%;width:22px;height:22px;font-size:.8rem;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;cursor:pointer}.photo-frame:hover .photo-replace{opacity:1}.photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:#8a7a60;font-family:var(--font-type);font-size:.75rem;text-align:center;padding:8px}.photo-placeholder span:first-child{font-size:1.6rem}.photo-caption-wrap{display:flex;flex-direction:column;gap:2px}.photo-title{font-family:var(--font-stamp);font-size:.9rem;letter-spacing:.05em;color:#1a1208;background:transparent;border:none;border-bottom:1px solid #c0b080;outline:none;width:100%;padding:1px 2px}.photo-caption{font-family:var(--font-hand);font-size:.8rem;color:#4a3820;background:transparent;border:none;outline:none;width:100%;padding:1px 2px}.photo-caption::placeholder,.photo-title::placeholder{color:#9a8860}.clue-card{width:100%;height:100%;background:linear-gradient(160deg,#1e1410,#2a1c14);border:1px solid #5a3520;border-radius:2px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;box-shadow:3px 4px 12px #00000080,inset 0 1px #ffc8640d}.clue-header{display:flex;align-items:center;gap:8px;border-bottom:1px solid #5a3520;padding-bottom:8px}.clue-number{font-family:var(--font-stamp);font-size:1.2rem;color:var(--ui-accent);background:transparent;border:none;outline:none;width:36px;text-align:center;flex-shrink:0}.clue-title{font-family:var(--font-stamp);font-size:.9rem;letter-spacing:.08em;color:var(--ui-text);background:transparent;border:none;outline:none;flex:1;min-width:0}.clue-title::placeholder{color:var(--ui-muted)}.clue-text{flex:1;font-family:var(--font-type);font-size:.78rem;line-height:1.5;color:#c8a870;background:transparent;border:none;outline:none;resize:none;width:100%}.clue-text::placeholder{color:var(--ui-muted)}.char-card{width:100%;height:100%;background:linear-gradient(160deg,#1e1614,#2c1e18);border:1px solid #5a3520;border-radius:2px;padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:3px 4px 12px #00000080;overflow:hidden}.char-photo{position:relative;width:72px;height:72px;border-radius:50%;border:2px solid #5a3520;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;align-self:center;background:#1a1210;flex-shrink:0;transition:border-color .2s}.char-photo:hover{border-color:var(--ui-accent)}.char-photo:hover .char-photo-replace{opacity:1}.char-photo--drag-over{border-color:var(--ui-accent)!important;box-shadow:0 0 0 3px #c8a05059}.char-photo-replace{position:absolute;bottom:2px;right:2px;width:20px;height:20px;border-radius:50%;background:#000000a6;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.char-photo img{width:100%;height:100%;object-fit:cover}.char-photo-placeholder{font-family:var(--font-stamp);font-size:2rem;color:var(--ui-muted)}.char-info{flex:1;display:flex;flex-direction:column;gap:6px;min-height:0}.char-name{font-family:var(--font-stamp);font-size:1rem;letter-spacing:.05em;color:var(--ui-text);background:transparent;border:none;border-bottom:1px solid #5a3520;outline:none;padding:2px 0;width:100%;text-align:center}.char-name::placeholder{color:var(--ui-muted)}.char-statuses{display:flex;flex-wrap:wrap;gap:3px}.char-status-btn{font-family:var(--font-type);font-size:.58rem;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:9999px;background:#ffffff0d;color:var(--ui-muted);border:1px solid rgba(255,255,255,.1);transition:all .15s;cursor:pointer;white-space:nowrap}.char-status-btn:hover{border-color:var(--sc);color:var(--sc);background:#ffffff14}.char-status-btn.active{background:var(--sc);color:#fff;border-color:var(--sc);box-shadow:0 0 6px color-mix(in srgb,var(--sc) 50%,transparent)}.char-desc{flex:1;font-family:var(--font-hand);font-size:.82rem;line-height:1.4;color:#c8a870;background:transparent;border:none;outline:none;resize:none;width:100%;min-height:0}.char-desc::placeholder{color:var(--ui-muted)}.location-card{width:100%;height:100%;background:linear-gradient(160deg,#12181e,#1a2430);border:1px solid #203050;border-radius:2px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;box-shadow:3px 4px 12px #00000080}.location-icon{font-size:1.4rem;text-align:center}.location-name{font-family:var(--font-stamp);font-size:1rem;letter-spacing:.08em;text-align:center;color:#90c8ff;background:transparent;border:none;border-bottom:1px solid #203050;outline:none;padding:2px 0;width:100%}.location-name::placeholder{color:#3a5070}.location-desc{flex:1;font-family:var(--font-hand);font-size:.85rem;line-height:1.45;color:#a0c8e0;background:transparent;border:none;outline:none;resize:none;width:100%}.location-desc::placeholder{color:#3a5070}.note-card{width:100%;height:100%;border-radius:2px;padding:8px 10px;position:relative;overflow:hidden;box-shadow:3px 4px 10px #00000059;display:flex}.note-lines{position:absolute;top:0;right:0;bottom:0;left:0;padding:24px 10px 8px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.note-line{height:1px;background:#64502840}.note-text{position:relative;z-index:1;width:100%;height:100%;background:transparent;border:none;outline:none;resize:none;font-family:var(--font-hand);font-size:.95rem;line-height:1.55;color:#1a1208;padding:2px}.note-text::placeholder{color:#1a120859}.portal-card{width:100%;height:100%;background:#1a1a2e;border:2px solid #3a3a6e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;border-radius:2px;box-shadow:inset 0 0 20px #5050b426}.portal-icon{font-size:2rem;line-height:1}.portal-name{font-family:var(--font-stamp);font-size:.9rem;letter-spacing:.08em;color:#c8c8f8;text-align:center;word-break:break-word}.portal-hint{font-family:var(--font-type);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#6060a0}.portal-enter{margin-top:6px;background:#2a2a5e;color:#c8c8f8;border:1px solid #4a4a9e;padding:5px 16px;font-size:.75rem;border-radius:3px;font-family:var(--font-stamp);letter-spacing:.08em;transition:background .15s,border-color .15s}.portal-enter:hover{background:#3a3a7e;border-color:#8080c8}.portal-enter:disabled{opacity:.4;cursor:default}.portal-name-input{display:none}.tape-label{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.tape-body{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;box-shadow:inset 6px 0 8px #00000026,inset -6px 0 8px #00000026}.tape-body:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(92deg,transparent 0px,transparent 3px,rgba(255,255,255,.06) 3px,rgba(255,255,255,.06) 4px,transparent 4px,transparent 8px,rgba(0,0,0,.04) 8px,rgba(0,0,0,.04) 9px)}.tape-body--tan{background:#d7c18ae6}.tape-body--white{background:#f2f0eaeb}.tape-body--blue{background:#94bee1de}.tape-body--yellow{background:#eeda5ae0}.tape-body--pink{background:#e4a2addb}.tape-body--green{background:#94cc94de}.tape-body--red{background:#d26464de}.tape-text{position:relative;z-index:2;display:block;width:100%;border:none;outline:none;background:transparent;font-family:var(--font-stamp);font-size:22px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.12em;padding:4px 12px;box-sizing:border-box;cursor:text;overflow:hidden;white-space:nowrap}.tape-text::placeholder{opacity:.45}.tape-swatches{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);z-index:30;background:#2a2018;border:1px solid #5a3a1a;border-radius:3px;padding:3px 6px;display:flex;gap:5px;opacity:0;transition:opacity .15s;pointer-events:none}.tape-label:hover .tape-swatches{opacity:1;pointer-events:auto}.tape-swatch{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(0,0,0,.3);cursor:pointer;padding:0;transition:transform .1s,border-color .1s}.tape-swatch:hover{transform:scale(1.25)}.tape-swatch.active{border-color:#fff;transform:scale(1.2);box-shadow:0 0 3px #ffffff80}.checklist-card{width:100%;height:100%;display:flex;flex-direction:column;background:#120e0ae0;border:1px solid rgba(120,90,50,.4);border-radius:3px;overflow:hidden;font-family:var(--font-type)}.checklist-header{display:flex;align-items:center;padding:8px 10px 6px;border-bottom:1px solid rgba(120,90,50,.3);flex-shrink:0;gap:6px}.checklist-title{flex:1;background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-stamp);font-size:.85rem;font-weight:700;letter-spacing:.06em}.checklist-count{font-size:.68rem;color:var(--ui-muted);font-family:var(--font-type);flex-shrink:0}.checklist-list{flex:1;overflow-y:auto;padding:4px 0}.checklist-row{display:flex;align-items:center;gap:6px;padding:3px 8px;transition:background .1s}.checklist-row:hover{background:#ffffff0a}.checklist-cb{width:13px;height:13px;flex-shrink:0;cursor:pointer;accent-color:#c8a020}.checklist-item-text{flex:1;background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-type);font-size:.78rem;transition:opacity .15s,color .15s}.checklist-row.done .checklist-item-text{opacity:.35;text-decoration:line-through;color:var(--ui-muted)}.checklist-del{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-size:.9rem;padding:0 2px;opacity:0;transition:opacity .1s,color .1s;flex-shrink:0}.checklist-row:hover .checklist-del{opacity:1}.checklist-del:hover{color:#ff6b6b}.checklist-add{background:none;border:none;border-top:1px solid rgba(120,90,50,.25);color:var(--ui-muted);font-family:var(--font-stamp);font-size:.72rem;letter-spacing:.05em;padding:6px 10px;cursor:pointer;text-align:left;flex-shrink:0;transition:color .1s,background .1s}.checklist-add:hover{color:var(--ui-text);background:#ffffff0a}.timeline-card{width:100%;height:100%;display:flex;flex-direction:column;background:#0e0c08e6;border:1px solid rgba(120,90,50,.4);border-radius:3px;overflow:hidden;font-family:var(--font-type)}.timeline-header{padding:8px 10px 6px;border-bottom:1px solid rgba(120,90,50,.3);flex-shrink:0}.timeline-title{background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-stamp);font-size:.85rem;font-weight:700;letter-spacing:.06em;width:100%}.timeline-list{flex:1;overflow-y:auto;padding:6px 0}.timeline-empty{text-align:center;font-size:.75rem;color:var(--ui-muted);padding:16px;font-family:var(--font-type)}.timeline-event{display:flex;gap:0;padding:2px 0}.tl-spine{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0;padding-top:6px}.tl-line{width:2px;flex:1;background:#785a324d;min-height:6px}.tl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin:2px 0}.tl-past .tl-dot{background:#555;border:1.5px solid #888}.tl-present .tl-dot{background:#c8a020;border:1.5px solid #e8c040;box-shadow:0 0 5px #c8a02080}.tl-future .tl-dot{background:#4a78aa;border:1.5px solid #6090c0}.tl-content{flex:1;padding:2px 8px 6px 0;min-width:0}.tl-top-row{display:flex;align-items:center;gap:4px;margin-bottom:3px}.tl-date{flex:1;min-width:0;background:transparent;border:none;outline:none;border-bottom:1px solid rgba(120,90,50,.25);color:var(--ui-muted);font-family:var(--font-type);font-size:.7rem;padding:1px 0;transition:border-color .15s,color .15s}.tl-date:focus{border-bottom-color:var(--ui-accent);color:var(--ui-text)}.tl-type-badge{font-family:var(--font-stamp);font-size:.58rem;letter-spacing:.08em;padding:1px 5px;border-radius:2px;cursor:pointer;flex-shrink:0;border:1px solid transparent;transition:opacity .15s}.tl-type-badge:hover{opacity:.8}.tl-type--past{background:#5050504d;color:#888;border-color:#555}.tl-type--present{background:#c8a02033;color:#c8a020;border-color:#8a6010}.tl-type--future{background:#4a78aa33;color:#6090c0;border-color:#3a6090}.tl-del{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-size:.9rem;padding:0 2px;opacity:0;transition:opacity .1s,color .1s;flex-shrink:0}.timeline-event:hover .tl-del{opacity:1}.tl-del:hover{color:#ff6b6b}.tl-text{width:100%;box-sizing:border-box;background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-type);font-size:.75rem;line-height:1.5;resize:none;padding:0}.tl-past .tl-text{color:var(--ui-muted)}.timeline-add{background:none;border:none;border-top:1px solid rgba(120,90,50,.25);color:var(--ui-muted);font-family:var(--font-stamp);font-size:.72rem;letter-spacing:.05em;padding:6px 10px;cursor:pointer;text-align:left;flex-shrink:0;transition:color .1s,background .1s}.timeline-add:hover{color:var(--ui-text);background:#ffffff0a}.board-item{position:absolute;border-radius:2px;-webkit-user-select:none;user-select:none;cursor:grab;transition:box-shadow .15s,outline .1s;will-change:transform}.board-item:active{cursor:grabbing}.board-item--selected{outline:2px solid rgba(255,200,100,.85);outline-offset:3px}.board-item--connectable{cursor:crosshair}.board-item--connectable:hover{outline:2px dashed var(--string-red);outline-offset:3px}.board-item--from{outline:3px solid var(--string-red)!important;animation:pulse-from 1s infinite}@keyframes pulse-from{0%,to{outline-color:var(--string-red)}50%{outline-color:#f66}}.item--centerpiece{outline:2.5px solid rgba(245,158,11,.85);outline-offset:5px;box-shadow:0 0 0 6px #f59e0b1f,0 0 18px #f59e0b33;animation:centerpiece-pulse 2.4s ease-in-out infinite}@keyframes centerpiece-pulse{0%,to{box-shadow:0 0 0 6px #f59e0b1f,0 0 18px #f59e0b33}50%{box-shadow:0 0 0 8px #f59e0b2e,0 0 28px #f59e0b59}}.board-item--portal-target{outline:3px solid rgba(91,192,235,.9)!important;outline-offset:4px;animation:portal-target-pulse .7s ease-in-out infinite alternate}@keyframes portal-target-pulse{0%{box-shadow:0 0 10px #5bc0eb59;outline-color:#5bc0ebb3}to{box-shadow:0 0 28px #5bc0ebbf;outline-color:#5bc0eb}}.drag-handle{position:absolute;top:0;left:0;right:0;height:10px;z-index:8;cursor:grab;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;border-radius:2px 2px 0 0;background:linear-gradient(to bottom,rgba(255,255,255,.06),transparent)}.drag-handle:active{cursor:grabbing}.drag-handle-dots{font-size:8px;color:#ffffff59;line-height:1;pointer-events:none;letter-spacing:1px}.board-item:hover .drag-handle,.board-item--selected .drag-handle{opacity:1}.resize-handle{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;background:radial-gradient(circle at 35% 35%,#f0c060,#a07020);border:1.5px solid rgba(60,40,0,.6);border-radius:2px;cursor:nwse-resize;z-index:20;opacity:0;transition:opacity .15s}.board-item:hover .resize-handle,.board-item--selected .resize-handle{opacity:1}.board-item--locked{cursor:default!important}.lock-indicator{position:absolute;top:5px;right:6px;font-size:11px;opacity:.65;pointer-events:none;z-index:10;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.rotation-handle{position:absolute;top:-36px;left:50%;transform:translate(-50%);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#e8d090,#9a7020);border:2px solid rgba(60,40,0,.7);cursor:grab;z-index:10;opacity:0;transition:opacity .15s}.rotation-handle:active{cursor:grabbing}.rotation-handle:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:2px;height:16px;background:#c8a05080;pointer-events:none}.board-item:hover .rotation-handle,.board-item--selected .rotation-handle{opacity:1}.thumbtack{position:absolute;z-index:20;cursor:grab;transform:translate(-50%,-50%);transition:filter .1s}.thumbtack:active{cursor:grabbing}.thumbtack:hover{filter:brightness(1.3)}.thumbtack--unlocked{cursor:grab!important;animation:pin-unlock-pulse 1s ease-in-out infinite}.thumbtack--unlocked:active{cursor:grabbing!important}@keyframes pin-unlock-pulse{0%,to{box-shadow:0 0 0 3px #ffd23cbf,0 2px 5px #0000008c}50%{box-shadow:0 0 0 5px #ffd23c59,0 2px 5px #0000008c}}.thumbtack--round{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--pin-color, #cc3333) 45%,white),var(--pin-color, #cc3333));box-shadow:0 2px 5px #0000008c,0 0 0 1px #00000040}.thumbtack--flat{width:22px;height:10px;border-radius:50%;background:radial-gradient(ellipse at 38% 30%,color-mix(in srgb,var(--pin-color, #cc3333) 45%,white),var(--pin-color, #cc3333));box-shadow:0 2px 4px #00000073}.thumbtack--diamond{width:13px;height:13px;border-radius:2px;transform:translate(-50%,-50%) rotate(45deg);background:linear-gradient(135deg,color-mix(in srgb,var(--pin-color, #cc3333) 40%,white),var(--pin-color, #cc3333));box-shadow:0 2px 5px #00000073}.thumbtack--star{width:17px;height:17px;background:var(--pin-color, #cc3333);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}.thumbtack--star:hover{filter:drop-shadow(0 2px 3px rgba(0,0,0,.45)) brightness(1.3)}.drawing-layer{position:absolute;top:0;left:0;width:6000px;height:6000px;pointer-events:none;touch-action:none;overflow:visible;z-index:8500}.gear-menu-wrap{position:relative;display:flex;align-items:center}.tb-gear{font-size:1rem;padding:4px 8px;color:var(--ui-muted);letter-spacing:0;min-width:28px}.tb-gear:hover{color:var(--ui-text)}.tb-gear.active{background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}.gear-dropdown{position:fixed;z-index:20000;min-width:230px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;box-shadow:0 6px 24px #00000080;overflow:hidden;font-family:var(--font-type)}.gd-section{padding:10px 12px}.gd-title{font-family:var(--font-stamp);font-size:.6rem;letter-spacing:.15em;color:var(--ui-muted);margin-bottom:8px}.gd-field-label{font-family:var(--font-type);font-size:.7rem;color:var(--ui-muted);margin-bottom:4px;letter-spacing:.04em}.gd-name-input{width:100%;background:#ffffff0d;border:1px solid var(--ui-border);border-radius:3px;color:var(--ui-text);font-family:var(--font-type);font-size:.82rem;padding:5px 8px;outline:none;box-sizing:border-box;transition:border-color .15s}.gd-name-input:focus{border-color:var(--ui-accent);background:#ffffff14}.gd-hint{font-size:.62rem;color:var(--ui-muted);margin-top:4px;font-family:var(--font-type);opacity:.7}.gd-theme-btn{width:100%;background:#ffffff0d;border:1px solid var(--ui-border);border-radius:3px;color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.04em;padding:6px 10px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.gd-theme-btn:hover{background:#ffffff1a;border-color:#7a5030}.gd-theme-btn.active{background:#c8c86426;border-color:#8a8020;color:#d8d060}.gd-divider{height:1px;background:var(--ui-border);margin:0}.gd-signout-btn{display:block;width:100%;background:none;border:none;color:var(--ui-muted);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.04em;padding:10px 12px;text-align:left;cursor:pointer;transition:background .15s,color .15s}.gd-signout-btn:hover{background:#b4282826;color:#e08080}.toolbar{display:flex;align-items:center;gap:12px;padding:0 12px;height:48px;background:var(--ui-bg2);border-bottom:1px solid var(--ui-border);flex-shrink:0;-webkit-user-select:none;user-select:none;overflow-x:auto;overflow-y:hidden}.toolbar-left{display:flex;align-items:center;gap:10px;flex-shrink:0}.toolbar-center{display:flex;align-items:center;gap:4px;flex:1;justify-content:center}.toolbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.toolbar-title{font-family:var(--font-stamp);font-size:1rem;letter-spacing:.08em;color:var(--ui-text);white-space:nowrap}.tb-btn{background:#ffffff0d;color:var(--ui-text);border:1px solid var(--ui-border);padding:4px 10px;border-radius:3px;font-size:.8rem;white-space:nowrap;transition:background .15s,border-color .15s;font-family:var(--font-stamp);letter-spacing:.04em}.tb-btn:hover{background:#ffffff1a;border-color:#7a5030}.tb-back{background:transparent;border-color:var(--ui-border);font-size:.75rem;color:var(--ui-muted)}.tb-back:hover{color:var(--ui-text)}.tb-add-toggle{font-size:.85rem;font-family:var(--font-stamp);letter-spacing:.06em;padding:5px 18px;border-color:#5a4020;color:#d8c090}.tb-add-toggle:hover{border-color:#9a7040;color:#f0d8a0;background:#ffdc8c14}.tb-add-toggle.active{background:#ffdc8c1f;border-color:#c89040;color:#ffe0a0}.tb-add-dropdown{position:fixed;transform:translate(-50%);z-index:20000;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:7px;box-shadow:0 8px 30px #0009,0 2px 8px #0006;padding:5px;min-width:160px;display:flex;flex-direction:column;gap:1px}.tb-add-row{display:flex;align-items:center;gap:8px;padding:7px 12px;background:transparent;border:none;border-radius:4px;color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.04em;cursor:pointer;text-align:left;transition:background .12s;white-space:nowrap}.tb-add-row:hover{background:#ffffff14}.tb-zoom-pct{font-family:var(--font-type);font-size:.7rem;letter-spacing:.05em;min-width:36px;text-align:center;color:var(--ui-muted);flex-shrink:0}.tb-center{font-family:var(--font-type);font-size:.7rem;letter-spacing:.04em;color:var(--ui-muted)}.tb-center:hover{color:var(--ui-text)}.tb-divider{width:1px;height:20px;background:var(--ui-border);flex-shrink:0}.tb-cabinet{font-size:.75rem}.tb-cabinet.active{background:#3250784d;border-color:#3a6090;color:#80b0e0}.tb-journal{font-size:.75rem}.tb-journal.active{background:#50783c4d;border-color:#5a8040;color:#a8d080}.tb-search{font-size:.82rem;padding:4px 8px}.tb-search.active{background:#5078b440;border-color:#4070b0;color:#80b0e8}.tb-invite{font-size:.75rem;color:#e8c080;border-color:#6a4a10}.tb-invite:hover{border-color:#e8c080;color:#f0d090}.tb-export{font-size:.75rem;color:#c8a860;border-color:#5a4010}.tb-export:hover{border-color:#c8a860;color:#e0c070}.tb-export:disabled{opacity:.5;cursor:default;color:var(--ui-muted);border-color:var(--ui-border)}.tb-breadcrumbs{display:flex;align-items:center;gap:2px;font-family:var(--font-stamp);font-size:.78rem;color:var(--ui-muted);max-width:300px;overflow:hidden}.tb-crumb{display:flex;align-items:center;gap:2px;white-space:nowrap}.tb-crumb-sep{color:var(--ui-border);padding:0 2px}.tb-crumb-btn{background:none;border:none;color:var(--ui-muted);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.04em;cursor:pointer;padding:0;transition:color .15s;max-width:100px;overflow:hidden;text-overflow:ellipsis}.tb-crumb-btn:hover{color:var(--ui-text)}.tb-crumb-current{color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.04em;max-width:120px;overflow:hidden;text-overflow:ellipsis}.ctx-menu{position:fixed;z-index:9999;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:4px 0;min-width:160px;box-shadow:0 4px 16px #00000080}.ctx-item{display:block;width:100%;text-align:left;padding:8px 14px;font-family:var(--font-type);font-size:.82rem;color:var(--ui-text);background:transparent;border-radius:0;transition:background .1s;letter-spacing:.04em}.ctx-item:hover{background:#ffffff12}.ctx-danger{color:#ff6b6b}.ctx-danger:hover{background:#8b1a1a40}.ctx-item--active{color:#f59e0b;font-weight:600}.ctx-item--disabled{opacity:.35;cursor:default}.ctx-item--disabled:hover{background:transparent}.ctx-divider{height:1px;background:var(--ui-border);margin:3px 0}.ctx-submenu-parent{display:flex;align-items:center;justify-content:space-between;cursor:default;-webkit-user-select:none;user-select:none}.ctx-submenu-arrow{font-size:.6rem;opacity:.6}.ctx-submenu{position:absolute;left:100%;top:-4px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:4px 0;min-width:150px;box-shadow:0 4px 16px #0000008c;z-index:10000}.ctx-sendto-submenu{max-height:260px;overflow-y:auto}.ctx-color-row{display:flex;align-items:center;gap:6px;cursor:default;padding:6px 14px}.ctx-color-row:hover{background:transparent}.ctx-color-label{font-family:var(--font-type);font-size:.78rem;color:var(--ui-text);opacity:.65;letter-spacing:.04em;flex-shrink:0}.ctx-color-swatches{display:flex;gap:5px}.ctx-color-swatch{width:17px;height:17px;border-radius:50%;border:none;padding:0;cursor:pointer;outline-offset:1px;transition:transform .1s}.ctx-color-swatch:hover{transform:scale(1.25)}.label-edit-popover{position:fixed;z-index:9999;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:6px 8px;box-shadow:0 4px 16px #00000080;display:flex;flex-direction:column;gap:4px}.label-edit-hint{font-family:var(--font-type);font-size:.72rem;color:var(--ui-text);opacity:.5;letter-spacing:.04em}.label-edit-input{background:#ffffff12;border:1px solid var(--ui-border);border-radius:3px;color:var(--ui-text);font-family:var(--font-type);font-size:.82rem;padding:5px 8px;width:190px;outline:none;letter-spacing:.03em}.label-edit-input:focus{border-color:#ffffff4d}.ctx-portal-rename{padding:4px 8px;display:flex;flex-direction:column;gap:2px}.ctx-portal-rename-input{width:100%;box-sizing:border-box}.ctx-item--ok{color:#86efac}.ctx-item--ok:hover{background:#86efac1a}.journal-sidebar{position:absolute;right:0;top:0;height:100%;width:280px;transform:translate(100%);transition:transform .2s ease;z-index:200;overflow:hidden;display:flex;flex-direction:column;background:var(--ui-bg2);border-left:1px solid var(--ui-border);box-shadow:-4px 0 20px #0006}.journal-sidebar--open{transform:translate(0)}.journal-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--ui-border);flex-shrink:0}.journal-title{font-family:var(--font-stamp);font-size:.85rem;letter-spacing:.1em;color:var(--ui-text)}.journal-textarea{flex:1;resize:none;background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-hand);font-size:.92rem;line-height:1.7;padding:14px;overflow-y:auto;background-image:repeating-linear-gradient(transparent,transparent 27px,rgba(255,255,255,.04) 27px,rgba(255,255,255,.04) 28px);background-size:100% 28px;background-attachment:local}.journal-textarea::placeholder{color:var(--ui-muted);font-style:italic}.cab-sidebar{position:absolute;right:0;top:0;height:100%;width:300px;transform:translate(100%);transition:transform .25s ease;z-index:200;overflow:hidden;background:var(--ui-bg2);border-left:1px solid var(--ui-border);display:flex;flex-direction:column;box-shadow:-4px 0 20px #0006}.cab-sidebar--open{transform:translate(0)}.cab-panel{width:300px;height:100%;display:flex;flex-direction:column;overflow:hidden}.cab-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--ui-border);flex-shrink:0}.cab-title{font-family:var(--font-stamp);font-size:.72rem;letter-spacing:.14em;color:var(--ui-muted)}.cab-header-btns{display:flex;gap:4px}.cab-top-btn{background:#ffffff0d;border:1px solid var(--ui-border);color:var(--ui-text);padding:3px 9px;border-radius:3px;font-size:.72rem;cursor:pointer;font-family:var(--font-stamp);transition:background .1s}.cab-top-btn:hover{background:#ffffff1a}.cab-tree{flex:1;overflow-y:auto;padding:4px 0}.cab-empty{padding:24px 16px;font-family:var(--font-type);font-size:.78rem;color:var(--ui-muted);text-align:center;line-height:1.7}.cab-folder-header{display:flex;align-items:center;gap:4px;padding:5px 8px;cursor:pointer;font-family:var(--font-stamp);font-size:.8rem;color:var(--ui-text);position:relative;transition:background .1s;-webkit-user-select:none;user-select:none}.cab-folder-header:hover{background:#ffffff0d}.cab-folder-header:hover .cab-actions{opacity:1}.cab-folder-arrow{width:10px;color:var(--ui-muted);font-size:.65rem;flex-shrink:0}.cab-folder-icon{font-size:.82rem;flex-shrink:0}.cab-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cab-folder-children{padding-left:14px;border-left:1px solid rgba(255,255,255,.06);margin-left:14px}.cab-file{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 22px;cursor:pointer;font-family:var(--font-type);font-size:.77rem;color:var(--ui-muted);position:relative;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none}.cab-file:hover{background:#ffffff0d;color:var(--ui-text)}.cab-file--active{color:#e8c080;background:#c8a0501f}.cab-file:hover .cab-actions{opacity:1}.cab-file-icon{font-size:.72rem;flex-shrink:0}.cab-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cab-actions{display:flex;gap:1px;opacity:0;transition:opacity .1s;flex-shrink:0}.cab-actions button{background:none;border:none;cursor:pointer;padding:2px 5px;font-size:.68rem;border-radius:2px;color:var(--ui-muted);transition:background .1s,color .1s}.cab-actions button:hover{background:#ffffff1a;color:var(--ui-text)}.cab-rename-input{flex:1;background:#0000004d;border:1px solid var(--ui-accent);color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;padding:1px 5px;border-radius:2px;outline:none}.cab-editor{display:flex;flex-direction:column;height:100%;overflow:hidden}.cab-editor-top{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--ui-border);flex-shrink:0}.cab-back-btn{background:none;border:1px solid var(--ui-border);color:var(--ui-muted);font-family:var(--font-stamp);font-size:.68rem;padding:3px 8px;border-radius:3px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .1s,border-color .1s}.cab-back-btn:hover{color:var(--ui-text);border-color:var(--ui-text)}.cab-editor-name{flex:1;background:transparent;border:none;border-bottom:1px solid transparent;color:var(--ui-text);font-family:var(--font-stamp);font-size:.88rem;letter-spacing:.04em;padding:2px 4px;outline:none;min-width:0;transition:border-color .15s}.cab-editor-name:focus{border-bottom-color:var(--ui-accent)}.cab-editor-delete{background:none;border:none;color:var(--ui-muted);font-size:.82rem;cursor:pointer;padding:2px 4px;border-radius:3px;flex-shrink:0;transition:color .1s}.cab-editor-delete:hover{color:#ff6b6b}.cab-editor-content{flex:1;background:#0000002e;border:none;color:var(--ui-text);font-family:var(--font-type);font-size:.82rem;line-height:1.65;padding:14px;resize:none;outline:none;overflow-y:auto}.cab-editor-content::placeholder{color:var(--ui-muted)}.pin-config{position:fixed;z-index:9999;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:5px;padding:12px;width:200px;box-shadow:0 6px 24px #0009}.pin-config-title{font-family:var(--font-stamp);font-size:.7rem;letter-spacing:.12em;color:var(--ui-muted);margin-bottom:10px}.pin-config-label{font-family:var(--font-type);font-size:.68rem;color:var(--ui-muted);letter-spacing:.08em;margin-bottom:6px;margin-top:8px}.pin-color-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.pin-color-swatch{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s}.pin-color-swatch:hover{transform:scale(1.25)}.pin-color-swatch.active{border-color:#fff;transform:scale(1.2)}.pin-style-row{display:flex;gap:4px}.pin-style-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;background:#ffffff0a;border:1px solid var(--ui-border);border-radius:4px;cursor:pointer;transition:background .1s,border-color .1s}.pin-style-btn:hover{background:#ffffff14}.pin-style-btn.active{border-color:#e8c080;background:#c8a0501a}.pin-style-label{font-family:var(--font-type);font-size:.6rem;color:var(--ui-muted)}.thumbtack-preview{display:block;width:14px;height:14px}.thumbtack-preview--round{border-radius:50%;background:radial-gradient(circle at 35% 35%,color-mix(in srgb,var(--pin-color, #cc3333) 45%,white),var(--pin-color, #cc3333));box-shadow:0 1px 3px #0006}.thumbtack-preview--flat{width:18px;height:8px;margin-top:3px;border-radius:50%;background:radial-gradient(ellipse at 38% 30%,color-mix(in srgb,var(--pin-color, #cc3333) 45%,white),var(--pin-color, #cc3333))}.thumbtack-preview--diamond{width:10px;height:10px;margin-top:2px;border-radius:1px;transform:rotate(45deg);background:linear-gradient(135deg,color-mix(in srgb,var(--pin-color, #cc3333) 40%,white),var(--pin-color, #cc3333))}.thumbtack-preview--star{background:var(--pin-color, #cc3333);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.pin-reset-pos{display:block;width:100%;margin-top:10px;padding:5px;font-family:var(--font-type);font-size:.7rem;color:var(--ui-muted);background:#ffffff0a;border:1px solid var(--ui-border);border-radius:3px;cursor:pointer;transition:background .1s,color .1s;text-align:center}.pin-reset-pos:hover{background:#ffffff14;color:var(--ui-text)}.controls-legend-wrap{position:absolute;bottom:16px;right:16px;z-index:800}.controls-toggle{width:34px;height:34px;border-radius:50%;background:#1e140ad9;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;font-family:Georgia,serif;font-size:1rem;font-style:italic;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000080;transition:background .15s,color .15s,border-color .15s}.controls-toggle:hover,.controls-toggle.active{background:#503c1ef2;border-color:#c8a05099;color:#e8c880}.controls-panel{position:absolute;bottom:44px;right:0;width:340px;max-height:70vh;overflow-y:auto;background:#120e08f5;border:1px solid rgba(255,255,255,.12);border-radius:6px;box-shadow:0 8px 32px #000000b3;padding:14px}.controls-panel-title{font-family:var(--font-stamp);font-size:.7rem;letter-spacing:.2em;color:#c8a050cc;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}.controls-section{margin-bottom:14px}.controls-section-title{font-family:var(--font-stamp);font-size:.72rem;color:#ffffff8c;letter-spacing:.06em;margin-bottom:5px}.controls-row{display:flex;align-items:baseline;gap:8px;padding:2px 0}kbd.controls-key{font-family:var(--font-type);font-size:.7rem;color:#dcc8a0e6;background:#ffffff12;border:1px solid rgba(255,255,255,.15);border-radius:3px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.controls-desc{font-family:var(--font-type);font-size:.72rem;color:#ffffff73;line-height:1.4}.search-overlay{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:200;width:480px;max-width:calc(100vw - 32px)}.search-box{background:var(--ui-bg2);border:1px solid var(--ui-accent);border-radius:6px;box-shadow:0 8px 32px #0009;overflow:hidden}.search-input-row{display:flex;align-items:center;padding:8px 10px;gap:8px;border-bottom:1px solid var(--ui-border)}.search-icon{font-size:.9rem;flex-shrink:0;opacity:.7}.search-input{flex:1;background:transparent;border:none;outline:none;color:var(--ui-text);font-family:var(--font-type);font-size:.9rem}.search-input::placeholder{color:var(--ui-muted)}.search-close{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-size:.8rem;padding:2px 4px;border-radius:2px;transition:color .1s;flex-shrink:0}.search-close:hover{color:var(--ui-text)}.search-results{max-height:320px;overflow-y:auto}.search-no-results{padding:18px;text-align:center;font-family:var(--font-type);font-size:.8rem;color:var(--ui-muted)}.search-result{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;cursor:pointer;text-align:left;border-bottom:1px solid rgba(120,90,50,.15);transition:background .1s}.search-result:last-child{border-bottom:none}.search-result:hover{background:#ffffff0f}.search-result-icon{font-size:.95rem;flex-shrink:0}.search-result-body{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.search-result-label{font-family:var(--font-stamp);font-size:.82rem;letter-spacing:.04em;color:var(--ui-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-snippet{font-family:var(--font-type);font-size:.72rem;color:var(--ui-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-subboard{font-family:var(--font-type);font-size:.68rem;color:var(--ui-accent);opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-jump{color:var(--ui-muted);font-size:.8rem;flex-shrink:0;transition:color .1s,transform .1s}.search-result:hover .search-result-jump{color:var(--ui-text);transform:translate(2px)}.search-section-header{font-family:var(--font-stamp);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ui-accent);padding:6px 12px 3px;border-top:1px solid var(--ui-border);opacity:.75}.search-section-header:first-child{border-top:none}.search-hint{font-family:var(--font-type);font-size:.66rem;color:var(--ui-muted);text-align:center;padding:5px;border-top:1px solid var(--ui-border);letter-spacing:.03em}.lp-wrap{position:absolute;top:10px;left:10px;z-index:100}.lp-toggle{width:34px;height:34px;border-radius:5px;background:#19120ad1;border:1px solid var(--ui-border);color:var(--ui-text);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s,border-color .15s}.lp-toggle:hover{background:#ffffff1a;border-color:#7a5030}.lp-toggle.active{background:#c8a03c38;border-color:#c8a020;color:#e8c060}.lp-dropdown{position:absolute;top:calc(100% + 6px);left:0;width:290px;max-height:72vh;overflow-y:auto;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:7px;box-shadow:0 10px 40px #000000a6,0 2px 8px #0006}.lp-section{padding:12px 12px 10px}.lp-section-title{font-family:var(--font-stamp);font-size:.67rem;letter-spacing:.17em;color:var(--ui-muted);margin-bottom:8px}.lp-section-sub{font-family:var(--font-stamp);font-size:.65rem;letter-spacing:.1em;color:var(--ui-muted);margin:8px 0 5px}.lp-divider{height:1px;background:var(--ui-border)}.lp-muted{font-family:var(--font-type);font-size:.75rem;color:var(--ui-muted);padding:4px 0}.lp-boards-list{display:flex;flex-direction:column;gap:1px;margin-bottom:8px;max-height:200px;overflow-y:auto}.lp-board-row{display:flex;align-items:center;gap:4px;border-radius:3px;padding:2px 4px;transition:background .1s}.lp-board-row:hover{background:#ffffff0d}.lp-board-row.current{background:#c8a03c1f}.lp-board-name{flex:1;background:none;border:none;color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;letter-spacing:.03em;text-align:left;cursor:pointer;padding:3px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color .1s}.lp-board-name:hover{color:#e8c080}.lp-board-row.current .lp-board-name{color:#e8c080;cursor:default}.lp-board-actions{display:flex;gap:2px;opacity:0;transition:opacity .1s;flex-shrink:0}.lp-board-row:hover .lp-board-actions{opacity:1}.lp-icon-btn{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-size:.72rem;padding:2px 4px;border-radius:2px;transition:color .1s,background .1s}.lp-icon-btn:hover{color:var(--ui-text);background:#ffffff14}.lp-icon-btn--danger:hover{color:#ff6b6b}.lp-rename-input{flex:1;background:#0000004d;border:1px solid var(--ui-accent);color:var(--ui-text);font-family:var(--font-stamp);font-size:.78rem;padding:2px 5px;border-radius:2px;outline:none}.lp-new-board{display:flex;gap:4px;align-items:center}.lp-new-board-input{flex:1;background:#00000040;border:1px solid var(--ui-border);color:var(--ui-text);font-family:var(--font-type);font-size:.75rem;padding:4px 7px;border-radius:3px;outline:none;transition:border-color .15s}.lp-new-board-input:focus{border-color:var(--ui-accent)}.lp-new-board-input::placeholder{color:var(--ui-muted)}.lp-new-board-btn{background:#7850144d;border:1px solid var(--ui-border);color:var(--ui-text);font-size:1rem;padding:2px 10px;border-radius:3px;cursor:pointer;flex-shrink:0;transition:background .1s,border-color .1s}.lp-new-board-btn:hover:not(:disabled){background:#78501480;border-color:#7a5030}.lp-new-board-btn:disabled{opacity:.4;cursor:default}.lp-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-bottom:4px}.lp-preset{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#ffffff0a;border:1px solid var(--ui-border);border-radius:4px;cursor:pointer;transition:background .1s,border-color .1s;text-align:left}.lp-preset:hover{background:#ffffff17;border-color:#7a5030}.lp-preset.active{background:#c8a03c2e;border-color:#c8a020}.lp-preset-swatch{width:22px;height:22px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.3)}[data-preset=cork]{background:radial-gradient(ellipse,#c8a060,#9a7040)}[data-preset=whiteboard]{background:#f0f0ec}[data-preset=dark]{background:#1a1a1a}[data-preset=blueprint]{background:#0a1929}[data-preset=worldmap]{background:linear-gradient(135deg,#1a4060 40%,#2a6040)}.lp-preset-label{font-family:var(--font-stamp);font-size:.72rem;letter-spacing:.04em;color:var(--ui-text)}.lp-upload-btn{width:100%;padding:6px 10px;background:#ffffff0a;border:1px dashed var(--ui-border);border-radius:4px;color:var(--ui-muted);font-family:var(--font-stamp);font-size:.72rem;letter-spacing:.04em;cursor:pointer;transition:background .1s,color .1s,border-color .1s;text-align:center}.lp-upload-btn:hover{background:#ffffff14;color:var(--ui-text);border-color:#7a5030}.lp-custom-preview{display:flex;align-items:center;gap:6px;margin-top:6px;padding:4px 6px;background:#0003;border-radius:3px;border:1px solid var(--ui-border)}.lp-custom-thumb{width:40px;height:28px;object-fit:cover;border-radius:2px;flex-shrink:0}.lp-custom-clear{background:none;border:none;color:var(--ui-muted);cursor:pointer;font-size:.8rem;padding:2px 4px;margin-left:auto;transition:color .1s}.lp-custom-clear:hover{color:#ff6b6b}.dp-panel{position:fixed;left:62px;top:50%;transform:translateY(-50%);z-index:200;width:196px;max-height:80vh;overflow-y:auto;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:7px;box-shadow:0 10px 40px #000000a6,0 2px 8px #0006;padding:10px;display:flex;flex-direction:column;gap:8px}.dp-panel-title{font-family:var(--font-stamp);font-size:.67rem;letter-spacing:.17em;color:var(--ui-muted)}.dp-wheel-wrap{position:relative;width:160px;height:160px;align-self:center;flex-shrink:0}.dp-wheel-canvas{display:block;border-radius:50%;cursor:crosshair;width:160px;height:160px;box-shadow:0 0 0 1px #ffffff14}.dp-wheel-dot{position:absolute;width:11px;height:11px;border-radius:50%;background:transparent;border:2px solid #fff;box-shadow:0 0 4px #000c,0 0 0 1px #0006;transform:translate(-50%,-50%);pointer-events:none}.dp-row{display:flex;align-items:center;gap:6px}.dp-mini-label{font-family:var(--font-type);font-size:.62rem;color:var(--ui-muted);width:10px;flex-shrink:0;text-align:center}.dp-slider{flex:1;height:5px;border-radius:3px;outline:none;border:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--ui-border)}.dp-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--ui-text);border:2px solid var(--ui-bg);cursor:pointer;box-shadow:0 1px 3px #0009}.dp-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--ui-text);border:2px solid var(--ui-bg);cursor:pointer;box-shadow:0 1px 3px #0009;border:none}.dp-lightness-slider{height:8px;border-radius:4px;border:1px solid rgba(255,255,255,.08)!important}.dp-hex-row{display:flex;align-items:center;gap:7px}.dp-color-swatch{width:24px;height:24px;border-radius:4px;border:1px solid rgba(255,255,255,.18);flex-shrink:0}.dp-hex-input{flex:1;min-width:0;background:#0000004d;border:1px solid var(--ui-border);color:var(--ui-text);font-family:var(--font-type);font-size:.75rem;letter-spacing:.06em;padding:4px 7px;border-radius:3px;outline:none;transition:border-color .15s}.dp-hex-input:focus{border-color:#4090c0}.dp-section-label{font-family:var(--font-stamp);font-size:.63rem;letter-spacing:.15em;color:var(--ui-muted)}.dp-brush-row{align-items:center;min-height:20px}.dp-brush-dot{flex-shrink:0;border-radius:50%;min-width:8px;min-height:8px;border-width:1.5px}.dp-divider{height:1px;background:var(--ui-border)}.dp-actions{display:flex;gap:6px}.dp-action-btn{flex:1;padding:5px 6px;background:#ffffff0d;border:1px solid var(--ui-border);border-radius:3px;color:var(--ui-text);font-family:var(--font-stamp);font-size:.7rem;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;text-align:center}.dp-action-btn:hover{background:#ffffff1a;border-color:#7a5030}.dp-eraser-btn.active{background:#3c82be47;border-color:#4090c0;color:#80c8ee}.dp-clear-btn{color:#e08080;border-color:#6a2020}.dp-clear-btn:hover{border-color:#e08080;color:#f09090}.mode-strip{position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:200;display:flex;flex-direction:column;gap:6px;padding:8px 6px;background:#19120ae0;border:1px solid var(--ui-border);border-radius:8px;box-shadow:0 4px 20px #00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none}.ms-btn{width:36px;height:36px;border-radius:5px;background:#ffffff0a;border:1px solid transparent;color:var(--ui-text);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.ms-btn:hover{background:#ffffff1a;border-color:#7a5030}.ms-btn.active{background:#3c82be47;border-color:#4090c0;color:#80c8ee}.cp-panel{position:fixed;left:62px;top:50%;transform:translateY(-50%);z-index:200;width:218px;max-height:80vh;overflow-y:auto;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:7px;box-shadow:0 10px 40px #000000a6,0 2px 8px #0006;padding:12px;display:flex;flex-direction:column;gap:8px}.cp-title{font-family:var(--font-stamp);font-size:.67rem;letter-spacing:.17em;color:var(--ui-muted);margin-bottom:2px}.cp-section-label{font-family:var(--font-stamp);font-size:.63rem;letter-spacing:.15em;color:var(--ui-muted)}.cp-sub{font-size:.62rem;font-family:var(--font-type);color:#907850;text-transform:uppercase;letter-spacing:.06em}.cp-divider{height:1px;background:var(--ui-border)}.cp-swatch-row{display:flex;gap:6px;flex-wrap:wrap}.cp-swatch{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.15);cursor:pointer;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s}.cp-swatch:hover{transform:scale(1.18);border-color:#ffffff80}.cp-swatch.active{border-color:#fff;box-shadow:0 0 0 2px #ffffff59;transform:scale(1.12)}.cp-swatch--pin{width:24px;height:24px}.cp-paint-btn{background:#ffffff0a;border:1.5px solid var(--ui-border);border-radius:5px;color:var(--ui-muted);font-family:var(--font-stamp);font-size:.7rem;letter-spacing:.03em;padding:5px 10px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s,color .15s}.cp-paint-btn:hover{background:#ffffff14;border-color:#7a5030;color:var(--ui-text)}.cp-paint-btn.active{background:#c828282e;border-color:#c44;color:#ff9090}.cp-style-row{display:flex;gap:5px;flex-wrap:wrap}.cp-style-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 8px;background:#ffffff0a;border:1.5px solid var(--ui-border);border-radius:5px;color:var(--ui-muted);font-family:var(--font-stamp);font-size:.62rem;letter-spacing:.03em;cursor:pointer;min-width:46px;transition:background .12s,border-color .12s,color .12s}.cp-style-btn:hover{background:#ffffff1a;border-color:#8a6030;color:var(--ui-text)}.cp-style-btn.active{background:#c8904033;border-color:#c89040;color:#ffe0a0}.cp-style-icon{font-size:16px;line-height:1}.cp-hint{font-family:var(--font-type);font-size:.6rem;color:#604830;font-style:italic;letter-spacing:.03em}.presence-bubbles{position:absolute;bottom:14px;left:14px;display:flex;flex-direction:row;align-items:center;gap:6px;z-index:60;pointer-events:none}.presence-pill{position:relative;width:32px;height:32px;border-radius:50%;background-color:var(--pill-color, #555);border:2px solid rgba(0,0,0,.55);box-shadow:0 1px 4px #0006;display:flex;align-items:center;justify-content:center;cursor:default;pointer-events:auto;animation:pill-in .25s cubic-bezier(.34,1.56,.64,1) both}.presence-pill--self{opacity:.5}.presence-pill__initial{font-size:13px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);line-height:1;-webkit-user-select:none;user-select:none}.presence-pill__tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1a1a1a;color:#e8e8e8;font-size:11px;font-weight:500;white-space:nowrap;padding:3px 7px;border-radius:4px;border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 6px #00000080;pointer-events:none;opacity:0;transition:opacity .15s ease}.presence-pill:hover .presence-pill__tooltip{opacity:1}@keyframes pill-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.presence-pill--self{animation:pill-in-self .25s cubic-bezier(.34,1.56,.64,1) both}@keyframes pill-in-self{0%{opacity:0;transform:scale(.5)}to{opacity:.5;transform:scale(1)}}.cursor-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9000;overflow:hidden}.cursor-remote{position:absolute;top:0;left:0;display:flex;flex-direction:column;align-items:flex-start;transition:opacity .15s linear}.cursor-arrow{display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.cursor-label{margin-top:2px;margin-left:12px;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:600;line-height:1.5;color:#fff;white-space:nowrap;box-shadow:0 1px 3px #0000004d;letter-spacing:.01em}.cal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1100;display:flex;align-items:center;justify-content:center}.cal-modal{background:#1e1a14;border:1px solid #4a3a28;border-radius:8px;width:540px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px #000000b3;color:#d4c5a0;display:flex;flex-direction:column}.cal-header{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 10px;border-bottom:1px solid #3a2e1e;flex-shrink:0}.cal-title{font-size:.95rem;font-weight:600;color:#e8d5a0;letter-spacing:.03em}.cal-close{background:none;border:none;color:#8a7a5a;font-size:1rem;cursor:pointer;padding:2px 7px;border-radius:4px;line-height:1.4}.cal-close:hover{color:#d4b87a;background:#ffffff0f}.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px;flex-shrink:0}.cal-nav-btn{background:none;border:1px solid #4a3a28;color:#c4a870;font-size:1.15rem;line-height:1;cursor:pointer;padding:3px 12px;border-radius:4px;transition:background .12s}.cal-nav-btn:hover{background:#c4a8701f}.cal-month-label{font-size:.92rem;font-weight:700;color:#e0c880;letter-spacing:.06em;text-transform:uppercase}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 12px 12px;flex-shrink:0}.cal-day-header{text-align:center;font-size:.68rem;color:#6a5a3a;padding:4px 0 6px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.cal-cell{background:#201c14;min-height:50px;padding:4px 3px 3px;cursor:pointer;border-radius:4px;display:flex;flex-direction:column;align-items:flex-start;transition:background .12s;border:1px solid transparent}.cal-cell:hover{background:#2c2618}.cal-cell--empty{background:transparent;cursor:default;border-color:transparent}.cal-cell--today{border-color:#cc333359}.cal-cell--today .cal-day-num{color:#c33;font-weight:700}.cal-cell--selected{background:#2a2218;border-color:#c4a870}.cal-cell--selected:hover{background:#302a1e}.cal-cell--inv-date{background:#1e1c10;border-color:#e6b41e66}.cal-cell--inv-date:hover{background:#262410}.cal-inv-pin{font-size:.7rem;line-height:1;margin-bottom:2px;display:block}.cal-day-num{font-size:.76rem;color:#9a8a6a;line-height:1;margin-bottom:3px}.cal-dots{display:flex;flex-wrap:wrap;gap:2px;align-items:center}.cal-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.cal-dot-overflow{font-size:.58rem;color:#7a6a4a;line-height:7px}.cal-detail{border-top:1px solid #3a2e1e;padding:12px 16px 14px}.cal-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}.cal-detail-date{font-size:.82rem;color:#c4a870;font-weight:600}.cal-add-btn{background:none;border:1px solid #4a3a28;color:#c4a870;font-size:.76rem;cursor:pointer;padding:4px 10px;border-radius:4px;white-space:nowrap;transition:background .12s}.cal-add-btn:hover{background:#c4a8701f}.cal-events-list{display:flex;flex-direction:column;gap:6px}.cal-event-chip{display:flex;align-items:flex-start;gap:9px;background:#2a2418;border:1px solid #3a2e1e;border-radius:5px;padding:7px 10px;cursor:pointer;transition:background .12s,border-color .12s}.cal-event-chip:hover{background:#332c1e;border-color:#4a3a28}.cal-event-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:3px}.cal-event-body{display:flex;flex-direction:column;gap:2px;min-width:0}.cal-event-title{font-size:.84rem;color:#d4c5a0;font-weight:500}.cal-event-notes{font-size:.74rem;color:#7a6a4a;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cal-empty-msg{font-size:.8rem;color:#5a4a2a;margin:2px 0}.cal-form{display:flex;flex-direction:column;gap:8px}.cal-input{background:#16130d;border:1px solid #4a3a28;color:#d4c5a0;padding:7px 10px;border-radius:4px;font-size:.88rem;width:100%;box-sizing:border-box;font-family:inherit}.cal-input:focus{outline:none;border-color:#c4a870}.cal-textarea{background:#16130d;border:1px solid #4a3a28;color:#d4c5a0;padding:7px 10px;border-radius:4px;font-size:.84rem;width:100%;box-sizing:border-box;resize:vertical;font-family:inherit}.cal-textarea:focus{outline:none;border-color:#c4a870}.cal-swatches{display:flex;gap:8px;padding:2px 0}.cal-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s,border-color .1s;flex-shrink:0}.cal-swatch:hover{transform:scale(1.12)}.cal-swatch--active{border-color:#fff;transform:scale(1.18)}.cal-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:2px}.cal-btn{border:none;border-radius:4px;padding:6px 14px;font-size:.82rem;cursor:pointer;font-family:inherit;transition:background .12s}.cal-btn--cancel{background:#2a2418;color:#9a8a60;border:1px solid #4a3a28}.cal-btn--cancel:hover{background:#352e1e}.cal-btn--save{background:#8b1a1a;color:#f0e0c0}.cal-btn--save:hover{background:#a02020}.cal-btn--save:disabled{opacity:.45;cursor:default}.cal-btn--delete{background:transparent;color:#c44;border:1px solid #5a2020;margin-right:auto}.cal-btn--delete:hover{background:#cc44441a}.cal-dot--board-item{background:#6a8a9a;border:1px solid #4a6a7a}.cal-detail-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cal-add-btn--note{background:#648ca01f;border-color:#4a6a7a;color:#8ab0c0}.cal-add-btn--note:hover{background:#648ca038}.cal-board-items{margin-top:10px;display:flex;flex-direction:column;gap:5px}.cal-board-items-label{font-size:.68rem;color:#5a6a7a;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:2px}.cal-board-item-chip{display:flex;align-items:center;gap:8px;background:#1e2428;border:1px solid #2e3e48;border-radius:5px;padding:6px 10px}.cal-board-item-dot{width:8px;height:8px;border-radius:50%;background:#6a8a9a;border:1px solid #4a6a7a;flex-shrink:0}.cal-board-item-title{flex:1;font-size:.82rem;color:#b0c4d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-jump-btn{background:none;border:1px solid #3a5060;color:#6a9ab0;font-size:.72rem;cursor:pointer;padding:2px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0;transition:background .1s,color .1s}.cal-jump-btn:hover{background:#649ab026;color:#8abccc}.cal-kb-legend{text-align:center;font-family:var(--font-type);font-size:.62rem;letter-spacing:.05em;color:#5a4a38;padding:8px 16px 12px;border-top:1px solid #2e2418;-webkit-user-select:none;user-select:none}.board-shell{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.board-body{display:flex;flex:1;overflow:hidden;position:relative}.board-viewport{flex:1;position:relative;overflow:hidden;cursor:default;background-color:var(--cork);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.15'/%3E%3C/svg%3E"),repeating-linear-gradient(30deg,transparent 0px,transparent 8px,rgba(0,0,0,.03) 8px,rgba(0,0,0,.03) 9px),repeating-linear-gradient(-30deg,transparent 0px,transparent 8px,rgba(0,0,0,.03) 8px,rgba(0,0,0,.03) 9px),radial-gradient(ellipse at 20% 30%,rgba(212,180,131,.4) 0%,transparent 60%),radial-gradient(ellipse at 80% 70%,rgba(160,120,80,.3) 0%,transparent 50%)}.board-viewport.cursor-pan{cursor:grab}.board-viewport.cursor-pan:active{cursor:grabbing}.board-viewport.cursor-connect,.board-viewport.cursor-draw{cursor:crosshair}.board-viewport.cursor-paint{cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'><text y='20' font-size='20'>🪣</text></svg>") 0 20,cell}.board-canvas.bg-whiteboard{background-color:#f2f2ef;background-image:linear-gradient(rgba(0,0,0,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.07) 1px,transparent 1px);background-size:40px 40px}.board-canvas.bg-dark{background-color:#151412;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E")}.board-canvas.bg-blueprint{background-color:#0a1929;background-image:linear-gradient(rgba(100,160,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(100,160,255,.12) 1px,transparent 1px),linear-gradient(rgba(100,160,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(100,160,255,.05) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}.board-canvas.bg-worldmap{background-color:#1a3a5c;background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/World_map_-_low_resolution.svg/2560px-World_map_-_low_resolution.svg.png);background-size:cover;background-position:center;background-repeat:no-repeat}.board-canvas.bg-custom{background-size:cover;background-position:center;background-repeat:no-repeat}.snap-grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:radial-gradient(circle,rgba(255,255,255,.22) 1px,transparent 1px)}.board-canvas{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:0 0}.string-layer{position:absolute;top:0;left:0;width:6000px;height:6000px;pointer-events:none;overflow:visible;z-index:9000}.string-layer .conn-path{pointer-events:stroke;cursor:pointer;transition:stroke-opacity .15s}.string-layer .conn-path:hover{stroke-opacity:.6!important}.string-label{pointer-events:none;-webkit-user-select:none;user-select:none;fill:var(--ui-text);font-family:var(--font-hand);font-size:13px;paint-order:stroke;stroke:#1e0f0acc;stroke-width:3px}.board-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#1a1210eb;color:var(--ui-text);font-family:var(--font-stamp);font-size:.85rem;letter-spacing:.1em;padding:8px 20px;border-radius:3px;border:1px solid var(--ui-border);pointer-events:none}.invite-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.invite-modal{background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:28px 28px 22px;width:100%;max-width:480px;display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 40px #000000b3}.invite-title{font-family:var(--font-stamp);font-size:1.1rem;letter-spacing:.1em;color:var(--ui-text);margin:0}.invite-desc{font-family:var(--font-type);font-size:.78rem;color:var(--ui-muted);margin:0}.invite-url-row{display:flex;gap:8px}.invite-url{flex:1;background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);padding:8px 10px;font-family:var(--font-type);font-size:.8rem;border-radius:3px;outline:none}.invite-copy{background:var(--ui-accent);color:#fff;padding:8px 16px;font-size:.8rem;border-radius:3px;transition:background .15s}.invite-copy:hover{background:#a82020}.invite-close{background:transparent;color:var(--ui-muted);border:1px solid var(--ui-border);padding:7px;font-size:.8rem;border-radius:3px;transition:color .15s,border-color .15s;align-self:flex-end}.invite-close:hover{color:var(--ui-text);border-color:var(--ui-muted)}.group-bbox{position:absolute;border:2px dashed rgba(120,180,255,.55);background:#78b4ff0a;border-radius:6px;pointer-events:none;z-index:0}.selection-rect{position:absolute;border:1.5px dashed rgba(255,200,100,.85);background:#ffc86414;pointer-events:none;z-index:500}.conn-panel{position:absolute;transform:translate(-50%,-120%);display:flex;align-items:center;gap:6px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:6px 8px;z-index:8000;box-shadow:0 4px 16px #00000080}.conn-panel-input{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);padding:4px 8px;font-family:var(--font-hand);font-size:.85rem;border-radius:3px;outline:none;width:180px}.conn-panel-input:focus{border-color:var(--ui-accent)}.conn-panel-delete{background:none;color:#e55039;font-size:.85rem;padding:2px 4px;border-radius:3px;transition:background .15s}.conn-panel-delete:hover{background:#e5503926}.conn-panel-close{background:none;color:var(--ui-muted);font-size:.8rem;padding:2px 4px;border-radius:3px;transition:color .15s}.conn-panel-close:hover{color:var(--ui-text)}.auth-page{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 0%,#3a1a0a,#1a1210 60%),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.01) 2px,rgba(255,255,255,.01) 4px)}.auth-card{width:100%;max-width:400px;padding:40px 36px 32px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;display:flex;flex-direction:column;gap:20px;box-shadow:0 8px 40px #0009}.auth-title{font-family:var(--font-stamp);font-size:1.6rem;letter-spacing:.15em;color:var(--ui-text);text-shadow:0 0 30px rgba(139,26,26,.5);text-align:center;margin:0}.auth-sub{font-family:var(--font-type);font-size:.75rem;letter-spacing:.2em;color:var(--ui-muted);text-align:center;text-transform:uppercase;margin-top:-10px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-family:var(--font-type);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ui-muted)}.auth-input{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);padding:9px 12px;font-size:.95rem;border-radius:3px;outline:none;transition:border-color .2s;font-family:var(--font-type)}.auth-input:focus{border-color:var(--ui-accent)}.auth-input:disabled{opacity:.6}.auth-error{font-family:var(--font-type);font-size:.78rem;color:#e55039;background:#e550391a;border:1px solid rgba(229,80,57,.3);padding:7px 10px;border-radius:3px}.auth-submit{background:var(--ui-accent);color:#fff;padding:11px;font-size:.85rem;letter-spacing:.12em;border-radius:3px;transition:background .2s,opacity .2s;margin-top:4px}.auth-submit:hover:not(:disabled){background:#a82020}.auth-submit:disabled{opacity:.5;cursor:default}.auth-switch{font-family:var(--font-type);font-size:.78rem;color:var(--ui-muted);text-align:center}.auth-switch-btn{background:none;border:none;color:var(--ui-text);font-family:var(--font-type);font-size:.78rem;text-decoration:underline;cursor:pointer;padding:0;transition:color .15s}.auth-switch-btn:hover{color:#e8c080}.join-page{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 0%,#3a1a0a,#1a1210 60%),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.01) 2px,rgba(255,255,255,.01) 4px)}.join-card{width:100%;max-width:420px;padding:40px 36px 32px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;display:flex;flex-direction:column;gap:22px;box-shadow:0 8px 40px #0009}.join-title{font-family:var(--font-stamp);font-size:1.6rem;letter-spacing:.15em;color:var(--ui-text);text-shadow:0 0 30px rgba(139,26,26,.5);text-align:center;margin:0}.join-sub{font-family:var(--font-type);font-size:.78rem;color:var(--ui-muted);text-align:center;margin:0}.join-label{font-family:var(--font-type);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ui-muted);text-align:center;margin:0}.join-invite-info{display:flex;flex-direction:column;gap:6px;padding:16px;background:#8b1a1a14;border:1px solid rgba(139,26,26,.25);border-radius:3px;text-align:center}.join-board-name{font-family:var(--font-stamp);font-size:1.4rem;letter-spacing:.06em;color:var(--ui-text);margin:0}.join-error{font-family:var(--font-type);font-size:.78rem;color:#e55039;background:#e550391a;border:1px solid rgba(229,80,57,.3);padding:7px 10px;border-radius:3px;margin:0}.join-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.join-btn{width:100%;background:var(--ui-accent);color:#fff;padding:11px;font-size:.85rem;letter-spacing:.12em;border-radius:3px;transition:background .2s,opacity .2s;font-family:var(--font-type)}.join-btn:hover:not(:disabled){background:#a82020}.join-btn:disabled{opacity:.5;cursor:default}.join-secondary{background:none;color:var(--ui-muted);font-family:var(--font-type);font-size:.78rem;border:1px solid var(--ui-border);padding:7px 16px;border-radius:3px;cursor:pointer;transition:color .15s,border-color .15s}.join-secondary:hover{color:var(--ui-text);border-color:var(--ui-muted)}.join-auth{display:flex;flex-direction:column;gap:14px}.join-auth-tabs{display:flex;border:1px solid var(--ui-border);border-radius:3px;overflow:hidden}.join-auth-tab{flex:1;padding:8px;background:var(--ui-bg);color:var(--ui-muted);font-family:var(--font-type);font-size:.75rem;letter-spacing:.08em;border:none;cursor:pointer;transition:background .15s,color .15s}.join-auth-tab:first-child{border-right:1px solid var(--ui-border)}.join-auth-tab.active{background:var(--ui-accent);color:#fff}.join-auth-tab:hover:not(.active){background:var(--ui-bg2);color:var(--ui-text)}.join-auth-form{display:flex;flex-direction:column;gap:10px}.join-auth-input{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);padding:9px 12px;font-size:.95rem;border-radius:3px;outline:none;transition:border-color .2s;font-family:var(--font-type)}.join-auth-input:focus{border-color:var(--ui-accent)}.join-auth-input:disabled{opacity:.6}.join-auth-input::placeholder{color:var(--ui-muted)}.app{width:100%;height:100%;display:flex;flex-direction:column}.lobby{align-items:center;justify-content:flex-start;padding:60px 20px 40px;background:radial-gradient(ellipse at 50% 0%,#3a1a0a,#1a1210 60%),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.01) 2px,rgba(255,255,255,.01) 4px);gap:32px}.lobby-header{text-align:center}.lobby-title{font-family:var(--font-stamp);font-size:clamp(2rem,5vw,3.5rem);letter-spacing:.15em;color:var(--ui-text);text-shadow:0 0 40px rgba(139,26,26,.6),0 2px 4px rgba(0,0,0,.8);margin-bottom:8px}.lobby-sub{font-family:var(--font-type);color:var(--ui-muted);font-size:.85rem;letter-spacing:.2em;text-transform:uppercase}.lobby-create-wrap{display:flex;flex-direction:column;gap:10px;width:100%;max-width:520px}.lobby-create{display:flex;gap:12px;width:100%}.lobby-date-step{display:flex;flex-direction:column;gap:8px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:12px 14px}.lobby-date-label{font-size:.78rem;color:var(--ui-muted);letter-spacing:.08em;text-transform:uppercase}.lobby-date-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.lobby-date-input{flex:1;min-width:130px;background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--ui-text);padding:7px 10px;font-size:.88rem;border-radius:3px;outline:none;font-family:inherit;transition:border-color .2s}.lobby-date-input:focus{border-color:var(--ui-accent)}.lobby-date-btn{padding:7px 16px;font-size:.82rem;letter-spacing:.06em;border-radius:3px;cursor:pointer;white-space:nowrap;transition:background .2s;font-family:inherit}.lobby-date-btn--today{background:transparent;border:1px solid var(--ui-border);color:var(--ui-muted)}.lobby-date-btn--today:hover{background:#ffffff0d;color:var(--ui-text)}.lobby-date-btn--set{background:var(--ui-accent);border:none;color:#fff}.lobby-date-btn--set:hover{background:#a82020}.lobby-date-btn--set:disabled{opacity:.4;cursor:default}.lobby-input{flex:1;background:var(--ui-bg2);border:1px solid var(--ui-border);color:var(--ui-text);padding:10px 14px;font-size:1rem;border-radius:3px;outline:none;transition:border-color .2s}.lobby-input:focus{border-color:var(--ui-accent)}.lobby-input::placeholder{color:var(--ui-muted)}.lobby-btn{background:var(--ui-accent);color:#fff;padding:10px 22px;font-size:.9rem;letter-spacing:.1em;border-radius:3px;transition:background .2s}.lobby-btn:hover{background:#a82020}.lobby-boards{display:flex;flex-direction:column;gap:10px;width:100%;max-width:520px}.lobby-muted{color:var(--ui-muted);font-size:.9rem;text-align:center}.lobby-card{display:flex;align-items:center;justify-content:space-between;background:var(--ui-bg2);border:1px solid var(--ui-border);padding:14px 18px;border-radius:3px;cursor:pointer;transition:border-color .2s,background .2s}.lobby-card:hover{border-color:var(--ui-accent);background:#2e1e18}.lobby-card-name{font-family:var(--font-stamp);font-size:1.1rem;letter-spacing:.05em;color:var(--ui-text)}.lobby-card-left{display:flex;align-items:center;gap:10px;min-width:0}.lobby-card-role{font-family:var(--font-type);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ui-accent);border:1px solid var(--ui-accent);padding:1px 5px;border-radius:2px;opacity:.7;flex-shrink:0}.lobby-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.lobby-card-invite{background:none;color:var(--ui-muted);font-family:var(--font-type);font-size:.65rem;letter-spacing:.1em;padding:3px 8px;border:1px solid var(--ui-border);border-radius:2px;transition:color .2s,border-color .2s;flex-shrink:0}.lobby-card-invite:hover{color:var(--ui-text);border-color:var(--ui-muted)}.lobby-card-delete{background:none;color:var(--ui-muted);font-size:.85rem;padding:2px 6px;border-radius:2px;transition:color .2s,background .2s;flex-shrink:0}.lobby-card-delete:hover{color:#fff;background:var(--ui-accent)}.invite-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9000}.invite-modal{width:100%;max-width:480px;background:var(--ui-bg2);border:1px solid var(--ui-border);border-radius:4px;padding:28px 28px 22px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 48px #000000b3}.invite-modal-title{font-family:var(--font-stamp);font-size:1.1rem;letter-spacing:.15em;color:var(--ui-text);margin:0}.invite-modal-sub{font-family:var(--font-type);font-size:.75rem;color:var(--ui-muted);margin:0}.invite-modal-url-row{display:flex;align-items:center;gap:8px;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:3px;padding:8px 10px}.invite-modal-code{flex:1;font-family:var(--font-type);font-size:.78rem;color:var(--ui-text);word-break:break-all;-webkit-user-select:all;user-select:all}.invite-modal-copy{background:var(--ui-accent);color:#fff;font-family:var(--font-type);font-size:.7rem;letter-spacing:.1em;padding:5px 12px;border-radius:2px;flex-shrink:0;transition:background .2s}.invite-modal-copy:hover{background:#a82020}.invite-modal-close{background:none;color:var(--ui-muted);font-family:var(--font-type);font-size:.75rem;border:1px solid var(--ui-border);padding:6px 14px;border-radius:3px;align-self:flex-end;transition:color .15s,border-color .15s}.invite-modal-close:hover{color:var(--ui-text);border-color:var(--ui-muted)}.lobby-footer{display:flex;align-items:center;gap:16px;margin-top:auto;padding-top:12px}.lobby-user{font-family:var(--font-type);font-size:.75rem;color:var(--ui-muted);letter-spacing:.05em}.lobby-user strong{color:var(--ui-text)}.lobby-logout{background:none;color:var(--ui-muted);font-size:.75rem;font-family:var(--font-type);border:1px solid var(--ui-border);padding:4px 10px;border-radius:3px;transition:color .2s,border-color .2s}.lobby-logout:hover{color:var(--ui-text);border-color:var(--ui-muted)}
