@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg-app: #F7F5F9;--color-surface: #FFFFFF;--color-surface-sunken: #F1EEF4;--color-border: #E4E0EA;--color-border-hover: #CFC9D8;--color-border-strong: #8E879A;--color-ink: #26262E;--color-ink-muted: #5C5866;--color-ink-subtle: #6E6A78;--color-primary: #4E0B72;--color-primary-hover: #3E085B;--color-primary-soft: #F3ECF7;--color-on-primary: #FFFFFF;--color-accent: #EF8900;--color-accent-ink: #A85A00;--color-danger: #B42318;--color-danger-soft: #FDECEA;--color-success: #0E7A3E;--color-success-soft: #E7F4EC;--color-warning-ink: #9A5200;--color-warning-soft: #FFF4E5;--color-overlay: rgba(38, 38, 46, .32);--brand-gradient: linear-gradient(135deg, #893285, #431F62);--font-sans: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(38, 38, 46, .06);--shadow-md: 0 4px 12px rgba(38, 38, 46, .1);--shadow-lg: 0 12px 32px rgba(38, 38, 46, .16);--appbar-h: 52px;--column-w: 296px;--row-h: 40px;--drawer-w: 880px;--dialog-w: 560px;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}#root{overflow-y:auto}body{background:var(--color-bg-app);color:var(--color-ink);font-family:var(--font-sans);font-size:14px;line-height:20px;font-weight:var(--weight-regular);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;color:var(--color-ink)}a{color:var(--color-primary)}svg{flex:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-48px;z-index:200;background:var(--color-primary);color:var(--color-on-primary);padding:8px 12px;border-radius:var(--radius-md);font-weight:600;text-decoration:none}.skip-link:focus{top:8px}input,select,textarea{font:inherit;font-size:14px;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:7px 10px;min-height:36px}input::placeholder,textarea::placeholder{color:var(--color-ink-subtle)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary)}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-sunken);color:var(--color-ink-muted);border-color:var(--color-border-hover);cursor:not-allowed}input[type=checkbox]{min-height:0;width:16px;height:16px;accent-color:var(--color-primary);margin:0}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235C5866' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}textarea{width:100%;min-height:72px;resize:vertical;line-height:20px}.full{width:100%}.input-icon{position:relative;display:flex;align-items:center;flex:1}.input-icon>svg{position:absolute;left:10px;color:var(--color-ink-subtle);pointer-events:none}.input-icon>input{padding-left:34px;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;font:inherit;font-size:13px;line-height:18px;font-weight:var(--weight-medium);white-space:nowrap;border-radius:var(--radius-md);border:1px solid var(--color-border-hover);background:var(--color-surface);color:var(--color-ink);cursor:pointer;text-decoration:none;transition:background-color .12s,border-color .12s}.btn:hover{background:var(--color-bg-app);border-color:var(--color-border-strong)}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--color-ink-muted)}.btn.ghost:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.btn.danger{color:var(--color-danger);border-color:var(--color-border-hover)}.btn.danger:hover{background:var(--color-danger-soft);border-color:var(--color-danger)}.btn.icon{width:32px;padding:0;background:transparent;border-color:transparent;color:var(--color-ink-muted)}.btn.icon:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.btn.small{height:28px;padding:0 10px;font-size:13px}.btn.icon.small{width:28px;padding:0}.btn.big{height:40px;font-size:14px;padding:0 16px;width:100%}.btn.disabled,.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.link{background:none;border:none;color:var(--color-ink);cursor:pointer;padding:0;font:inherit;text-align:left;display:inline-flex;align-items:center;gap:8px}.link:hover{color:var(--color-primary);text-decoration:underline}.muted{color:var(--color-ink-muted)}.subtle{color:var(--color-ink-subtle)}.small{font-size:12px;line-height:16px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.grow{flex:1;min-width:0}.center{display:grid;place-items:center;min-height:50vh;color:var(--color-ink-muted)}.error{display:flex;gap:8px;align-items:flex-start;background:var(--color-danger-soft);border:1px solid #F4C7C2;color:var(--color-danger);padding:8px 12px;border-radius:var(--radius-md);margin:8px 0;font-size:13px}.notice{display:flex;gap:8px;align-items:flex-start;background:var(--color-warning-soft);border:1px solid #F5D9B0;color:var(--color-warning-ink);padding:8px 12px;border-radius:var(--radius-md);margin:8px 0;font-size:13px}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--radius-sm);font-size:12px;line-height:16px;font-weight:var(--weight-medium);background:var(--color-surface-sunken);color:var(--color-ink-muted);border:1px solid var(--color-border);white-space:nowrap}.badge.owner{background:var(--color-primary-soft);color:var(--color-primary);border-color:transparent;font-weight:600}.badge.pending{background:var(--color-warning-soft);color:var(--color-warning-ink);border-color:#f5d9b0}.count-pill{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink-muted);font-size:12px;font-weight:600;border:1px solid var(--color-border)}.chip{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 6px;border-radius:var(--radius-sm);font-size:12px;line-height:16px;font-weight:600;white-space:nowrap}.chip-dot{width:6px;height:6px;border-radius:50%;flex:none}.chip-x{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:-2px;background:none;border:none;border-radius:3px;cursor:pointer;padding:0;color:inherit}.chip-x:hover{background:#26262e14}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:600;flex:none;letter-spacing:.02em}.avatar.unassigned{background:transparent;border:1px dashed var(--color-border-strong);color:var(--color-ink-subtle)}.who{display:inline-flex;align-items:center;gap:8px;min-width:0}.topbar{height:var(--appbar-h);display:flex;align-items:center;gap:16px;padding:0 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:relative;z-index:10}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--color-ink);text-decoration:none;font-weight:600;font-size:14px;border-radius:var(--radius-sm)}.brand img{height:22px;width:auto;display:block}.brand-sep{width:1px;height:20px;background:var(--color-border)}a.brand:hover .brand-product{text-decoration:underline}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-ink-muted);min-width:0}.crumbs a{color:var(--color-ink-muted);text-decoration:none;border-radius:var(--radius-sm)}.crumbs a:hover{color:var(--color-ink);text-decoration:underline}.crumbs [aria-current]{color:var(--color-ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-mid{flex:1;min-width:0}.topbar-user{display:flex;align-items:center;gap:10px;font-size:13px}.topbar-user .vsep{width:1px;height:20px;background:var(--color-border);margin:0 2px}.plan-page{display:flex;flex-direction:column;min-height:100%}.plan-header{flex:none;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 20px}.plan-row1{display:flex;align-items:center;gap:12px;min-height:56px;flex-wrap:wrap;padding:8px 0}.plan-row1 h1{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.01em}.plan-row2{display:flex;align-items:center;column-gap:8px;row-gap:0;flex-wrap:wrap}.plan-row2 .tabs{align-self:flex-end;margin-right:8px}.tabs{display:flex;gap:4px}.tab{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 8px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-ink-muted);cursor:pointer;font:inherit;font-size:13px;font-weight:500;margin-bottom:-1px}.tab:hover{color:var(--color-ink)}.tab[aria-current=page],.tab.active{color:var(--color-ink);font-weight:600;border-bottom-color:var(--color-primary)}.tab:focus-visible{outline-offset:-2px}.member-stack{display:flex;align-items:center;padding-left:6px}.member-stack .avatar{margin-left:-6px;box-shadow:0 0 0 2px var(--color-surface)}.member-stack .more{margin-left:4px;font-size:12px;color:var(--color-ink-muted)}.groupby{position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 0 0 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink-muted);font-size:13px;margin:4px 0 4px auto}.groupby:hover{background:var(--color-bg-app)}.groupby:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.groupby select{border:none;background-color:transparent;min-height:30px;height:30px;padding:0 30px 0 0;font-size:13px;font-weight:500;color:var(--color-ink);background-position:right 8px center}.groupby select:focus-visible{outline:none}.home{max-width:1120px;margin:0 auto;padding:24px 20px 48px}.home-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:16px}.home-head h1{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.01em}.list-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.list-head,.planner-tile{display:grid;grid-template-columns:minmax(220px,2.2fr) minmax(170px,1.3fr) 130px minmax(170px,1fr) 24px;align-items:center;gap:16px;padding:0 16px}.list-head{height:36px;background:var(--color-bg-app);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-ink-muted);font-weight:500}.planner-list{display:flex;flex-direction:column}.planner-tile{min-height:56px;color:var(--color-ink);text-decoration:none;border-bottom:1px solid var(--color-border)}.planner-tile:last-child{border-bottom:none}.planner-tile:hover{background:var(--color-bg-app)}.planner-tile:focus-visible{outline-offset:-2px}.tile-main{display:flex;align-items:center;gap:12px;min-width:0}.tile-icon{width:36px;height:36px;border-radius:var(--radius-md);display:grid;place-items:center;font-weight:600;font-size:13px;color:#fff;flex:none}.tile-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{height:6px;border-radius:var(--radius-full);background:var(--color-surface-sunken);overflow:hidden;flex:none}.progress>span{display:block;height:100%;background:var(--color-primary);border-radius:inherit}.tile-progress{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-ink-muted)}.tile-progress b{color:var(--color-ink);font-weight:600}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:32px 16px}.empty-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--color-primary-soft);color:var(--color-primary);display:grid;place-items:center;margin-bottom:4px}.empty h2{font-size:16px;line-height:24px;font-weight:600}.empty p{margin:0;font-size:13px;line-height:18px;color:var(--color-ink-muted);max-width:420px}.empty .row{justify-content:center;margin-top:8px}.empty-dashed{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);padding:48px 16px}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:100vh;padding:24px 16px;background:var(--color-bg-app)}.login-card{width:420px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:40px 36px 32px;display:flex;flex-direction:column;align-items:stretch;gap:14px;text-align:center}.login-logo{display:block;width:206px;height:auto;margin:0 auto 8px}.login-title{margin:0;font-size:24px;line-height:32px;font-weight:600;color:var(--color-ink)}.login-sub{margin:0 0 8px;color:var(--color-ink-muted);font-size:14px;line-height:20px}.login-alert{display:flex;gap:10px;text-align:left;padding:12px 14px;border-radius:var(--radius-md);background:var(--color-danger-soft);border:1px solid #F3C4BF;color:var(--color-danger)}.login-alert:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.login-alert svg{flex:none;margin-top:1px}.login-alert strong{display:block;font-size:14px;line-height:20px}.login-alert p{margin:2px 0 0;font-size:13px;line-height:18px;color:#7a1a12}.login-note{display:flex;gap:8px;align-items:flex-start;text-align:left;padding:10px 12px;border-radius:var(--radius-md);background:var(--color-primary-soft);border:1px solid #E2D3EC;color:var(--color-primary);font-size:13px;line-height:18px}.login-note svg{flex:none;margin-top:1px}.login-note.warn{background:var(--color-warning-soft);border-color:#f5d9b0;color:var(--color-warning-ink)}.btn-ms{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:48px;width:100%;padding:0 16px;border:1px solid #2F2F2F;border-radius:var(--radius-md);background:#2f2f2f;color:#fff;font:600 15px/1 var(--font-sans);text-decoration:none;cursor:pointer}.btn-ms:hover{background:#1f1f1f;border-color:#1f1f1f}.btn-ms:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px}.btn-ms.disabled,.btn-ms:disabled{background:#f1eef4;border-color:var(--color-border);color:var(--color-ink-subtle);cursor:not-allowed}.btn-ms.disabled svg,.btn-ms:disabled svg{opacity:.55}.login-hint{margin:0;color:var(--color-ink-muted);font-size:12px;line-height:16px}.login-foot{margin:0;color:var(--color-ink-subtle);font-size:12px}.dev-login{border-top:1px solid var(--color-border);padding-top:16px;margin-top:8px;text-align:left}.dev-login h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:600}.dev-login form{display:flex;flex-direction:column;gap:6px}.dev-login label{font-size:12px;font-weight:600;color:var(--color-ink-muted)}.dev-login input{height:36px}.dev-login button[type=submit]{height:36px;margin-top:6px}.dev-users{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:108px;overflow-y:auto;padding:2px}.dev-users-label{margin:12px 0 0;font-size:12px;font-weight:600;color:var(--color-ink-muted)}.plan-main{flex:1 0 auto;padding:16px 20px 0;overflow-x:auto;display:flex;flex-direction:column}.board{display:flex;gap:12px;align-items:flex-start;flex:1 0 auto;width:max-content;min-width:100%;padding-bottom:8px}.column{width:var(--column-w);flex:none;background:var(--color-surface-sunken);border-radius:var(--radius-lg);padding:8px;border:2px solid transparent}.column-over{border:2px dashed var(--color-primary);background:var(--color-primary-soft)}.column-head{display:flex;align-items:center;gap:8px;padding:4px 4px 6px;min-height:32px;color:var(--color-ink-muted)}.column-head h2{font-size:13px;line-height:18px;font-weight:600;color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-title{background:none;border:none;padding:0;margin:0;min-width:0;font:inherit;color:inherit;cursor:pointer;text-align:left;border-radius:var(--radius-sm)}.column-title:hover h2,.column-title:focus-visible h2{color:var(--color-primary)}.column-title:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.column-head .count-pill{margin-left:auto}.column-head .rename-bucket{flex:1;min-width:0}.column-head .rename-bucket input{min-width:0;width:100%;height:28px;min-height:28px;font-size:13px;font-weight:600;padding:0 8px}.column-head .rename-hint{display:none}.column-head .menu-wrap{flex:none}.column-body{display:flex;flex-direction:column;gap:8px;min-height:48px}.column-new{background:transparent;padding:0}.column-new input{width:100%;background:var(--color-surface);border-style:dashed}.add-task{display:flex;align-items:center;gap:6px;width:100%;height:32px;padding:0 8px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-ink-muted);cursor:pointer;font:inherit;font-size:13px;font-weight:500;margin-bottom:6px;text-align:left}.add-task:hover{background:var(--color-surface);color:var(--color-ink)}.add-task-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.add-task-title{width:100%;border:none;background:transparent;min-height:32px;padding:4px 6px;font-weight:500}.add-task-title:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.add-task-fields{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch}.add-task-status,.add-task-due,.add-task-assignee{position:relative;display:flex;align-items:center;min-width:0}.add-task-status .cell-icon,.add-task-due>svg,.add-task-assignee .avatar{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:1}.add-task-status .cell-icon{gap:0}.add-task-status select,.add-task-due input,.add-task-assignee select{height:28px;min-height:28px;font-size:12px;padding:0 24px 0 28px;width:auto}.add-task-due input{max-width:148px;padding-right:8px;position:relative}.add-task-due input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer}.add-task-assignee{flex:1 1 148px}.add-task-assignee select{width:100%}.grid-add td{padding:8px 12px;background:var(--color-bg-app)}.grid-add .add-task,.grid-add .add-task-form{margin-bottom:0;max-width:520px}.card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;cursor:pointer;transition:border-color .12s,box-shadow .12s}.card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.card-drag{cursor:grab}.card-drag:active{cursor:grabbing}.card-locked{cursor:pointer}.card.is-dragging{opacity:.9;box-shadow:var(--shadow-md);transform:rotate(2deg)}.card.static{cursor:default}.card.static:hover{border-color:var(--color-border);box-shadow:none}.card-labels{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.card-title{font-size:14px;line-height:20px;font-weight:500;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-done .card-title{text-decoration:line-through;color:var(--color-ink-subtle)}.card-bucket{display:flex;align-items:center;gap:4px;color:var(--color-ink-subtle);font-size:12px;line-height:16px;margin-top:4px}.card-note{margin:6px 0 0;font-size:12px;line-height:16px;color:var(--color-ink-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.card-checklist{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:2px}.card-checklist li{display:flex}.cl-toggle{display:flex;align-items:flex-start;gap:6px;width:100%;min-height:24px;padding:2px 4px;margin:0 -4px;background:none;border:none;border-radius:var(--radius-sm);font:inherit;font-size:13px;line-height:18px;color:var(--color-ink);text-align:left;cursor:pointer}.cl-toggle svg{margin-top:1px;color:var(--color-ink-muted)}.cl-toggle:hover:not(:disabled){background:var(--color-surface-sunken)}.cl-toggle:hover:not(:disabled) svg{color:var(--color-primary)}.cl-toggle[aria-checked=true] svg{color:var(--color-success)}.cl-toggle[aria-checked=true] .cl-text{text-decoration:line-through;color:var(--color-ink-subtle)}.cl-toggle:disabled{cursor:default;color:var(--color-ink-muted)}.cl-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.card-checklist li.done .cl-text{text-decoration:line-through}.card-footer{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--color-ink-muted);font-size:12px;line-height:16px;min-height:24px;flex-wrap:wrap}.meta{display:inline-flex;align-items:center;gap:4px}.date-overdue{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-weight:600}.overdue{color:var(--color-danger)!important;font-weight:600}.st-done{color:var(--color-success)}.st-prog{color:var(--color-primary)}.st-not{color:var(--color-ink-muted)}.prio-urgent{color:var(--color-danger)}.prio-important{color:var(--color-accent)}.prio-low{color:var(--color-ink-subtle)}.lock{color:var(--color-ink-subtle);display:inline-flex}.board-empty{margin-top:32px}.grid-wrap{flex:1;min-height:0;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.grid{border-collapse:collapse;width:100%;min-width:1100px;font-size:13px;line-height:18px}.grid thead th{text-align:left;font-weight:500;font-size:12px;color:var(--color-ink-muted);height:36px;padding:0 12px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg-app);z-index:1;white-space:nowrap}.grid td{height:var(--row-h);padding:0 12px;border-bottom:1px solid var(--color-border);vertical-align:middle;white-space:nowrap}.grid tbody tr:not(.grid-group):hover td{background:var(--color-bg-app)}.grid-group th{text-align:left;background:var(--color-surface-sunken);height:36px;padding:0 8px;border-bottom:1px solid var(--color-border);font-weight:600}.group-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:none;font:inherit;font-weight:600;color:var(--color-ink);cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm)}.group-toggle:hover{background:var(--color-surface)}.grid .task-name{display:inline-flex;align-items:center;gap:8px;font-weight:500}.grid .task-name.done span{text-decoration:line-through;color:var(--color-ink-subtle)}.cell-icon{display:inline-flex;align-items:center;gap:6px}.grid .labels-cell{display:flex;gap:4px;flex-wrap:nowrap}.grid td.ql{text-align:center;width:90px}.grid thead th.ql{text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:50;display:flex}.drawer-backdrop{justify-content:flex-end}.dialog-backdrop{align-items:flex-start;justify-content:center;padding:64px 16px 16px;overflow:auto}.drawer{width:min(var(--drawer-w),100vw);height:100%;background:var(--color-surface);box-shadow:var(--shadow-lg);display:grid;grid-template-columns:minmax(0,1fr) 300px;animation:drawer-in .18s ease-out}@keyframes drawer-in{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}.drawer-main{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--color-border)}.drawer-top{display:flex;align-items:center;gap:8px;height:48px;padding:0 12px 0 20px;border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-ink-muted)}.drawer-body{flex:1;overflow:auto;padding:16px 20px 24px}.drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-ink-muted)}.saved{display:inline-flex;align-items:center;gap:6px}.saved svg{color:var(--color-success)}.detail-title{width:100%;font-size:20px;line-height:28px;font-weight:600;background:transparent;border:1px solid transparent;padding:4px 6px;margin:0 -6px 8px;min-height:40px}.detail-title:hover:not(:disabled){border-color:var(--color-border-hover)}.detail-title:disabled{background:transparent;color:var(--color-ink);border-color:transparent;cursor:default}.labels-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px}.btn-add-label{height:24px;padding:0 8px;font-size:12px;border-style:dashed;border-radius:var(--radius-sm);color:var(--color-ink-muted)}.label-picker{position:relative}.menu{position:absolute;top:30px;left:0;z-index:5;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px;min-width:240px;box-shadow:var(--shadow-md)}.menu-item{display:flex;gap:8px;align-items:center;width:100%;background:none;border:none;color:var(--color-ink);padding:6px 8px;cursor:pointer;text-align:left;border-radius:var(--radius-sm);font:inherit;font-size:13px}.menu-label-row{display:flex;align-items:center;gap:2px}.menu-label-row .menu-item{flex:1;min-width:0}.menu-label-row .menu-item:disabled{opacity:.7;cursor:default}.menu-label-row .btn-rename-label{flex:none;width:24px;height:24px;color:var(--color-ink-muted)}.menu-label-row .btn-rename-label:hover,.menu-label-row .btn-rename-label:focus-visible{color:var(--color-primary)}.menu-label-row .rename-label{flex:1;min-width:0}.menu-label-row .rename-label input{height:28px;min-height:28px;font-size:13px;padding:0 8px;width:100%}.menu-label-row .rename-hint{display:none}.menu-item:hover{background:var(--color-bg-app)}.menu-new{border-top:1px solid var(--color-border);margin-top:6px;padding-top:8px}.menu-new input{width:100%}.swatches{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.swatch{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-surface);box-shadow:0 0 0 1px var(--color-border);cursor:pointer;padding:0}.swatch.sel{box-shadow:0 0 0 2px var(--color-ink)}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.fields label{display:flex;flex-direction:column;gap:6px;min-width:0}.fields label>span{color:var(--color-ink-muted);font-size:12px;line-height:16px;font-weight:600}.fields select,.fields input{width:100%}.field-assignee{position:relative}.field-assignee .avatar{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none}.field-assignee select{padding-left:38px}.section{margin-top:24px}.section h3,.history h3,.dialog h2{font-size:16px;line-height:24px;font-weight:600}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.section-head h3{display:flex;align-items:center;gap:8px}.inline{display:inline-flex;align-items:center;gap:8px;color:var(--color-ink-muted);font-size:13px;cursor:pointer}.cl-progress{height:4px;margin-bottom:8px}.checklist{list-style:none;padding:0;margin:0 0 8px}.checklist li{display:flex;align-items:center;gap:10px;min-height:36px;padding:2px 4px;border-radius:var(--radius-sm)}.checklist li:hover{background:var(--color-bg-app)}.checklist li span.cl-item{flex:1;font-size:13px}.checklist li.done span.cl-item{text-decoration:line-through;color:var(--color-ink-subtle)}.checklist li input.cl-edit{flex:1;min-height:30px;height:30px;font-size:13px}.add-item{position:relative;display:flex;align-items:center}.add-item svg{position:absolute;left:10px;color:var(--color-ink-subtle);pointer-events:none}.add-item input{width:100%;padding-left:34px;border-style:dashed}.history{background:var(--color-bg-app);display:flex;flex-direction:column;min-height:0}.history-head{display:flex;align-items:center;gap:8px;height:48px;padding:0 16px;border-bottom:1px solid var(--color-border);font-size:13px;font-weight:600}.history ul{list-style:none;margin:0;padding:16px;display:flex;flex-direction:column;gap:16px;overflow:auto}.history li{display:flex;gap:10px;font-size:13px;line-height:18px}.history b{font-weight:600}.dialog{width:min(var(--dialog-w),100%);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:calc(100vh - 80px)}.dialog-head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 12px}.dialog-head p{margin:2px 0 0;font-size:13px;color:var(--color-ink-muted)}.dialog-body{padding:4px 20px 16px;overflow:auto;display:flex;flex-direction:column;gap:12px}.dialog-foot{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-ink-muted)}.field-label{font-size:12px;font-weight:600;color:var(--color-ink-muted)}.invite-form{display:flex;gap:8px}.members{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.members li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--color-border)}.members li:last-child{border-bottom:none}.members.audit li{padding:6px 0}.members .name{font-size:14px;font-weight:500}.invite-avatar{width:32px;height:32px;border-radius:50%;border:1px dashed var(--color-border-strong);display:grid;place-items:center;color:var(--color-ink-muted);flex:none}.share-actions{display:flex;gap:8px;flex-wrap:wrap}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--color-ink);color:#fff;padding:10px 16px;border-radius:var(--radius-md);z-index:100;box-shadow:var(--shadow-md);font-size:13px;max-width:calc(100vw - 32px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.card.is-dragging{transform:none}}@media (max-width: 960px){.drawer{grid-template-columns:minmax(0,1fr);overflow:auto}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.list-head{display:none}.planner-tile{grid-template-columns:1fr;gap:6px;padding:12px 16px}}.account{display:flex;flex-direction:column;gap:16px}.account .home-head{margin-bottom:0}.account-card{padding:16px;overflow:visible}.account-h2{display:flex;align-items:center;gap:8px;font-size:16px;line-height:24px;font-weight:600;margin:0 0 12px}.account-h3{font-size:14px;line-height:20px;font-weight:600;margin:0}.token-form{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.token-form .btn{margin-top:22px}.token-field{display:flex;flex-direction:column;gap:4px}.token-field input{width:300px}.token-field select{width:220px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.token-reveal{margin-top:16px;padding:12px;border:1px solid #A6D9B8;background:var(--color-success-soft);border-radius:var(--radius-md)}.token-reveal:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.token-reveal-head{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--color-success);margin-bottom:8px}.token-row{gap:8px;flex-wrap:wrap}.token-row input{flex:1 1 420px;min-width:280px;background:var(--color-surface)}.table-wrap{overflow-x:auto}.token-table{width:100%;border-collapse:collapse;font-size:13px}.token-table th{text-align:left;font-size:12px;font-weight:500;color:var(--color-ink-muted);background:var(--color-bg-app);padding:8px 12px;border-bottom:1px solid var(--color-border)}.token-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.token-table tr:last-child td{border-bottom:none}.token-table tr[data-status=revoked] td,.token-table tr[data-status=expired] td{color:var(--color-ink-muted)}.token-actions{text-align:right;white-space:nowrap}.badge.tok-active{background:var(--color-success-soft);color:var(--color-success);border-color:transparent}.badge.tok-revoked{background:var(--color-danger-soft);color:var(--color-danger);border-color:transparent}.badge.tok-expired{background:var(--color-warning-soft);color:var(--color-warning-ink);border-color:transparent}.badge.via-mcp{background:var(--color-primary-soft);color:var(--color-primary);border-color:transparent;vertical-align:1px}.config-block{margin-top:12px}.config-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.config-block pre{margin:0;padding:12px;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;white-space:pre;line-height:1.5;color:var(--color-ink)}.config-block pre:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.notif-table th.notif-ev{font-size:13px;font-weight:400;color:var(--color-ink);background:none;padding:8px 12px;border-bottom:1px solid var(--color-border)}.notif-table tr:last-child th.notif-ev{border-bottom:none}.notif-col{width:160px;text-align:center!important}.notif-col .badge{margin-top:4px}.notif-ch{display:inline-flex;align-items:center;gap:6px}th.notif-col{vertical-align:top}th.notif-col>.notif-ch,th.notif-col>.badge{display:flex;justify-content:center;margin-left:auto;margin-right:auto;width:fit-content}.notif-check{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.notif-check:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.badge.notif-sent{background:var(--color-success-soft);color:var(--color-success);border-color:transparent}.badge.notif-failed{background:var(--color-danger-soft);color:var(--color-danger);border-color:transparent}.badge.notif-pending{background:var(--color-warning-soft);color:var(--color-warning-ink);border-color:transparent}.title-editable{cursor:text;border-radius:var(--radius-sm);padding:0 4px;margin:0 -4px}.title-editable:hover{background:var(--color-surface-sunken)}.rename-form{display:inline-flex;flex-direction:column;gap:2px;min-width:0}.rename-form input{min-width:280px}.rename-title input{font-size:20px;line-height:28px;font-weight:600;height:38px;width:min(520px,60vw)}.rename-hint{font-size:12px;color:var(--color-ink-subtle)}.rename-error{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-danger)}.menu-wrap{position:relative;display:inline-flex}.menu.right{left:auto;right:0;top:34px;min-width:180px}.menu-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.planner-row{display:flex;align-items:center;border-bottom:1px solid var(--color-border)}.planner-row:last-child{border-bottom:none}.planner-row .planner-tile{flex:1;min-width:0;border-bottom:none}.planner-row .row-actions{width:44px;display:inline-flex;justify-content:center}.planner-row.renaming{gap:12px;padding:10px 16px;min-height:56px}.list-head{padding-right:60px}.complete-toggle{display:inline-grid;place-items:center;width:24px;height:24px;padding:0;background:none;border:none;border-radius:var(--radius-full);color:var(--color-ink-muted);cursor:pointer;flex:none}.complete-toggle:hover:not(:disabled){background:var(--color-surface-sunken);color:var(--color-primary)}.complete-toggle[aria-checked=true]{color:var(--color-success)}.complete-toggle:disabled{cursor:default}.complete-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.grid .task-cell{display:inline-flex;align-items:center;gap:6px}.teams-config{max-width:640px}.teams-config h1{font-size:20px;line-height:28px;margin:0 0 4px}.teams-config .login-note{margin:12px 0}.teams-config select{display:block;width:100%;max-width:420px;height:36px;margin-top:4px}.teams-preview{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--color-ink-muted);font-size:13px;margin-top:12px}.teams-preview code{font-size:12px;background:var(--color-surface-sunken);padding:1px 4px;border-radius:var(--radius-sm)}.avatar.photo{padding:0;overflow:hidden;background:var(--color-surface-sunken)}.avatar.photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.card.card-compact{padding:0 10px 0 8px}.card-compact-row{display:flex;align-items:center;gap:8px;min-height:38px}.card-compact .card-title{flex:1;min-width:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;line-height:18px;font-weight:400;text-decoration:line-through;color:var(--color-ink-subtle)}.card-compact .complete-toggle{width:24px;height:24px;margin-left:-2px}.card.card-selected,.card.card-selected:hover{border:2px solid var(--color-primary);padding:11px}.card.card-compact.card-selected{padding:0 9px 0 7px}.btn[aria-expanded=true]{background:var(--color-primary-soft);border-color:var(--color-primary);color:var(--color-primary)}.grid td .cell-icon svg,.grid td .date-overdue svg{flex:none}.grid td .cell-icon>svg[class*=calendar]{color:var(--color-ink-subtle)}.member-stack .avatar{position:relative}.member-stack .avatar.photo{box-shadow:0 0 0 2px var(--color-surface)}.dialog-danger{--dialog-w: 440px}.dialog-new-planner{--dialog-w: 420px}.new-planner-name{display:flex;align-items:center;gap:8px}.new-planner-name input{flex:1;min-width:0}.danger-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:999px;background:var(--color-danger-soft);color:var(--color-danger)}.delete-name{margin:0;font-size:14px;color:var(--color-ink)}.delete-list{margin:0;padding-left:18px;font-size:13px;color:var(--color-ink-muted);display:flex;flex-direction:column;gap:4px}.dialog-actions{justify-content:flex-end}.btn.danger-solid{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn.danger-solid:hover:not(:disabled){filter:brightness(.92)}.btn.danger-solid:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.menu-item.danger{color:var(--color-danger)}.menu-item.danger:hover{background:var(--color-danger-soft)}.menu-sep{height:1px;background:var(--color-border);margin:4px 0}.plan-filters{display:contents}.plan-row2 .filter-search,.plan-row2 .filter-mine,.plan-row2 .filter-pop-wrap,.plan-row2 .filter-chips,.plan-row2 .filter-clear,.plan-row2 .filter-count{margin:4px 0}.filter-search{flex:0 1 180px;min-width:140px}.filter-search>input{min-height:30px;height:30px;font-size:13px}.filter-pop-wrap{position:relative}.filter-panel{position:absolute;top:34px;left:0;z-index:20;width:min(760px,calc(100vw - 40px));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.filter-switch{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--color-border);cursor:pointer;font-size:13px}.filter-switch input{position:absolute;opacity:0;width:34px;height:20px;margin:0;left:16px;top:12px;cursor:pointer}.filter-switch-track{flex:none;position:relative;width:34px;height:20px;border-radius:999px;background:var(--color-border-strong);transition:background-color .15s ease}.filter-switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--color-surface);box-shadow:0 1px 2px #26262e40;transition:transform .15s ease}.filter-switch input:checked+.filter-switch-track{background:var(--color-primary)}.filter-switch input:checked+.filter-switch-track .filter-switch-thumb{transform:translate(14px)}.filter-switch input:focus-visible+.filter-switch-track{outline:2px solid var(--color-primary);outline-offset:2px}.filter-switch-text{display:flex;flex-direction:column;gap:2px;font-weight:500;color:var(--color-ink)}.filter-switch-text .small{font-weight:400}@media (prefers-reduced-motion: reduce){.filter-switch-track,.filter-switch-thumb{transition:none}}.filter-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;padding:16px;max-height:min(62vh,520px);overflow:auto}.filter-group{border:none;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:2px}.filter-group legend{font-size:12px;font-weight:600;color:var(--color-ink-muted);padding:0;margin-bottom:6px}.filter-opt{display:flex;align-items:center;gap:8px;min-height:28px;padding:0 6px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.filter-opt:hover{background:var(--color-bg-app)}.filter-opt span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-panel-foot{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--color-border);background:var(--color-bg-app);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.filter-count{white-space:nowrap}.filter-count:empty{display:none}.filter-chips{position:relative;flex:1 1 120px;min-width:0;display:flex;align-items:center;gap:6px}.filter-chips>ul{display:flex;flex-wrap:nowrap;gap:6px;list-style:none;margin:0;padding:0;min-width:0;overflow:hidden}.filter-chips-measure{position:absolute;left:0;top:0;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none;display:flex;gap:6px;list-style:none;margin:0;padding:0}.filter-chip{flex:none}.filter-more{height:24px;min-height:24px;padding:0 8px;font-size:12px;font-weight:600}.filter-more-pop{position:absolute;top:30px;left:0;z-index:20;min-width:220px;max-width:min(420px,calc(100vw - 40px));padding:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.filter-more-pop ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}.filter-chip{height:24px;padding:0 4px 0 8px;background:var(--color-primary-soft);color:var(--color-primary);font-weight:500;gap:4px}.filter-chip .subtle{color:var(--color-ink-muted);font-weight:400}.filter-chip .chip-x{width:18px;height:18px}.filter-chip .chip-x:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.filter-empty{margin:32px auto 0;max-width:560px}.grid thead th[data-sort-key]{padding:0 6px}.th-sort{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 6px;background:none;border:none;border-radius:var(--radius-sm);font:inherit;font-weight:500;font-size:12px;color:var(--color-ink-muted);cursor:pointer;white-space:nowrap}.th-sort:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.th-sort:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.th-sort.active{color:var(--color-primary);font-weight:600}.th-sort .th-sort-idle{opacity:0;transition:opacity .12s}.th-sort:hover .th-sort-idle,.th-sort:focus-visible .th-sort-idle{opacity:.7}@media (prefers-reduced-motion: reduce){.th-sort .th-sort-idle{transition:none}}.version-link{font-size:12px;color:var(--color-ink-subtle);text-decoration:none;padding:2px 6px;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}.version-link:hover{color:var(--color-primary);background:var(--color-primary-soft);text-decoration:underline}.novidades{max-width:760px;margin:0 auto;padding:24px 20px 64px}.novidades:focus{outline:none}.nov-head{display:flex;gap:16px;align-items:center;margin-bottom:16px}.nov-head h1{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.01em}.nov-head h1:focus{outline:none}.nov-head p{margin:2px 0 0;font-size:13px}.nov-head code,.md code{font-size:12px;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 4px}.nov-toc ul{display:flex;gap:8px;flex-wrap:wrap;list-style:none;margin:0 0 16px;padding:0}.nov-toc a{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-ink-muted);font-size:13px;text-decoration:none}.nov-toc a:hover{border-color:var(--color-primary);color:var(--color-primary)}.nov-release{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;scroll-margin-top:16px}.nov-release h2{display:flex;align-items:center;gap:8px;font-size:16px;line-height:24px;font-weight:600;margin-bottom:4px}.nov-release h2:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.md h3{font-size:14px;line-height:20px;font-weight:600;margin:16px 0 6px;color:var(--color-ink)}.md p,.md li{font-size:13px;line-height:20px;color:var(--color-ink-muted)}.md p{margin:6px 0}.md ul,.md ol{margin:4px 0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.md strong{color:var(--color-ink);font-weight:600}.md a{color:var(--color-primary)}.md pre{background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:10px 12px;overflow:auto;font-size:12px}.md pre code{border:none;background:none;padding:0}.md hr{border:none;border-top:1px solid var(--color-border);margin:16px 0}.comments .comment-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:12px}.comment{display:flex;gap:10px;align-items:flex-start}.comment .avatar{flex:none;margin-top:2px}.comment-bubble{flex:1;min-width:0;background:var(--color-bg-app);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:8px 12px}.comment.mine .comment-bubble{background:var(--color-primary-soft);border-color:transparent}.comment-meta{display:flex;align-items:center;gap:8px;min-height:24px;font-size:12px;color:var(--color-ink-subtle)}.comment-author{font-size:13px;font-weight:var(--weight-semibold);color:var(--color-ink)}.comment-edited{font-style:italic}.comment-actions{margin-left:auto;display:inline-flex;gap:2px;opacity:.65}.comment:hover .comment-actions,.comment-actions:focus-within{opacity:1}.comment-body{font-size:13px;line-height:20px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-ink)}.comment.removed{padding:6px 12px 6px 38px;font-size:12px;color:var(--color-ink-subtle);gap:8px;align-items:center}.comment-removed{font-style:italic}.comment.removed .comment-time{font-size:11px}.comment-edit textarea,.comment-composer textarea{min-height:56px;font-size:13px}.comment-edit-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.comment-composer{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.comments-empty{margin:0 0 12px}.teams-url{display:block;width:100%;word-break:break-all;margin-top:4px}
