:root{--bg: #f6f7f9;--surface: #ffffff;--surface-raised: #ffffff;--surface-sunken: #f1f2f5;--surface-hover: #e7e9ee;--surface-pressed: #dcdfe5;--list: #f1f2f5;--modal-bg: #f4f5f7;--border: #dcdfe5;--border-strong: #b9bec8;--text: #182444;--text-subtle: #5a6478;--text-subtlest: #8790a1;--accent: #2d5bd7;--accent-hover: #2148b8;--accent-subtle: #e8eefc;--accent-text: #ffffff;--focus: #4a7cf0;--success: #1f845a;--success-subtle: #dcfff1;--warning: #a77800;--warning-subtle: #fff4cc;--warning-bg: #f5cd47;--danger: #c9372c;--danger-subtle: #ffecea;--overlay: rgba(14, 22, 44, .55);--shadow-card: 0 1px 1px rgba(14, 30, 66, .22), 0 0 1px rgba(14, 30, 66, .3);--shadow-pop: 0 10px 24px rgba(14, 30, 66, .18), 0 0 1px rgba(14, 30, 66, .32);--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--header-h: 48px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1b1f24;--surface: #23282e;--surface-raised: #2a3038;--surface-sunken: #161a1e;--surface-hover: #323942;--surface-pressed: #3b434d;--list: #121518;--modal-bg: #2a3038;--border: #3a434d;--border-strong: #56616d;--text: #d3dbe6;--text-subtle: #9eabbb;--text-subtlest: #7d8999;--accent: #7c9ef6;--accent-hover: #9ab4fa;--accent-subtle: #1d2a4b;--accent-text: #0d1630;--focus: #8fb0ff;--success: #4bce97;--success-subtle: #133527;--warning: #f5cd47;--warning-subtle: #3a3112;--warning-bg: #f5cd47;--danger: #f87168;--danger-subtle: #3f1d1a;--overlay: rgba(4, 6, 10, .7);--shadow-card: 0 1px 1px rgba(0, 0, 0, .4), 0 0 1px rgba(0, 0, 0, .5);--shadow-pop: 0 10px 28px rgba(0, 0, 0, .45), 0 0 1px rgba(255, 255, 255, .12);color-scheme:dark}}:root[data-theme=dark]{--bg: #1b1f24;--surface: #23282e;--surface-raised: #2a3038;--surface-sunken: #161a1e;--surface-hover: #323942;--surface-pressed: #3b434d;--list: #121518;--modal-bg: #2a3038;--border: #3a434d;--border-strong: #56616d;--text: #d3dbe6;--text-subtle: #9eabbb;--text-subtlest: #7d8999;--accent: #7c9ef6;--accent-hover: #9ab4fa;--accent-subtle: #1d2a4b;--accent-text: #0d1630;--focus: #8fb0ff;--success: #4bce97;--success-subtle: #133527;--warning: #f5cd47;--warning-subtle: #3a3112;--warning-bg: #f5cd47;--danger: #f87168;--danger-subtle: #3f1d1a;--overlay: rgba(4, 6, 10, .7);--shadow-card: 0 1px 1px rgba(0, 0, 0, .4), 0 0 1px rgba(0, 0, 0, .5);--shadow-pop: 0 10px 28px rgba(0, 0, 0, .45), 0 0 1px rgba(255, 255, 255, .12);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.43;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:1.25;text-wrap:balance}h1{font-size:24px;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:15px;font-weight:600}p{margin:0}a{color:var(--accent)}button{font:inherit;color:inherit}img{max-width:100%}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}kbd{display:inline-block;min-width:22px;padding:1px 6px;border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--radius-sm);background:var(--surface);font-family:var(--font-mono);font-size:12px;text-align:center}code{font-family:var(--font-mono);font-size:.92em;background:var(--surface-sunken);padding:1px 4px;border-radius:3px}.muted{color:var(--text-subtle)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-success{color:var(--success)}.req{color:var(--danger);font-style:normal}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row--between{justify-content:space-between}.row--fill>*{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:12px}.center-pad{display:grid;place-items:center;padding:48px}.fullscreen-center{min-height:100%;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-left,0px))}.setup-card{max-width:460px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 12px;border:0;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text);font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:active:not(:disabled){background:var(--surface-pressed)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-text)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger);filter:brightness(.92)}.btn--subtle{background:transparent}.btn--checked{background:var(--accent-subtle);color:var(--accent)}.btn--sm{min-height:28px;padding:4px 10px;font-size:13px}.btn--lg{min-height:40px;font-size:15px}.btn--block{width:100%}.btn--onbg{background:#ffffffe6;color:#172b4d}.btn--onbg:hover:not(:disabled){background:#fff}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;cursor:pointer;flex:none}.icon-btn:hover{background:var(--surface-hover)}.icon-btn--sm{width:26px;height:26px}.link{border:0;background:none;padding:0;color:var(--text-subtle);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font-size:inherit}.link:hover{color:var(--text)}.link--danger{color:var(--danger)}.input,.select,.textarea{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.textarea{resize:vertical;line-height:1.45}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--focus);box-shadow:inset 0 0 0 1px var(--focus)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-sunken);color:var(--text-subtle)}.input--sm,.select--sm{min-height:30px;padding:4px 8px;font-size:13px;width:auto}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span:first-child,.field>label:first-child{font-size:12px;font-weight:600;color:var(--text-subtle)}.field small{font-size:12px}.field--narrow{flex:0 0 96px!important}.check{display:flex;align-items:center;gap:8px;cursor:pointer}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex:none}.form-error{color:var(--danger);background:var(--danger-subtle);padding:8px 10px;border-radius:var(--radius-sm)}.form-notice{color:var(--success);background:var(--success-subtle);padding:8px 10px;border-radius:var(--radius-sm)}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle__track{width:32px;height:18px;border-radius:9px;background:var(--border-strong);position:relative;flex:none;transition:background .15s}.toggle__thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s}.toggle input:checked+.toggle__track{background:var(--success)}.toggle input:checked+.toggle__track .toggle__thumb{transform:translate(14px)}.toggle input:focus-visible+.toggle__track{outline:2px solid var(--focus);outline-offset:2px}.toggle--disabled{opacity:.6;cursor:not-allowed}.segmented{display:inline-flex;background:var(--surface-sunken);border-radius:var(--radius);padding:3px;gap:2px}.segmented--wide{display:flex}.segmented--wide .segmented__btn{flex:1}.segmented__btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-subtle)}.segmented__btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.pill{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:var(--surface-sunken);color:var(--text-subtle);font-size:12px;font-weight:500;font-style:normal;white-space:nowrap}.pill--onbg{background:#00000059;color:#fff}.chip{display:inline-flex;align-items:center;gap:4px;border:0;padding:1px 6px;border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:12px;cursor:pointer}.chip--danger{background:var(--danger);color:#fff}.callout{background:var(--accent-subtle);border-radius:var(--radius);padding:10px 12px}.spinner{display:inline-block;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}*{transition:none!important}}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:24px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.avatar{position:relative;display:inline-grid;place-items:center;flex:none;border-radius:50%;color:#fff;font-weight:650;overflow:visible;border:0;padding:0;line-height:1}.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.avatar--btn{cursor:pointer}.avatar--btn:hover{filter:brightness(.92)}.avatar--more{background:var(--surface-hover);color:var(--text);font-size:11px;width:24px;height:24px}.avatar__badge{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 6l3-3 3 3' stroke='white' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") center/8px no-repeat;border:1.5px solid var(--surface)}.avatar__badge--observer{background:var(--text-subtle)}.avatar-stack{display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-6px}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface)}.label-chip{display:inline-flex;align-items:center;min-height:24px;min-width:48px;max-width:100%;padding:0 10px;border:0;border-radius:var(--radius-sm);font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.label-chip{cursor:pointer}button.label-chip:hover{filter:brightness(.94)}.label-chip--none{background:var(--surface-sunken);color:var(--text-subtle);box-shadow:inset 0 0 0 1px var(--border)}.label-chip--fill{flex:1}.label-chip--row{min-height:32px}.label-chip--lg{min-height:32px;font-size:13px}.label-chip--compact{min-width:40px;min-height:8px;padding:0}.swatches{display:grid;gap:6px}.swatches--5{grid-template-columns:repeat(5,1fr)}.swatch{height:32px;border:0;border-radius:var(--radius-sm);cursor:pointer;display:grid;place-items:center;color:#fff}.swatch--wide{height:32px}.swatch:hover{filter:brightness(.94)}.swatch--active{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--focus)}.popover{position:fixed;z-index:1000;background:var(--surface);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow-pop);overflow-y:auto;overscroll-behavior:contain}.popover__head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;padding:6px 8px 0}.popover__title{text-align:center;font-size:14px;font-weight:600;color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover__spacer{width:26px}.popover__body{padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px}.popover__text{color:var(--text-subtle);font-size:13px}.popover__label{font-size:12px;font-weight:600;color:var(--text-subtle);margin-top:4px}.popover__sep{height:1px;background:var(--border);margin:4px 0}.menu-item{display:flex;align-items:flex-start;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;flex-wrap:wrap}.menu-item:hover:not(:disabled){background:var(--surface-hover)}.menu-item:disabled{opacity:.5;cursor:default}.menu-item__icon{display:inline-grid;place-items:center;width:18px;height:20px;color:var(--text-subtle)}.menu-item__text{flex:1;min-width:0}.menu-item__hint{flex-basis:100%;padding-left:28px;font-size:12px;color:var(--text-subtle)}.menu-item--active{background:var(--accent-subtle);color:var(--accent)}.menu-item--danger,.menu-item--danger .menu-item__icon{color:var(--danger)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--overlay);overflow-y:auto;display:flex;justify-content:center;align-items:flex-start;padding:48px max(16px,env(safe-area-inset-left,0px)) 48px max(16px,env(safe-area-inset-right,0px))}.modal{position:relative;width:100%;background:var(--modal-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop)}.modal__head{padding:20px 56px 4px 24px}.modal__body{padding:16px 24px 24px;display:flex;flex-direction:column;gap:12px}.modal__close{position:absolute;top:10px;right:10px;z-index:2}.calendar__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar__dow{font-size:11px;font-weight:600;color:var(--text-subtle);text-align:center;padding:2px 0}.calendar__day{border:0;background:transparent;height:32px;border-radius:var(--radius-sm);cursor:pointer;font-variant-numeric:tabular-nums}.calendar__day:hover{background:var(--surface-hover)}.calendar__day--muted{color:var(--text-subtlest)}.calendar__day--today{color:var(--accent);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}.calendar__day--range{background:var(--accent-subtle)}.calendar__day--selected{background:var(--accent);color:var(--accent-text)}.calendar__day--selected:hover{background:var(--accent-hover)}.toasts{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:2000;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-radius:var(--radius);background:#1e2a44;color:#fff;box-shadow:var(--shadow-pop);animation:toast-in .18s ease-out}.toast--error{background:#8a241b}.toast--success{background:#165c3e}.toast__text{flex:1}.toast__action{border:0;background:#ffffff2e;color:#fff;border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;font-weight:600}.toast .icon-btn:hover{background:#ffffff26}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.md{overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md pre,.md blockquote,.md table{margin:0 0 8px}.md h1,.md h2,.md h3{margin:12px 0 6px}.md h1{font-size:20px}.md h2{font-size:17px}.md ul,.md ol{padding-left:22px}.md pre{background:var(--surface-sunken);padding:10px;border-radius:var(--radius-sm);overflow-x:auto}.md pre code{background:none;padding:0}.md blockquote{border-left:3px solid var(--border-strong);padding-left:10px;color:var(--text-subtle)}.md img{border-radius:var(--radius-sm)}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:4px 8px}.md hr{border:0;border-top:1px solid var(--border)}.mention{background:var(--accent-subtle);color:var(--accent);border-radius:3px;padding:0 3px;font-weight:600}.page{min-height:100%;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:50;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--border);flex:none}.app-header__left,.app-header__right{display:flex;align-items:center;gap:4px;min-width:0}.app-header__right{gap:6px}.app-header__nav{display:flex;gap:2px;margin-left:8px}.app-header__create{margin-left:6px}.app-header__icon{position:relative;border-radius:50%}.app-header__icon.is-open{background:var(--accent-subtle);color:var(--accent)}.nav-btn{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;font-weight:500;color:var(--text-subtle);cursor:pointer;text-decoration:none}.nav-btn:hover,.nav-btn.is-open{background:var(--surface-hover);color:var(--text)}.app-header--board{background:#0a0e1659;border-bottom-color:#ffffff1f;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-header--board .nav-btn,.app-header--board .logo,.app-header--board .icon-btn{color:#fff}.app-header--board .nav-btn:hover,.app-header--board .nav-btn.is-open,.app-header--board .icon-btn:hover,.app-header--board .app-header__icon.is-open{background:#fff3;color:#fff}.app-header--board .search{background:#fff3;border-color:#ffffff4d}.app-header--board .search__input{color:#fff}.app-header--board .search__input::placeholder,.app-header--board .search__icon{color:#ffffffd9}.app-header--board .search--open{background:var(--surface)}.app-header--board .search--open .search__input{color:var(--text)}.app-header--board .search--open .search__icon{color:var(--text-subtle)}.logo{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:16px;letter-spacing:-.01em;white-space:nowrap}.logo__bg{color:var(--accent)}.app-header--board .logo__bg{color:#ffffff40}.logo__text b{font-weight:750}.logo--large{font-size:22px}.logo-link{text-decoration:none;padding:4px 6px;border-radius:var(--radius-sm)}.logo-link:hover{background:var(--surface-hover)}.app-header--board .logo-link:hover{background:#ffffff26}.search{position:relative;display:flex;align-items:center;width:220px;height:32px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);transition:width .15s}.search--open{width:380px}.search__icon{position:absolute;left:9px;color:var(--text-subtle);pointer-events:none}.search__input{flex:1;min-width:0;height:100%;border:0;background:transparent;padding:0 28px 0 30px;font:inherit;color:var(--text)}.search__input:focus{outline:none}.search__clear{position:absolute;right:3px}.search__panel{position:absolute;top:calc(100% + 6px);right:0;width:min(440px,calc(100vw - 24px));max-height:70vh;overflow-y:auto;background:var(--surface);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:10px;display:flex;flex-direction:column;gap:2px}.search-hit{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer}.search-hit:hover,.search-hit.is-active{background:var(--surface-hover)}.search-hit__body{display:flex;flex-direction:column;min-width:0}.search-hit__title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-hit__meta{font-size:12px;color:var(--text-subtle)}.bell-dot{position:absolute;top:2px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}.notif-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.notif-list{display:flex;flex-direction:column;gap:4px}.notif{position:relative;display:flex;align-items:flex-start;border-radius:var(--radius)}.notif:hover{background:var(--surface-sunken)}.notif__main{flex:1;display:flex;gap:10px;align-items:flex-start;border:0;background:transparent;text-align:left;padding:8px;cursor:pointer;min-width:0}.notif__body{display:flex;flex-direction:column;gap:2px;min-width:0}.notif__text{font-size:13px}.notif__excerpt{font-size:13px;color:var(--text-subtle);background:var(--surface-sunken);border-radius:var(--radius-sm);padding:4px 8px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif__meta{display:flex;gap:8px;font-size:12px;color:var(--text-subtle)}.notif__bell{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--surface-sunken);color:var(--text-subtle)}.notif__dot{margin:14px 8px 0 0;width:10px;height:10px;flex:none;border-radius:50%;border:2px solid var(--border-strong);background:transparent;cursor:pointer}.notif--unread .notif__dot{background:var(--accent);border-color:var(--accent)}.board-row{display:flex;align-items:center;gap:4px;border-radius:var(--radius-sm)}.board-row:hover{background:var(--surface-hover)}.board-row__link{flex:1;display:flex;align-items:center;gap:10px;padding:5px 6px;color:var(--text);text-decoration:none;min-width:0}.board-row__thumb{width:40px;height:30px;border-radius:var(--radius-sm);flex:none}.board-row__title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-row__star{color:var(--text-subtlest)}.board-row__star.is-starred{color:#e2b203}.ws-row{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-weight:500}.ws-row:hover{background:var(--surface-hover)}.ws-row .pill{margin-left:auto}.ws-row__badge{display:inline-grid;place-items:center;width:32px;height:32px;flex:none;border-radius:var(--radius);background:linear-gradient(135deg,#2d5bd7,#6e5dc6);color:#fff;font-weight:750}.ws-row__badge--sm{width:24px;height:24px;font-size:12px;border-radius:6px}.ws-row__badge--lg{width:56px;height:56px;font-size:26px;border-radius:var(--radius-lg)}.account-head{display:flex;align-items:center;gap:10px}.account-head div{display:flex;flex-direction:column;min-width:0}.account-head .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis}.auth{min-height:100%;display:grid;grid-template-columns:minmax(320px,480px) 1fr}.auth--single{grid-template-columns:1fr;place-items:center}.auth__panel{display:flex;flex-direction:column;gap:18px;padding:48px max(24px,env(safe-area-inset-left,0px));justify-content:center;background:var(--surface);width:100%;max-width:480px;margin:0 auto}.auth__title{font-size:26px}.auth__form{display:flex;flex-direction:column;gap:14px}.auth__or{text-align:center;color:var(--text-subtle);font-size:12px}.auth__links{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.auth__art{background:linear-gradient(135deg,#0c3d9e,#2d5bd7 45%,#6e5dc6);display:grid;place-items:center;padding:40px;overflow:hidden}.auth__board{display:flex;gap:12px;align-items:flex-start;transform:rotate(-4deg)}.auth__list{width:200px;background:#f1f2f5f5;border-radius:var(--radius-lg);padding:10px;display:flex;flex-direction:column;gap:8px;color:#172b4d;box-shadow:0 20px 40px #00000040}.auth__list strong{padding:2px 4px;font-size:13px}.auth__card{background:#fff;border-radius:var(--radius);padding:8px 10px;font-size:13px;box-shadow:0 1px 1px #091e4240}@media (max-width: 860px){.auth{grid-template-columns:1fr}.auth__art{display:none}}.home{flex:1;display:flex;gap:32px;max-width:1180px;width:100%;margin:0 auto;padding:32px max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px))}.home-side{width:240px;flex:none;position:sticky;top:calc(var(--header-h) + 32px);align-self:flex-start}.home-side__nav{display:flex;flex-direction:column;gap:2px;padding-bottom:12px;border-bottom:1px solid var(--border)}.home-side__label{font-size:12px;font-weight:600;color:var(--text-subtle);margin:16px 8px 6px}.side-link{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-weight:500}.side-link:hover{background:var(--surface-hover)}.side-link.is-active{background:var(--accent-subtle);color:var(--accent)}.side-link--sub{padding-left:42px;font-weight:400;color:var(--text-subtle);font-size:13px}.side-ws{display:flex;flex-direction:column}.home-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:28px;align-items:flex-start}.home-main>*{width:100%}.home-main>.btn{width:auto}.home-heading{font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle)}.home-section{display:flex;flex-direction:column;gap:12px}.home-section__title{display:flex;align-items:center;gap:8px;font-size:16px}.ws-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ws-head h3{font-size:16px;margin-right:auto}.ws-head__links{display:flex;gap:4px;flex-wrap:wrap}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.board-tile{position:relative;height:100px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card)}.board-tile__link{position:absolute;top:0;right:0;bottom:0;left:0;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;background:#0000002e;color:#fff;text-decoration:none;transition:background .12s}.board-tile__link:hover{background:#0000004d}.board-tile__link--light{color:#172b4d;background:#ffffff1a}.board-tile__title{font-weight:700;font-size:15px;overflow-wrap:anywhere;line-height:1.3}.board-tile__star{position:absolute;right:8px;bottom:8px;border:0;background:transparent;color:#fff;cursor:pointer;opacity:0;transform:translate(6px);transition:all .12s}.board-tile:hover .board-tile__star,.board-tile__star.is-starred,.board-tile__star:focus-visible{opacity:1;transform:none}.board-tile__star.is-starred{color:#f5cd47}.board-tile--create{border:0;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-sunken);color:var(--text-subtle);cursor:pointer;box-shadow:none;font-weight:500}.board-tile--create:hover{background:var(--surface-hover);color:var(--text)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.template-card{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.template-card__art{height:92px;padding:10px}.template-card__body{padding:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;flex:1}.template-card__body p.muted{font-size:12px;flex:1}.closed-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}.closed-row__title{flex:1;font-weight:500;color:var(--text)}.ws-hero{display:flex;gap:16px;align-items:center}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.tab{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:8px 12px;cursor:pointer;font-weight:500;color:var(--text-subtle);border-bottom:2px solid transparent;margin-bottom:-1px}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.ws-members{display:flex;flex-direction:column;gap:14px}.member-search{position:relative;display:flex;align-items:center;gap:8px}.member-search__results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:6px;display:flex;flex-direction:column}.member-hit{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:6px;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.member-hit:hover{background:var(--surface-hover)}.member-hit__name{flex:1}.member-table{display:flex;flex-direction:column}.member-line{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.member-line__who{flex:1;min-width:0;display:flex;flex-direction:column}.member-line__who .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-settings{max-width:520px}.profile{max-width:720px;width:100%;margin:0 auto;padding:32px max(16px,env(safe-area-inset-right,0px)) 64px max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:28px}.profile__head{display:flex;gap:20px;align-items:center}.profile__avatar{position:relative}.profile__camera{position:absolute;right:-4px;bottom:-4px;background:var(--surface);box-shadow:var(--shadow-card);border-radius:50%}.profile__section{display:flex;flex-direction:column;gap:12px;padding-top:20px;border-top:1px solid var(--border)}.profile__section .row .input{flex:1;min-width:200px}.create-board{display:flex;flex-direction:column;gap:12px}.create-board__preview{height:110px;border-radius:var(--radius);display:grid;place-items:center}.create-board__mini{display:flex;gap:6px}.create-board__mini span{width:52px;height:64px;background:#ffffffd1;border-radius:4px}.create-board__mini span:nth-child(2){height:44px}.create-board__mini span:nth-child(3){height:54px}.shortcuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.shortcuts h3{margin-bottom:8px}.shortcuts dl{margin:0;display:flex;flex-direction:column;gap:6px}.shortcut-row{display:flex;gap:12px;align-items:baseline}.shortcut-row dt{flex:0 0 110px}.shortcut-row dd{margin:0;color:var(--text-subtle)}@media (max-width: 900px){.app-header__nav,.home-side{display:none}.search{width:160px}.search--open{width:min(280px,55vw)}}@media (max-width: 560px){.app-header .logo__text,.app-header__create span{display:none}.search{width:120px}.home{padding-top:20px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.board-page{height:100%;min-height:0;overflow:hidden;background-color:#0b63c9;background-attachment:fixed}.board-page--loading{background:var(--bg)}.board-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:8px max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px));background:#0a0e1638;color:#fff;flex-wrap:wrap;flex:none}.board-page--light .board-header{background:#ffffff73;color:#172b4d}.board-header__left,.board-header__right{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.board-header__title{font-size:18px;font-weight:700;padding:4px 10px;border-radius:var(--radius-sm);max-width:50vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-title--editable{cursor:pointer}.board-header__title.inline-title--editable:hover{background:#fff3}.inline-title__input.board-header__title{font:inherit;font-size:18px;font-weight:700;border:0;border-radius:var(--radius-sm);background:var(--surface);color:var(--text);outline:2px solid var(--focus)}.bh-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:inherit;font-weight:500;cursor:pointer}.bh-btn:hover,.bh-btn.is-active{background:#ffffff38}.board-page--light .bh-btn:hover,.board-page--light .bh-btn.is-active{background:#091e421a}.bh-btn--icon{width:32px;padding:0;justify-content:center}.bh-btn.is-starred{color:#f5cd47}.view-switch{display:flex;gap:2px;margin-left:4px;padding-left:8px;border-left:1px solid rgba(255,255,255,.25)}.view-switch__btn.is-active{background:#fffffff2;color:#172b4d}.view-switch__compact{display:none}.filter-group{display:inline-flex;border-radius:var(--radius-sm)}.filter-group--active{background:#ffffff38}.filter-count{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#fff;color:#172b4d;font-size:11px;font-weight:700;display:inline-grid;place-items:center}.bh-members{border:0;background:transparent;padding:2px;cursor:pointer;border-radius:999px}.bh-members .avatar{box-shadow:0 0 0 2px #ffffff80}.board-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px max(16px,env(safe-area-inset-left,0px));background:var(--accent-subtle);color:var(--text);font-weight:500;flex:none}.board-banner--closed{background:var(--warning-subtle)}.board-banner--template{background:var(--surface)}.board-body{flex:1;min-height:0;display:flex;position:relative}.board-main{flex:1;min-width:0;min-height:0;overflow:auto;overscroll-behavior-x:contain}.kanban{display:flex;align-items:flex-start;gap:12px;padding:12px max(12px,env(safe-area-inset-right,0px)) 16px max(12px,env(safe-area-inset-left,0px));height:100%;width:max-content;min-width:100%}.kanban__slot{height:100%;display:flex;align-items:flex-start}.list{--list-text: var(--text);width:272px;max-height:100%;display:flex;flex-direction:column;background:var(--list-bg, var(--list));color:var(--list-text);border-radius:var(--radius-lg);box-shadow:0 1px 1px #091e4240,0 0 1px #091e424f;flex:none}.list[style*=--list-bg]{--list-text: #172b4d}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .list[style*=--list-bg]{background:color-mix(in srgb,var(--list-bg-strong) 45%,#101214);--list-text: #f1f3f6}:root:not([data-theme=light]) .list[style*=--list-bg] .list__add{color:#dfe3ea}}:root[data-theme=dark] .list[style*=--list-bg]{background:color-mix(in srgb,var(--list-bg-strong) 45%,#101214);--list-text: #f1f3f6}:root[data-theme=dark] .list[style*=--list-bg] .list__add{color:#dfe3ea}.list[style*=--list-bg] .icon-btn:hover,.list[style*=--list-bg] .list__add:hover{background:#091e421a}.list--dragging{transform:rotate(2deg);box-shadow:var(--shadow-pop)}.list--over-limit{box-shadow:0 0 0 2px var(--danger)}.list__head{display:flex;align-items:flex-start;gap:2px;padding:8px 6px 4px 8px}.list__title{flex:1;min-width:0;font-size:14px;font-weight:600;padding:5px 8px;border-radius:var(--radius-sm);overflow-wrap:anywhere}.inline-title__input.list__title{font:inherit;font-weight:600;border:0;background:var(--surface);color:var(--text);outline:2px solid var(--focus);width:100%}.list__count{font-size:12px;font-weight:600;padding:2px 6px;margin-top:4px;border-radius:999px;background:#808aa038;color:var(--list-text);font-variant-numeric:tabular-nums}.list__count--over{background:var(--danger);color:#fff}.list__collapse{opacity:0}.list:hover .list__collapse,.list__collapse:focus-visible{opacity:1}.list__cards{flex:1 1 auto;min-height:4px;overflow-y:auto;overflow-x:hidden;padding:2px 8px;display:flex;flex-direction:column;gap:0}.list__cards--over{background:#091e420a}.card-slot{padding-bottom:8px}.list__foot{display:flex;align-items:center;gap:4px;padding:4px 8px 8px}.list__add{flex:1;display:flex;align-items:center;gap:6px;height:32px;padding:0 8px;border:0;border-radius:var(--radius);background:transparent;color:var(--text-subtle);font-weight:500;cursor:pointer;text-align:left}.list[style*=--list-bg] .list__add{color:#44546f}.list__add:hover{background:var(--surface-hover);color:var(--list-text)}.list--collapsed{width:44px;padding:8px 4px;align-items:center;gap:10px;cursor:grab}.list__vertical-title{writing-mode:vertical-rl;font-weight:600;white-space:nowrap;max-height:60vh;overflow:hidden;text-overflow:ellipsis}.add-list{width:272px;flex:none;display:flex;align-items:center;gap:6px;padding:10px 12px;border:0;border-radius:var(--radius-lg);background:#ffffff3d;color:#fff;font-weight:600;cursor:pointer;text-align:left}.board-page--light .add-list{background:#091e421f;color:#172b4d}.add-list:hover{background:#ffffff57}.add-list--open{flex-direction:column;align-items:stretch;background:var(--list);color:var(--text);padding:8px;cursor:default}.add-list--open:hover{background:var(--list)}.board-page--light .add-list--open{background:var(--list);color:var(--text)}.composer{display:flex;flex-direction:column;gap:8px;padding-bottom:8px}.composer__input{width:100%;border:0;border-radius:var(--radius);padding:8px 12px;background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-card);font:inherit;resize:none}.composer__input:focus{outline:2px solid var(--focus)}.template-pick{display:flex;align-items:center;gap:8px;border:0;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:8px 10px;text-align:left;cursor:pointer}.template-pick:hover{background:var(--surface-hover)}.card{position:relative;background:var(--surface-raised);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;overflow:hidden;outline:2px solid transparent;transition:outline-color .08s}.card:hover{outline-color:var(--focus)}.card--dragging{transform:rotate(3deg);box-shadow:var(--shadow-pop)}.card--aged-1{opacity:.85}.card--aged-2{opacity:.7}.card--aged-3{opacity:.55}.card__cover{height:32px}.card__cover--image{height:140px;background-size:cover;background-position:center;background-color:var(--surface-sunken)}.card--full-cover{background-size:cover;background-position:center;min-height:56px}.card--full-cover .card__body{min-height:56px;justify-content:flex-end}.card--full-cover[style*=background-image] .card__body{min-height:140px;background:linear-gradient(to top,rgba(0,0,0,.6),transparent 65%);color:#fff}.card--full-cover .card__title{font-weight:600;font-size:15px}.card--full-cover:not([style*=background-image]) .card__title{color:#172b4d}.card__body{padding:8px 12px 6px;display:flex;flex-direction:column;gap:4px}.card__labels{display:flex;flex-wrap:wrap;gap:4px}.card-label{height:8px;min-width:40px;max-width:100%;border:0;border-radius:4px;padding:0;cursor:pointer;transition:height .1s}.card-label--none{background:var(--surface-hover)}.card__labels--expanded .card-label{height:16px;min-width:56px;padding:0 8px;font-size:12px;font-weight:600;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card__title{overflow-wrap:anywhere;padding-right:20px}.card__footer{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;flex-wrap:wrap}.card__badges{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;min-width:0}.card__members{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.card__edit{position:absolute;top:4px;right:4px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface-raised);color:var(--text-subtle);cursor:pointer;opacity:0}.card:hover .card__edit,.card__edit:focus-visible{opacity:1}.card__edit:hover{background:var(--surface-hover)}.badge{display:inline-flex;align-items:center;gap:3px;min-height:24px;padding:2px 4px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-subtle);font-size:12px;font-variant-numeric:tabular-nums}.badge--due{cursor:pointer}.badge--due:disabled{cursor:default}.badge__check{display:none}.badge--due:not(:disabled):hover .badge__clock{display:none}.badge--due:not(:disabled):hover .badge__check{display:inline}.badge--complete{background:var(--success);color:#fff}.badge--overdue{background:var(--danger);color:#fff}.badge--soon{background:var(--warning-bg);color:#172b4d}.badge--template{background:var(--accent-subtle);color:var(--accent)}.badge--field{background:var(--surface-sunken);color:var(--text-subtle);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;line-height:20px}.badge--colored{font-weight:600}.board-menu{width:340px;max-width:100%;flex:none;display:flex;flex-direction:column;background:var(--surface);color:var(--text);box-shadow:var(--shadow-pop);z-index:40}.board-menu__head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;padding:10px 10px 8px;border-bottom:1px solid var(--border)}.board-menu__head h3{text-align:center}.board-menu__body{flex:1;overflow-y:auto;padding:12px 12px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:4px}.menu-bg-dot{width:18px;height:18px;border-radius:4px}.about-admin{display:flex;align-items:center;gap:10px}.about-admin div{display:flex;flex-direction:column}.archived-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--surface-sunken);border-radius:var(--radius)}.archived-card__title{border:0;background:transparent;padding:0;text-align:left;cursor:pointer;font-weight:500;display:flex;flex-direction:column;min-width:0}.archived-card__title .muted{font-size:12px;font-weight:400}.settings .toggle{align-items:flex-start}.bg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.bg-swatch{height:72px;border:0;border-radius:var(--radius);cursor:pointer}.bg-swatch:hover{filter:brightness(.94)}.bg-swatch.is-active{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--focus)}.field-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--surface-sunken);border-radius:var(--radius)}.opt-row{display:flex;gap:6px;align-items:center}.opt-row .input{flex:1}.opt-row__color{width:100px}.filter-panel{display:flex;flex-direction:column;gap:4px}.filter-group__title{font-size:12px;font-weight:600;color:var(--text-subtle);margin:10px 0 2px}.filter-opt{display:flex;align-items:center;gap:10px;padding:4px;border-radius:var(--radius-sm);cursor:pointer}.filter-opt:hover{background:var(--surface-sunken)}.filter-opt__content{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.filter-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-sunken)}.filter-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.share__row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.share__input{position:relative;flex:1;min-width:200px}.share__row .select{width:auto}.share__link{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border-radius:var(--radius);flex-wrap:wrap}.share__link-text{flex:1;min-width:180px;display:flex;flex-direction:column}.share__link-text .muted{font-size:12px}.share__heading{margin-top:8px}.share__roles{font-size:12px}.feed{display:flex;flex-direction:column;gap:14px}.act{display:flex;gap:10px;align-items:flex-start}.act__body{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:13px;overflow-wrap:anywhere}.act__ref{font-weight:600}.act__via{color:var(--text-subtle);font-style:italic}.act__time{font-size:12px;color:var(--text-subtle)}.auto{display:flex;flex-direction:column;gap:12px}.auto__intro,.auto__empty,.auto__preview{font-size:13px}.auto__preview{background:var(--surface-sunken);border-radius:var(--radius);padding:8px 10px}.auto-item{background:var(--surface-sunken);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.auto-item--off{opacity:.65}.auto-item__head{display:flex;align-items:center;gap:6px}.auto-item__desc{font-size:13px;color:var(--text-subtle)}.auto-item__tools{display:flex;align-items:center;gap:6px}.auto-item__tools .toggle{margin-right:auto;font-size:13px}.auto-box{border:1px solid var(--border);border-radius:var(--radius);padding:10px;margin:0;display:flex;flex-direction:column;gap:8px}.auto-box legend{font-size:12px;font-weight:700;color:var(--text-subtle);padding:0 4px;text-transform:uppercase;letter-spacing:.04em}.auto-action{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--surface-sunken);border-radius:var(--radius-sm)}.auto-action>.row{flex-wrap:nowrap}.quick-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;background:var(--overlay)}.quick-edit{position:absolute;display:flex;gap:8px;align-items:flex-start;max-width:calc(100vw - 16px)}.quick-edit__card{display:flex;flex-direction:column;gap:8px;align-items:flex-start;max-width:calc(100vw - 32px)}.quick-edit__card .textarea{border-radius:var(--radius);border:0;min-height:90px;resize:none}.quick-edit__menu{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.qe-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:0;border-radius:var(--radius-sm);background:#0e162cd9;color:#fff;cursor:pointer;font-weight:500;white-space:nowrap}.qe-btn:hover{background:#0e162c;transform:translate(3px)}@media (max-width: 640px){.quick-edit{flex-direction:column;left:8px!important}.quick-edit__menu{flex-direction:row;flex-wrap:wrap}}.view-wrap{padding:12px max(12px,env(safe-area-inset-right,0px)) 16px max(12px,env(safe-area-inset-left,0px));min-height:100%}.table-view,.calendar-view,.timeline,.dashboard{background:var(--surface);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.table-view{overflow-x:auto}.table-view table{width:100%;border-collapse:collapse;font-size:13px}.table-view th{position:sticky;top:0;background:var(--surface);text-align:left;padding:0;border-bottom:1px solid var(--border);white-space:nowrap;z-index:1}.th-btn{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:10px 12px;font-weight:600;color:var(--text-subtle);cursor:pointer}.table-view th:not(:has(.th-btn)){padding:10px 12px;font-weight:600;color:var(--text-subtle)}.table-view td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table-view tbody tr{cursor:pointer}.table-view tbody tr:hover{background:var(--surface-sunken)}.table-view__title{font-weight:500;min-width:200px}.table-view__labels{display:flex;flex-wrap:wrap;gap:4px;min-width:120px}.table-view__labels .label-chip{min-height:20px;min-width:36px}.table-view__empty{text-align:center;padding:32px!important}.calendar-view,.timeline{padding:12px;display:flex;flex-direction:column;gap:12px}.calendar-view__bar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.calendar-view__bar .muted{font-size:13px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.cal-grid__dow{padding:6px 8px;font-size:12px;font-weight:600;color:var(--text-subtle);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.cal-day{min-height:116px;padding:4px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:3px;min-width:0}.cal-grid--week .cal-day{min-height:60vh}.cal-day--muted{background:var(--surface-sunken)}.cal-day--muted .cal-day__num{color:var(--text-subtlest)}.cal-day--today .cal-day__num{background:var(--accent);color:var(--accent-text)}.cal-day--over{background:var(--accent-subtle)}.cal-day__head{display:flex;justify-content:space-between;align-items:center}.cal-day__num{font-size:12px;font-weight:600;padding:1px 6px;border-radius:999px;font-variant-numeric:tabular-nums}.cal-day__add{opacity:0}.cal-day:hover .cal-day__add,.cal-day__add:focus-visible{opacity:1}.cal-card{display:flex;gap:6px;align-items:baseline;width:100%;border:0;border-left:3px solid var(--cal-accent, var(--accent));border-radius:var(--radius-sm);background:var(--surface-sunken);padding:3px 6px;font-size:12px;text-align:left;cursor:pointer;min-width:0}.cal-card:hover{background:var(--surface-hover)}.cal-card--complete{opacity:.6}.cal-card--complete .cal-card__title{text-decoration:line-through}.cal-card--overdue{border-left-color:var(--danger)}.cal-card__time{color:var(--text-subtle);font-variant-numeric:tabular-nums;flex:none}.cal-card__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cal-add .input{width:100%}@media (max-width: 700px){.cal-day{min-height:72px}.cal-card__time{display:none}}.timeline__scroll{overflow-x:auto}.timeline__head,.timeline__row{display:flex}.timeline__corner,.timeline__label{width:200px;flex:none;padding:6px 10px;font-weight:600;position:sticky;left:0;background:var(--surface);z-index:2}.timeline__corner{font-size:12px;color:var(--text-subtle);border-bottom:1px solid var(--border)}.timeline__day{flex:none;text-align:center;font-size:11px;color:var(--text-subtle);padding:4px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column}.timeline__day strong{font-size:13px;color:var(--text);font-variant-numeric:tabular-nums}.timeline__day.is-weekend,.timeline__cell.is-weekend{background:var(--surface-sunken)}.timeline__day.is-today strong{color:var(--accent)}.timeline__cell.is-today{background:var(--accent-subtle)}.timeline__group{display:flex;border-bottom:1px solid var(--border)}.timeline__label{border-left:4px solid transparent}.timeline__rows{flex:1}.timeline__row{position:relative;height:36px}.timeline__row--empty{height:24px}.timeline__cell{flex:none;height:100%;border-right:1px dashed transparent}.timeline__bar{position:absolute;top:5px;height:26px;border-radius:6px;background:var(--accent);color:var(--accent-text);font-size:12px;font-weight:600;display:flex;align-items:center;cursor:grab;box-shadow:var(--shadow-card);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.timeline__bar.is-dragging{cursor:grabbing;box-shadow:var(--shadow-pop)}.timeline__bar.is-complete{opacity:.55}.timeline__bar-title{flex:1;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline__handle{width:8px;align-self:stretch;cursor:ew-resize;flex:none}.timeline__handle:hover{background:#0000002e}.dashboard{padding:16px;display:flex;flex-direction:column;gap:16px}.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.dash-stat{background:var(--surface-sunken);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column}.dash-stat__value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.dash-stat__value--danger{color:var(--danger)}.dash-stat__value--success{color:var(--success)}.dash-stat__label{font-size:12px;color:var(--text-subtle)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.dash-tile{border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}.dash-tile__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.dash-tile__head .muted{font-size:12px}.dash-bars{display:flex;flex-direction:column;gap:8px}.dash-bar{display:grid;grid-template-columns:minmax(80px,140px) 1fr 64px;gap:10px;align-items:center;font-size:13px}.dash-bar__label{display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dash-bar__track{height:14px;background:var(--surface-sunken);border-radius:4px;overflow:hidden}.dash-bar__fill{display:block;height:100%;border-radius:4px;min-width:2px}.dash-bar__value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.dash-bar__value .muted{font-weight:400;font-size:11px}@media (max-width: 1100px){.view-switch__btn span{display:none}}@media (max-width: 760px){.view-switch{display:none}.view-switch__compact{display:inline-flex}.bh-btn__label{display:none}.board-header__title{max-width:60vw}.board-menu{position:absolute;right:0;top:0;bottom:0}.list,.add-list{width:min(272px,calc(100vw - 48px))}}@media print{.app-header,.board-header,.board-banner,.board-menu,.list__foot,.add-list,.card__edit{display:none!important}.board-page{background:#fff!important;height:auto;overflow:visible}.board-main{overflow:visible}.kanban{flex-wrap:wrap;width:auto}.list{max-height:none;box-shadow:none;border:1px solid #ccc}.list__cards{overflow:visible}}.card-modal{overflow:visible}.cm{position:relative;border-radius:var(--radius-lg)}.cm--drop{outline:3px dashed var(--accent);outline-offset:-6px}.cm__dropzone{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;background:color-mix(in srgb,var(--accent-subtle) 88%,transparent);font-size:18px;font-weight:700;color:var(--accent);border-radius:var(--radius-lg);pointer-events:none}.cm__cover{height:116px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:relative}.cm__cover--image{height:160px;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:var(--surface-sunken)}.cm__cover-btn{position:absolute;right:12px;bottom:10px}.banner{display:flex;align-items:center;gap:8px;padding:10px 24px;font-weight:500}.banner--archived{background:var(--warning-subtle)}.banner--template{background:var(--accent-subtle);color:var(--accent)}.cm__head{display:flex;gap:12px;padding:18px 56px 6px 20px}.cm-section__icon{flex:none;margin-top:6px;color:var(--text-subtle)}.cm__title-wrap{flex:1;min-width:0}.cm__title{width:100%;border:0;background:transparent;font-size:20px;font-weight:650;padding:2px 6px;margin-left:-6px;border-radius:var(--radius-sm);resize:none;overflow:hidden;min-height:0}.cm__title:focus{background:var(--surface);box-shadow:inset 0 0 0 2px var(--focus)}.cm__title:disabled{background:transparent;color:var(--text)}.cm__in{display:flex;align-items:center;gap:6px;color:var(--text-subtle);font-size:13px}.cm__in .link{font-weight:500}.cm__num{margin-left:auto}.cm__watch-icon{color:var(--text-subtle)}.cm__grid{display:grid;grid-template-columns:minmax(0,1fr) 176px;gap:16px;padding:8px 16px 24px 20px}.cm__main{display:flex;flex-direction:column;gap:24px;min-width:0}.cm__meta{display:flex;flex-wrap:wrap;gap:16px 20px;padding-left:34px}.cm__meta:empty{display:none}.cm-meta{display:flex;flex-direction:column;gap:4px}.cm-meta__row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.cm-sublabel{font-size:12px;font-weight:600;color:var(--text-subtle)}.round-add{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:0;background:var(--surface-hover);cursor:pointer}.round-add--sq{border-radius:var(--radius-sm)}.round-add:hover{background:var(--surface-pressed)}.due-pill{font-size:11px;font-weight:700;padding:0 5px;border-radius:3px;margin-left:4px}.due-pill--complete{background:var(--success);color:#fff}.due-pill--overdue{background:var(--danger);color:#fff}.due-pill--soon{background:var(--warning-bg);color:#172b4d}.cm-section{display:flex;flex-direction:column;gap:10px}.cm-section__head{display:flex;align-items:center;gap:12px}.cm-section__head .cm-section__icon{margin-top:0}.cm-section__title{flex:1;min-width:0;font-size:16px;font-weight:600}h2.cm-section__title.inline-title--editable{padding:2px 6px;margin-left:-6px;border-radius:var(--radius-sm)}h2.cm-section__title.inline-title--editable:hover{background:var(--surface-hover)}.inline-title__input.cm-section__title{font:inherit;font-size:16px;font-weight:600;padding:4px 8px;border:0;border-radius:var(--radius-sm);outline:2px solid var(--focus);background:var(--surface);color:var(--text)}.cm-section__actions{display:flex;gap:6px}.cm-indent{margin-left:34px}.desc-placeholder{width:100%;min-height:56px;border:0;border-radius:var(--radius);background:var(--surface-hover);text-align:left;padding:8px 12px;color:var(--text-subtle);cursor:pointer}.desc-placeholder:hover{background:var(--surface-pressed)}.desc-view{cursor:pointer;border-radius:var(--radius-sm)}.desc-edit{display:flex;flex-direction:column;gap:8px}.comment-hint{font-size:12px}.cm__side{display:flex;flex-direction:column;gap:6px}.cm__side .cm-sublabel{margin-top:10px}.cm__side .cm-sublabel:first-child{margin-top:0}.side-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:32px;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text);font-weight:500;text-align:left;cursor:pointer}.side-btn:hover{background:var(--surface-pressed)}.side-btn--ghost{background:transparent;color:var(--text-subtle)}.side-btn--danger{background:var(--danger);color:#fff}.side-btn--danger:hover{background:var(--danger);filter:brightness(.92)}.progress{display:flex;align-items:center;gap:10px}.progress__pct{width:34px;font-size:11px;color:var(--text-subtle);font-variant-numeric:tabular-nums;text-align:center}.progress__bar{flex:1;height:8px;background:var(--surface-hover);border-radius:4px;overflow:hidden}.progress__fill{height:100%;background:var(--accent);border-radius:4px;transition:width .2s}.progress__fill--done{background:var(--success)}.cl-items{display:flex;flex-direction:column}.cl-item{display:flex;align-items:flex-start;gap:18px;padding:4px 0 4px 2px;border-radius:var(--radius-sm)}.cl-item:hover{background:var(--surface-hover)}.cl-item__check{margin-top:6px}.cl-item__row{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.cl-item__text{flex:1;min-width:0;padding:4px 0;overflow-wrap:anywhere;cursor:pointer}.cl-item--done .cl-item__text{text-decoration:line-through;color:var(--text-subtle)}.cl-item__meta{display:flex;align-items:center;gap:4px}.cl-item__tools{display:flex;gap:2px;opacity:0}.cl-item:hover .cl-item__tools,.cl-item__tools:focus-within{opacity:1}.cl-item__edit{flex:1;display:flex;flex-direction:column;gap:6px}.cl-add{display:flex;flex-direction:column;gap:6px}.cm-section>.btn.cm-indent{align-self:flex-start}.att-link{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface);margin-bottom:4px;flex-wrap:wrap}.att-link__icon{display:grid;place-items:center;color:var(--text-subtle)}.att-link__name{font-weight:500;overflow-wrap:anywhere}.att-link__host{font-size:12px}.att-actions{display:inline-flex;gap:10px;margin-left:auto;font-size:12px;flex-wrap:wrap}.att-file{display:flex;gap:12px;padding:6px 0;align-items:flex-start}.att-file__thumb{width:112px;height:80px;flex:none;border-radius:var(--radius-sm);background:var(--surface-hover) center/cover no-repeat;display:grid;place-items:center;color:var(--text-subtle);font-weight:700;text-decoration:none}.att-file__body{display:flex;flex-direction:column;gap:2px;min-width:0}.att-file__name{font-weight:600;color:var(--text);overflow-wrap:anywhere}.att-file__meta{font-size:12px;color:var(--text-subtle)}.att-file .att-actions{margin-left:0}.comment-new{display:flex;gap:10px;align-items:flex-start}.comment-box{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.comment-box .textarea{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-card);resize:none}.comment{display:flex;gap:10px;align-items:flex-start}.comment__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment__head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.comment__head .muted{font-size:12px}.comment__bubble{background:var(--surface);border-radius:var(--radius);padding:8px 12px;box-shadow:var(--shadow-card)}.comment__bubble--sm{padding:6px 10px;margin:4px 0}.comment__foot{display:flex;align-items:center;gap:8px;font-size:12px;flex-wrap:wrap}.reaction{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:1px 8px;font-size:12px;cursor:pointer}.reaction--mine{border-color:var(--accent);background:var(--accent-subtle)}.emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.emoji-btn{border:0;background:transparent;font-size:22px;height:44px;border-radius:var(--radius-sm);cursor:pointer}.emoji-btn:hover{background:var(--surface-hover)}.mention-wrap{position:relative}.mention-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:300px;max-width:100%;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:4px;display:flex;flex-direction:column}.mention-opt{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:6px;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.mention-opt.is-active,.mention-opt:hover{background:var(--surface-hover)}.mention-opt__at{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);font-weight:700}.cf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 14px}.cf-field{display:flex;flex-direction:column;gap:4px}.cf-field .input,.cf-field .select{width:100%}.label-picker{display:flex;flex-direction:column;gap:6px}.label-row{display:flex;align-items:center;gap:8px}.label-edit{display:flex;flex-direction:column;gap:10px}.label-edit__preview{display:flex;padding:16px;margin:-8px -12px 0;background:var(--surface-sunken)}.cover-sizes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cover-size{height:64px;border:0;border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--shadow-card);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:0}.cover-size:disabled{opacity:.5;cursor:not-allowed}.cover-size.is-active{box-shadow:0 0 0 2px var(--focus)}.cover-size__top{height:28px;width:100%}.cover-size__lines{padding:6px 8px;display:flex;flex-direction:column;gap:4px;width:100%}.cover-size__lines i,.cover-size__full i{display:block;height:4px;border-radius:2px;background:var(--border-strong)}.cover-size__lines i:last-child{width:60%}.cover-size__full{flex:1;width:100%;display:flex;align-items:flex-end;padding:8px}.cover-size__full i{width:70%;background:#ffffffd9}.cover-images{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.cover-image{height:48px;border:0;border-radius:var(--radius-sm);background:var(--surface-sunken) center/cover no-repeat;cursor:pointer}.cover-image.is-active{box-shadow:0 0 0 2px var(--focus)}@media (max-width: 720px){.modal-overlay{padding-top:12px}.cm__grid{grid-template-columns:1fr}.cm__side{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.cm__side .cm-sublabel{grid-column:1 / -1}.cm__meta,.cm-indent{padding-left:0;margin-left:0}.att-file__thumb{width:80px;height:60px}}
