*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #18140f;--accent: #c9993e;--accent-hover: #ddb050;--text: #ede4d3;--text-muted: rgba(237,228,211,.45);--toolbar-bg: rgba(24,20,15,.88);--toolbar-border: rgba(255,255,255,.09);--modal-bg: #201b14}body{font-family:DM Sans,sans-serif;background:var(--bg);height:100vh;overflow:hidden;color:var(--text)}.app{display:flex;flex-direction:column;height:100vh}.board{flex:1;position:relative;overflow:auto;background:radial-gradient(ellipse at 15% 25%,rgba(180,120,40,.07) 0%,transparent 55%),radial-gradient(ellipse at 82% 72%,rgba(100,70,20,.08) 0%,transparent 55%),var(--bg)}.board-canvas{position:relative;width:4000px;height:2600px}.board:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.022;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='1'/%3E%3C/svg%3E")}.board-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;color:#ede4d324}.board-hint-title{font-family:Caveat,cursive;font-size:36px;font-weight:700;margin-bottom:8px}.board-hint-sub{font-size:14px;font-weight:400}.toolbar{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--toolbar-bg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--toolbar-border);border-radius:100px;box-shadow:0 8px 32px #00000073,0 1px #ffffff0a inset}.toolbar-logo{font-family:Caveat,cursive;font-size:19px;font-weight:700;color:var(--accent);margin-right:6px;letter-spacing:.3px;text-decoration:none}.tb-sep{width:1px;height:22px;background:var(--toolbar-border);margin:0 2px}.tb-btn{display:flex;align-items:center;gap:6px;padding:6px 13px;border:1px solid transparent;border-radius:100px;background:transparent;color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;position:relative}.tb-btn:hover{background:#ffffff12;border-color:#ffffff1a}.tb-btn.accent{background:var(--accent);color:#18140f;font-weight:600;border-color:transparent}.tb-btn.accent:hover{background:var(--accent-hover)}.tb-btn.ghost{color:var(--text-muted)}.tb-btn.ghost:hover{color:var(--text);background:#ffffff12;border-color:#ffffff1a}.tb-btn svg{width:14px;height:14px;flex-shrink:0}.tb-dropdown{position:relative}.tb-dropdown-menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#201b14;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px;min-width:180px;box-shadow:0 12px 40px #00000080;z-index:100;animation:dropIn .12s ease}@keyframes dropIn{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tb-dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text);transition:background .12s;white-space:nowrap}.tb-dropdown-item:hover{background:#ffffff12}.tb-dropdown-item-icon{font-size:16px;width:20px;text-align:center}.user-chip{display:flex;align-items:center;gap:7px;padding:4px 11px 4px 5px;border:1px solid rgba(255,255,255,.09);border-radius:100px;font-size:13px;font-weight:500;max-width:160px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-chip img{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0}.user-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#18140f;flex-shrink:0}.user-name{overflow:hidden;text-overflow:ellipsis}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:32px;padding:24px}.login-card{background:var(--modal-bg);border:1px solid rgba(255,255,255,.07);border-radius:20px;padding:40px 36px;width:100%;max-width:360px;box-shadow:0 24px 64px #00000073;display:flex;flex-direction:column;gap:20px}.login-logo{font-family:Caveat,cursive;font-size:32px;font-weight:700;color:var(--accent);text-align:center}.login-sub{font-size:13px;color:var(--text-muted);text-align:center;margin-top:-12px}.login-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:12px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff14}.login-error{font-size:13px;color:#fca5a5;text-align:center;padding:8px 12px;background:#ef44441a;border-radius:8px;border:1px solid rgba(239,68,68,.2)}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff0d;color:var(--text);font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;width:100%}.google-btn:hover{background:#ffffff17;border-color:#fff3}.home-page{max-width:720px;margin:0 auto;padding:80px 24px 40px}.home-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.home-title{font-family:Caveat,cursive;font-size:28px;font-weight:700;color:var(--accent)}.boards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.board-card{background:var(--modal-bg);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:20px;cursor:pointer;transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--text)}.board-card:hover{border-color:#ffffff2e;transform:translateY(-2px)}.board-card-title{font-size:15px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.board-card-meta{font-size:12px;color:var(--text-muted)}.board-card-new{border-style:dashed;border-color:#ffffff1f;justify-content:center;align-items:center;flex-direction:row;gap:8px;font-size:14px;font-weight:500;color:var(--text-muted)}.board-card-new:hover{color:var(--text)}.sticky{position:absolute;--sticky-scale: 1;padding:calc(14px * var(--sticky-scale)) calc(14px * var(--sticky-scale)) calc(10px * var(--sticky-scale));border-radius:2px;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;box-shadow:0 1px 3px #00000038,0 6px 18px #00000047,0 14px 36px #00000029;transition:box-shadow .2s;animation:stickyAppear .22s ease}.sticky:hover{box-shadow:0 2px 6px #00000047,0 10px 28px #00000061,0 20px 50px #00000038}.sticky:active{cursor:grabbing}body.alt-held .sticky{cursor:copy}@keyframes stickyAppear{0%{opacity:0}}.sticky-fold{position:absolute;bottom:0;right:0;width:calc(22px * var(--sticky-scale));height:calc(22px * var(--sticky-scale));clip-path:polygon(100% 0,100% 100%,0 100%);background:#00000024;border-radius:0 0 2px;pointer-events:none}.sticky-title{font-family:Caveat,cursive;font-size:calc(18px * var(--sticky-scale));font-weight:700;color:#000000b8;line-height:1.25;margin-bottom:calc(7px * var(--sticky-scale));word-break:break-word}.sticky-body{font-family:Caveat,cursive;font-size:calc(14px * var(--sticky-scale));color:#0000008c;line-height:1.55;flex:1;word-break:break-word;overflow:hidden}.sticky-footer{display:flex;align-items:center;justify-content:space-between;margin-top:calc(10px * var(--sticky-scale))}.sticky-creator{display:flex;align-items:center;gap:4px;font-size:calc(10px * var(--sticky-scale));font-weight:600;letter-spacing:.4px;color:#00000073;text-transform:uppercase}.sticky-creator-dot{width:calc(7px * var(--sticky-scale));height:calc(7px * var(--sticky-scale));border-radius:50%;flex-shrink:0}.sticky-actions{display:flex;gap:3px;opacity:0;transition:opacity .15s}.sticky:hover .sticky-actions{opacity:1}.sticky-resize{position:absolute;bottom:0;right:0;width:20px;height:20px;cursor:nwse-resize;z-index:10}.icon-btn{width:22px;height:22px;border:none;border-radius:50%;background:#0000001c;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .12s;flex-shrink:0}.icon-btn:hover{background:#0003}.icon-btn svg{width:11px;height:11px;color:#0000008c}.color-palette-pop{position:absolute;bottom:calc(100% + 8px);right:0;display:flex;gap:5px;padding:7px 9px;background:#201b14;border:1px solid rgba(255,255,255,.09);border-radius:100px;box-shadow:0 8px 28px #00000073;z-index:200;animation:dropIn .12s ease}.color-swatch{width:17px;height:17px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .13s,border-color .13s;flex-shrink:0}.color-swatch:hover,.color-swatch.sel{transform:scale(1.3);border-color:#fff}.box-wrap{position:absolute;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:14px;overflow:hidden;border:1px solid;animation:stickyAppear .22s ease}.box-wrap:active{cursor:grabbing}.box-hdr{padding:9px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid}.box-hdr-title{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.box-del-btn{width:20px;height:20px;border:none;border-radius:50%;background:#ffffff14;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s,background .12s}.box-wrap:hover .box-del-btn{opacity:1}.box-del-btn:hover{background:#ffffff26}.box-del-btn svg{width:10px;height:10px}.matrix-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;width:100%;flex:1}.matrix-cell{padding:12px 14px;border:1px solid}.matrix-cell-lbl{font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;opacity:.5;margin-bottom:6px;white-space:pre-line;line-height:1.4}.retro-grid{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;flex:1}.retro-cell{padding:12px 14px;border:1px solid;display:flex;flex-direction:column}.retro-cell-lbl{font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;opacity:.65;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid}.single-cell{padding:14px;min-height:80px}.resize-handle{position:absolute;bottom:0;right:0;width:20px;height:20px;cursor:se-resize;border-radius:0 0 14px;display:flex;align-items:flex-end;justify-content:flex-end;padding:4px;opacity:0;transition:opacity .15s}.box-wrap:hover .resize-handle{opacity:1}.resize-handle svg{display:block}.date-wrap{position:absolute;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;align-items:center;animation:stickyAppear .22s ease}.date-wrap:active{cursor:grabbing}.date-inner{position:relative;display:inline-block}.date-title{font-family:Caveat,cursive;font-size:32px;font-weight:700;color:var(--accent);letter-spacing:.5px;text-shadow:0 2px 12px rgba(0,0,0,.35);white-space:nowrap;line-height:1.2;text-align:center}.date-text{font-family:DM Sans,sans-serif;font-size:12px;font-weight:400;color:var(--text-muted);white-space:nowrap;text-align:center;margin-top:2px}.date-del-btn{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border:none;border-radius:50%;background:#ffffff1f;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;padding:0}.date-wrap:hover .date-del-btn{opacity:1}.date-del-btn svg{width:9px;height:9px;color:#fff}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeOverlay .15s ease}@keyframes fadeOverlay{0%{opacity:0}}.modal{background:var(--modal-bg);border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:28px;width:380px;max-width:calc(100vw - 28px);box-shadow:0 28px 72px #0000008c,0 1px #ffffff0a inset;animation:modalIn .18s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(6px)}}.modal-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:22px;letter-spacing:.2px}.fg{margin-bottom:16px}.fg:last-of-type{margin-bottom:0}.flabel{display:block;font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px}.finput,.ftextarea{width:100%;padding:10px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);border-radius:9px;color:var(--text);font-family:DM Sans,sans-serif;font-size:14px;outline:none;transition:border-color .15s}.finput:focus,.ftextarea:focus{border-color:var(--accent)}.finput+.finput{margin-top:6px}.ftextarea{resize:vertical;min-height:80px;line-height:1.5}.finput[type=date]{color-scheme:dark}.color-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.color-opt{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}.color-opt-sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;transition:transform .14s,border-color .14s}.color-opt.sel .color-opt-sw{transform:scale(1.18);border-color:#fff}.color-opt-name{font-size:9px;color:var(--text-muted);font-weight:500;letter-spacing:.3px}.box-type-row{display:flex;gap:7px}.box-type-btn{flex:1;padding:10px 8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:transparent;color:var(--text);cursor:pointer;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;transition:all .13s;text-align:center;line-height:1.35}.box-type-btn:hover{background:#ffffff0a;border-color:#ffffff26}.box-type-btn.sel{border-color:var(--accent);background:#c9993e1a;color:var(--accent)}.box-type-icon{display:block;font-size:22px;margin-bottom:4px}.modal-actions{display:flex;gap:8px;margin-top:22px}.mbt{flex:1;padding:10px;border-radius:9px;border:1px solid transparent;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:all .14s}.mbt.cancel{background:transparent;border-color:#ffffff14;color:var(--text-muted)}.mbt.cancel:hover{background:#ffffff0a}.mbt.ok{background:var(--accent);color:#18140f;font-weight:600}.mbt.ok:hover{background:var(--accent-hover)}.mbt.ok:disabled{opacity:.4;cursor:not-allowed}.spinner-page{display:flex;align-items:center;justify-content:center;height:100vh}.spinner{width:32px;height:32px;border:3px solid rgba(201,153,62,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.board-title-input{font-family:Caveat,cursive;font-size:19px;font-weight:700;color:var(--text);background:transparent;border:none;border-bottom:1px solid transparent;outline:none;width:160px;transition:border-color .15s;margin-right:6px}.board-title-input:focus{border-bottom-color:#fff3}.template-list{display:flex;flex-direction:column;gap:5px}.template-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.07);border-radius:8px;cursor:pointer;transition:background .12s,border-color .12s;position:relative}.template-item:hover{background:#ffffff0d;border-color:#ffffff24}.template-item-name{font-size:13px;font-weight:500;color:var(--text);flex:1}.template-item-meta{font-size:11px;color:var(--text-muted);margin-right:4px}.template-del-btn{width:18px;height:18px;border:none;border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;color:var(--text-muted);opacity:0;transition:opacity .12s,background .12s;flex-shrink:0}.template-item:hover .template-del-btn{opacity:1}.template-del-btn:hover{background:#ffffff14;color:var(--text)}.board.pan-mode{cursor:grab}.board.pan-mode.is-panning{cursor:grabbing}.board.pan-mode .sticky,.board.pan-mode .box-wrap,.board.pan-mode .date-wrap{pointer-events:none}.zoom-controls{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;align-items:center;gap:2px;background:var(--toolbar-bg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--toolbar-border);border-radius:100px;padding:4px 6px;box-shadow:0 4px 16px #00000059}.zoom-btn{width:26px;height:26px;border:none;border-radius:50%;background:transparent;color:var(--text);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.zoom-btn:hover{background:#ffffff1a}.zoom-pct{min-width:42px;text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);font-family:DM Sans,sans-serif;background:transparent;border:none;cursor:pointer;padding:0 2px}.zoom-pct:hover{color:var(--text)}.share-copied{color:#86efac!important}
