:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--desk:#e6dfd2;--ink:#2a241c;--muted:#74685a;--paper:#f7f3eb;--accent:#c4522a;--line:#2a241c1f;color:var(--ink);background:var(--desk);font-family:Manrope,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,p{margin:0}.app{flex-direction:column;height:100dvh;display:flex}.workspace{flex:1;min-height:0;display:flex;position:relative}.stage{background:var(--desk);flex:1;min-width:0;position:relative}.board{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background-color:var(--desk);background-image:radial-gradient(#46341c33 1.15px,#0000 1.15px);position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 90px #4632140f}.board.is-booting{opacity:0}.board.is-linking{cursor:crosshair}.board.is-panning,.board.is-dragging{cursor:grabbing}.world{transform-origin:0 0;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0;overflow:visible}.link-layer{pointer-events:none;position:absolute;overflow:visible}.link-shadow,.link-line,.link-preview,.link-hit{fill:none;stroke-linecap:round}.link-shadow{stroke:#3c2a1424}.link-line{stroke:#3a3128}.link-line.is-selected,.link-preview{stroke:var(--accent)}.link-hit{stroke:#0000;pointer-events:stroke;cursor:pointer}.sticker{color:var(--ink);pointer-events:auto;cursor:grab;background-image:linear-gradient(#ffffff6b,#0000 34%);border-radius:3px 16px 14px 14px;flex-direction:column;padding:16px 16px 12px;display:flex;position:absolute;top:0;left:0;box-shadow:inset 0 1px #ffffffbf,inset 0 -10px 14px #50320a0d,0 12px 24px #3e2c1021,0 2px 4px #3e2c100f}.tape{z-index:4;width:52px;height:16px;transform:translateX(-50%) rotate(var(--tape,-2deg));cursor:grab;background:#ffffff73;border:1px solid #ffffff8c;padding:0;position:absolute;top:-11px;left:24%;box-shadow:0 1px 2px #281e0a0d}.sticker.is-selected{outline-offset:4px;outline:2px solid #2a241cb8}.sticker.is-target{outline:2px solid var(--accent);outline-offset:5px}.sticker.is-dragging{cursor:grabbing}.sticker-head{align-items:center;gap:8px;min-height:22px;margin-bottom:4px;display:flex}.kind-pill{letter-spacing:.06em;text-transform:uppercase;color:#241c149e;font-size:11px;font-weight:700}.sticker-text{resize:none;width:100%;min-height:0;color:inherit;cursor:text;-webkit-user-select:text;user-select:text;touch-action:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;outline:none;flex:1;padding:0;font-family:Caveat,Segoe Print,cursive;font-size:26px;font-weight:600;line-height:1.2;overflow:auto}.sticker-text::placeholder{color:#241c1461}.sticker-text:focus-visible{outline:none}.sticker.is-done .sticker-text{opacity:.55;text-decoration:line-through}.sticker-text::-webkit-scrollbar{width:8px}.sticker-text::-webkit-scrollbar-thumb{background:#281e0a38;border-radius:99px}.due{align-items:center;gap:8px;margin-top:8px;font-size:12px;font-weight:700;display:flex}.due input{min-width:0;font:inherit;background:#fff6;border:0;border-radius:8px;flex:1;padding:4px 6px}.due-read{margin-top:8px;font-size:12px;font-weight:700}.due-read.is-overdue,.task-due.is-overdue{color:var(--accent)}.check{background:#fff6;border:1.5px solid #241c148c;border-radius:5px;flex:none;place-items:center;width:18px;height:18px;padding:0;display:grid}.check svg{width:12px;height:12px}.check.is-on{border-color:var(--ink);background:var(--ink);color:#f6f1e6}.port,.handle,.rotate-handle{z-index:5;border:1.5px solid var(--ink);background:#fff;padding:0;position:absolute;box-shadow:0 1px 3px #281e0a2e}.port{cursor:crosshair;border-width:2px;border-radius:50%;width:14px;height:14px}.port:hover{background:var(--accent);border-color:var(--accent)}.handle{border-radius:3px;width:11px;height:11px}.rotate-handle{cursor:grab;border-radius:50%;width:14px;height:14px;top:0;left:74%}.rotate-handle:before{content:"";background:var(--ink);width:1.5px;height:10px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.sticker-actions{z-index:6;transform-origin:top;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:calc(100% + 12px);left:50%}.action-row{background:var(--paper);border-radius:999px;align-items:center;gap:6px;padding:6px;display:flex;box-shadow:0 8px 20px #32230f24}.swatch{border:1px solid #281e0a38;border-radius:50%;width:18px;height:18px;padding:0}.swatch.is-on{outline:2px solid var(--ink);outline-offset:2px}.action-btn{white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}.action-btn:hover{background:#3c28140f}.action-btn.danger{color:var(--accent)}.topbar{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7f3ebeb;border:1px solid #ffffffa6;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:8px 10px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #32230f1f}.brand{align-items:center;gap:8px;padding:0 6px;display:flex}.brand h1{letter-spacing:-.03em;font-size:16px;font-weight:700}.logo{width:22px;height:22px;position:relative}.logo-a,.logo-b{border-radius:2px;width:14px;height:12px;display:block;position:absolute;box-shadow:0 1px 2px #281e0a29}.logo-a{background:#ffe56a;top:2px;left:0;transform:rotate(-8deg)}.logo-b{background:#ffb4c8;bottom:1px;right:0;transform:rotate(7deg)}.topbar-sep{background:var(--line);width:1px;height:18px}.topbar-group{align-items:center;gap:2px;display:flex}.tool-btn{background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:700;display:inline-flex}.tool-btn:hover{background:#3c28140f}.tool-btn.is-active{background:var(--ink);color:#f6f0e6}.tool-btn:disabled{opacity:.35;cursor:default}.tool-btn:disabled:hover{background:0 0}.badge{background:var(--accent);color:#fff;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:inline-grid}.tool-btn.is-active .badge{color:var(--ink);background:#f6f0e6}.task-panel,.project-panel{border-right:1px solid var(--line);z-index:6;background:#f4efe6;flex-direction:column;flex:none;width:300px;display:flex}.project-panel{width:320px}.task-panel-head{justify-content:space-between;align-items:baseline;padding:22px 18px 8px;display:flex}.task-panel-head h2{font-size:15px;font-weight:700}.task-panel-head span,.task-empty{color:var(--muted)}.task-empty{padding:8px 18px 18px;font-size:14px;line-height:1.45}.task-list{flex-direction:column;gap:4px;padding:8px;display:flex;overflow:auto}.task-item{border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:8px;padding:8px;display:grid}.task-item.is-current{background:#c4522a1a}.task-open{text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:2px 0;display:flex}.task-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.task-open.is-done .task-text{opacity:.55;text-decoration:line-through}.task-due{color:var(--muted);font-size:12px;font-weight:700}.empty{z-index:2;text-align:center;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.empty strong{font-family:Caveat,Segoe Print,cursive;font-size:44px;font-weight:600;display:block}.empty span{color:var(--muted);margin-top:8px;font-size:14px;font-weight:600;display:block}.link-hint,.zoom-chip{z-index:4;pointer-events:none;background:#f7f3ebeb;border-radius:999px;font-size:13px;font-weight:700;position:absolute;box-shadow:0 6px 16px #32230f14}.link-hint{color:var(--ink);white-space:nowrap;padding:8px 14px;top:78px;left:50%;transform:translate(-50%)}.zoom-chip{color:var(--muted);font-variant-numeric:tabular-nums;padding:6px 10px;bottom:16px;right:16px}.project-switch{max-width:200px}.project-switch-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-list{flex-direction:column;gap:4px;min-height:0;padding:8px;display:flex;overflow:auto}.project-item{border-radius:12px}.project-item.is-current{background:#c4522a1a}.project-open{text-align:left;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:8px 10px;display:flex}.project-open:hover{background:#3c28140d}.project-item.is-current .project-open:hover{background:0 0}.project-row-name{font-size:14px;font-weight:700;line-height:1.35}.project-row-desc,.project-description,.form-lead,.form-hint{color:var(--muted);font-size:13px;font-weight:600;line-height:1.45}.project-row-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-detail{flex-direction:column;gap:10px;padding:0 10px 10px;display:flex}.project-description{white-space:pre-wrap}.project-props{flex-direction:column;gap:6px;margin:0;display:flex}.project-props div{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;display:grid}.project-props dt{color:var(--muted);font-size:12px;font-weight:700}.project-props dd{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:700}.confirm-delete{flex-direction:column;gap:8px;display:flex}.confirm-delete p{font-size:13px;font-weight:700;line-height:1.4}.project-gate{place-items:center;padding:24px;display:grid;position:absolute;inset:0;overflow:auto}.gate-message{text-align:center;max-width:360px;margin:0;font-size:16px;font-weight:700;line-height:1.45}.save-error{z-index:30;background:var(--paper);color:var(--accent);border-radius:999px;margin:0;padding:8px 14px;font-size:13px;font-weight:700;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #32230f1f}.modal-back{z-index:40;background:#2a241c47;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.project-card{background:var(--paper);border-radius:18px;flex-direction:column;gap:14px;width:min(440px,100vw - 48px);max-height:calc(100dvh - 48px);padding:22px;display:flex;overflow:auto;box-shadow:0 24px 50px #32230f29,0 2px 6px #32230f0f}.project-card h2{letter-spacing:-.03em;font-size:22px}.gate-stack{flex-direction:column;align-items:center;gap:8px;display:flex}.auth-switch{background:#3c28140f;border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.auth-switch button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 12px;font-weight:700}.auth-switch button.is-active{color:var(--ink);background:#fffdf8;box-shadow:0 1px 2px #32230f14}.user-name{max-width:140px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:0 8px;font-size:13px;font-weight:700;overflow:hidden}.project-gate .project-card{box-shadow:0 18px 40px #32230f1f,0 2px 6px #32230f0d}.form-field,.form-properties{border:0;flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;font-weight:700;display:flex}.form-properties legend{padding:0}.form-field input,.form-field textarea,.property-row input{background:#fffdf8;border:1px solid #2a241c29;border-radius:10px;width:100%;padding:10px 12px;font-weight:600}.form-field textarea{resize:vertical;min-height:84px}.property-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.form-actions{justify-content:flex-end;gap:8px;display:flex}.form-error{color:var(--accent);margin:0;font-size:13px;font-weight:700}.quiet-btn,.solid-btn,.icon-btn{border:0;border-radius:999px;font-weight:700}.quiet-btn{color:var(--muted);background:0 0;padding:8px 10px}.quiet-btn:hover,.icon-btn:hover{background:#3c28140f}.quiet-btn.is-danger,.solid-btn.is-danger{color:var(--accent)}.solid-btn{background:var(--ink);color:#f6f0e6;padding:8px 14px}.solid-btn:disabled{opacity:.55;cursor:default}.solid-btn.is-danger{background:var(--accent);color:#fff}.icon-btn{background:0 0;width:36px;height:36px;font-size:20px;line-height:1}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:disabled:hover{background:0 0}button:focus-visible,input:focus-visible,textarea:focus-visible,.task-open:focus-visible,.project-open:focus-visible,.port:focus-visible,.handle:focus-visible,.rotate-handle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=800px){.topbar{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;top:8px;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}.task-panel,.project-panel{z-index:15;border:1px solid var(--line);border-radius:16px;width:min(320px,100% - 24px);position:absolute;top:72px;bottom:12px;left:12px;box-shadow:0 16px 40px #281e0a29}.empty strong{font-size:34px}.link-hint{white-space:normal;text-align:center;max-width:calc(100% - 32px)}}
