:root{--bg-outer: #020408;--bg-space: #060d1a;--panel-bg: rgba(8, 18, 38, .75);--card-bg: rgba(7, 17, 36, .68);--card-hover-bg: rgba(12, 26, 54, .9);--glass-border: rgba(255, 255, 255, .08);--glass-border-hover: rgba(255, 255, 255, .18);--user-a: #ff6b2b;--user-a-soft: rgba(255, 107, 43, .2);--user-b: #2b8fff;--user-b-soft: rgba(43, 143, 255, .22);--text-primary: #e8edf5;--text-secondary: #7a8ba0;--text-dim: #3d4f63;--success: #67f5b5;--warning: #ffd166;--header-height: 64px;--input-height: 96px;--side-width: 330px;--grid-size: 40px;--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{overflow:hidden;color:var(--text-primary);background:var(--bg-outer);font-family:JetBrains Mono,Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:0}button,input{font:inherit}button{cursor:pointer}.app-root{position:relative;width:100vw;height:100vh;overflow:hidden;background:radial-gradient(circle at 18% 16%,rgba(43,143,255,.18),transparent 28%),radial-gradient(circle at 78% 72%,rgba(255,107,43,.11),transparent 26%),linear-gradient(180deg,var(--bg-outer),var(--bg-space))}.space-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(to right,rgba(122,139,160,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(122,139,160,.12) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size);-webkit-mask-image:radial-gradient(circle at center,#000 10%,rgba(0,0,0,.78) 48%,transparent 90%);mask-image:radial-gradient(circle at center,#000 10%,rgba(0,0,0,.78) 48%,transparent 90%)}.stars-layer,.connection-layer,.nodes-layer,.spotlight{position:absolute;top:0;right:0;bottom:0;left:0}.stars-layer,.connection-layer,.spotlight{pointer-events:none}.star{position:absolute;width:var(--star-size);height:var(--star-size);border-radius:999px;background:#fffffff2;opacity:var(--star-opacity);will-change:opacity,transform}.star-twinkle{animation:starTwinkle var(--star-duration) ease-in-out var(--star-delay) infinite}.star-glow{background:#cde2fff2;animation:starGlowPulse var(--star-duration) ease-in-out var(--star-delay) infinite;will-change:opacity,transform,filter}.shooting-star{position:absolute;width:96px;height:1px;border-radius:999px;opacity:0;background:linear-gradient(90deg,#aad3ff00,#aad3ffc7,#fff0);transform-origin:right center;animation:shootingStar var(--shooting-duration) ease-in-out var(--shooting-delay) infinite;will-change:opacity,transform}.view-shell{position:absolute;top:0;right:0;bottom:0;left:0}.view-enter{animation:pageIn .52s var(--ease-out) both}.view-exit{animation:pageOut .42s ease both}.glass{border:1px solid var(--glass-border);background:var(--panel-bg);box-shadow:0 18px 60px #00000057,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%)}@keyframes twinkle{0%{opacity:calc(var(--star-opacity) * .35);transform:scale(.7)}to{opacity:var(--star-opacity);transform:scale(1.25)}}@keyframes starTwinkle{0%,to{opacity:var(--star-opacity);transform:scale(1)}45%{opacity:calc(var(--star-opacity) * .35);transform:scale(calc(var(--star-scale) * .72))}70%{opacity:.95;transform:scale(calc(var(--star-scale) * 1.18))}}@keyframes starGlowPulse{0%,to{opacity:calc(var(--star-opacity) * .48);transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,255,255,0))}50%{opacity:1;transform:scale(calc(var(--star-scale) * 1.45));filter:drop-shadow(0 0 6px rgba(120,180,255,.72))}}@keyframes shootingStar{0%,72%{opacity:0;transform:translateZ(0) rotate(-22deg) scaleX(.45)}76%{opacity:.78}84%{opacity:0;transform:translate3d(380px,145px,0) rotate(-22deg) scaleX(1)}to{opacity:0;transform:translate3d(380px,145px,0) rotate(-22deg) scaleX(1)}}@keyframes pulseRing{0%{width:112px;height:112px;opacity:.72;border-width:2px}to{width:460px;height:460px;opacity:0;border-width:0}}@keyframes loginBurst{to{transform:translate(-50%,-50%) scale(34);opacity:0}}@keyframes mouseRipple{0%{transform:translate(-50%,-50%) scale(.2);opacity:.18}60%{opacity:.1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes pageIn{0%{opacity:0;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@keyframes pageOut{to{opacity:0;transform:scale(.985);filter:blur(8px)}}@keyframes cardFloat{0%,to{translate:0 0}50%{translate:0 -14px}}@keyframes cardAppear{0%{opacity:0;transform:scale(.72) rotate(var(--rotate));filter:blur(10px)}to{opacity:1;transform:scale(1) rotate(var(--rotate));filter:blur(0)}}@keyframes linePulse{50%{opacity:.95;stroke-width:1.9}}@keyframes dashFlow{to{stroke-dashoffset:-36}}@keyframes cursorBlink{50%{opacity:0}}@keyframes syncSpin{to{transform:rotate(360deg)}}@keyframes slideLog{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.login-screen{display:grid;place-items:center}.login-center{position:relative;z-index:10}.login-rings{position:absolute;inset:50% auto auto 50%;display:grid;place-items:center;transform:translate(-50%,-50%);pointer-events:none;opacity:.03}.login-ring{position:absolute;border:1px solid rgba(43,143,255,.14);border-radius:999px;animation:pulseRing 4s var(--ease-out) infinite;box-shadow:0 0 18px #2b8fff0f}.login-ring:nth-child(2){animation-delay:1.25s;border-color:#2b8fff1a}.login-ring:nth-child(3){animation-delay:2.5s;border-color:#2b8fff0f}.mouse-ripple-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;overflow:hidden;pointer-events:none}.mouse-ripple{position:absolute;width:var(--ripple-size);height:var(--ripple-size);border:1px solid rgba(43,143,255,.22);border-radius:9999px;background:radial-gradient(circle,rgba(43,143,255,.08) 0%,rgba(76,213,255,.035) 38%,transparent 70%);box-shadow:0 0 28px #2b8fff1a;mix-blend-mode:screen;pointer-events:none;animation:mouseRipple var(--ripple-duration) ease-out forwards;will-change:opacity,transform}.mouse-ripple.is-click{border-color:#a0dcff52;background:radial-gradient(circle,rgba(160,220,255,.12) 0%,rgba(43,143,255,.05) 42%,transparent 72%);box-shadow:0 0 34px #2b8fff29}.google-login{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:14px;width:274px;height:58px;color:var(--text-primary);border:1px solid rgba(255,255,255,.16);border-radius:8px;background:linear-gradient(135deg,#ffffff1f,#2b8fff17);box-shadow:0 0 0 1px #2b8fff21,0 20px 90px #2b8fff3d,inset 0 1px #ffffff29;-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);transition:transform .26s var(--ease-out),border-color .26s ease,box-shadow .26s ease}.google-login:hover{transform:scale(1.055);border-color:#2b8fff9e;box-shadow:0 0 0 1px #2b8fff4d,0 20px 100px #2b8fff5c,inset 0 1px #ffffff38}.google-login.is-leaving{opacity:0;transform:scale(.82);pointer-events:none}.google-login svg{width:24px;height:24px}.guest-login{display:block;margin:14px auto 0;padding:4px 6px;color:var(--text-secondary);font-size:12px;border:0;background:transparent;transition:color .18s ease,text-shadow .18s ease}.guest-login:hover{color:var(--text-primary);text-decoration:underline;text-shadow:0 0 14px rgba(43,143,255,.55)}.login-burst{position:fixed;left:var(--burst-x);top:var(--burst-y);z-index:20;width:24px;height:24px;border-radius:999px;background:#2b8fff47;box-shadow:0 0 44px #2b8fff8c;transform:translate(-50%,-50%) scale(1);animation:loginBurst .56s ease forwards;pointer-events:none}.guest-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#0000006b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.guest-panel{width:min(340px,calc(100vw - 36px));padding:22px;border-radius:8px}.guest-panel h2{margin:0 0 8px;font-size:18px}.guest-panel p{margin:0 0 16px;color:var(--text-secondary);font-size:12px}.guest-panel input{width:100%;height:42px;padding:0 12px;color:var(--text-primary);border:1px solid rgba(255,255,255,.12);border-radius:7px;outline:none;background:#02040880}.guest-panel input:focus{border-color:#2b8fffa3;box-shadow:0 0 22px #2b8fff2e}.guest-error{display:block;min-height:18px;margin-top:8px;color:#ff9c8d;font-size:11px}.guest-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.todo-universe{min-width:100vw;min-height:100vh}.app-header{position:fixed;top:0;right:0;left:0;z-index:12;display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 28px;border-bottom:1px solid rgba(255,255,255,.08);background:#020408b3;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-icon{width:22px;height:22px;border-radius:6px;box-shadow:0 0 18px #2b8fff94;object-fit:cover}.brand-name{font-size:22px;font-weight:700;color:var(--text-primary)}.header-cluster,.status-row,.avatars{display:flex;align-items:center}.header-cluster{gap:18px}.status-row{gap:8px}.session-timer{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;color:var(--text-primary);font-size:12px;font-weight:800;border:1px solid rgba(43,143,255,.26);border-radius:999px;background:#2b8fff14;box-shadow:0 0 18px #2b8fff1f}.chip{display:inline-flex;align-items:center;gap:7px;min-height:27px;padding:0 10px;color:var(--text-secondary);font-size:11px;font-weight:700;text-transform:uppercase;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:#ffffff0a}.chip.online:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 14px var(--success)}.chip.sync:before{content:"";width:10px;height:10px;border:1px solid var(--user-b);border-top-color:transparent;border-radius:50%;animation:syncSpin 1.8s linear infinite}.chip.readonly{color:#b8c7ff;border-color:#b8c7ff40;background:#5266b41f}.chip.readonly:before{content:"";width:7px;height:7px;border-radius:50%;background:#b8c7ff;box-shadow:0 0 12px #b8c7ff94}.avatars{margin-left:4px}.avatar{display:grid;place-items:center;width:34px;height:34px;margin-left:-6px;color:var(--text-primary);font-size:13px;font-weight:800;border-radius:50%;background:#ffffff0d}.avatar.a{border:1px solid var(--user-a);box-shadow:0 0 16px #ff6b2b6b}.avatar.b{border:1px solid var(--user-b);box-shadow:0 0 16px #2b8fff6b}.node-count{color:var(--text-secondary);font-size:13px}.universe-canvas{position:absolute;inset:var(--header-height) var(--side-width) var(--input-height) 0;overflow:hidden;--canvas-scale: 1;--zoom-origin-x: 50%;--zoom-origin-y: 50%}.spotlight{z-index:2;opacity:0;background:radial-gradient(520px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(43,143,255,.13),transparent 42%);transition:opacity .18s ease}.todo-universe:hover .spotlight{opacity:1}.connection-layer{z-index:3;width:100%;height:100%;transform:scale(var(--canvas-scale));transform-origin:var(--zoom-origin-x) var(--zoom-origin-y);transition:transform .12s ease-out}.connection-path{fill:none;opacity:.54;stroke-linecap:round;stroke-dasharray:9 18;animation:dashFlow 2.8s linear infinite,linePulse 4s ease-in-out infinite;filter:drop-shadow(0 0 7px currentColor)}.connection-path.is-highlighted{opacity:1;stroke-width:2.7;stroke-dasharray:11 12;filter:drop-shadow(0 0 14px currentColor)}.travel-dot{filter:drop-shadow(0 0 10px currentColor)}.nodes-layer{z-index:5;transform:scale(var(--canvas-scale));transform-origin:var(--zoom-origin-x) var(--zoom-origin-y);transition:transform .12s ease-out}.input-panel{position:fixed;right:var(--side-width);bottom:0;left:0;z-index:11;display:flex;align-items:center;gap:12px;min-height:var(--input-height);padding:20px 28px;border-top:1px solid rgba(255,255,255,.08);background:#020408ad;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.toast-host{position:fixed;right:calc(var(--side-width) + 24px);bottom:calc(var(--input-height) + 22px);z-index:70;display:grid;gap:8px;pointer-events:none}.toast{max-width:340px;padding:12px 14px;color:var(--text-primary);font-size:12px;border:1px solid rgba(43,143,255,.4);border-radius:8px;background:#081226eb;box-shadow:0 18px 48px #0000005c,0 0 24px #2b8fff2e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:slideLog .22s var(--ease-out) both}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#0000007a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{width:min(560px,calc(100vw - 32px));padding:20px;border-radius:8px}.modal h2{margin:0 0 10px;font-size:18px;line-height:1.45}.modal p{margin:0 0 18px;color:var(--text-secondary);font-size:12px}.modal button{height:38px;padding:0 14px;color:var(--text-primary);border:1px solid rgba(43,143,255,.55);border-radius:7px;background:#2b8fff1f}.detail-modal{max-height:min(760px,calc(100vh - 48px));overflow:auto}.detail-modal h2{word-break:keep-all;overflow-wrap:anywhere}.modal-subtitle{margin:0 0 14px;color:var(--text-secondary);font-size:12px}.detail-grid{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px 12px;margin:16px 0;padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#ffffff09;font-size:12px}.detail-grid span,.detail-section h3,.edit-field span{color:var(--text-secondary)}.detail-grid strong{min-width:0;color:var(--text-primary);font-weight:600;overflow-wrap:anywhere}.detail-section{margin-top:14px}.detail-section h3{margin:0 0 8px;font-size:12px}.detail-section p,.detail-section ul{margin:0;color:var(--text-primary);font-size:12px;line-height:1.55}.detail-section ul{display:grid;gap:5px;padding-left:18px}.edit-field{display:grid;gap:7px;margin-top:14px;font-size:12px}.edit-field input,.edit-field textarea{width:100%;color:var(--text-primary);border:1px solid rgba(255,255,255,.12);border-radius:8px;outline:none;background:#02040880}.edit-field input{height:42px;padding:0 12px}.edit-field textarea{min-height:130px;padding:12px;resize:vertical}.edit-field input:focus,.edit-field textarea:focus{border-color:#2b8fff9e;box-shadow:0 0 22px #2b8fff29}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.connection-list{display:grid;gap:8px}.connection-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;color:var(--text-primary);font-size:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0a}.connection-row span{min-width:0;overflow-wrap:anywhere}.todo-input{flex:1;height:52px;min-width:0;padding:0 18px;color:var(--text-primary);border:1px solid rgba(255,255,255,.1);border-radius:8px;outline:none;background:#081226c2;box-shadow:inset 0 1px #ffffff0d}.input-actions{display:grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:10px}.todo-input:focus{border-color:#2b8fffa6;box-shadow:0 0 28px #2b8fff2e}.input-panel.is-readonly .todo-input,.input-panel.is-readonly button:disabled{opacity:.48;cursor:not-allowed}.input-panel.is-readonly .todo-input{color:var(--text-secondary)}.primary-action,.secondary-action{height:52px;min-width:112px;padding:0 16px;color:var(--text-primary);font-size:12px;font-weight:700;border-radius:8px;transition:transform .18s var(--ease-out),box-shadow .18s ease,border-color .18s ease,background .18s ease}.primary-action{border:1px solid rgba(43,143,255,.68);background:#2b8fff24;box-shadow:0 0 24px #2b8fff33}.secondary-action{border:1px solid rgba(255,107,43,.62);background:#ff6b2b1f;box-shadow:0 0 24px #ff6b2b2e}.primary-action:hover,.secondary-action:hover{transform:translateY(-1px)}.primary-action:hover{border-color:#2b8ffff2;box-shadow:0 0 30px #2b8fff42}.secondary-action:hover{border-color:#ff6b2be6;box-shadow:0 0 30px #ff6b2b3d}.primary-action:active,.secondary-action:active{transform:scale(.98)}.primary-action:disabled,.secondary-action:disabled{transform:none}@media(max-width:1100px){.universe-canvas,.input-panel{right:0}.side-panel{display:none}.toast-host{right:24px}.status-row{display:none}}@media(max-width:720px){.brand-name{font-size:17px}.node-count{display:none}.input-panel{flex-wrap:wrap;min-height:150px}.input-actions{width:100%}.universe-canvas{bottom:150px}}.todo-card{position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);width:var(--w);min-height:142px;padding:14px;color:var(--text-primary);border:1px solid var(--owner-color);border-radius:8px;background:var(--card-bg);box-shadow:0 0 0 1px #ffffff08,0 18px 52px #00000057,0 0 26px var(--owner-soft);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);transform:rotate(var(--rotate));animation:cardFloat var(--float-duration) ease-in-out infinite;animation-delay:var(--float-delay);transition:transform .22s var(--ease-out),border-color .22s ease,background .22s ease,box-shadow .22s ease;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.todo-card.is-readonly{cursor:default}.todo-card.log-card{background:linear-gradient(135deg,#ffffff09,#2b8fff09),var(--card-bg)}.todo-card.is-connecting-source{z-index:25;box-shadow:0 22px 72px #0000007a,0 0 68px var(--owner-soft),inset 0 1px #ffffff2e}.todo-card.is-connectable:hover{border-color:#67f5b5c7;box-shadow:0 24px 76px #00000080,0 0 46px #67f5b533,inset 0 1px #ffffff1f}.todo-card.is-new{animation:cardAppear .46s var(--ease-out) both,cardFloat var(--float-duration) ease-in-out infinite .46s}.todo-card:hover{z-index:20;background:var(--card-hover-bg);border-color:var(--glass-border-hover);box-shadow:0 24px 76px #00000080,0 0 46px var(--owner-soft),inset 0 1px #ffffff1f;transform:scale(1.08) rotate(0)}.todo-card.is-dragging{z-index:40;cursor:grabbing;animation-play-state:paused;transform:scale(1.04) rotate(0);box-shadow:0 30px 96px #00000094,0 0 60px var(--owner-soft),inset 0 1px #ffffff24}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.owner-label{display:inline-flex;align-items:center;gap:7px;color:var(--owner-color);font-size:11px;font-weight:800}.owner-label:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--owner-color);box-shadow:0 0 12px var(--owner-color)}.done-state{color:var(--success);font-size:10px;font-weight:800}.log-card .done-state{color:var(--text-secondary)}.todo-text{display:grid;grid-template-columns:18px 1fr;gap:9px;align-items:start;min-height:42px;margin-bottom:13px;font-size:13px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.todo-text.log-text{grid-template-columns:16px 1fr}.log-glyph{width:14px;margin-top:1px;color:var(--owner-color);text-shadow:0 0 12px var(--owner-color)}.checkbox-mark{display:grid;place-items:center;width:16px;height:16px;margin-top:2px;color:var(--bg-outer);font-size:11px;border:1px solid var(--owner-color);border-radius:4px;background:transparent;box-shadow:0 0 12px var(--owner-soft)}.todo-card.done .checkbox-mark{background:var(--owner-color)}.todo-card.done .todo-title{color:var(--text-secondary);text-decoration:line-through}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{padding:4px 7px;color:var(--text-secondary);font-size:10px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:#ffffff0a}.type-tag{color:var(--text-primary);font-weight:800}.type-tag--todo{border-color:#2b8fff47;background:#2b8fff1f}.type-tag--log{border-color:#ff6b2b4d;background:#ff6b2b1f}.next-hint{margin-top:10px;color:var(--text-dim);font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;gap:7px;max-height:0;margin-top:0;overflow:hidden;opacity:0;transition:max-height .18s ease,margin .18s ease,opacity .16s ease}.todo-card:hover .card-actions{max-height:62px;margin-top:12px;opacity:1}.card-actions button{flex:1 1 calc(50% - 4px);height:26px;color:var(--text-primary);font-size:10px;border:1px solid rgba(255,255,255,.11);border-radius:6px;background:#ffffff0f}.card-actions{flex-wrap:wrap}.card-actions button:hover{border-color:var(--owner-color);color:var(--owner-color)}.card-actions.is-readonly button{opacity:.52;cursor:not-allowed}.card-actions.is-readonly button:hover{border-color:#ffffff1c;color:var(--text-secondary)}.side-panel{position:fixed;top:var(--header-height);right:0;bottom:0;z-index:10;width:var(--side-width);display:grid;grid-template-rows:auto auto minmax(120px,1fr) auto auto;gap:12px;padding:14px;border-left:1px solid rgba(255,255,255,.08);background:#020408b8;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.panel{min-height:0;padding:14px;border-radius:8px}.panel-title{margin:0 0 12px;color:var(--text-secondary);font-size:11px;font-weight:800;letter-spacing:0}.member-row,.log-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;color:var(--text-secondary);font-size:12px}.member-profile{align-items:flex-start;min-height:42px;padding:4px 0}.member-key{display:inline-flex;align-items:center;gap:8px;color:var(--text-primary)}.member-copy{display:grid;gap:3px}.member-copy strong{color:var(--text-primary);font-size:12px}.member-copy small{color:var(--text-dim);font-size:10px}.member-dot{width:9px;height:9px;border-radius:50%;background:var(--member-color);box-shadow:0 0 12px var(--member-color)}.activity-log{overflow:hidden}.activity-list{display:grid;gap:8px;max-height:128px;overflow:hidden}.calendar-panel{width:100%;padding-bottom:12px;overflow:hidden;box-sizing:border-box}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.calendar-head .panel-title{margin:0}.month-controls{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:11px}.month-controls button{display:grid;place-items:center;width:24px;height:24px;color:var(--text-primary);border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#ffffff0d}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%;min-width:0}.weekday-row{margin-bottom:6px}.weekday-row span{color:var(--text-dim);font-size:10px;text-align:center}.calendar-day,.calendar-empty{aspect-ratio:1 / 1;min-width:0}.calendar-day{position:relative;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:11px;border:1px solid transparent;border-radius:6px;background:#ffffff09}.calendar-day:hover{color:var(--text-primary);border-color:#ffffff24}.calendar-day.is-today{color:var(--text-primary);border-color:#2b8fffbf;background:#2b8fff29;box-shadow:0 0 12px #2b8fff59}.calendar-day.is-selected{color:var(--text-primary);border-color:#ff6b2bd9;background:#ff6b2b29;box-shadow:0 0 12px #ff6b2b59}.today-dot{position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:#76d9ff;box-shadow:0 0 8px #76d9ffd9}.record-dots{position:absolute;bottom:3px;left:50%;display:flex;gap:3px;transform:translate(-50%)}.record-dots i{width:4px;height:4px;border-radius:50%}.dot-a{background:var(--user-a);box-shadow:0 0 8px var(--user-a)}.dot-b{background:var(--user-b);box-shadow:0 0 8px var(--user-b)}.log-item{justify-content:flex-start;padding:8px 9px;border:1px solid rgba(255,255,255,.06);border-radius:6px;background:#ffffff09}.log-item.is-new{animation:slideLog .26s var(--ease-out) both}.log-owner{color:var(--owner-color);font-weight:800}.terminal{color:#a8f7ce;font-size:11px;line-height:1.55}.terminal pre{margin:0;white-space:pre-wrap}.cursor{display:inline-block;animation:cursorBlink 1s step-end infinite}.network-map{height:150px}.mini-map{width:100%;height:104px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:linear-gradient(to right,rgba(122,139,160,.06) 1px,transparent 1px),linear-gradient(to bottom,rgba(122,139,160,.06) 1px,transparent 1px),#01060e8c;background-size:20px 20px}
