:root{--bg: #0f1115;--bg-elevated: #171a21;--bg-card: #1c2029;--bg-input: #12151b;--border: #262b36;--border-strong: #333a48;--text: #e6e8ee;--text-strong: #ffffff;--text-muted: #939bab;--accent: #5b8def;--accent-hover: #6f9bf3;--danger: #e35d6a;--success: #37b679;--radius: 10px;--shadow: 0 12px 32px rgba(0, 0, 0, .45);--overlay-weak: rgba(255, 255, 255, .05);--overlay: rgba(255, 255, 255, .06);--overlay-strong: rgba(255, 255, 255, .1);--bar-bg: rgba(23, 26, 33, .6);--backdrop: rgba(6, 8, 12, .65);--glow: #1a2030;--on-accent: #ffffff;--neutral: #7a8194;--info: #9dbcf7;--info-soft: #b9cdf7;--plain: #cfd4e0;--warn: #e8a45a;--critical: #ff9aa4;--waiting: #d79ee2;--muted-chip: #a9b3c6;--done-soft: #7fd6a8;color-scheme:dark}:root[data-theme=light]{--bg: #eef0f4;--bg-elevated: #ffffff;--bg-card: #ffffff;--bg-input: #ffffff;--border: #dfe3ea;--border-strong: #c3cad6;--text: #1b1e25;--text-strong: #05070c;--text-muted: #5c6575;--accent: #2f66d8;--accent-hover: #2757bd;--danger: #c2323f;--success: #1c8a56;--shadow: 0 12px 32px rgba(19, 27, 45, .16);--overlay-weak: rgba(20, 26, 40, .04);--overlay: rgba(20, 26, 40, .06);--overlay-strong: rgba(20, 26, 40, .1);--bar-bg: rgba(255, 255, 255, .72);--backdrop: rgba(24, 30, 44, .45);--glow: #dfe7f6;--on-accent: #ffffff;--neutral: #8b93a3;--info: #2c5fcc;--info-soft: #2a56b4;--plain: #4a5262;--warn: #9c5a0c;--critical: #b32c3a;--waiting: #8a3a9c;--muted-chip: #59616f;--done-soft: #167a4a;color-scheme:light}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--bg: #eef0f4;--bg-elevated: #ffffff;--bg-card: #ffffff;--bg-input: #ffffff;--border: #dfe3ea;--border-strong: #c3cad6;--text: #1b1e25;--text-strong: #05070c;--text-muted: #5c6575;--accent: #2f66d8;--accent-hover: #2757bd;--danger: #c2323f;--success: #1c8a56;--shadow: 0 12px 32px rgba(19, 27, 45, .16);--overlay-weak: rgba(20, 26, 40, .04);--overlay: rgba(20, 26, 40, .06);--overlay-strong: rgba(20, 26, 40, .1);--bar-bg: rgba(255, 255, 255, .72);--backdrop: rgba(24, 30, 44, .45);--glow: #dfe7f6;--on-accent: #ffffff;--neutral: #8b93a3;--info: #2c5fcc;--info-soft: #2a56b4;--plain: #4a5262;--warn: #9c5a0c;--critical: #b32c3a;--waiting: #8a3a9c;--muted-chip: #59616f;--done-soft: #167a4a;color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3{margin:0;font-weight:600}.button{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-card);color:var(--text);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease;text-decoration:none;white-space:nowrap}.button:hover:not(:disabled){background:#232833;border-color:#414a5c}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.button.ghost:hover:not(:disabled){background:var(--bg-card);color:var(--text)}.button.danger{color:var(--danger);border-color:#e35d6a66}.button.danger:hover:not(:disabled){background:#e35d6a1f}.button.tiny{padding:.2rem .5rem;font-size:.75rem;border-radius:6px}.button.large{padding:.7rem 1.2rem;font-size:.95rem}.icon-button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:.25rem;border-radius:6px;line-height:1}.icon-button:hover{color:var(--text);background:var(--overlay)}input,select{width:100%;padding:.45rem .6rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-input);color:var(--text);font-family:inherit;font-size:.875rem}input:focus,select:focus,.button:focus-visible,.task-title:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem;flex:1}.field>span{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.field-row{display:flex;gap:.75rem;flex-wrap:wrap}.field-row>.field{flex:1 1 8rem;min-width:0}.spacer{flex:1}.muted{color:var(--text-muted)}.small{font-size:.8rem}.form-error{color:var(--danger);margin:.5rem 0 0}.form-success{color:var(--success);margin:.5rem 0 0}.login-screen{display:grid;place-items:center;height:100%;background:radial-gradient(circle at 20% 20%,var(--glow) 0%,var(--bg) 55%)}.login-card{width:min(26rem,calc(100vw - 2rem));padding:2.5rem 2rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);text-align:center}.login-logo{font-size:2.5rem;color:var(--accent);line-height:1}.login-card h1{margin:.75rem 0 .25rem;font-size:1.75rem}.login-card p{color:var(--text-muted);margin:0 0 1.5rem}.login-hint{margin-top:1.5rem!important;font-size:.8rem}.app{display:flex;flex-direction:column;height:100%}.app-loading{display:grid;place-items:center;height:100%}.spinner{width:2rem;height:2rem;border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem;letter-spacing:.01em}.brand-mark{color:var(--accent);font-size:1.2rem}.header-center{flex:1;display:flex;justify-content:center;min-width:0}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.user-chip{display:flex;align-items:center;gap:.5rem;padding:.25rem .6rem .25rem .25rem;border-radius:999px;background:var(--bg-card);border:1px solid var(--border)}.user-name{font-size:.85rem;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;flex:none;-webkit-user-select:none;user-select:none}.avatar.unassigned{width:22px;height:22px;font-size:.7rem;background:transparent;border:1px dashed var(--border-strong);color:var(--text-muted)}.timer-badge{display:flex;align-items:center;gap:.6rem;padding:.3rem .5rem .3rem .7rem;border:1px solid rgba(55,182,121,.4);background:#37b6791a;border-radius:999px;max-width:32rem;min-width:0}.pulse{width:8px;height:8px;border-radius:50%;background:var(--success);animation:pulse 1.6s ease-in-out infinite;flex:none}@keyframes pulse{50%{opacity:.25}}.timer-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.timer-elapsed{font-variant-numeric:tabular-nums;font-weight:600;color:var(--success)}.filter-bar{display:flex;align-items:flex-end;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bar-bg);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:12rem}.filter-group.grow{flex:1;min-width:14rem}.filter-group label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.filter-summary{display:flex;align-items:center;gap:.6rem;color:var(--text-muted);font-size:.82rem;padding-bottom:.35rem}.board{flex:1;display:flex;gap:1rem;padding:1.25rem;overflow-x:auto;overflow-y:hidden;align-items:stretch;min-height:0;overscroll-behavior-x:contain}.column{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;min-height:12rem;max-height:100%;flex:1 1 18rem;min-width:16.5rem;max-width:34rem;transition:border-color .15s ease,background .15s ease}.column.drop-active{border-color:var(--accent);background:#191d27}.column-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .9rem;border-bottom:1px solid var(--border)}.column-header h2{display:flex;align-items:center;gap:.5rem;font-size:.9rem;letter-spacing:.01em}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-dot.todo{background:var(--neutral)}.status-dot.in_progress{background:var(--accent)}.status-dot.done{background:var(--success)}.count{min-width:1.5rem;text-align:center;padding:.05rem .4rem;border-radius:999px;background:var(--bg-card);color:var(--text-muted);font-size:.75rem}.column-body{display:flex;flex-direction:column;gap:.5rem;padding:.6rem;overflow-y:auto;flex:1}.column-empty{margin:.5rem 0;text-align:center;color:var(--text-muted);font-size:.82rem}.column-add{margin:0 .6rem .6rem;padding:.5rem;border:1px dashed var(--border-strong);border-radius:8px;background:transparent;color:var(--text-muted);font-family:inherit;font-size:.85rem;cursor:pointer}.column-add:hover{color:var(--text);border-color:var(--accent)}.composer{padding:0 .6rem .6rem}.drop-indicator{height:3px;margin:.15rem 0;border-radius:2px;background:var(--accent)}.task-card{display:flex;flex-direction:column;gap:.55rem;padding:.65rem .7rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:grab;transition:border-color .15s ease,transform .1s ease,box-shadow .15s ease}.task-card:hover{border-color:var(--border-strong);box-shadow:0 4px 14px #0000004d}.task-card.dragging{opacity:.45}.task-card.tracking{border-color:#37b67999;box-shadow:0 0 0 1px #37b67940}.task-card-main{display:flex;align-items:flex-start;gap:.5rem}.task-title{flex:1;background:none;border:none;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;word-break:break-word}.task-title:hover{color:var(--text-strong)}.timer-button{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border-strong);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.7rem;line-height:1}.timer-button:hover:not(:disabled){color:var(--success);border-color:var(--success)}.timer-button.active{color:var(--success);border-color:var(--success);background:#37b67926}.timer-button:disabled{opacity:.35;cursor:not-allowed}.task-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.project-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border-radius:999px;background:var(--overlay-weak);font-size:.75rem;color:var(--text-muted);max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-badge .dot{width:7px;height:7px;border-radius:50%;flex:none}.project-badge{min-width:0}.project-badge .badge-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-badge.muted{opacity:.6;font-style:italic}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--backdrop);display:grid;place-items:center;padding:1rem;z-index:50}.modal{width:min(38rem,100%);max-height:90vh;overflow:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.05rem}.modal-body{padding:1.25rem}.modal-footer{display:flex;align-items:center;gap:.5rem;padding:.9rem 1.25rem;border-top:1px solid var(--border)}.dialog-meta{margin:.5rem 0 0;font-size:.78rem;color:var(--text-muted)}.settings-section{padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border)}.settings-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.75rem}.identity-row{display:flex;align-items:center;gap:.75rem}.key-form{display:flex;gap:.5rem}.button-row{display:flex;gap:.5rem;margin-top:.5rem}.linked-state{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0 0 .9rem}.badge{padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge.success{background:#37b67926;color:var(--success)}.replace-key{margin-top:1rem}.replace-key summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.6rem}.toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border-radius:10px;background:var(--bg-card);border:1px solid var(--border-strong);box-shadow:var(--shadow);max-width:min(32rem,calc(100vw - 2rem));z-index:60}.toast.error{border-color:#e35d6a80;color:#ffd7db}.toast.info{border-color:#5b8def80}@media(max-width:720px){.app-header{gap:.6rem}.header-center{order:3;flex-basis:100%;justify-content:flex-start}.user-name{display:none}.board{padding:.75rem}}.avatar-photo{object-fit:cover;background:var(--bg-card);border:1px solid var(--border)}.modal.modal-wide{width:min(56rem,100%)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:1.5rem}.detail-main{min-width:0}.detail-side{border-left:1px solid var(--border);padding-left:1.25rem}textarea{width:100%;padding:.5rem .6rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-input);color:var(--text);font-family:inherit;font-size:.875rem;line-height:1.5;resize:vertical}textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.button.full{width:100%;justify-content:center;margin-bottom:1rem}.side-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.side-row.small{margin-bottom:.15rem;font-size:.85rem}.meta-list{margin:0;padding-top:.75rem;border-top:1px solid var(--border);font-size:.85rem}.meta-list dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-top:.75rem}.meta-list dd{margin:.15rem 0 0}.has-description{margin-left:.4rem;color:var(--text-muted);font-size:.8rem}.attachments{margin-top:1.25rem}.attachments-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.attachments-header h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:flex;align-items:center;gap:.4rem;flex:1}.dropzone{border:1px dashed var(--border-strong);border-radius:10px;padding:.75rem;transition:border-color .15s ease,background .15s ease}.dropzone.active{border-color:var(--accent);background:#5b8def14}.dropzone p{margin:.25rem 0;text-align:center}.attachment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.attachment-list li{display:flex;align-items:center;gap:.5rem}.attachment{flex:1;display:flex;align-items:center;gap:.6rem;padding:.4rem;border-radius:8px;text-decoration:none;color:var(--text);min-width:0}.attachment:hover{background:var(--overlay-weak)}.attachment-thumb{width:36px;height:36px;border-radius:6px;object-fit:cover;flex:none;background:var(--bg-input)}.attachment-thumb.file{display:grid;place-items:center;color:var(--text-muted);border:1px solid var(--border)}.attachment-info{min-width:0;display:flex;flex-direction:column}.attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}@media(max-width:780px){.detail-layout{grid-template-columns:1fr}.detail-side{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:1rem}}.dropzone-hint{margin-top:.5rem!important;font-size:.78rem;opacity:.75}.member-list{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem;max-height:20rem;overflow-y:auto}.member-list li{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:8px}.member-list li.inactive{opacity:.55}.member-list select{width:12rem;flex:none}.member-identity{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}.member-text{display:flex;flex-direction:column;min-width:0}.member-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.avatar.toggl-badge{width:30px;height:30px;font-size:.8rem;background:#e278382e;color:#e8833a;border:1px solid rgba(226,120,56,.4)}@media(max-width:620px){.member-list li{flex-wrap:wrap}.member-list select{width:100%}}.log-filters{display:flex;gap:.75rem;margin-bottom:.5rem}.log-filters .field{margin-bottom:.5rem}.log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:55vh;overflow-y:auto}.log-list li{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .2rem;border-bottom:1px solid var(--border)}.log-list li:last-child{border-bottom:none}.log-body{flex:1;min-width:0}.log-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.log-action{flex:none;padding:.05rem .45rem;border-radius:999px;font-size:.72rem;background:var(--overlay);color:var(--text-muted);white-space:nowrap}.log-action.task{background:#5b8def26;color:var(--info)}.log-action.attachment{background:#c86dd726;color:var(--waiting)}.log-action.auth{background:#37b67921;color:#74cfa2}.log-target{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22rem;font-size:.85rem}.log-changes{list-style:none;margin:.3rem 0 0;padding:0;font-size:.82rem}.log-changes li{border:none;padding:.1rem 0;display:block}.log-time{flex:none;white-space:nowrap;padding-top:.2rem}@media(max-width:620px){.log-filters{flex-direction:column;gap:0}.log-list li{flex-wrap:wrap}.log-time{width:100%;padding-left:2.1rem}}.danger-zone{margin-top:1rem;border:1px solid rgba(227,93,106,.25);border-radius:8px;padding:.5rem .75rem}.danger-zone summary{cursor:pointer;color:var(--danger);font-size:.85rem}.danger-zone p{margin:.6rem 0}.danger-zone .button-row{margin-top:0}.diagnostics{list-style:none;margin:.75rem 0 0;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);font-size:.8rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}.diagnostics li{padding:.1rem 0;white-space:nowrap}.account-list{margin-top:.9rem}.account-list summary{cursor:pointer;color:var(--text-muted);font-size:.85rem;margin-bottom:.6rem}.account-list input[type=search]{margin-bottom:.5rem}.account-list .button.tiny{flex:none}.project-badge.missing{background:#e8833a24;color:var(--warn);font-style:normal;opacity:1;gap:.3rem}.field-hint{font-size:.75rem;margin-top:.3rem;display:block}.field-hint.warning{color:var(--warn)}.person-picker{position:relative}.person-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:40px;padding:.3rem .5rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-input);color:var(--text);font:inherit;cursor:pointer;text-align:left}.person-trigger:disabled{opacity:.5;cursor:not-allowed}.person-face{display:flex;align-items:center;gap:.5rem;min-width:0}.person-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.avatar.neutral{width:24px;height:24px;font-size:.7rem;background:transparent;border:1px dashed var(--border-strong);color:var(--text-muted)}.chevron{color:var(--text-muted);font-size:.7rem;flex:none}.person-menu{position:absolute;z-index:70;top:calc(100% + 4px);left:0;right:0;min-width:14rem;max-height:17rem;overflow-y:auto;padding:.3rem;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow)}.person-search{margin-bottom:.3rem}.person-menu ul{list-style:none;margin:0;padding:0}.person-menu li button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:44px;padding:.35rem .5rem;border:none;border-radius:8px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.person-menu li button:hover,.person-menu li button.selected{background:var(--overlay)}.person-menu .check{color:var(--accent)}.person-menu .empty{padding:.5rem}.task-dates{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;line-height:1.45;background:var(--overlay);color:var(--text-muted);white-space:nowrap}.chip .chip-icon{font-size:.72rem;line-height:1}.chip.planned{color:var(--info);background:#5b8def21}.chip.due{color:var(--plain)}.chip.due.today{color:var(--warn);background:#e8833a29}.chip.due.overdue{color:var(--critical);background:#e35d6a2e}.chip.waiting{background:#c86dd726;color:var(--waiting)}.chip.waiting.due{background:#e35d6a33;color:var(--critical)}.chip-date{opacity:.85}.status-dot.waiting{background:#c86dd7}.waiting-block{border:1px solid rgba(200,109,215,.3);background:#c86dd70f;border-radius:10px;padding:.75rem .75rem .25rem;margin-bottom:.9rem}.quick-dates{display:flex;flex-wrap:wrap;gap:.35rem;margin:-.4rem 0 .75rem}.field-row.tight{gap:.85rem}input[type=date]{min-height:40px;min-width:0;max-width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}.task-card{touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.dragging-card{cursor:grabbing}body.dragging-card .board,body.dragging-card .column-body{touch-action:none}.drag-ghost{position:fixed;z-index:90;transform:translate(-50%,-50%) rotate(1.5deg);padding:.55rem .7rem;border-radius:10px;background:var(--bg-card);border:1px solid var(--accent);box-shadow:0 12px 28px #00000080;font-size:.875rem;pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.95}@media(pointer:coarse){.board{-webkit-overflow-scrolling:touch}.button,.column-add,.icon-button{min-height:40px}.timer-button{width:36px;height:36px;min-height:36px}.task-title{padding:.15rem 0}}.focus{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 30%,var(--glow) 0%,var(--bg) 60%)}.focus.tracking:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 2px #37b6798c;animation:focus-pulse 3.2s ease-in-out infinite}@keyframes focus-pulse{0%,to{box-shadow:inset 0 0 0 2px #37b6792e}50%{box-shadow:inset 0 0 44px 2px #37b6794d}}@media(prefers-reduced-motion:reduce){.focus.tracking:after{animation:none}}.focus-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem}.focus-card{flex:1;width:min(44rem,100%);margin:0 auto;padding:0 1.5rem 3rem;display:flex;flex-direction:column;justify-content:center;gap:1.25rem;text-align:center}.focus-meta{display:flex;align-items:center;justify-content:center;gap:.6rem;flex-wrap:wrap}.focus-title{font-size:clamp(1.6rem,4.5vw,2.6rem);line-height:1.2;font-weight:600;cursor:pointer;word-break:break-word}.focus-description{color:var(--text-muted);white-space:pre-wrap;max-height:30vh;overflow-y:auto;margin:0}.focus-timer{display:flex;align-items:center;justify-content:center;gap:.6rem;font-size:2rem;font-variant-numeric:tabular-nums;color:var(--success)}.focus-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.focus-actions .button.large{min-width:12rem;min-height:52px;justify-content:center;font-size:1rem}.focus-wait{width:min(24rem,100%);margin:0 auto;text-align:left}.focus-wait .quick-dates{margin:0 0 1rem;justify-content:center}.focus-hint{margin:0}.focus-icon{font-size:3rem;color:var(--success)}.done-state h1{font-size:1.8rem}.focus-button{border-color:#c86dd780;color:var(--waiting)}@media(max-width:620px){.focus-actions .button.large{width:100%}}button.project-badge{border:none;font:inherit;cursor:pointer;min-height:26px}button.project-badge:hover{background:var(--overlay-strong)}button.project-badge.missing:hover{background:#e8833a3d}.project-menu .dot{width:9px;height:9px;border-radius:50%;flex:none}.project-menu .dot.empty{background:transparent;border:1px dashed var(--border-strong)}.person-menu .group-label{padding:.4rem .5rem .2rem;text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}.link-button{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border-strong);color:var(--text-muted);text-decoration:none;font-size:.8rem;line-height:1}.link-button:hover{color:var(--accent);border-color:var(--accent)}.link-field{display:flex;gap:.5rem;align-items:center}.link-field .button{flex:none;text-decoration:none}.focus-link{margin:0}.focus-link .button{text-decoration:none}@media(pointer:coarse){.link-button{width:36px;height:36px;min-height:36px}}.notification-bell{position:relative}.button.icon-only{position:relative;padding:.45rem .6rem}.button.icon-only.has-unread{border-color:var(--accent)}.badge-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--on-accent);font-size:.68rem;font-weight:600;line-height:18px;text-align:center}.notification-panel{position:absolute;z-index:80;top:calc(100% + 6px);right:0;width:min(24rem,calc(100vw - 2rem));max-height:26rem;overflow-y:auto;padding:.4rem;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow)}.notification-panel header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem .5rem}.notification-panel ul{list-style:none;margin:0;padding:0}.notification-panel li button{width:100%;display:flex;align-items:flex-start;gap:.6rem;min-height:44px;padding:.5rem;border:none;border-radius:8px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.notification-panel li button:hover{background:var(--overlay)}.notification-panel li.unread button{box-shadow:inset 2px 0 0 var(--accent)}.notification-icon{flex:none;width:22px;text-align:center;opacity:.85}.notification-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.notification-title{font-size:.85rem;line-height:1.35}.notification-panel .empty{margin:0;padding:.75rem .5rem 1rem}.subtasks{margin-top:1.25rem}.subtasks-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.4rem}.subtasks-header h3{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.progress{flex:1;height:4px;border-radius:999px;background:var(--overlay-strong);overflow:hidden}.progress span{display:block;height:100%;border-radius:999px;background:var(--success);transition:width .2s ease}.subtask-list{list-style:none;margin:0 0 .4rem;padding:0}.subtask-list li{display:flex;align-items:center;gap:.4rem;min-height:36px}.subtask-list li.done .subtask-check span{color:var(--text-muted);text-decoration:line-through}.subtask-check{display:flex;align-items:center;gap:.55rem;flex:1;min-width:0;cursor:pointer}.subtask-check input{width:18px;height:18px;flex:none;accent-color:var(--success);cursor:pointer}.subtask-check span{font-size:.9rem;overflow-wrap:anywhere}.subtask-add{display:flex;gap:.5rem}.comments{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.comments-header h3{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.comment-list{list-style:none;margin:0 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.85rem}.comment-list li{display:flex;gap:.6rem}.comment-list li.mentions-me .comment-body{border-left:2px solid var(--accent);padding-left:.6rem}.comment-body{flex:1;min-width:0}.comment-meta{display:flex;align-items:center;gap:.5rem}.comment-meta strong{font-size:.85rem}.comment-meta .icon-button{margin-left:auto;opacity:0}.comment-list li:hover .comment-meta .icon-button,.comment-meta .icon-button:focus-visible{opacity:1}.comment-text{margin:.15rem 0 0;font-size:.9rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.mention{color:var(--info);background:#5b8def24;border-radius:4px;padding:0 .15rem}.comment-composer{position:relative}.comment-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.5rem}.mention-menu{position:absolute;z-index:70;left:0;bottom:calc(100% - .35rem);min-width:14rem;max-height:15rem;overflow-y:auto;padding:.3rem;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow)}.mention-menu ul{list-style:none;margin:0;padding:0}.mention-menu li button{width:100%;display:flex;align-items:center;min-height:40px;padding:.3rem .5rem;border:none;border-radius:8px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.mention-menu li button:hover,.mention-menu li button.selected{background:var(--overlay)}.chip.checklist{color:var(--muted-chip)}.chip.checklist.complete{color:var(--done-soft);background:#37b67926}.chip.comment-count{color:var(--muted-chip)}.shortcut-list{margin:.5rem 0 0;display:grid;gap:.35rem}.shortcut-list>div{display:flex;align-items:baseline;gap:.75rem}.shortcut-list dt{flex:none;width:4.5rem}.shortcut-list dd{margin:0;font-size:.9rem}.shortcut-heading{margin:1.25rem 0 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}kbd{display:inline-block;min-width:1.7rem;padding:.1rem .4rem;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:6px;background:var(--bg-card);font-family:inherit;font-size:.78rem;text-align:center}.checkbox-row{display:flex;align-items:center;gap:.6rem;margin:.4rem 0;cursor:pointer}.checkbox-row input{width:18px;height:18px;flex:none;accent-color:var(--accent);cursor:pointer}.attention-toggle{margin-right:.25rem}@media(display-mode:standalone){.app-header{padding-top:max(.75rem,env(safe-area-inset-top));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.board{padding-bottom:max(1.25rem,env(safe-area-inset-bottom));padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}}@media(pointer:coarse){.subtask-check input,.checkbox-row input{width:22px;height:22px}}.offline-bar{padding:.4rem 1.25rem;background:#e8833a29;color:var(--warn);font-size:.8rem;border-bottom:1px solid rgba(232,131,58,.3)}.spinner.tiny{width:.9rem;height:.9rem;border-width:2px;border-color:#ffffff59;border-top-color:#fff}.button.new-task{transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease}.button.new-task.armed{border-color:#fff;box-shadow:0 0 0 3px #5b8def59}.button.new-task.over{border-style:dashed;border-color:#fff;box-shadow:0 0 0 5px #5b8def80;transform:scale(1.03)}.button.new-task.busy{opacity:1;cursor:progress}@media(prefers-reduced-motion:reduce){.button.new-task,.button.new-task.over{transition:none;transform:none}}.from-file{margin:0 0 .9rem;padding:.5rem .7rem;border:1px solid rgba(91,141,239,.35);border-radius:8px;background:#5b8def1a;font-size:.82rem;line-height:1.5;color:var(--info-soft)}.from-file>span{margin-right:.35rem;font-size:.82rem;line-height:1}.from-file strong{overflow-wrap:anywhere}.subtask-pending{width:18px;flex:none;text-align:center;color:var(--text-muted)}.theme-switch{display:flex;gap:.5rem;flex-wrap:wrap}.voice-button{position:relative}.button.voice.listening{border-color:var(--danger);background:#e35d6a29}.voice-live{position:absolute;z-index:80;top:calc(100% + 6px);right:0;display:flex;align-items:center;gap:.5rem;width:max-content;max-width:min(26rem,calc(100vw - 2rem));padding:.5rem .7rem;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow);font-size:.85rem}.voice-text{overflow-wrap:anywhere}.voice-pulse{flex:none;width:9px;height:9px;border-radius:50%;background:var(--danger);animation:voice-pulse 1.2s ease-in-out infinite}@keyframes voice-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}@media(prefers-reduced-motion:reduce){.voice-pulse{animation:none}}.follow-up-button{margin-top:.6rem;justify-content:center}.follow-up-loading{padding:1.5rem 0;text-align:center}
