*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:oklch(1 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(0.145 0 0);--popover:oklch(1 0 0);--popover-foreground:oklch(0.145 0 0);--primary:oklch(0.205 0 0);--primary-foreground:oklch(0.985 0 0);--secondary:oklch(0.97 0 0);--secondary-foreground:oklch(0.205 0 0);--muted:oklch(0.97 0 0);--muted-foreground:oklch(0.556 0 0);--accent:oklch(0.97 0 0);--accent-foreground:oklch(0.205 0 0);--destructive:oklch(0.577 0.245 27.325);--border:oklch(0.922 0 0);--input:oklch(0.922 0 0);--ring:oklch(0.708 0 0);--chart-1:oklch(0.87 0 0);--chart-2:oklch(0.556 0 0);--chart-3:oklch(0.439 0 0);--chart-4:oklch(0.371 0 0);--chart-5:oklch(0.269 0 0);--radius:0.5rem;--sidebar:oklch(0.985 0 0);--sidebar-foreground:oklch(0.145 0 0);--sidebar-primary:oklch(0.205 0 0);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.97 0 0);--sidebar-accent-foreground:oklch(0.205 0 0);--sidebar-border:oklch(0.922 0 0);--sidebar-ring:oklch(0.708 0 0)}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.right-4{right:1rem}.top-4{top:1rem}.z-\[5099\]{z-index:5099}.z-\[60\]{z-index:60}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-10{height:2.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.min-h-screen{min-height:100vh}.w-9{width:2.25rem}.w-full{width:100%}.max-w-xs{max-width:20rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.text-center{text-align:center}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.leading-none{line-height:1}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}:root{--bg:#f4f5f8;--panel:#fff;--ink:#2a2740;--ink-2:#34304f;--iconbar:#1e1b2e;--iconbar-2:#2a2640;--ib-muted:#8b86a8;--ib-text:#e7e4f5;--primary:#6c5ce7;--primary-d:#5a4bd6;--primary-soft:#ece7fb;--primary-soft-2:#f2eefd;--okr:#6c5ce7;--okr-bg:#ece7fb;--okr-bg-strong:#e2dafb;--overdue:#e23b3b;--overdue-bg:#fdecec;--overdue-bg-2:#fbe3e3;--success:#21b573;--success-soft:#e6f7ef;--text:#1e2230;--text-2:#6b7280;--text-muted:#a0a6b4;--border:#edeef1;--border-2:#f2f3f6;--chip:#f1f2f5;--chip-2:#f6f7f9;--orange:#f0913e;--hover:#f5f4fa;--hover-2:#efedf7;--ring:rgba(108,92,231,.22);--shadow-sm:0 1px 2px rgba(20,23,40,.04);--shadow:0 1px 3px rgba(20,23,40,.05),0 8px 20px rgba(20,23,40,.06);--shadow-md:0 6px 18px rgba(20,23,40,.08);--shadow-lg:0 14px 44px rgba(20,23,40,.14);--radius:14px;--radius-sm:11px;--radius-lg:20px;--prog-grad:linear-gradient(90deg,#7c6cf0,#a98cf5)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:flex;height:calc(100vh / .9);overflow:hidden;zoom:.9}.auth-screen{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;background:radial-gradient(1100px 620px at 82% -8%,rgba(124,108,240,.34),transparent 58%),radial-gradient(900px 560px at -6% 108%,rgba(155,108,240,.26),transparent 55%),linear-gradient(140deg,#f4f5f8,#eae7f9 62%,#e2dcf7);padding:24px;overflow:auto}.auth-card{width:min(420px,100%);background:#fff;border-radius:20px;box-shadow:0 18px 50px rgba(38,30,90,.14),0 4px 12px rgba(38,30,90,.06);padding:40px 36px 32px}.auth-card,.auth-head{display:flex;flex-direction:column}.auth-head{align-items:center;gap:10px;margin-bottom:22px}.auth-head-logo{width:46px;height:46px;border-radius:13px;box-shadow:0 8px 18px rgba(124,108,240,.42);object-fit:contain}.auth-head-name{font-size:18px;font-weight:800;letter-spacing:.2px;color:var(--text)}.auth-head-s{font-size:12.5px;color:var(--text-muted);margin-top:-2px}.auth-panel{flex:1;display:flex;flex-direction:column;justify-content:center}.auth-tabs{display:flex;gap:6px;background:var(--chip);border-radius:12px;padding:4px;margin-bottom:22px}.auth-tab{flex:1;border:none;background:transparent;padding:9px 0;border-radius:9px;font-size:14px;font-weight:600;color:var(--text-2);cursor:pointer;transition:.15s}.auth-tab.active{background:#fff;color:var(--primary-d);box-shadow:var(--shadow-sm)}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:7px}.auth-field input{width:100%;border:1.5px solid var(--border);border-radius:12px;padding:11px 14px;font-size:14px;color:var(--text);background:var(--chip-2);outline:none;transition:.15s}.auth-field input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px var(--ring)}.auth-err{min-height:20px;font-size:12.5px;color:var(--overdue);margin:2px 0 10px;display:flex;align-items:center;gap:5px}.auth-btn{width:100%;border:none;border-radius:12px;padding:12px 0;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#6c5ce7,#8b5cf6);cursor:pointer;box-shadow:0 8px 20px rgba(108,92,231,.32);transition:.15s}.auth-btn:hover{filter:brightness(1.06)}.auth-btn:active{transform:scale(.985)}.ib-user{width:46px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s;margin-top:2px}.ib-user:hover{background:var(--iconbar-2)}.ib-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#7c6cf0,#9b6cf0);color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(124,108,240,.4)}.auth-pop{position:fixed;z-index:5100;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;min-width:190px;display:none}.auth-pop .ap-user{padding:8px 12px 9px;font-size:13px;color:var(--text-2);border-bottom:1px solid var(--border-2);margin-bottom:6px}.auth-pop .ap-user b{display:block;font-size:14px;color:var(--text)}.auth-pop .ap-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:9px;font-size:13.5px;cursor:pointer;color:var(--text-2);transition:.12s}.auth-pop .ap-item svg{width:16px;height:16px;flex:0 0 16px;stroke-width:1.9}.auth-pop .ap-item:hover{background:var(--hover);color:var(--text)}.auth-pop .ap-item.danger{color:var(--overdue)}.auth-pop .ap-item.danger:hover{background:var(--overdue-bg)}@media (max-width:480px){.auth-card{padding:32px 22px 26px}}.iconbar{width:66px;flex:0 0 66px;background:linear-gradient(180deg,var(--iconbar),var(--iconbar-2));display:flex;flex-direction:column;align-items:center;padding:16px 0 14px;gap:6px;box-shadow:2px 0 14px rgba(20,23,40,.1)}.ib-logo{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#7c6cf0,#9b6cf0);color:#fff;font-weight:800;font-size:17px;margin-bottom:14px;box-shadow:0 6px 16px rgba(124,108,240,.45),inset 0 1px 0 hsla(0,0%,100%,.25)}.ib-btn,.ib-logo{display:flex;align-items:center;justify-content:center}.ib-btn{width:48px;height:50px;border-radius:13px;flex-direction:column;gap:3px;color:var(--ib-muted);cursor:grab;font-size:10px;user-select:none;transition:.15s}.ib-btn:active{cursor:grabbing}.ib-btn.dragging{opacity:.45}.ib-btn svg{width:20px;height:20px;stroke-width:1.9}.ib-btn:hover{background:var(--iconbar-2);color:var(--ib-text)}.ib-btn.active{background:linear-gradient(135deg,#6c5ce7,#8b5cf6);color:#fff;box-shadow:0 6px 16px rgba(108,92,231,.45),inset 0 1px 0 hsla(0,0%,100%,.2)}.ib-spacer{flex:1}.sidebar{width:248px;flex:0 0 248px;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sb-head{padding:20px 20px 14px}.sb-modname{font-size:17px;font-weight:700;letter-spacing:-.2px}.sb-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.sb-scroll{flex:1;overflow-y:auto;padding:6px 12px 20px}.sb-group{margin-top:14px}.sb-glabel{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.4px;padding:8px 10px 6px;text-transform:none}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;cursor:pointer;color:var(--text-2);font-size:13.5px;font-weight:500;transition:.12s;position:relative}.nav-item svg{width:17px;height:17px;stroke-width:1.9;flex:0 0 17px;color:var(--text-muted)}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary-d);font-weight:600}.nav-item.active svg{color:var(--primary)}.nav-item .ni-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-count{font-size:11px;font-weight:600;color:var(--text-muted);background:var(--chip);border-radius:8px;padding:1px 7px;min-width:20px;text-align:center}.nav-item.active .nav-count{background:#fff;color:var(--primary)}.nav-sub{margin-left:14px;border-left:1px solid var(--border);padding-left:6px}.main{flex:1;overflow:hidden;min-width:0}.main,.topbar{display:flex;flex-direction:column}.topbar{padding:18px 28px 0;gap:14px}#tabRow:empty{display:none}.top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.top-title{font-size:22px;font-weight:700;letter-spacing:-.4px}.top-title svg{width:20px;height:20px;vertical-align:-4px}.top-date{font-size:13px;color:var(--text-2);margin-top:3px}.top-date:empty,.top-title:empty{display:none}.top-actions{gap:10px}.quick-add,.top-actions{display:flex;align-items:center}.quick-add{gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:8px 10px 8px 14px;min-width:340px;box-shadow:var(--shadow)}.quick-add svg{width:16px;height:16px;color:var(--text-muted);flex:0 0 16px}.quick-add input{border:none;outline:none;font-size:13.5px;flex:1;background:transparent;color:var(--text)}.quick-add input::placeholder{color:var(--text-muted)}.quick-add:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.quick-add .qa-date{display:flex;align-items:center;gap:5px;border-left:1px solid var(--border);padding-left:10px}.quick-add .qa-due-chip{display:flex;align-items:center;gap:5px;border:none;background:var(--hover);border-radius:8px;padding:5px 9px;font-size:12.5px;color:var(--text-2);cursor:pointer;max-width:250px;white-space:nowrap;overflow:hidden}.quick-add .qa-due-chip span{overflow:hidden;text-overflow:ellipsis}.quick-add .qa-due-chip svg{flex:0 0 13px;color:var(--text-muted)}.quick-add .qa-due-chip:hover{box-shadow:inset 0 0 0 1px var(--border)}.quick-add .qa-go{width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 30px}.quick-add .qa-go svg{width:16px;height:16px;color:#fff}.btn-ghost{display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 13px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow)}.btn-ghost:hover{border-color:#d8dae2;color:var(--text)}.btn-ghost svg{width:15px;height:15px}.tabs{display:flex;gap:6px}.tab{padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;background:transparent;transition:.12s}.tab:hover{background:var(--chip)}.tab.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(108,92,231,.25)}.content{flex:1;overflow-y:auto;padding:16px 28px 40px}.view{display:none}.view.active{display:block;animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.summary{background:linear-gradient(135deg,#241b40,#33285c 55%,#43356e);border-radius:var(--radius-lg);padding:14px 16px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:var(--shadow-lg);margin-bottom:12px;position:relative;overflow:hidden;border:1px solid hsla(0,0%,100%,.06)}.summary:after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(124,108,240,.35),transparent 70%);border-radius:50%}.summary .s-label{font-size:12.5px;color:hsla(0,0%,100%,.62);font-weight:500}.summary .s-big{font-size:21px;font-weight:800;margin-top:4px;letter-spacing:-.5px}.summary .s-sub{font-size:12.5px;color:hsla(0,0%,100%,.55);margin-top:3px}.summary .s-prog{width:140px}.summary .s-prog .bar{height:7px;background:hsla(0,0%,100%,.16);border-radius:999px;overflow:hidden;margin-top:10px}.summary .s-prog .bar i{display:block;height:100%;background:var(--prog-grad);border-radius:999px}.summary .s-prog .s-meta{font-size:11.5px;color:hsla(0,0%,100%,.6);margin-top:7px}.sec{margin-bottom:14px}.sec-head{justify-content:space-between;padding:6px 4px 10px;cursor:pointer}.sec-head,.sec-title{display:flex;align-items:center}.sec-title{gap:9px;font-size:14.5px;font-weight:700;letter-spacing:-.2px}.sec-title .dot{width:8px;height:8px;border-radius:50%}.sec-count{font-size:12px;font-weight:600}.sec-count,.sec-right{color:var(--text-muted)}.sec-right{display:flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer}.sec-right:hover{color:var(--text-2)}.chev{transition:.2s}.sec.collapsed .chev{transform:rotate(-90deg)}.sec-body{display:block}.sec.collapsed .sec-body{display:none}.tasks{display:flex;flex-direction:column;gap:10px}.task{display:flex;align-items:flex-start;gap:13px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:.13s;box-shadow:var(--shadow);position:relative}.task:hover{border-color:#d9dbe3;box-shadow:var(--shadow-md);transform:translateY(-1px)}.task.is-okr{background:var(--panel)}.task.is-overdue{background:var(--overdue-bg);border-color:var(--overdue-bg-2)}.task.done{opacity:.72}.chk{width:21px;height:21px;flex:0 0 21px;border-radius:6px;border:2px solid #cbd0dc;margin-top:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s;background:#fff}.chk.disabled{cursor:default;opacity:.45}.chk svg{width:12px;height:12px;color:#fff;opacity:0;transition:.12s}.chk:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.chk.disabled:hover{border-color:#cbd0dc;box-shadow:none}.chk.done{background:#edeef2;border-color:#aeb4c0}.chk.done svg{color:#7e8595;opacity:1}.chk.chk-lock{cursor:default}.task.abandoned{opacity:.72}.task.abandoned .task-title{color:var(--text-muted)}.abandoned-chk{cursor:default}.ab-badge{font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:#fdecea;color:#c0392b;border:1px solid #f5c6c0;white-space:nowrap}.chk.pending{border-style:dashed;border-color:var(--primary);background:var(--primary-soft);cursor:default}.chk.pending svg{opacity:1;color:var(--primary)}.task.done .chk{background:#edeef2;border-color:#aeb4c0}.task.done .chk svg{opacity:1;color:#7e8595}.task-body{flex:1;min-width:0}.task-title{font-size:14.5px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task.done .task-title{text-decoration:line-through;color:var(--text-muted);text-decoration-color:#c2c7d2}.tag-pill{border-radius:999px;background:var(--okr-bg);color:var(--okr);border:1px solid #d8ccf7}.tag-pill,.tag-recur{font-size:11px;font-weight:700;padding:2px 9px;white-space:nowrap}.tag-recur{border-radius:999px;background:var(--success-soft);color:var(--success)}.task-meta{gap:14px;margin-top:7px;font-size:12.5px;color:var(--text-muted);flex-wrap:wrap}.task-meta,.task-meta span{display:flex;align-items:center}.task-meta span{gap:4px}.task-meta svg{width:13px;height:13px}.overdue-flag{display:inline-flex;align-items:center;gap:5px;color:var(--overdue);font-weight:700;font-size:12.5px;background:var(--overdue-bg-2);padding:2px 9px;border-radius:8px}.overdue-flag svg{width:13px;height:13px}.recur-entry{display:inline-flex;align-items:center;gap:4px;color:var(--primary-d);font-weight:700;font-size:11px;background:var(--primary-soft);padding:2px 9px;border-radius:999px;cursor:pointer;transition:.12s;white-space:nowrap}.recur-entry:hover{background:#e4dbfb;box-shadow:0 0 0 3px var(--ring)}.recur-entry.ro{color:var(--text-2);background:#edeef2;cursor:default}.recur-entry.ro:hover{background:#edeef2;box-shadow:none}.recur-entry svg{width:12px;height:12px}.task-actions{display:flex;align-items:center;gap:6px;opacity:0;transition:.13s}.task:hover .task-actions{opacity:1}.mini-btn{width:28px;height:28px;border-radius:8px;background:hsla(0,0%,100%,.7);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2)}.task.is-okr .mini-btn{background:hsla(0,0%,100%,.55)}.mini-btn:hover{background:#fff;color:var(--text)}.mini-btn svg{width:14px;height:14px}.mini-btn.danger:hover{color:var(--overdue);border-color:var(--overdue-bg-2)}.mini-btn.postpone{width:auto;padding:0 10px;gap:4px;font-size:12px;font-weight:600;color:var(--overdue);background:var(--overdue-bg-2);border-color:transparent}.mini-btn.postpone svg{width:13px;height:13px}.mini-btn.add-ic{color:var(--primary)}.mini-btn.add-ic:hover{background:var(--primary-soft);color:var(--primary);border-color:#c9bbf6}.empty{padding:30px;font-size:13px;background:var(--chip-2);border-radius:var(--radius);border:1px dashed var(--border)}.okr-period-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:6px 2px}.opb-label{font-size:13px;font-weight:600;color:var(--text-2);white-space:nowrap;flex:0 0 auto}.opb-label .req{color:#e53935;margin-right:2px}.opb-year{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.opb-select-wrap{position:relative;flex:0 0 auto}.opb-year select{appearance:none;-webkit-appearance:none;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 28px 6px 12px;font-size:14px;font-weight:700;color:var(--text);cursor:pointer;outline:none}.opb-year svg{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:12px;height:12px;color:var(--text-muted);pointer-events:none}.opb-nav{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:var(--panel);color:var(--text-2);flex:0 0 auto;transition:.15s}.opb-nav:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border);background:var(--panel)}.opb-nav:hover{background:var(--chip);border-color:var(--primary)}.opb-nav svg{width:14px;height:14px}.opb-tabs{display:flex;gap:6px;flex:1}.period-tab{padding:7px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--text-2);background:var(--panel);border:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:.15s;display:inline-flex;align-items:center;gap:4px;box-shadow:var(--shadow)}.period-tab:hover{border-color:var(--primary);color:var(--primary)}.period-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px rgba(108,92,231,.3)}.period-tab .pt-count{background:hsla(0,0%,100%,.25);font-size:11px;padding:1px 6px;border-radius:999px;font-weight:700;min-width:18px;text-align:center}.period-tab:not(.active) .pt-count{background:var(--chip);color:var(--text-muted)}.switch{width:38px;height:22px;border-radius:999px;background:var(--chip);position:relative;cursor:pointer;transition:.15s;flex:0 0 38px}.switch.on{background:var(--primary)}.switch i{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch.on i{left:18px}.gg-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow);transition:.13s}.gg-card:hover{border-color:#d9dbe3;box-shadow:var(--shadow-md);transform:translateY(-1px)}.gg-head{gap:12px}.gg-emoji,.gg-head{display:flex;align-items:center}.gg-emoji{width:42px;height:42px;border-radius:12px;background:var(--primary-soft);justify-content:center;font-size:21px;flex:0 0 42px}.gg-name{font-size:15.5px;font-weight:700}.gg-meta{font-size:12.5px;color:var(--text-muted);margin-top:2px}.gg-count{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--primary);background:var(--primary-soft);padding:4px 11px;border-radius:999px}.gg-side{margin-left:auto}.gg-prog,.gg-side{display:flex;align-items:center;gap:8px}.gg-prog{margin-top:5px}.gg-prog .bar{height:6px;background:var(--chip);border-radius:999px;overflow:hidden;width:130px}.gg-prog .bar i{display:block;height:100%;background:var(--prog-grad);border-radius:999px}.gg-pct{font-size:12px;font-weight:700;color:var(--okr)}.gg-del{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 30px}.gg-del:hover{border-color:#e5484d;color:#e5484d}.gg-add{width:100%;justify-content:center;margin-top:2px}.gg-default{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--text-muted);background:var(--chip);padding:3px 9px;border-radius:999px}.cat-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 10px;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.cat-bar-label{font-size:12px;font-weight:700;color:var(--text-muted);margin-right:2px;flex:0 0 auto;letter-spacing:.3px}.cat-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg);cursor:context-menu;font-size:13px;font-weight:600;user-select:none;transition:border-color .15s,background .15s}.cat-chip:hover{border-color:var(--primary)}.cat-chip.is-default{border-color:var(--border)}.cat-emoji{font-size:14px;line-height:1;flex:0 0 auto}.cat-chname{outline:none;white-space:nowrap}.cat-cnt{font-size:11px;color:var(--text-muted);border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}.cat-cnt,.cat-default{font-weight:700;background:var(--chip)}.cat-default{font-size:10.5px;color:var(--text-2);border:1px solid var(--border);border-radius:999px;padding:1px 6px;flex:0 0 auto}.cat-add-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px dashed #c9bbf6;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;flex:0 0 auto;transition:background .15s}.cat-add-chip svg{width:14px;height:14px;flex:0 0 14px}.cat-add-chip:hover{background:#e4dcfb}.o-cat-wrap{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-muted);margin-left:4px}.o-cat{border:1px solid var(--border);border-radius:7px;padding:3px 6px;font-size:12.5px;color:var(--text);cursor:pointer}.o-card,.o-cat{background:var(--panel)}.o-card{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:9px;box-shadow:var(--shadow);overflow:hidden;transition:.13s}.o-card:hover{border-color:#d9dbe3;box-shadow:var(--shadow-md);transform:translateY(-1px)}.o-head{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;cursor:pointer}.o-badge{width:30px;height:30px;border-radius:9px;background:var(--okr-bg);color:var(--okr);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:0 0 30px;margin-top:1px}.o-title{font-size:15px;font-weight:700;flex:1}.o-period{font-size:12px;color:var(--text-muted);margin-top:2px;display:flex;align-items:center;gap:5px}.o-period svg{width:13px;height:13px;flex:0 0 auto}.o-prog{flex:0 0 120px;text-align:right}.o-prog .pct{font-size:15px;font-weight:800;color:var(--okr)}.o-prog .bar{height:6px;background:var(--okr-bg);border-radius:999px;overflow:hidden;margin-top:5px}.o-prog .bar i{display:block;height:100%;background:var(--prog-grad);border-radius:999px}.o-actions{gap:6px;margin-top:2px}.o-body{display:none;padding:4px 14px 12px 60px;border-top:1px solid var(--border-2)}.o-card.open .o-body{display:block}.o-card.open .o-chev{transform:rotate(90deg)}.kr-body{display:none;padding-top:4px}.kr-item.expanded .kr-body{display:block}.kr-chev{margin-left:auto;color:var(--text-muted);transition:transform .2s;flex:0 0 auto;cursor:pointer;transform:rotate(0)}.kr-chev svg{width:15px;height:15px;display:block}.kr-item.expanded .kr-chev{transform:rotate(90deg)}.kr-item{position:relative;padding:9px 11px;margin:4px 0;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.kr-head{display:flex;align-items:center;gap:11px}.kr-grip{cursor:grab;color:var(--text-muted);font-size:15px;line-height:1;padding:1px 3px;border-radius:5px;user-select:none;opacity:.5;flex:0 0 auto;margin-left:-4px}.kr-grip:hover{opacity:1;background:var(--chip)}.kr-grip:active{cursor:grabbing}.kr-item.drag-over{outline:2px dashed var(--okr);outline-offset:3px;border-radius:10px;background:var(--okr-bg)}.o-grip{cursor:grab;color:var(--text-muted);font-size:15px;line-height:1;padding:1px 3px;border-radius:5px;user-select:none;opacity:.5;flex:0 0 auto;margin-top:2px}.o-grip:hover{opacity:1;background:var(--chip)}.o-grip:active{cursor:grabbing}.o-card.drag-over{outline:2px dashed var(--okr);outline-offset:3px;border-radius:14px;background:var(--okr-bg)}.dp-goal-ref{display:flex;flex-direction:column;gap:9px;background:var(--chip);border-radius:10px;padding:11px 13px}.dp-goal-line{display:flex;align-items:center;gap:10px}.dp-goal-t{font-weight:600;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kr-badge{font-size:11.5px;font-weight:800;color:var(--okr);background:var(--okr-bg);border:1px solid #d8ccf7;border-radius:7px;padding:2px 8px;flex:0 0 auto}.kr-title{font-size:14px;font-weight:600;flex:1}.kr-prog{color:var(--text-2)}.kr-weight{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:22px;padding:0 6px;border-radius:7px;background:var(--okr-bg);color:var(--okr);border:1px solid #d8ccf7;font-size:11.5px;font-weight:800;cursor:pointer;user-select:none;flex:0 0 auto;transition:background .12s,box-shadow .12s}.kr-weight:hover{background:#e6defb;box-shadow:0 0 0 2px rgba(124,108,240,.18)}.kr-weight.uncounted{background:var(--chip);color:var(--text-muted);border-color:var(--border)}.kr-weight-win{min-width:46px;height:22px;padding:0 6px;border-radius:7px;background:var(--okr-bg);color:var(--okr);border:1px solid #d8ccf7;font-size:11.5px;font-weight:800;text-align:center;outline:none;font-family:inherit;flex:0 0 auto}.weight-bar{display:flex;align-items:center;gap:10px;margin:10px 0 2px;padding:0 2px;flex-wrap:wrap}.wb-warn{font-size:12px;font-weight:700;color:var(--overdue);background:var(--overdue-bg-2);padding:3px 9px;border-radius:8px}.kr-bar{height:5px;background:var(--okr-bg);overflow:hidden;margin:6px 0 2px}.kr-bar,.kr-bar i{border-radius:999px}.kr-bar i{display:block;height:100%;background:var(--prog-grad)}.status-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--chip);color:var(--text-2);cursor:pointer;user-select:none;white-space:nowrap}.status-badge.done{background:var(--success-soft);color:var(--success)}.status-badge.doing{background:#e8f0fe;color:#1a73e8;border:1px solid #c9dcfc}.status-badge.notstart{background:var(--chip);color:var(--text-muted)}.status-badge.abandoned{background:#fdecea;color:#c0392b;border:1px solid #f5c6c0}.float-menu{position:fixed;z-index:2000;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px rgba(20,22,30,.18);padding:6px;min-width:128px}.float-menu .sm-item{padding:9px 13px;border-radius:8px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px}.float-menu .sm-item:hover{background:var(--chip)}.float-menu .sm-item.active{background:var(--primary);color:#fff}.float-menu .sm-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.float-menu .sm-emoji{font-size:14px;line-height:1}.float-menu .sm-cname{flex:1}.float-menu .sm-def{margin-left:6px;font-size:11px;color:var(--text-2);background:var(--chip);padding:1px 6px;border-radius:6px}.float-menu .sm-item.active .sm-def{color:#fff;background:hsla(0,0%,100%,.22)}.float-menu .pe-title{font-size:12.5px;color:var(--text-2);padding:4px 10px 10px;line-height:1.5}.float-menu .pe-hint{font-size:11.5px;color:#e5484d;padding:2px 10px 6px;line-height:1.4}.float-menu .pe-row{display:flex;align-items:center;gap:8px;padding:4px 10px;font-size:12.5px;color:var(--text-2)}.float-menu .pe-row input[type=date]{flex:1;border:1px solid var(--border);border-radius:7px;padding:5px 7px;font-size:12.5px;font-family:inherit;color:var(--text)}.float-menu .pe-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 10px 2px}.float-menu .pe-actions button,.float-menu .pr-ok{padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:12.5px;cursor:pointer}.float-menu .pe-actions button:last-child,.float-menu .pr-ok{background:var(--primary);color:#fff;border-color:var(--primary)}.float-menu .pr-range{width:100%;margin:6px 0 2px;accent-color:var(--okr)}.float-menu .pr-block{padding:8px 12px}.kr-period{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:5px;margin:1px 0 3px;cursor:pointer}.kr-period svg{width:13px;height:13px;flex:0 0 auto}.kr-prog{color:var(--okr);font-weight:700;font-size:12.5px}.o-period{cursor:pointer}.o-period:hover{color:var(--primary)}.okr-todo{display:flex;align-items:flex-start;gap:10px;padding:7px 0 7px 22px;position:relative;border-top:1px dashed var(--border)}.okr-todo .chk{width:18px;height:18px;flex:0 0 18px;margin-top:1px}.okr-todo .chk svg{width:10px;height:10px}.okr-todo .ot-title{font-size:13.5px;font-weight:500;flex:1;color:var(--text)}.okr-todo.done .ot-title{text-decoration:line-through;color:var(--text-muted)}.okr-todo .ot-meta{font-size:12px;color:var(--text-muted);display:flex;gap:10px;align-items:center;margin-top:2px}.done-date,.ot-done{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:11.5px;font-weight:600;cursor:pointer}.done-date:hover,.ot-done:hover{filter:brightness(.97);text-decoration:underline}.okr-todo .ot-meta svg{width:12px;height:12px;flex:0 0 auto}.constraint-hint{font-size:12px;color:var(--text-muted);background:var(--chip-2);border:1px dashed var(--border);border-radius:10px;padding:8px 12px;margin:4px 0 10px;display:flex;align-items:center;gap:7px}.constraint-hint svg{width:14px;height:14px;color:var(--primary)}.o-chev{color:var(--text-muted);transition:transform .2s;flex:0 0 auto;margin-left:6px}.o-chev svg{width:16px;height:16px;display:block}.o-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.o-addrow{margin-top:8px}.gg-actions{margin:12px 0 4px}.kr-addrow{margin:6px 0 2px;display:flex;align-items:center;flex-wrap:wrap}.mini-add{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--primary);background:var(--primary-soft);border:1px dashed #c9bbf6;border-radius:10px;padding:6px 12px;cursor:pointer;transition:.12s}.mini-add:hover{background:#e4dcfb}.mini-add svg{width:14px;height:14px}.o-addrow{display:flex;align-items:center;gap:8px;border:1px dashed var(--border);border-radius:12px;padding:10px 14px;margin:10px 0 12px;background:var(--panel);color:var(--text-muted)}.o-addrow svg{width:15px;height:15px;color:var(--primary);flex:0 0 auto}.kr-addrow input,.o-addrow input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:13.5px;font-weight:600;color:var(--text);font-family:inherit}.kr-addrow input::placeholder,.o-addrow input::placeholder{color:var(--text-muted);font-weight:500}.kr-addrow svg{width:13px;height:13px;color:var(--primary);flex:0 0 auto;margin-right:6px}input.kr-title,input.o-title{border:none;outline:none;background:transparent;font-family:inherit;color:inherit;min-width:0;padding:1px 4px;margin-left:-4px;border-radius:6px;width:100%}input.o-title{font-size:15px;font-weight:700}input.kr-title{font-size:14px;font-weight:600}input.kr-title:hover,input.o-title:hover{background:var(--chip-2)}input.kr-title:focus,input.o-title:focus{background:var(--chip-2);box-shadow:0 0 0 2px var(--ring)}.text-btn{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--chip-2);border:1px solid var(--border);border-radius:9px;padding:5px 10px;cursor:pointer;transition:.12s}.text-btn:hover{background:var(--chip);color:var(--text)}.text-btn svg{width:14px;height:14px}.text-btn.danger:hover{color:var(--overdue);border-color:var(--overdue-bg-2);background:var(--overdue-bg)}.ot-del{opacity:0;transition:.13s;flex:0 0 auto}.okr-todo:hover .ot-del{opacity:1}[contenteditable]{outline:none;cursor:text;border-radius:6px;transition:.12s}[contenteditable]:hover{background:rgba(108,92,231,.07)}[contenteditable]:focus{background:rgba(108,92,231,.1);box-shadow:0 0 0 2px rgba(108,92,231,.25)}.ltabs{display:flex;gap:6px;margin-bottom:20px}.list-card{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;cursor:pointer;box-shadow:var(--shadow);transition:.13s}.list-card:hover{border-color:#d9dbe3;transform:translateY(-1px)}.list-card.dashed{border-style:dashed;background:var(--chip-2)}.list-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 44px;background:var(--primary-soft)}.list-card.dashed .list-ico{background:var(--chip)}.list-info{flex:1;min-width:0}.list-name{font-size:14.5px;font-weight:700}.list-sub{font-size:12.5px;color:var(--text-muted);margin-top:2px}.list-stat{font-size:12.5px;font-weight:600;color:var(--text-2);text-align:right}.list-stat b{color:var(--text);font-size:14px}.list-chev{color:var(--text-muted);width:18px;height:18px;flex:0 0 18px}.special-card{background:linear-gradient(135deg,#f3effd,#ece7fb);border:1px solid #d8ccf7}.special-card .list-ico{background:#fff}.section-label{font-weight:800;color:var(--text-2);letter-spacing:.3px;margin:24px 0 13px;justify-content:space-between}.section-label,.section-label .add-link{font-size:12.5px;display:flex;align-items:center}.section-label .add-link{font-weight:600;color:var(--primary);cursor:pointer;gap:4px}.section-label .add-link svg{width:14px;height:14px}.tag-chips{display:flex;flex-wrap:wrap;gap:10px}.tag-chip{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 15px;cursor:pointer;box-shadow:var(--shadow);transition:.13s}.tag-chip:hover{border-color:#d9dbe3}.tag-dot{width:10px;height:10px;border-radius:50%}.tag-chip .tc-name{font-size:13.5px;font-weight:600}.tag-chip .tc-count{font-size:12px;color:var(--text-muted);font-weight:600}.arch-row{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:13px 16px;margin-bottom:9px;cursor:pointer;box-shadow:var(--shadow);transition:.13s}.arch-row:hover{border-color:#d9dbe3;box-shadow:var(--shadow-md);transform:translateY(-1px)}.arch-src{font-size:12.5px;font-weight:600;color:var(--text-2);background:var(--chip);border-radius:8px;padding:4px 11px;flex:0 0 auto;min-width:84px;text-align:center}.arch-name{font-size:14px;font-weight:600;flex:1}.arch-row.done .arch-name{color:var(--text-2)}.arch-meta{font-size:12px;flex:0 0 auto}.arch-del,.arch-meta{color:var(--text-muted)}.arch-del{width:16px;height:16px;cursor:pointer}.arch-del:hover{color:var(--overdue)}.cal-wrap{display:flex;gap:22px;align-items:stretch;height:100%;max-height:calc(100vh - 140px);overflow:hidden}#view-calendar.active{display:flex;flex-direction:column;height:100%}.cal-main{flex:3 1 0;min-width:0;max-width:60%;display:flex;flex-direction:column;min-height:0}.cal-side{flex:2 1 0;min-width:340px;overflow-y:auto;min-height:0}.cal-side .cs-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.cs-date{font-size:15px;font-weight:700}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-title{font-size:18px;font-weight:700}.cal-nav{display:flex;gap:8px}.cal-nav button{width:34px;height:34px;border-radius:10px;background:var(--panel);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);box-shadow:var(--shadow)}.cal-nav button:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-md)}.cal-nav svg{width:16px;height:16px}.cal-nav .cal-month{min-width:88px;text-align:center;font-size:14px;font-weight:600;color:var(--text);line-height:34px}.cal-view-toggle{display:inline-flex;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--panel);margin-left:12px}.cal-view-toggle button{padding:0 14px;height:34px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:.15s}.cal-view-toggle button.active{background:var(--primary);color:#fff}.cal-view-toggle button:hover:not(.active){color:var(--text)}.cal-grid-box{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.cal-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;flex-shrink:0;margin-bottom:6px}.cal-dow{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:3px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(0,1fr));gap:6px;flex:1 1 auto;min-height:0}.wv-list{flex-direction:row;gap:8px;flex:1 1 auto}.wv-day,.wv-list{display:flex;min-height:0;overflow:hidden}.wv-day{background:var(--panel);border:1px solid var(--border);border-radius:12px;transition:.12s;flex:1 1 0;min-width:0;flex-direction:column}.wv-day:hover{border-color:#d9dbe3;box-shadow:var(--shadow)}.wv-day.today-day{background:linear-gradient(180deg,#eef2ff 0,var(--panel) 45%);border-color:#c5d4ff}.wv-day.sel-day{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}.wv-day-head{display:flex;align-items:center;gap:5px;padding:9px 10px;font-weight:600;border-bottom:1px solid var(--border);background:rgba(17,19,28,.025);cursor:pointer;flex-shrink:0}.wv-dow{font-size:13px;color:var(--text);flex-shrink:0}.wv-date{font-size:12px;color:var(--text-muted);flex-shrink:0}.wv-date.today-pill{background:var(--primary);color:#fff;border-radius:8px;padding:2px 8px;font-size:11px}.wv-count{margin-left:auto;font-size:11px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:1px 7px;flex-shrink:0}.wv-day-body{flex-direction:column;gap:4px;flex:1 1 auto;min-height:0;overflow-y:auto}.wv-day-body,.wv-task{padding:6px 8px;display:flex}.wv-task{align-items:center;gap:6px;background:var(--bg);border-radius:8px;font-size:12px;color:var(--text);cursor:pointer;transition:.12s}.wv-task:hover{background:#f0f0f5}.wv-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.wv-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.wv-time{font-size:11px;flex-shrink:0;white-space:nowrap}.wv-empty,.wv-time{color:var(--text-muted)}.wv-empty{padding:12px 6px;text-align:center;font-size:12px}.cal-cell{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:5px 6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:.12s;position:relative;min-height:0;height:100%;overflow:hidden}.cal-cell:hover{border-color:#d2d4de;box-shadow:var(--shadow)}.cal-cell.out{opacity:.4}.cal-cell.today{background:linear-gradient(180deg,#eef2ff,#f4f2fe);border-color:#c5d4ff}.cal-cell.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}.cd-num{font-size:13px;font-weight:600;color:var(--text)}.cal-cell.today .cd-num{color:var(--primary)}.cd-bars{display:flex;flex-direction:column;gap:2px;width:100%}.cd-bar{position:relative;height:15px;border-radius:6px;color:#fff;font-size:10.5px;font-weight:600;display:flex;align-items:center;gap:3px;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px rgba(20,23,40,.18)}.cd-bar i{position:absolute;left:0;top:0;bottom:0;background:#a6acba;border-radius:6px 0 0 6px}.cd-bar span{position:relative}.cd-bar b{font-weight:800;font-size:11px}.cd-bar.okr{background:var(--okr)}.cd-bar.norm{background:var(--orange)}.cd-bar.punch{background:var(--success)}.tag-pill.punch{background:var(--success-soft);color:var(--success)}.cal-legend{gap:18px;margin-top:16px;font-size:12.5px;color:var(--text-2);flex-wrap:wrap}.cal-legend,.cal-legend span{display:flex;align-items:center}.cal-legend span{gap:6px}.cal-legend .ld{width:9px;height:9px;border-radius:50%}.cal-quick{margin-top:14px;color:var(--primary);font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.cal-quick svg{width:15px;height:15px}.dp-close{margin-left:auto;width:30px;height:30px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:.12s}.dp-close:hover{background:var(--bg);color:var(--text)}.dp-close svg{width:18px;height:18px}.cs-date-lg{font-size:16px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cs-badge{font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-soft);padding:3px 11px;border-radius:999px}.detail-backdrop{position:fixed;inset:0;z-index:59;background:transparent}.detail{position:fixed;top:0;right:0;bottom:0;width:clamp(380px,33.333vw,620px);max-width:92vw;background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:-8px 0 30px rgba(20,23,40,.06);z-index:60}.detail.open{transform:none}.dp-due-footer{margin-top:14px;padding:10px 12px;border:1px dashed var(--border);border-radius:12px;font-size:13px;font-weight:600;color:var(--text-muted);background:var(--chip-2)}.dp-inner{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column;min-height:0}.dp-top{display:flex;align-items:center;justify-content:flex-end;padding:12px 16px 0;background:transparent}.dp-body{padding:8px 14px 10px;display:flex;flex-direction:column;flex:1;min-height:0}.dp-status{display:flex;align-items:center;gap:13px;margin-bottom:18px}.dp-status .chk{width:26px;height:26px;flex:0 0 26px}.dp-status .chk svg{width:14px;height:14px}.dp-due{font-size:14px;font-weight:700}.dp-overdue{font-weight:700;margin-left:8px}.dp-overdue,.dp-postpone{color:var(--overdue);font-size:12.5px;display:inline-flex;align-items:center;gap:4px}.dp-postpone{margin-left:auto;font-weight:600;background:var(--overdue-bg-2);border:none;border-radius:8px;padding:6px 12px;cursor:pointer}.dp-postpone svg{width:13px;height:13px}.dp-title{font-size:19px;width:100%;border:none;outline:none;resize:none;font-family:inherit;color:var(--text);background:transparent;line-height:1.35;margin-bottom:16px}.dp-section-label{font-size:12px;font-weight:700;color:var(--text-muted);margin:18px 0 9px;display:flex;align-items:center;justify-content:space-between}.dp-md{background:var(--chip-2);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.7;color:var(--text);min-height:120px;flex:1;overflow-y:auto;overflow-x:hidden;overflow-wrap:break-word;word-break:break-word}.dp-md h1,.dp-md h2,.dp-md h3,.dp-md h4,.dp-md h5,.dp-md h6{font-size:15px;font-weight:700;margin:0;line-height:1.5}.dp-md ol,.dp-md ul{margin:0 0 0 20px;padding:0}.dp-md li,.dp-md p{margin:0}.dp-md blockquote{margin:0;padding:0 0 0 10px;border-left:3px solid #d8ccf7;color:var(--text-2)}.dp-md pre{margin:0;background:var(--chip);border-radius:6px;padding:6px 10px;overflow-x:auto}.dp-md hr{margin:4px 0;border:none;border-top:1px solid var(--border)}.dp-md a{color:var(--primary);text-decoration:none}.dp-md code{background:var(--chip);padding:1px 5px;border-radius:5px;font-size:12.5px}.dp-md-line{cursor:text;border-radius:6px;padding:2px 4px;margin:0 -4px;transition:background .12s}.dp-md-line+.dp-md-line{margin-top:4px}.dp-md-line:hover{background:var(--chip)}.dp-md-line-edit{border:1px solid var(--primary);border-radius:6px;padding:2px 4px;margin:0 -4px;background:var(--panel);box-shadow:0 0 0 3px var(--primary-soft-2)}.dp-md-edit,.dp-md-line-edit{width:100%;font-size:14px;font-family:inherit;resize:none;outline:none;color:var(--text);line-height:1.7}.dp-md-edit{border:1px solid var(--border);border-radius:12px;padding:10px 12px;min-height:120px;flex:1;height:100%;overflow-y:auto;background:var(--chip-2);white-space:pre-wrap;word-wrap:break-word}.dp-md-edit:focus{border-color:var(--primary)}.dp-tags{display:flex;flex-wrap:wrap;gap:5px}.dp-tag{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--border);cursor:pointer;background:var(--panel);color:var(--text-2);transition:.12s}.dp-tag.on{background:var(--primary-soft);color:var(--primary-d);border-color:#d8ccf7}.dp-tag-add{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px dashed var(--border-2);background:transparent;color:var(--text-muted);cursor:pointer;transition:.12s}.dp-tag-add:hover{color:var(--primary-d);border-color:var(--primary);background:var(--primary-soft)}.dp-listpick{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-2);border-radius:8px;padding:3px 9px;font-size:12.5px;font-family:inherit;background:transparent;color:var(--text);outline:none;cursor:pointer;font-weight:600;text-align:left;transition:border-color .14s,background .14s,box-shadow .14s}.dp-listpick:hover{border-color:var(--primary);background:var(--chip-2)}.dp-listpick:focus-visible{box-shadow:0 0 0 3px var(--ring)}.dp-listpick .lp-emoji{font-size:13.5px;line-height:1}.dp-listpick .lp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-listpick .lp-chev{color:var(--text-muted);margin-left:auto;font-size:11px;transition:transform .2s,color .2s}.dp-listpick[aria-expanded=true]{border-color:var(--primary);background:var(--chip)}.dp-listpick[aria-expanded=true] .lp-chev{transform:rotate(180deg);color:var(--primary)}.recur-strip{display:flex;gap:5px;overflow-x:auto;padding:1px 0;margin-top:4px;scrollbar-width:none}.dp-recur-hint{margin-top:6px;font-size:11px;color:var(--text-muted);line-height:1.5}.recur-strip::-webkit-scrollbar{display:none}.recur-cell{flex:0 0 26px;width:26px;height:26px;border-radius:7px;border:1px solid var(--border);background:var(--panel);color:var(--text-2);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.12s}.recur-cell:hover{border-color:var(--primary);background:var(--chip-2)}.recur-cell.today{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}.recur-cell.future{color:var(--text-muted);background:#f8f9fb}.recur-cell.done{background:#e8f9f1;border-color:#9de8c4;color:#21b573}.recur-cell.skipped{opacity:.5;text-decoration:line-through}.recur-cell.done svg{width:14px;height:14px}.recur-strip.readonly .recur-cell{cursor:default;opacity:.9}.recur-strip.readonly .recur-cell:hover{border-color:var(--border);background:var(--panel)}.task.done.recur .chk{cursor:default}.recur-pop{position:fixed;z-index:1100;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,92vw);max-height:min(76vh,560px);background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.recur-pop-head{padding:16px 18px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.recur-pop-head h4{margin:0;font-size:15px;font-weight:800;color:var(--ink)}.recur-pop-close{width:28px;height:28px;border-radius:8px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.recur-pop-close:hover{background:var(--chip)}.recur-summary{display:flex;padding:14px 18px;gap:16px;border-bottom:1px solid var(--border)}.recur-summary-item{flex:1;text-align:center}.recur-summary-item .num{font-size:20px;font-weight:800;color:var(--ink);line-height:1.1}.recur-summary-item .lab{font-size:11px;color:var(--text-muted);margin-top:3px}.recur-list{flex:1;overflow-y:auto;padding:8px 0}.recur-item{display:flex;align-items:center;gap:12px;padding:10px 18px;font-size:13.5px;color:var(--text-2);transition:background .12s}.recur-item:hover{background:var(--chip-2)}.recur-item .ri-chk{width:20px;height:20px;border-radius:5px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex:0 0 20px}.recur-item.done .ri-chk{background:#e8f9f1;border-color:#9de8c4;color:#21b573}.recur-item.done .ri-chk svg{width:12px;height:12px}.recur-item .ri-date{flex:1}.recur-item .ri-date b{font-weight:700;color:var(--ink)}.recur-item .ri-status{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.recur-item .ri-status.on{color:#21b573;background:#e8f9f1}.recur-item .ri-status.delay{color:var(--overdue);background:var(--overdue-bg)}.recur-item .ri-status.wait{color:var(--text-muted);background:var(--chip)}.recur-item .ri-status.today{color:var(--primary);background:var(--primary-soft)}.recur-item .ri-status.skip{color:#8a6d3b;background:#fbf0dc}.recur-item.skip .ri-date{color:var(--text-muted)}.dp-listpop{position:fixed;z-index:1200;min-width:180px;max-width:88vw;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;display:none;animation:lpPop .14s ease}.dp-listpop.open{display:block}.dp-tagpop{position:fixed;z-index:1200;min-width:190px;max-width:88vw;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px;display:none;animation:lpPop .14s ease}.dp-tagpop.open{display:block}.dp-tagpop .tp-list{max-height:220px;overflow-y:auto}.dp-tagpop .tp-item{padding:6px 10px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .12s,color .12s}.dp-tagpop .tp-item:hover{background:var(--chip-2);color:var(--text)}.dp-tagpop .tp-item.active{color:var(--primary-d);background:var(--primary-soft)}.dp-tagpop .tp-item .tp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-tagpop .tp-item .tp-check{margin-left:auto;color:var(--primary);font-size:13px;font-weight:700}.dp-tagpop .tp-new{display:flex;align-items:center;gap:5px;padding:5px 4px 2px;border-top:1px solid var(--border);margin-top:3px}.dp-tagpop .tp-new input{flex:1;min-width:0;border:1px solid var(--border-2);border-radius:999px;padding:3px 9px;font-size:12px;font-family:inherit;outline:none;color:var(--text);background:var(--chip-2);transition:.12s}.dp-tagpop .tp-new input::placeholder{color:var(--text-muted)}.dp-tagpop .tp-new input:focus{border-color:var(--primary);background:#fff}.dp-tagpop .tp-new button{border:none;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700;background:var(--primary);color:#fff;cursor:pointer;transition:.12s;white-space:nowrap}.dp-tagpop .tp-new button:hover{background:var(--primary-d)}.dp-tagpop .tp-new button:disabled{opacity:.45;cursor:not-allowed}@keyframes lpPop{0%{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.dp-lp-item{padding:6px 10px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .12s,color .12s}.dp-lp-item:hover{background:var(--chip-2);color:var(--text)}.dp-lp-item.active{color:var(--primary-d);background:var(--primary-soft)}.dp-lp-item .lp-emoji{font-size:13.5px;line-height:1}.dp-lp-item .lp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-lp-item .lp-check{margin-left:auto;color:var(--primary);font-size:12px;font-weight:700}.dp-foot{display:flex;gap:9px;padding:16px 20px;border-top:1px solid var(--border-2);margin-top:8px}.dp-foot button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:9px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;transition:.12s}.dp-foot button:hover{background:var(--chip-2);color:var(--text)}.dp-foot button svg{width:15px;height:15px}.dp-foot button.danger:hover{color:var(--overdue);border-color:var(--overdue-bg-2);background:var(--overdue-bg)}.dp-hero{display:flex;gap:10px;align-items:flex-start;padding:10px 16px 6px;background:linear-gradient(180deg,#fbfbfd,#fff)}.dp-hero .chk{width:24px;height:24px;flex:0 0 24px;margin-top:2px;border:2px solid #d4d8e2;border-radius:6px}.dp-hero .chk svg{width:13px;height:13px}.dp-hero-main{flex:1;min-width:0}.dp-title{font-size:18px;font-weight:700;color:var(--ink);line-height:1.4;letter-spacing:-.01em;word-break:break-word;margin-bottom:0;overflow:hidden;display:block}.dp-title::placeholder{color:var(--text-muted)}.dp-pills{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}.dp-pill{font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px;line-height:1.4;white-space:nowrap}.dp-pill.todo{background:var(--primary-soft);color:var(--primary-d)}.dp-pill.okr{background:var(--okr-bg);color:var(--okr)}.dp-pill.done{background:#e7f7ef;color:#177a4f}.dp-hero-title{font-size:19px;font-weight:700;color:var(--text);line-height:1.4;word-break:break-word}.dp-hero .kr-badge,.dp-hero .o-badge{width:34px;height:34px;flex:0 0 34px;font-size:13px;margin:0}.dp-md-empty{color:var(--text-muted);font-size:13.5px}.dp-md-click{cursor:text;transition:border-color .12s,box-shadow .12s}.dp-md-click:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft-2)}.dp-meta{background:none;border:none;border-radius:0;padding:2px 2px 0;margin-bottom:4px}.dp-meta-row{display:flex;align-items:flex-start;gap:12px;padding:6px 0;border-top:none}.dp-meta-row+.dp-meta-row{margin-top:1px}.dp-meta-k{flex:0 0 40px;font-size:12px;font-weight:700;color:var(--text-muted);padding-top:2px;letter-spacing:.04em}.dp-meta-v{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dp-meta-v .dp-goal-ref{width:100%}.dp-meta-val{font-size:13px;font-weight:600;color:var(--text);line-height:1.5;flex:1;min-width:0}.dp-meta-dim,.dp-meta-val.dim{color:var(--text-muted);font-weight:500}.dp-meta-val.link{cursor:pointer;transition:color .14s}.dp-meta-val.link:hover{color:var(--primary-d);text-decoration:underline;text-underline-offset:3px}.dp-meta-acts{display:flex;gap:6px;flex:0 0 auto}.dp-md-wrap{margin-bottom:0;display:flex;flex-direction:column;flex:1;min-height:0}.dp-md-cap{font-size:12px;font-weight:800;color:var(--text-muted);margin-bottom:7px;display:flex;align-items:center;gap:6px;letter-spacing:.02em}.dp-md-cap .sic{display:inline-flex;color:var(--primary)}.dp-md-cap .sic svg{width:15px;height:15px}.dp-section{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:8px 10px;margin-bottom:6px}.dp-section:last-child{margin-bottom:0}.dp-section-h{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--text);margin-bottom:6px}.dp-section-h .sic{display:inline-flex;color:var(--primary)}.dp-section-h .sic svg{width:14px;height:14px}.dp-daterow-val{font-size:15px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4}.dp-daterow-val.dim{color:var(--text-muted);font-weight:600}.dp-mini{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text-2);cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:4px;font-family:inherit}.dp-mini:hover{background:var(--chip-2);color:var(--text)}.dp-mini.danger:hover{color:var(--overdue);border-color:var(--overdue-bg-2);background:var(--overdue-bg)}.dp-add-date{font-size:12px;font-weight:700;color:var(--primary);background:var(--primary-soft);border:1px dashed #c9bbf6;border-radius:8px;padding:4px 10px;cursor:pointer;transition:.12s;font-family:inherit}.dp-add-date:hover{background:#ece6fb}.dp-date-hint{font-size:12px;color:var(--text-muted)}.mini-input{font-size:13px;font-weight:600;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-family:inherit;outline:none}.mini-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.o-kr-block{border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--chip-2)}.o-kr-block .okr-h{font-size:11.5px;font-weight:800;color:var(--okr);background:var(--okr-bg);border-radius:7px;padding:2px 9px;display:inline-block;margin-bottom:8px}.okr-prog-line{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-2);margin-top:8px}.okr-prog-line .bar{flex:1;height:6px;background:var(--okr-bg);border-radius:999px;overflow:hidden}.okr-prog-line .bar i{display:block;height:100%;background:var(--prog-grad);border-radius:999px}.content,.dp-inner,.sb-scroll{scrollbar-width:thin;scrollbar-color:#d6d9e2 transparent}.content::-webkit-scrollbar,.dp-inner::-webkit-scrollbar,.sb-scroll::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#d6d9e2;border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#c3c7d4}::-webkit-scrollbar-track{background:transparent}.sb-collapse{margin-top:6px}.sb-collapse-head{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;border-radius:9px;color:var(--text-2);font-weight:700;font-size:13px;user-select:none}.sb-collapse-head:hover{background:var(--hover)}.sb-caret{flex:0 0 auto;color:var(--text-muted);transition:transform .18s}.sb-caret svg{width:14px;height:14px;display:block}.sb-collapse.collapsed .sb-caret{transform:rotate(-90deg)}.sb-cl-label{flex:1}.sb-cl-actions{display:flex;gap:4px}.sb-plus{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-muted);cursor:pointer}.sb-plus:hover{background:var(--primary-soft);color:var(--primary)}.sb-plus svg{width:14px;height:14px;display:block}.sb-collapse-body{overflow:hidden;padding-left:6px;padding-top:2px}.sb-collapse.collapsed .sb-collapse-body{display:none}.sb-listitem{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;cursor:pointer;border-radius:9px;font-size:13.5px;color:var(--text-1)}.sb-listitem:hover{background:var(--hover)}.sb-listitem.active{background:var(--primary-soft);color:var(--primary-d);font-weight:700}.sb-listitem.dragging{opacity:.55;background:var(--hover)}.sb-grip{flex:0 0 auto;width:14px;text-align:center;font-size:11px;line-height:1;color:var(--text-muted);opacity:0;cursor:grab;touch-action:none;user-select:none}.sb-listitem.dragging .sb-grip,.sb-listitem:hover .sb-grip{opacity:.75}.sb-li-emoji{width:18px;text-align:center;font-size:15px;flex:0 0 auto}.sb-listitem .ni-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-empty{font-size:12px;color:var(--text-muted);padding:4px 12px 8px 20px}.lr-head{justify-content:space-between;margin-bottom:14px}.lr-head,.lr-title{display:flex;align-items:center}.lr-title{font-size:17px;font-weight:800;gap:8px}.empty{color:var(--text-muted);font-size:13.5px;padding:34px 10px;text-align:center}.ctx-menu{position:fixed;z-index:50;min-width:140px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:none}.ctx-menu.open{display:block}.ctx-item{padding:9px 13px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:8px}.ctx-item:hover{background:var(--chip-2);color:var(--text)}.ctx-item.danger{color:var(--overdue)}.ctx-item.danger:hover{background:var(--overdue-bg);color:var(--overdue)}.ui-modal-mask{position:fixed;inset:0;background:rgba(20,22,30,.38);z-index:3000;display:flex;align-items:center;justify-content:center}.ui-modal{background:#fff;border-radius:14px;box-shadow:0 16px 50px rgba(20,22,30,.28);width:340px;max-width:90vw;padding:20px;animation:fade .18s ease}.ui-modal-title{font-size:15px;font-weight:700;margin-bottom:6px}.ui-modal-msg{font-size:13px;color:var(--text-2);line-height:1.6;margin-bottom:14px}.ui-modal-input{width:100%;border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--text);outline:none}.ui-modal-input:focus{border-color:var(--primary)}.ui-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.ui-modal-actions button{padding:8px 16px;border-radius:9px;border:1px solid var(--border);background:#fff;font-size:13px;font-weight:600;cursor:pointer}.ui-modal-actions .ui-ok{background:var(--primary);color:#fff;border-color:var(--primary)}.ui-modal-actions .ui-cancel:hover{background:var(--chip-2)}.ui-modal-actions .ui-ok.danger{background:var(--overdue);border-color:var(--overdue)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;padding:4px 2px;max-height:268px;overflow:auto;margin-top:6px}.emoji-cell{font-size:20px;line-height:1;width:38px;height:38px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s}.emoji-cell:hover{background:var(--chip);border-color:var(--primary)}.emoji-cell.active{background:var(--primary-soft);border-color:var(--primary)}.de-row{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.de-label{font-size:12px;font-weight:600;color:var(--text-2)}.de-row .ui-modal-input{flex:1;min-width:120px;margin-top:0}.de-hint{margin-top:8px;background:#fdecec;border:1px solid #f5c6c6;border-radius:8px;padding:6px 10px}.de-err,.de-hint{font-size:12px;color:var(--overdue)}.de-err{margin-top:6px;font-weight:600}.o-cat-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:var(--primary-soft);color:var(--primary-d);font-size:12px;font-weight:700;cursor:pointer;user-select:none;flex:0 0 auto;transition:border-color .15s,background .15s}.o-cat-chip:hover{border-color:var(--primary)}.o-cat-chip .oc-emoji{font-size:13px;line-height:1}.cat-chip{cursor:pointer}.cat-chip.is-all{background:var(--text);color:#fff}.cat-chip.is-all,.cat-chip.is-all:hover{border-color:var(--text)}.cat-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.cat-chip.active .cat-cnt{background:hsla(0,0%,100%,.25);color:#fff}.cat-chip.active .cat-default{background:#fff;color:var(--primary);border-color:#fff}:where(.nav-item,.tab,.ib-btn,.cat-chip,.cat-add-chip,.cal-nav button,.opb-nav,.period-tab,.btn-ghost,.mini-add,.text-btn,.chk,.list-card,.tag-chip,.arch-row,.dp-close,.sb-plus,.sb-collapse-head,.qa-go,a,button,[contenteditable]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}:where(.mini-add,.text-btn,.btn-ghost,.qa-go,.cal-nav button,.opb-nav,.period-tab,.tab,.cat-add-chip,.dp-close,.sb-plus):active{transform:scale(.97);transition:transform .12s}.period-tab:hover{transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.view.active{animation:none}}.tc-overlay{position:fixed;inset:0;background:rgba(20,22,45,.32);z-index:1000}.tc-modal{--bg1:#eef1f8;--bg2:#e5e8f4;--panel:#fff;--ink:#191b2d;--text:#353a53;--text-2:#6b7088;--text-muted:#aab0c4;--border:#edeff5;--border-2:#f5f6fa;--primary:#6c5ce7;--primary-soft:#f1eeff;--primary-d:#5a4bd1;--lunar:#c3c7d6;--festival:#e0833a;--hover:#f4f5fa;--ring:rgba(108,92,231,.28);--radius:18px;--radius-sm:13px;--radius-xs:10px;--shadow:0 18px 50px rgba(20,22,45,.14),0 3px 10px rgba(20,22,45,.05);--shadow-sm:0 8px 24px rgba(20,22,45,.07);--font:"PingFang SC","Noto Sans CJK SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}.tc-modal *{margin:0;padding:0;box-sizing:border-box}.tc-modal.panel{position:absolute;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);width:296px;overflow:hidden;overflow-y:auto;max-height:calc(100vh - 24px)}.tc-limit{margin:0 14px 4px;padding:5px 10px;border-radius:8px;background:var(--primary-soft);color:var(--primary-d);font-size:11px;font-weight:600}.tc-limit.err{background:#fdebec;color:#e5484d}.tc-modal .cal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 4px}.tc-modal .cal-month{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:.3px}.tc-modal .cal-nav{display:flex;gap:8px}.tc-modal .cal-nav button{width:28px;height:28px;border:1px solid var(--border);background:#fff;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);font-size:15px;transition:.16s}.tc-modal .cal-nav button:hover{border-color:var(--primary);color:var(--primary-d);background:var(--primary-soft)}.tc-modal .cal-nav .cal-today{width:30px;height:30px;border-radius:50%;border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.tc-modal .cal-nav .cal-today:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.tc-modal .cal-nav .cal-today svg{width:18px;height:18px}.tc-modal .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:4px 12px 8px;gap:2px}.tc-modal .cal-weekday{text-align:center;font-size:11px;color:var(--text-muted);font-weight:600;padding:3px 0 5px;letter-spacing:.5px}.tc-modal .cal-cell{height:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;position:relative;font-size:13px;font-weight:600;color:var(--text);transition:background .16s,color .16s,box-shadow .16s}.tc-modal .cal-cell:hover{background:var(--hover)}.tc-modal .cal-cell.other-month{color:var(--text-muted)}.tc-modal .cal-cell.today:not(.selected){color:var(--primary-d);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--primary)}.tc-modal .cal-cell.selected{background:var(--primary);color:#fff;font-weight:700;box-shadow:0 6px 14px rgba(108,92,231,.4)}.tc-modal .cal-cell.today.selected{box-shadow:0 6px 14px rgba(108,92,231,.4),inset 0 0 0 2px hsla(0,0%,100%,.6)}.tc-modal .cal-lunar{color:var(--lunar)}.tc-modal .cal-festival,.tc-modal .cal-lunar{font-size:7px;line-height:1.05;margin-top:1px;pointer-events:none}.tc-modal .cal-festival{color:var(--festival)}.tc-modal .cal-cell.selected .cal-festival,.tc-modal .cal-cell.selected .cal-lunar{color:hsla(0,0%,100%,.82)}.tc-modal .cal-cell.rep:not(.selected){background:var(--primary-soft);color:var(--primary-d);font-weight:700}.tc-modal .cal-cell.rep:not(.selected) .cal-lunar{color:var(--primary-d);opacity:.62}.tc-modal .cal-cell.today.rep:not(.selected){box-shadow:inset 0 0 0 1.5px var(--primary)}.tc-modal .cal-cell.today:not(.selected) .cal-lunar{color:var(--primary-d);opacity:.65}.tc-modal .cal-cell.other-month .cal-festival,.tc-modal .cal-cell.other-month .cal-lunar{opacity:1}.tc-modal .rows{padding:2px 0}.tc-modal .row{display:flex;align-items:center;padding:6px 14px;cursor:pointer;transition:background .14s;position:relative;border-bottom:1px solid var(--border-2)}.tc-modal .row:last-of-type{border-bottom:none}.tc-modal .row-icon,.tc-modal .row:hover{background:var(--hover)}.tc-modal .row-icon{width:26px;height:26px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-right:8px;flex-shrink:0;transition:.16s}.tc-modal .row-icon svg{width:15px;height:15px;color:var(--text-2);transition:.16s}.tc-modal .row:hover .row-icon{background:var(--primary-soft)}.tc-modal .row:hover .row-icon svg{color:var(--primary)}.tc-modal .row-label{flex:1;font-size:12.5px;font-weight:600;color:var(--ink)}.tc-modal .row-value{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:5px}.tc-modal .row-arrow{color:var(--text-muted);font-size:12px;transition:transform .22s,color .22s;margin-left:4px}.tc-modal .row.open .row-arrow{transform:rotate(90deg);color:var(--primary)}.tc-modal .row.locked{cursor:not-allowed}.tc-modal .row.locked .row-icon{background:var(--border-2);opacity:.55}.tc-modal .row.locked .row-icon svg,.tc-modal .row.locked .row-label{color:var(--text-muted)}.tc-modal .row.locked .row-value{color:var(--text-muted);font-size:12px;font-weight:500}.tc-modal .row.locked .row-arrow{display:none}.tc-modal .row.locked:hover{background:transparent}.tc-modal .row.locked:hover .row-icon{background:var(--border-2)}.tc-modal .row-select-wrap{margin-left:auto;position:relative;display:inline-flex;align-items:center}.tc-modal .row-select-wrap:after{content:"";position:absolute;right:10px;top:50%;width:7px;height:7px;border-right:1.6px solid var(--text-2);border-bottom:1.6px solid var(--text-2);transform:translateY(-65%) rotate(45deg);pointer-events:none}.tc-modal .row-select{appearance:none;-webkit-appearance:none;border:1.5px solid var(--border);border-radius:var(--radius-xs);padding:5px 26px 5px 10px;font-size:12px;font-weight:600;color:var(--ink);background:#fff;outline:none;cursor:pointer;font-family:inherit;transition:.15s;max-width:150px}.tc-modal .row-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.tc-modal .row.locked .row-select{color:var(--text-muted);background-color:var(--border-2);opacity:.55}.tc-modal .row.locked .row-select-wrap:after{border-color:var(--text-muted)}.tc-modal .row-sub{padding:2px 14px;display:none}.tc-modal .row-sub .pop-title{margin:2px 0 7px}.tc-modal .pop-title{font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:9px;letter-spacing:.5px}.tc-modal .row-inline-time{display:none;margin-left:auto;align-items:center;gap:3px}.tc-modal .row.editing .row-inline-time{display:inline-flex}.tc-modal .ti-seg{width:30px;border:1.5px solid var(--border);border-radius:var(--radius-xs);padding:3px 2px;text-align:center;font-size:12px;font-family:inherit;color:var(--ink);background:#fff;outline:none;box-sizing:border-box}.tc-modal .ti-seg:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.tc-modal .ti-colon{font-size:13px;font-weight:700;color:var(--text-2);user-select:none}.tc-modal .row.editing .row-arrow,.tc-modal .row.editing .row-close,.tc-modal .row.editing .row-value{display:none!important}.tc-modal .end-count{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 2px 2px}.tc-modal .stepper{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:var(--radius-xs);overflow:hidden;background:#fff}.tc-modal .stepper button{width:28px;height:28px;border:none;background:var(--hover);color:var(--text-2);font-size:16px;font-weight:700;cursor:pointer;transition:.16s;line-height:1}.tc-modal .stepper button:hover{background:var(--primary-soft);color:var(--primary)}.tc-modal .stepper button:active{transform:scale(.94)}.tc-modal .stepper input{width:40px;border:none;outline:none;text-align:center;font-size:13px;font-weight:700;color:var(--ink);font-family:inherit;background:transparent;-moz-appearance:textfield}.tc-modal .stepper input::-webkit-inner-spin-button,.tc-modal .stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tc-modal .end-count-unit{font-size:12px;font-weight:600;color:var(--text-2)}.tc-modal .week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.tc-modal .week-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:50%;font-size:11.5px;font-weight:600;color:var(--text-2);background:#fff;cursor:pointer;transition:.16s}.tc-modal .week-cell.active,.tc-modal .week-cell:hover{border-color:var(--primary);color:var(--primary-d)}.tc-modal .week-cell.active{background:var(--primary-soft);box-shadow:0 3px 8px rgba(108,92,231,.2)}.tc-modal .row-value.set{background:var(--primary-soft);color:var(--primary-d);font-weight:600;padding:3px 10px;border-radius:9px;font-size:12.5px}.tc-modal .row-close{width:20px;height:20px;border-radius:50%;border:none;background:rgba(108,92,231,.1);color:var(--primary-d);cursor:pointer;display:none;align-items:center;justify-content:center;font-size:15px;line-height:1;transition:.16s;margin-left:6px;flex-shrink:0}.tc-modal .row-close:hover{background:rgba(108,92,231,.22)}.tc-modal .row.has-value .row-arrow{display:none}.tc-modal .row-close.show{display:flex}.tc-modal .btn-bar{display:flex;gap:10px;padding:2px 18px 14px}.tc-modal .btn{flex:1;padding:7px 0;border-radius:var(--radius-sm);font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid transparent;transition:.18s;font-family:inherit}.tc-modal .btn-cancel{background:transparent;border-color:var(--border);color:var(--text-2)}.tc-modal .btn-cancel:hover{background:var(--hover);border-color:var(--border)}.tc-modal .btn-confirm{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(108,92,231,.3)}.tc-modal .btn-confirm:hover{background:var(--primary-d);transform:translateY(-1px);box-shadow:0 8px 20px rgba(108,92,231,.38)}.tc-modal .btn-confirm:active{transform:translateY(0) scale(.98)}.tc-modal .end-date .cal-grid{padding:2px 0 0!important}.tc-modal .end-date .cal-cell{height:26px;font-size:12px}.tc-modal .end-date .cal-festival,.tc-modal .end-date .cal-lunar{font-size:6px}.tc-modal .end-date .cal-header{padding:0 0 6px}.tc-modal .end-date .cal-nav button{width:24px;height:24px;border-radius:8px}@media (prefers-reduced-motion:reduce){.tc-modal *{animation:none!important;transition:none!important}}.dy-root{height:100%;flex-direction:column;min-height:0}.dy-root,.dy-topbar{display:flex;gap:16px}.dy-topbar{align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 22px;box-shadow:var(--shadow-sm);flex-shrink:0}.dy-brand{gap:12px}.dy-brand,.dy-logo{display:flex;align-items:center}.dy-logo{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#7c6cf0,#9b6cf0);color:#fff;justify-content:center;font-size:20px;box-shadow:0 6px 16px rgba(124,108,240,.4),inset 0 1px 0 hsla(0,0%,100%,.25)}.dy-name{font-size:17px;font-weight:800;letter-spacing:.2px;color:var(--ink)}.dy-sub{font-size:12px;color:var(--text-muted);margin-top:1px}.dy-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dy-pill{display:inline-flex;align-items:center;gap:7px;background:var(--primary-soft);color:var(--primary-d);font-size:12.5px;font-weight:700;padding:7px 13px;border-radius:999px}.dy-pill b{font-size:14px}.dy-body{flex:1;gap:22px}.dy-body,.dy-cal{display:flex;min-height:0}.dy-cal{flex:0 0 420px;max-width:46%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 20px 16px;flex-direction:column;box-shadow:var(--shadow)}.dy-cal-head{justify-content:space-between;margin-bottom:16px;gap:12px}.dy-cal-head,.dy-cal-nav{display:flex;align-items:center}.dy-cal-nav{gap:8px}.dy-cal-nav button{width:34px;height:34px;border-radius:10px;background:var(--panel);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);box-shadow:var(--shadow-sm);transition:.15s}.dy-cal-nav button:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-md)}.dy-cal-nav button:active{transform:scale(.97)}.dy-cal-month{min-width:96px;text-align:center;font-size:14px;font-weight:700;color:var(--text);line-height:34px}.dy-cal-today{height:34px;padding:0 14px;border-radius:10px;background:var(--primary-soft);border:1px solid transparent;color:var(--primary-d);font-size:13px;font-weight:700;cursor:pointer;transition:.15s;white-space:nowrap;font-family:inherit}.dy-cal-today:hover{background:#e4dcfb}.dy-cal-today:active{transform:scale(.97)}.dy-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;flex-shrink:0;margin-bottom:6px}.dy-dow{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:3px 0}.dy-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(0,1fr));gap:6px;flex:1 1 auto;min-height:0}.dy-cell{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:6px 7px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:.12s;position:relative;min-height:0;height:100%;overflow:hidden;justify-content:flex-start}.dy-cell:hover{border-color:#d2d4de;box-shadow:var(--shadow-sm)}.dy-cell.out{opacity:.38}.dy-cell.out:hover{box-shadow:none;border-color:var(--border)}.dy-cell.today{background:linear-gradient(180deg,#eef2ff,#f4f2fe);border-color:#c5d4ff}.dy-cell.today .dy-cd-num{color:var(--primary)}.dy-cell.sel{border-color:var(--primary);box-shadow:0 0 0 2px var(--ring)}.dy-cell.sel .dy-cd-num{color:var(--primary-d);font-weight:800}.dy-cd-num{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.dy-cd-dot{margin-top:auto;align-self:center;width:7px;height:7px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px rgba(108,92,231,.16);transition:.12s}.dy-cell.today .dy-cd-dot{background:var(--primary-d)}.dy-cell.sel .dy-cd-dot{background:#fff;box-shadow:0 0 0 3px hsla(0,0%,100%,.5)}.dy-legend{gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-2);font-size:12.5px;color:var(--text-2);flex-wrap:wrap}.dy-legend,.dy-legend span{display:flex;align-items:center}.dy-legend span{gap:7px}.dy-ld{width:8px;height:8px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px rgba(108,92,231,.16)}.dy-legend-muted{color:var(--text-muted)}.dy-panel{flex:1;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow);min-height:0;overflow:hidden}.dy-head{padding:20px 26px 16px;border-bottom:1px solid var(--border-2);position:relative;overflow:hidden}.dy-head:after{content:"";position:absolute;right:-50px;top:-50px;width:180px;height:180px;background:radial-gradient(circle,rgba(124,108,240,.1),transparent 70%);border-radius:50%;pointer-events:none}.dy-dh-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;position:relative}.dy-dh-date{font-size:24px;font-weight:800;letter-spacing:-.4px;color:var(--ink)}.dy-dh-week{font-size:13px;color:var(--text-2);margin-top:4px;display:flex;align-items:center;gap:9px}.dy-dh-today{font-size:11.5px;font-weight:700;color:var(--primary);background:var(--primary-soft);padding:2px 10px;border-radius:999px}.dy-dh-actions{display:flex;align-items:center;gap:8px;position:relative}.dy-btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:7px 13px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-sm);transition:.13s;font-family:inherit}.dy-btn:hover{border-color:#d8dae2;color:var(--text)}.dy-btn.danger:hover{color:var(--overdue);border-color:#fbe3e3;background:#fdecec}.dy-save{font-size:12.5px;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.dy-save.saved{color:var(--success)}.dy-save.saving{color:var(--primary)}.dy-editor{flex:1;display:flex;flex-direction:column;min-height:0;padding:18px 26px 22px;overflow:hidden}.dy-mood-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.dy-mood-label{font-size:12.5px;font-weight:700;color:var(--text-muted);margin-right:2px}.dy-mood-chip{width:38px;height:38px;border-radius:11px;border:1.5px solid var(--border);background:var(--chip-2);display:flex;align-items:center;justify-content:center;font-size:19px;cursor:pointer;transition:.13s;line-height:1}.dy-mood-chip:hover{transform:translateY(-1px);border-color:#d2d4de}.dy-mood-chip.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px var(--ring)}.dy-title-input{width:100%;border:none;outline:none;font-size:20px;font-weight:700;color:var(--ink);background:transparent;padding:4px 0 10px;border-bottom:1px solid var(--border-2);margin-bottom:14px;font-family:inherit}.dy-title-input::placeholder{color:var(--text-muted);font-weight:600}.dy-content-input{flex:1;width:100%;border:none;outline:none;resize:none;font-size:15px;color:var(--text);background:transparent;line-height:1.8;font-family:inherit;padding:2px 0;min-height:0}.dy-content-input::placeholder{color:var(--text-muted)}.dy-empty{flex:1;flex-direction:column;gap:12px;color:var(--text-muted);text-align:center;padding:20px}.dy-de-ico,.dy-empty{display:flex;align-items:center;justify-content:center}.dy-de-ico{width:64px;height:64px;border-radius:20px;background:var(--primary-soft);font-size:30px}.dy-de-t{font-size:15px;font-weight:700;color:var(--text-2)}.dy-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 26px;border-top:1px solid var(--border-2);font-size:12.5px;color:var(--text-muted);flex-shrink:0;background:var(--chip-2)}.dy-foot b{color:var(--text-2);font-weight:700}@media (max-width:900px){.dy-body{flex-direction:column;overflow:auto}.dy-cal{flex:none;max-width:none;width:100%}.dy-panel{flex:none;min-height:420px}}.sn-root{height:100%;gap:18px}.sn-root,.sn-side{display:flex;min-height:0}.sn-side{width:236px;flex:0 0 236px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:16px 12px}.sn-side-label{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.6px;padding:2px 8px 8px;text-transform:uppercase}.sn-glist{flex:1;overflow-y:auto;margin:0 -2px;padding:0 2px}.sn-gitem{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;cursor:pointer;color:var(--text);font-size:14px;font-weight:500;transition:background .13s,color .13s;position:relative}.sn-gitem:hover{background:var(--hover)}.sn-gitem.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.sn-gdot{width:9px;height:9px;border-radius:50%;background:var(--primary);flex:0 0 auto;opacity:.85}.sn-gdot.muted{background:var(--text-muted)}.sn-gname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sn-gcount{font-size:11px;color:var(--text-2);background:var(--chip);padding:1px 7px;border-radius:20px;font-weight:600}.sn-gitem.active .sn-gcount{background:#fff;color:var(--primary)}.sn-gactions{display:none;gap:2px}.sn-gitem:hover .sn-gactions{display:flex}.sn-gactions button{border:none;background:transparent;cursor:pointer;color:var(--text-2);width:22px;height:22px;border-radius:6px;font-size:12px;line-height:1;display:grid;place-items:center}.sn-gactions button:hover{background:var(--hover-2);color:var(--primary)}.sn-gedit{flex:1;border:1px solid var(--primary);border-radius:7px;padding:4px 7px;font-size:14px;font-family:inherit;color:var(--text);outline:none;background:#fff}.sn-addgroup{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1px dashed #d9d4ee;border-radius:var(--radius-sm);color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;transition:.13s;background:transparent;font-family:inherit}.sn-addgroup:hover{background:var(--primary-soft-2);border-color:var(--primary)}.sn-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-height:0}.sn-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 12px;flex-shrink:0}.sn-head-left{display:flex;align-items:baseline;gap:10px}.sn-head h2{font-size:19px;font-weight:700;color:var(--ink);margin:0}.sn-head-sub{font-size:12px;color:var(--text-muted)}.sn-addnote{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#6c5ce7,#8e7bff);color:#fff;border:none;padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px rgba(108,92,231,.3);transition:.13s;font-family:inherit}.sn-addnote:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(108,92,231,.38)}.sn-addnote:active{transform:translateY(0)}.sn-area{flex:1;overflow-y:auto;padding:8px 24px 24px;min-height:0}.sn-empty{height:100%;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:10px;text-align:center}.sn-eico{font-size:42px;opacity:.55}.sn-empty p{font-size:14px}.sn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;align-items:start}.sn-note{border-radius:var(--radius);padding:14px 14px 10px;box-shadow:var(--shadow);transition:transform .13s,box-shadow .13s;position:relative;min-height:150px;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.03)}.sn-note:hover{transform:translateY(-2px);box-shadow:0 2px 6px rgba(108,92,231,.12),0 12px 30px rgba(108,92,231,.1)}.sn-ntext{flex:none;border:none;background:transparent;resize:none;outline:none;font-family:inherit;font-size:14px;line-height:1.55;color:var(--ink);width:100%;padding:0}.sn-ntext::placeholder{color:rgba(42,39,64,.35)}.sn-nfoot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.06)}.sn-ncolors{display:flex;gap:5px}.sn-sw{width:15px;height:15px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .1s}.sn-sw:hover{transform:scale(1.15)}.sn-sw.sel{border-color:rgba(42,39,64,.35)}.sn-ntime{font-size:10px;color:rgba(42,39,64,.45)}.sn-ndel{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:7px;border:none;background:rgba(0,0,0,.04);color:rgba(42,39,64,.5);cursor:pointer;display:grid;place-items:center;font-size:13px;opacity:0;transition:.13s}.sn-note:hover .sn-ndel{opacity:1}.sn-ndel:hover{background:rgba(229,62,62,.14);color:#e53e3e}.sn-c-yellow{background:#fff7d6}.sn-c-green{background:#e4f6e5}.sn-c-blue{background:#e2eeff}.sn-c-pink{background:#fce4f1}.sn-c-purple{background:#efedfd}.sn-c-gray{background:#f1f0f5}.sn-sw-yellow{background:#ffe66d}.sn-sw-green{background:#9fe2a4}.sn-sw-blue{background:#9dc3ff}.sn-sw-pink{background:#f7b8dc}.sn-sw-purple{background:#c3b9ff}.sn-sw-gray{background:#d7d5e0}@media (max-width:900px){.sn-root{flex-direction:column;overflow:auto}.sn-side{flex:none;width:100%}.sn-main{flex:none;min-height:420px}}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}@media (min-width:768px){.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}