:root{--bg-primary: #f7f6f2;--bg-secondary: #efede7;--bg-card: #ffffff;--bg-hover: #f3f1fb;--border: #e4e1d8;--border-strong: #d4d0c4;--white: #3d4152;--white-bright: #1d2133;--gray: #646a7c;--gray-soft: #8d92a2;--accent: #5a4bd1;--accent-strong: #4a3cb8;--accent-soft: #eeebfc;--on-accent: #ffffff;--focus-ring: rgba(90, 75, 209, .18);--selection-bg: #ddd8fa;--ok: #2e7d5b;--ok-soft: #e3f3ea;--warn: #9a5b12;--warn-soft: #fbefd9;--danger: #c0392b;--danger-soft: #fbe9e6;--info: #3a5bb8;--info-soft: #e6ecfa;--highlight: #fff1a8;--shadow-sm: 0 1px 2px rgba(29, 33, 51, .05);--shadow-md: 0 10px 30px -12px rgba(29, 33, 51, .18);--shadow-lg: 0 24px 60px -20px rgba(29, 33, 51, .35);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius: 14px;--radius-sm: 9px;--c-violet: #6b5ce0;--c-bleu: #3a74d0;--c-vert: #2e9365;--c-ambre: #c98318;--c-rouge: #cf4a3c;--c-rose: #c94d8a;--c-cyan: #2a8ea3;--c-gris: #868b9c;color-scheme:light}:root[data-theme=dark]{--bg-primary: #14151d;--bg-secondary: #191a24;--bg-card: #1e202c;--bg-hover: #252838;--border: #2a2c3a;--border-strong: #383b4d;--white: #c5c8d4;--white-bright: #eceef4;--gray: #8e93a6;--gray-soft: #6c7184;--accent: #7669e0;--accent-strong: #8b7fe8;--accent-soft: rgba(118, 105, 224, .16);--on-accent: #ffffff;--focus-ring: rgba(118, 105, 224, .28);--selection-bg: rgba(118, 105, 224, .38);--ok: #5cc595;--ok-soft: rgba(92, 197, 149, .13);--warn: #e3a857;--warn-soft: rgba(227, 168, 87, .13);--danger: #ef7b6c;--danger-soft: rgba(239, 123, 108, .13);--info: #8aa6f0;--info-soft: rgba(138, 166, 240, .13);--highlight: rgba(250, 214, 80, .32);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 14px 34px -12px rgba(0, 0, 0, .6);--shadow-lg: 0 30px 70px -20px rgba(0, 0, 0, .75);--c-violet: #8a7dec;--c-bleu: #6b9ae8;--c-vert: #5cbf8f;--c-ambre: #e0a54d;--c-rouge: #ec7a6b;--c-rose: #e07aae;--c-cyan: #5ab7ca;--c-gris: #8e93a6;color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--white);background:var(--bg-primary);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}::selection{background:var(--selection-bg);color:var(--white-bright)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg-primary)}a{color:var(--accent)}button{font-family:inherit}.theme-anim,.theme-anim *{transition:background-color .3s,border-color .3s,color .3s!important}.ico{width:16px;height:16px;flex-shrink:0;display:block}.kicker{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.mono{font-family:var(--font-mono)}.muted{color:var(--gray)}.soft{color:var(--gray-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 14px;border-radius:var(--radius-sm);font:500 13px/1.2 var(--font-sans);background:var(--bg-card);color:var(--white-bright);border:1px solid var(--border-strong);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s,box-shadow .15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn:focus-visible,.btn-icon:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.btn-ghost{background:transparent;border-color:transparent;color:var(--gray)}.btn-ghost:hover{background:var(--bg-hover);border-color:transparent;color:var(--white-bright)}.btn-danger{color:var(--danger)}.btn-danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{background:var(--danger);border-color:var(--danger);color:#fff;filter:brightness(1.08)}.btn-sm{padding:6px 10px;font-size:12.5px}.btn-icon{width:34px;height:34px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--gray);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.btn-icon:hover{background:var(--bg-hover);color:var(--white-bright)}.btn-icon.bordered{background:var(--bg-card);border-color:var(--border-strong);color:var(--white-bright)}.btn-icon.bordered:hover{border-color:var(--accent);color:var(--accent)}.btn-icon.danger:hover{color:var(--danger);background:var(--danger-soft)}input,select,textarea{width:100%;background:var(--bg-card);border:1px solid var(--border-strong);color:var(--white-bright);padding:9px 12px;border-radius:var(--radius-sm);font:400 13.5px/1.4 var(--font-sans);outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--focus-ring)}input::placeholder,textarea::placeholder{color:var(--gray-soft)}input:disabled{opacity:.65;cursor:not-allowed}input[type=checkbox]{width:auto;accent-color:var(--accent)}textarea{resize:vertical;min-height:80px;line-height:1.55}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:12.5px;font-weight:500;color:var(--white-bright)}.field>span em{font-style:normal;color:var(--danger);margin-left:2px}.field>span small{font-weight:400;color:var(--gray-soft)}.hint{font-size:11.5px;color:var(--gray-soft)}.hint.err{color:var(--danger)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stack{display:flex;flex-direction:column;gap:16px}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.seg button{border:0;background:transparent;color:var(--gray);font:500 12.5px/1 var(--font-sans);padding:7px 10px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.seg button:hover{color:var(--white-bright)}.seg button.on{background:var(--bg-card);color:var(--white-bright);box-shadow:var(--shadow-sm)}.seg.full{display:flex}.seg.full button{flex:1;justify-content:center}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font:500 11.5px/1.6 var(--font-sans);background:var(--bg-secondary);color:var(--gray);white-space:nowrap}.badge .ico{width:12px;height:12px}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:230px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:6px;animation:pop .14s ease-out}.menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.menu-head strong{display:block;color:var(--white-bright);font-size:13.5px}.menu-head small{font:400 11.5px var(--font-mono);color:var(--gray-soft)}.menu button{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;border:0;background:none;color:var(--white);font:400 13px var(--font-sans);cursor:pointer;text-align:left}.menu button:hover{background:var(--bg-hover);color:var(--white-bright)}.menu button.danger:hover{background:var(--danger-soft);color:var(--danger)}.menu hr{border:0;border-top:1px solid var(--border);margin:6px 0}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#14151d61;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .15s ease-out}.overlay.top{z-index:110}.overlay.center{display:flex;align-items:center;justify-content:center;padding:16px}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:24px;animation:pop .16s ease-out}.modal h2{font-size:17px;font-weight:650;color:var(--white-bright);margin-bottom:14px;letter-spacing:-.01em}.modal-p{font-size:13.5px;color:var(--gray);line-height:1.55;margin:-6px 0 18px}.modal-p strong{color:var(--white-bright)}.modal-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.side-panel{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(520px,100vw);background:var(--bg-card);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .2s cubic-bezier(.2,.8,.2,1)}.side-panel.wide{width:min(640px,100vw)}@keyframes slide{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}.side-panel-head{display:flex;align-items:center;gap:10px;padding:16px 18px 14px 22px;border-bottom:1px solid var(--border)}.side-panel-head h2{flex:1;font-size:16px;font-weight:650;color:var(--white-bright);letter-spacing:-.01em}.side-panel-body{flex:1;overflow-y:auto;padding:20px 22px 28px;display:flex;flex-direction:column;gap:18px}.side-panel-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center}.toasts{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;border-radius:var(--radius-sm);background:var(--white-bright);color:var(--bg-primary);box-shadow:var(--shadow-md);font-size:13px;animation:pop .16s ease-out;max-width:calc(100vw - 32px)}.toast.err{background:var(--danger);color:#fff}.toast button{background:none;border:0;color:inherit;font:600 13px var(--font-sans);cursor:pointer;padding:4px 6px;border-radius:6px;opacity:.9}.toast button:hover{opacity:1;text-decoration:underline}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center}.boot .brand-mark{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5;transform:scale(.94)}}.brand-mark{width:36px;height:36px;border-radius:10px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent)}.brand-mark svg{width:20px;height:20px}.brand-mark.lg{width:52px;height:52px;border-radius:var(--radius);margin-bottom:16px;box-shadow:0 10px 24px -10px var(--accent)}.brand-mark.lg svg{width:28px;height:28px}.brand-logo{display:block;height:34px;width:auto;max-width:200px;object-fit:contain}.brand-logo.lg{height:60px;max-width:280px;margin:0 auto 18px}:root[data-theme=dark] .brand-logo.auto-dark{filter:brightness(0) invert(1);opacity:.92}.brand-logo.only-dark{display:none}:root[data-theme=dark] .brand-logo.only-dark{display:block}:root[data-theme=dark] .brand-logo.only-light{display:none}.sb-brand.with-logo{flex-direction:column;align-items:flex-start;gap:8px}.sb-brand.with-logo .kicker{font-size:10px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:radial-gradient(ellipse 60% 50% at 50% 0%,var(--accent-soft),transparent 70%),var(--bg-primary)}.login-corner{position:fixed;top:18px;right:18px}.login-box{width:100%;max-width:380px}.login-head{text-align:center;margin-bottom:26px}.login-head .kicker{display:block;margin-bottom:6px}.login-head h1{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--white-bright)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-md)}.login-card .field{margin-bottom:16px}.login-card .btn{width:100%;padding:12px;font-size:14px;font-weight:600;margin-top:4px}.login-card code{font-family:var(--font-mono);font-size:12px}.login-foot{text-align:center;margin-top:20px;font-size:12px;color:var(--gray-soft)}.shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border);padding:18px 12px 14px}.main{min-width:0;display:flex;flex-direction:column}.nav-scrim,.nav-btn{display:none}.sb-brand{display:flex;align-items:center;gap:11px;padding:2px 8px 20px}.sb-brand strong{display:block;font-size:15px;font-weight:650;color:var(--white-bright);letter-spacing:-.01em;line-height:1.2}.sb-brand .kicker{font-size:9.5px}.sb-nav{display:flex;flex-direction:column;gap:1px}.sb-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:8px;border:0;background:none;color:var(--white);font:450 13.5px/1.3 var(--font-sans);cursor:pointer;text-align:left}.sb-item>span:not([class]){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-item .ico{color:var(--gray)}.sb-item:hover{background:var(--bg-hover);color:var(--white-bright)}.sb-item.on{background:var(--bg-card);color:var(--white-bright);font-weight:550;box-shadow:var(--shadow-sm)}.sb-item.on .ico{color:var(--accent)}.sb-item.archived{opacity:.6}.sb-count{font:500 11.5px var(--font-mono);color:var(--gray-soft)}.sb-late{font:600 10.5px/1 var(--font-mono);color:#fff;background:var(--danger);border-radius:999px;padding:3px 6px}.sb-shared{width:13px;height:13px;color:var(--gray-soft)!important}.sb-section{display:flex;align-items:center;justify-content:space-between;padding:20px 10px 6px}.sb-label{font:500 10.5px var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--gray-soft)}.sb-toggle{border:0;background:none;color:var(--gray-soft);font:400 12px var(--font-sans);padding:6px 10px;text-align:left;cursor:pointer}.sb-toggle:hover{color:var(--accent)}.sb-tags{display:flex;flex-wrap:wrap;gap:5px;padding:0 8px}.sb-foot{margin-top:auto;padding:18px 10px 0;font-size:11.5px}kbd{font:500 10.5px var(--font-mono);padding:1px 5px;border-radius:4px;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--white)}.list-dot{display:inline-block;border-radius:50%;flex-shrink:0}.btn-icon.sm{width:26px;height:26px;border-radius:7px}.btn-icon.sm .ico{width:14px;height:14px}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:12px 28px;background:color-mix(in srgb,var(--bg-primary) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.search{position:relative;display:flex;align-items:center;width:min(380px,100%)}.search>.ico{position:absolute;left:11px;color:var(--gray-soft);pointer-events:none}.search input{padding-left:34px;padding-right:34px;background:var(--bg-card)}.search .btn-icon{position:absolute;right:4px}.user-btn{display:flex;align-items:center;gap:8px;padding:3px 8px 3px 3px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border-strong);color:var(--white-bright);font:500 13px var(--font-sans);cursor:pointer}.user-btn:hover{border-color:var(--accent)}.user-btn .ico{width:14px;height:14px;color:var(--gray)}.avatar{border-radius:50%;flex-shrink:0;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:.02em}.avatar.more{width:24px;height:24px;font-size:10px;background:var(--bg-secondary);color:var(--gray)}.content{padding:26px 28px 80px;max-width:1180px;width:100%}.view-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.view-title{display:flex;align-items:center;gap:11px;min-width:0}.view-title h1{font-size:23px;font-weight:700;color:var(--white-bright);letter-spacing:-.025em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-count{font:500 14px var(--font-mono);color:var(--gray-soft)}.view-tools{display:flex;align-items:center;gap:8px}.sort-select{width:auto;padding:7px 30px 7px 10px;font-size:12.5px}.avatars{display:flex;margin-left:4px}.avatars .avatar{border:2px solid var(--bg-primary);margin-left:-6px}.avatars .avatar:first-child{margin-left:0}.quick{margin-bottom:22px}.quick-row{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}.quick-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--focus-ring)}.quick-plus{color:var(--accent)}.quick-row input{border:0;box-shadow:none!important;padding:8px 4px;background:transparent;flex:1;min-width:0;font-size:14px}.quick-list{width:auto;max-width:170px;padding:6px 28px 6px 10px;font-size:12.5px;background:var(--bg-secondary);border-color:var(--border)}.quick-preview{display:flex;flex-wrap:wrap;gap:6px;padding:8px 4px 0}.prio-b0{background:var(--bg-secondary);color:var(--gray)}.prio-b1{background:var(--info-soft);color:var(--info)}.prio-b2{background:var(--warn-soft);color:var(--warn)}.prio-b3{background:var(--danger-soft);color:var(--danger)}.task-list{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.task{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s}.task-list>.task:last-child{border-bottom:0}.task:hover{background:var(--bg-hover)}.task.drop-over{box-shadow:inset 0 2px 0 var(--accent)}.task .grip{position:absolute;left:-2px;top:14px;color:var(--gray-soft);opacity:0;cursor:grab}.task .grip .ico{width:14px;height:14px}.task:hover .grip{opacity:.7}.task-body{flex:1;min-width:0}.task-title{color:var(--white-bright);font-size:14px;line-height:1.45;word-wrap:break-word;display:flex;gap:7px;align-items:baseline}.task.done .task-title span:last-child{color:var(--gray-soft);text-decoration:line-through;text-decoration-color:var(--border-strong)}.doing-badge{font-size:10.5px;padding:0 7px;flex-shrink:0}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;font-size:12px;color:var(--gray)}.task-meta:empty{display:none}.task-meta>span{display:inline-flex;align-items:center;gap:4px}.task-meta .ico{width:12.5px;height:12.5px}.meta-due.due-late{color:var(--danger);font-weight:550}.meta-due.due-today{color:var(--accent);font-weight:550}.meta-due.due-soon{color:var(--warn)}.meta-prio.p1{color:var(--info)}.meta-prio.p2{color:var(--warn)}.meta-prio.p3{color:var(--danger);font-weight:550}.meta-ok{color:var(--ok)}.meta-tag{color:var(--accent);font-family:var(--font-mono);font-size:11.5px}.meta-list{color:var(--gray-soft)}.task.done .task-meta{opacity:.7}.check{--c: var(--border-strong);width:20px;height:20px;margin-top:1px;border-radius:50%;flex-shrink:0;cursor:pointer;border:1.8px solid var(--c);background:transparent;color:transparent;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.check .ico{width:12px;height:12px;stroke-width:3}.check.p1{--c: var(--info)}.check.p2{--c: var(--warn)}.check.p3{--c: var(--danger);background:var(--danger-soft)}.check:hover{color:var(--c);border-color:var(--c)}.check:not([class*=" p"]):hover,.check.p0:hover{--c: var(--accent)}.check.on{background:var(--ok);border-color:var(--ok);color:#fff}.check.sm{width:17px;height:17px;margin-top:0}.check.sm .ico{width:10px;height:10px}.check.lg{width:24px;height:24px;margin-top:5px}.check.lg .ico{width:14px;height:14px}.groups{display:flex;flex-direction:column;gap:22px}.group-head{display:flex;align-items:baseline;gap:8px;padding:0 4px 8px;font-size:12.5px;font-weight:600;color:var(--white-bright)}.group-head small{font:500 11.5px var(--font-mono);color:var(--gray-soft)}.group-head.danger{color:var(--danger)}.group-head.accent{color:var(--accent)}.done-section{margin-top:22px}.done-toggle{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--gray);font:500 13px var(--font-sans);cursor:pointer;padding:4px;margin-bottom:8px}.done-toggle span{font:500 11.5px var(--font-mono);color:var(--gray-soft)}.done-toggle:hover{color:var(--white-bright)}.empty{text-align:center;padding:56px 20px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--gray)}.empty.small{padding:28px 16px}.empty-ico{display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);margin-bottom:12px}.empty-ico .ico{width:20px;height:20px}.board{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px;align-items:start;overflow-x:auto;padding-bottom:8px}.column{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-height:160px;transition:border-color .15s,background .15s}.column.over{border-color:var(--accent);background:var(--accent-soft)}.column-head{display:flex;align-items:center;gap:8px;padding:4px 6px 10px;font-size:13px;font-weight:600;color:var(--white-bright)}.column-head small{margin-left:auto;font:500 11.5px var(--font-mono);color:var(--gray-soft)}.column-body{display:flex;flex-direction:column;gap:8px}.card-wrap{cursor:grab}.card-wrap.dragging{opacity:.4}.card-wrap .task{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.card-wrap .task:hover{border-color:var(--border-strong)}.column-empty{font-size:12px;color:var(--gray-soft);text-align:center;padding:18px 8px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.st-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.st-todo{background:var(--gray-soft)}.st-doing{background:var(--info)}.st-done{background:var(--ok)}.tp-title{display:flex;align-items:flex-start;gap:12px}.title-input{min-height:0;resize:none;border-color:transparent;padding:6px 8px;margin-left:-8px;font:600 18px/1.4 var(--font-sans);letter-spacing:-.01em;field-sizing:content;background:transparent}.title-input:hover{border-color:var(--border)}.due-row{display:flex;gap:6px}.due-row input{flex:1}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--border-strong);background:var(--bg-card);color:var(--gray);border-radius:999px;padding:4px 10px;font:500 12px var(--font-sans);cursor:pointer}.chip:hover{color:var(--accent);border-color:var(--accent)}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}.due-late{color:var(--danger)!important}.due-today{color:var(--accent)!important}.prio-ico.p1{color:var(--info)}.prio-ico.p2{color:var(--warn)}.prio-ico.p3{color:var(--danger)}.seg .ico{width:13px;height:13px}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font:500 11.5px var(--font-mono);border:0;cursor:pointer}.tag small{color:var(--gray-soft);font-size:10.5px;margin-left:2px}.sb-tags .tag{background:var(--bg-card);color:var(--gray);border:1px solid var(--border)}.sb-tags .tag:hover,.sb-tags .tag.on{color:var(--accent);border-color:var(--accent)}.tag button{border:0;background:none;color:inherit;cursor:pointer;display:inline-flex;opacity:.7}.tag button:hover{opacity:1}.tag .ico{width:11px;height:11px}.tag-input{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-card)}.tag-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--focus-ring)}.tag-input input{border:0;box-shadow:none!important;padding:3px 2px;flex:1;min-width:120px}.progress{height:4px;border-radius:999px;background:var(--bg-secondary);overflow:hidden}.progress div{height:100%;background:var(--ok);transition:width .25s}.subtasks{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.subtask{display:flex;align-items:center;gap:10px;padding:7px 8px 7px 12px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--white-bright)}.subtask:last-child{border-bottom:0}.subtask>span{flex:1;min-width:0;word-wrap:break-word}.subtask.done>span{color:var(--gray-soft);text-decoration:line-through}.subtask .btn-icon{opacity:0}.subtask:hover .btn-icon{opacity:1}.subtask.add{color:var(--gray-soft)}.subtask.add .ico{width:15px;height:15px;margin:0 1px}.subtask.add input{border:0;box-shadow:none!important;padding:2px 0;background:transparent}.assignee-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px;color:var(--gray);padding-top:4px}.assignee-line strong{color:var(--white-bright);font-weight:550}.task-meta-foot{font-size:11.5px;color:var(--gray-soft);line-height:1.6}.swatches{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;background:var(--sw);border:3px solid var(--bg-card);box-shadow:0 0 0 1px var(--border-strong);cursor:pointer}.swatch.on{box-shadow:0 0 0 2px var(--sw)}.swatch:disabled{cursor:default}.member-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.member{display:flex;align-items:center;gap:11px;padding:8px 12px 8px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.member.owner{cursor:default;background:var(--bg-secondary)}.member.on{border-color:var(--accent);background:var(--accent-soft)}.member>div{flex:1;min-width:0}.member strong{display:block;font-size:13.5px;font-weight:550;color:var(--white-bright)}.member small{font:400 11.5px var(--font-mono);color:var(--gray-soft)}.member-filter{margin-bottom:2px}.account-list{display:flex;flex-direction:column;gap:6px}.account-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;width:100%;padding:10px 12px 10px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;text-align:left;font-family:var(--font-sans);color:inherit}.account-row:hover{border-color:var(--accent)}.account-row.inactive{opacity:.62}.account-row .avatar{grid-row:span 2}.account-id{min-width:0}.account-id strong{display:block;font-size:13.5px;font-weight:600;color:var(--white-bright)}.account-id small{font:400 11.5px/1.4 var(--font-mono);color:var(--gray-soft)}.account-badges{display:flex;gap:6px}.account-last{grid-column:2 / 4;font-size:11.5px;color:var(--gray-soft)}.perm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.perm{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.perm:hover{border-color:var(--border-strong)}.perm.on{border-color:var(--accent);background:var(--accent-soft)}.perm input{width:auto;margin-top:3px;accent-color:var(--accent)}.perm .perm-txt strong{display:block;font-size:13px;font-weight:550;color:var(--white-bright)}.perm .perm-txt span{font-size:12px;color:var(--gray)}.mono-in{font-family:var(--font-mono);font-size:13px}.pwd-row{display:flex;gap:6px}.pwd-row input{flex:1;min-width:0}.pwd-row .btn-icon{width:40px;height:auto;flex-shrink:0}.account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.account-stats div{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column}.account-stats strong{font-size:20px;font-weight:700;color:var(--white-bright);line-height:1.2}.account-stats span{font-size:11.5px;color:var(--gray)}.card-block{border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card-block h3{font-size:14px;font-weight:650;color:var(--white-bright)}.backup-intro{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--white);font-size:13px;line-height:1.55}.backup-intro>.ico{color:var(--accent);width:18px;height:18px;margin-top:2px}.backup-intro code{font:500 12px var(--font-mono)}.backup-actions{display:flex;gap:8px;flex-wrap:wrap}.backup-list{display:flex;flex-direction:column;gap:6px}.backup-row{display:flex;align-items:center;gap:12px;padding:11px 12px 11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm)}.backup-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.backup-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.backup-title strong{font-size:13.5px;color:var(--white-bright);font-weight:600}.backup-main small{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backup-main small.mono{color:var(--gray-soft)}.backup-btns{display:flex;gap:4px;align-items:center}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:80;width:280px;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}.nav-open .sidebar{transform:none}.nav-open .nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#14151d61}.nav-btn{display:inline-flex}.topbar{padding:10px 16px}.content{padding:20px 16px 80px}.board{grid-template-columns:repeat(3,minmax(260px,82vw))}}@media(max-width:600px){.hide-sm{display:none}.view-title h1{font-size:20px}.quick-list{max-width:110px}.quick-row .btn{display:none}.row2,.perm-grid{grid-template-columns:1fr}.account-stats{grid-template-columns:1fr 1fr}.task .grip{display:none}.subtask .btn-icon{opacity:1}}.card-wrap .doing-badge{display:none}.twofa-step{display:flex;flex-direction:column}.twofa-step .field{margin-bottom:14px}.twofa-intro{font-size:13px;color:var(--gray);line-height:1.55;margin-bottom:14px}.twofa-intro strong{color:var(--white-bright)}.twofa-qr{display:block;margin:0 auto 12px;padding:8px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm)}.twofa-manual{margin-bottom:14px;font-size:12.5px;color:var(--gray)}.twofa-manual summary{cursor:pointer;text-align:center}.twofa-key{display:block;margin:8px 0 4px;padding:9px 12px;font:500 13px/1.5 var(--font-mono);letter-spacing:.08em;word-spacing:.2em;text-align:center;color:var(--white-bright);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all}.code-input{text-align:center;font:600 22px/1 var(--font-mono)!important;letter-spacing:.35em;padding:12px!important}.twofa-cancel{margin-top:8px}.login-card .twofa-cancel{background:none;border-color:transparent;color:var(--gray);font-weight:500}
