:root{--bg-page:#f6f7f9;--bg-surface:#fff;--bg-subtle:#f1f3f5;--text-primary:#20242d;--text-secondary:#626977;--text-muted:#626977;--border-subtle:#e1e5eb;--border-strong:#c5cad3;--accent:#d92d4b;--accent-hover:#b91f3a;--accent-soft:#fff0f3;--success:#267454;--success-soft:#eaf6ef;--warning:#bf6715;--danger:#b62442;--danger-soft:#fff0f3;--radius-sm:10px;--radius-md:16px;--radius-lg:20px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--font-display:var(--font-sans);font-family:var(--font-sans);font-size:16px;color:var(--text-primary);background:var(--bg-page);font-synthesis:none;-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0}#app,.workspace{min-width:0;width:100%;min-height:100svh}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1,h2,p,small{overflow-wrap:anywhere}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.muted{color:var(--text-secondary);line-height:1.55}.eyebrow{font-size:12px;font-weight:600;color:var(--text-secondary)}.brand{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand-icon{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;border-radius:11px;background:var(--accent);color:#fff;font-size:23px}.brand-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-copy strong{font-size:20px;font-weight:750;letter-spacing:-.6px}.brand-copy small{font-size:11px;color:var(--text-secondary)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;max-width:100%;border:1px solid transparent;border-radius:11px;padding:11px 15px;font-size:14px;font-weight:650;line-height:1.35}.primary{background:var(--accent);color:#fff}.secondary{background:#fff;color:var(--text-primary);border-color:var(--border-subtle)}.primary:active{background:var(--accent-hover)}.secondary:active{background:var(--bg-subtle)}.wide{width:100%;margin-top:24px}.text-button{min-height:44px;padding:8px;border:0;background:transparent;color:var(--accent);font-weight:650}.alert,.success{padding:14px;border-radius:11px;line-height:1.5;font-size:14px;overflow-wrap:anywhere}.alert{color:var(--danger);background:var(--danger-soft)}.success{color:var(--success);background:var(--success-soft)}label:not(.toggle){display:block;margin:20px 0 8px;font-size:14px;font-weight:600}form{min-width:0}input:not([type=checkbox]),select{display:block;width:100%;min-width:0;max-width:100%;min-height:48px;padding:12px;border:1px solid var(--border-strong);border-radius:10px;background:#fff;color:var(--text-primary);font-size:16px}input[type=datetime-local]{appearance:none;-webkit-appearance:none}input::-webkit-date-and-time-value{min-width:0;text-align:left}input::placeholder{color:var(--text-secondary);opacity:1}input:not([type=checkbox]):focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--danger)}small.muted{display:block;margin-top:8px;font-size:12px}.loading{display:grid;place-items:center;min-height:100svh;padding:24px;color:var(--text-secondary)}.auth-page{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left))}.auth-brand,.auth-card{width:100%;max-width:440px;min-width:0}.auth-card{padding:24px;border:1px solid var(--border-subtle);border-radius:20px;background:#fff}.auth-card h1{font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.7px;margin:14px 0}.auth-card>.muted{font-size:15px;margin-bottom:20px}.switch-auth{font-size:14px;color:var(--text-secondary);text-align:center;margin:22px 0 0}.privacy,.local-note{display:inline-flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;color:var(--text-secondary)}.privacy{max-width:100%;margin:0;text-align:center}.dot{width:5px;height:5px;border-radius:50%;background:var(--success);flex-shrink:0}.topbar{background:#fff;border-bottom:1px solid var(--border-subtle)}.header-inner{max-width:1120px;padding:14px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));margin:auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-width:0}.account{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}.account-name{min-width:0;max-width:180px;overflow-wrap:anywhere;font-size:13px;font-weight:600}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;flex-shrink:0}.avatar.small{width:24px;height:24px;font-size:10px}.logout-button{flex-shrink:0;min-height:44px;padding:9px 12px;font-size:13px}.board{max-width:1120px;padding:24px max(16px,env(safe-area-inset-right)) calc(104px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));margin:auto;min-width:0}.page-heading{display:flex;flex-direction:column;gap:16px;margin-bottom:18px}.heading-copy{min-width:0}.page-heading h1{font-size:32px;font-weight:750;line-height:1.15;letter-spacing:-1px;margin:8px 0}.page-heading .muted{font-size:14px;margin:0}.heading-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.toggle{display:inline-flex;align-items:center;gap:9px;min-height:44px;cursor:pointer;font-size:14px;min-width:0}.toggle input{width:19px;height:19px;margin:0;accent-color:var(--accent);flex-shrink:0}.create-button{position:fixed;z-index:5;bottom:calc(14px + env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));width:auto;box-shadow:0 4px 18px #20242d22;min-height:50px}.create-button>span{font-size:22px;line-height:1}.board-alert{margin-bottom:18px}.stats{padding:14px 10px;margin-bottom:24px;background:#fff;border:1px solid var(--border-subtle);border-radius:16px}.stats-heading{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.stats-grid article{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:4px;text-align:center}.stats-grid article+article{border-left:1px solid var(--border-subtle)}.stats-grid strong{font-size:28px;line-height:1.2;font-weight:750;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.stats-grid article>span{font-size:11px;line-height:1.4;color:var(--text-secondary);overflow-wrap:anywhere}.completed-stat strong{color:var(--success)}.expired-stat strong{color:var(--accent)}.task-panel{min-width:0}.panel-title h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.4px}.list-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:18px 0 0}.list-controls label{margin:0 0 7px;font-size:13px}.search-control,.sort-control,.search-input-wrap{min-width:0}.search-input-wrap{position:relative}.search-input-wrap input{padding-right:48px}.search-input-wrap input::-webkit-search-cancel-button{-webkit-appearance:none}.search-clear{position:absolute;top:2px;right:2px;width:44px;height:44px;border:0;border-radius:9px;background:#fff;color:var(--text-secondary);font-size:24px}.panel-toolbar{display:flex;flex-direction:column;gap:10px;padding:16px 0;min-width:0}.tabs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.tabs button{min-height:44px;padding:9px 11px;border:1px solid var(--border-subtle);border-radius:10px;background:#fff;color:var(--text-secondary);font-size:13px;font-weight:550}.tabs button.active{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.list-count{font-size:12px;color:var(--text-secondary)}.task-list{display:flex;flex-direction:column;gap:12px}.task-row{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0;padding:18px;background:#fff;border:1px solid var(--border-subtle);border-radius:16px}.task-row.overdue{border-color:#edb7c3}.task-content{min-width:0;flex:1}.task-title-line{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}.task-id{font-size:11px;color:var(--text-secondary)}.task-title-line h2{max-width:100%;font-size:17px;font-weight:650;line-height:1.45;margin:0;overflow-wrap:anywhere}.task-meta{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;margin-top:12px}.owner{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;font-size:12px;color:var(--text-secondary)}.owner>span:last-child{min-width:0;overflow-wrap:anywhere}.meta-label,.deadline{font-size:12px;color:var(--text-secondary);line-height:1.5;overflow-wrap:anywhere}.deadline.late,.deadline.late .meta-label{color:var(--danger)}.task-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;border-radius:8px;padding:7px 9px;font-size:12px;font-weight:600;line-height:1.4}.status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:currentColor}.badge.active{background:var(--bg-subtle);color:var(--text-secondary)}.badge.done{background:var(--success-soft);color:var(--success)}.badge.canceled{background:var(--bg-subtle);color:var(--text-secondary)}.badge.expired{background:var(--danger-soft);color:var(--danger)}.complete-button,.edit-button{min-height:44px;font-size:13px;padding:10px 12px}.complete-button{color:var(--success)}.complete-button>span,.edit-button>span{font-size:16px}.readonly{color:var(--text-secondary);font-size:12px}.task-notice{margin:0 0 14px;padding:14px;border-radius:11px;color:var(--success);background:var(--success-soft);font-size:14px;overflow-wrap:anywhere}.panel-footer{display:flex;flex-direction:column;gap:8px;padding:20px 0 0;font-size:12px;line-height:1.5;color:var(--text-secondary)}.empty-state{text-align:center;padding:36px 20px;background:#fff;border:1px solid var(--border-subtle);border-radius:16px}.empty-icon{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 16px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:24px}.empty-state h2{font-size:20px;font-weight:650;line-height:1.4;margin-bottom:10px}.empty-state p{font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.modal-backdrop{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;background:#20242d66}.dialog{position:relative;width:100%;min-width:0;max-width:560px;max-height:calc(100dvh - env(safe-area-inset-top) - 12px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:28px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#fff;border-radius:22px 22px 0 0}.dialog>.eyebrow{display:block;padding-right:44px}.dialog h2{font-size:26px;font-weight:700;line-height:1.2;letter-spacing:-.5px;margin:12px 44px 12px 0}.dialog>.muted{font-size:14px;margin-bottom:20px}.close-button{position:absolute;top:16px;right:16px;width:44px;height:44px;background:var(--bg-subtle);border:0;border-radius:50%;color:var(--text-secondary);font-size:28px}.dialog-actions{display:flex;flex-direction:column-reverse;gap:10px;margin-top:24px}.dialog-actions button{width:100%}@media(max-width:539px){.header-inner .brand-copy small{display:none}.header-inner .brand-copy strong{font-size:18px}.account{margin-left:auto}.account .avatar{display:none}.account-name{max-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-actions .badge{flex-basis:100%;width:fit-content}.task-actions .complete-button,.task-actions .edit-button{flex:1 1 100px}}@media(min-width:640px){.header-inner{padding:18px 24px}.board{padding:32px 24px 48px}.page-heading{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}.page-heading h1{font-size:36px}.heading-actions{flex-direction:column;align-items:flex-end}.create-button{position:static;width:auto;box-shadow:none}.stats{padding:18px}.stats-grid article{flex-direction:row;justify-content:center;gap:12px}.stats-grid article>span{font-size:13px}.list-controls{grid-template-columns:minmax(0,1fr) minmax(0,.65fr)}.panel-toolbar{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}.task-meta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px}.panel-footer{flex-direction:row;justify-content:space-between;flex-wrap:wrap}.modal-backdrop{align-items:center;padding:24px}.dialog{border-radius:20px;padding:32px;max-height:calc(100dvh - 48px)}.dialog-actions{flex-direction:row;justify-content:flex-end}.dialog-actions button{width:auto}}@media(min-width:980px){.board{padding-top:40px}.task-row{flex-direction:row;align-items:center;padding:22px}.task-actions{flex:0 1 auto;max-width:46%;justify-content:flex-end}.task-title-line{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:10px}.task-title-line h2{flex:1;min-width:0}}@media(hover:hover)and (pointer:fine){.primary:not(:disabled):hover{background:var(--accent-hover)}.secondary:not(:disabled):hover,.close-button:hover{background:var(--bg-subtle)}.tabs button:not(.active):hover{border-color:var(--border-strong);color:var(--text-primary)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.notification-settings{background:#fff;border:1px solid var(--border-subtle);border-radius:14px;padding:0 14px;margin:0 0 18px;min-width:0}.notification-settings summary{min-height:48px;padding:14px 0;cursor:pointer;font-size:14px;font-weight:650;overflow-wrap:anywhere}.notification-summary{color:var(--text-secondary);font-size:12px;font-weight:400;margin-left:8px}.notification-settings>.muted{font-size:13px}.notification-actions{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:14px}.notification-settings .success,.notification-settings .alert{font-size:13px}.notification-events{list-style:none;padding:0;margin:0}.notification-events li{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--border-subtle);padding:12px 0;font-size:13px;overflow-wrap:anywhere}.notification-events time{color:var(--text-secondary);font-size:11px}.task-row.soon{background:#fffbed;border-color:#e9cf85}.deadline.soon,.deadline.soon .meta-label{color:#89621c}.due-soon-label{display:inline-flex;padding:5px 8px;background:#fff0bc;border-radius:8px;color:#795718;font-size:12px;line-height:1.4}.postpone-button{font-size:13px;padding:10px 12px}.postpone-presets{display:flex;flex-wrap:wrap;gap:8px}.postpone-presets .secondary{flex:1 1 90px;font-size:13px}.postpone-title{font-weight:650;overflow-wrap:anywhere}@media(max-width:539px){.task-actions .postpone-button{flex:1 1 100%}}
