:root{color-scheme:light dark;--bg:light-dark(#fff,#191c1b);--paper:light-dark(#f4f6f5,#222725);--ink:light-dark(#202b27,#e7eeea);--sub:light-dark(#637069,#a8b6ad);--line:light-dark(#e3e8e5,#39423d);--green:light-dark(#22664f,#9ed8bb);--on-green:light-dark(#fff,#18392b);--soft:light-dark(#e9f3ed,#293e32);--coral:light-dark(#a84c45,#efa39b);--shadow:light-dark(#18362814,#0005)}
:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 "Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:0}button,input,textarea,select{font:inherit;letter-spacing:0}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;min-height:38px;padding:8px 12px;cursor:pointer}button:hover{background:var(--paper)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--green);color:var(--on-green);border-color:transparent;font-weight:600}button.primary:hover{filter:brightness(.96)}button.icon{width:38px;height:38px;min-width:38px;min-height:38px;padding:8px;border:0;background:transparent}button.icon:hover{background:var(--paper)}button.quiet{border:0;background:transparent;padding:7px 0;color:var(--sub)}button.quiet:hover{color:var(--green)}svg{width:18px;height:18px;flex-shrink:0}a{color:var(--green);text-underline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.25;font-weight:650}h2{font-size:17px;font-weight:600}h3{font-size:14px;font-weight:600}small,.small{font-size:12px;color:var(--sub)}strong{font-weight:600}[hidden]{display:none!important}.error,.danger{color:var(--coral)}.error{font-size:13px;min-height:6px;margin-top:12px;overflow-wrap:anywhere}.brand{display:flex;gap:9px;align-items:center;color:var(--ink);text-decoration:none;font-size:24px;font-weight:650}.brand svg{width:26px;height:26px;color:var(--green)}.shell{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;background:var(--paper);border-right:1px solid var(--line);padding:30px 13px 22px;display:flex;flex-direction:column}.sidebar>.brand{padding:0 13px 35px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:var(--sub);display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;text-decoration:none;border-radius:6px}.sidebar nav a:hover{background:var(--bg)}.sidebar nav a[aria-current=page]{background:var(--bg);color:var(--green);font-weight:600;box-shadow:0 1px 3px var(--shadow)}.nav-count{margin-left:auto;color:var(--sub);font-size:12px;font-variant-numeric:tabular-nums}.sidebar-bottom{margin-top:auto;padding:32px 12px 0;font-size:12px;color:var(--sub)}.sidebar-bottom strong{display:block;margin-bottom:5px;color:var(--ink)}.sidebar-bottom button{margin-top:22px;gap:9px}.workspace{width:100%;max-width:1410px;padding:28px 38px 45px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;margin-bottom:20px}.topbar time{text-transform:capitalize;color:var(--sub);font-size:12px}.top-actions{display:flex;align-items:center;gap:5px}.sync-state{display:flex;gap:4px;align-items:center;font-size:11px;color:var(--sub);white-space:nowrap;margin-right:10px}.sync-state svg{width:13px;height:13px}.sync-state[data-state=error]{color:var(--coral)}.mobile-brand,.mobile-tool{display:none!important}.page-head{margin-bottom:30px}.page-head p{margin-top:9px;color:var(--sub);max-width:560px}.columns{display:grid;grid-template-columns:minmax(0,1fr) 254px;gap:34px;align-items:start}.task-space{min-width:0}.progress-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:9px}.progress-label span{font-variant-numeric:tabular-nums;color:var(--sub)}progress{display:block;width:100%;height:5px;appearance:none;border:0;border-radius:3px;overflow:hidden;background:var(--line);accent-color:var(--green)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}.quick-add{display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line);margin:24px 0 25px;padding-bottom:9px}.quick-add input{border:0;background:transparent;flex:1;min-width:0;color:var(--ink);padding:9px 0;outline-offset:4px}.quick-add .add-button{background:var(--soft);color:var(--green)}input::placeholder,textarea::placeholder{color:var(--sub)}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 1px}.list-heading h2{font-size:12px;color:var(--sub);font-weight:600}.list-heading small{font-size:11px}.task{padding:20px 0;border-bottom:1px solid var(--line)}.task-top{display:flex;align-items:flex-start;gap:11px}.task-check{width:20px;height:20px;flex-shrink:0;accent-color:var(--green);margin:3px 0 0}.task-body{min-width:0;flex:1}.task .task-title{display:block;text-align:left;font-weight:600;padding:0;min-height:24px;border:0;background:transparent;border-radius:2px;overflow-wrap:anywhere;word-break:normal}.task .task-title:hover{color:var(--green)}.task.done .task-title{text-decoration:line-through;color:var(--sub);font-weight:400}.task-meta{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:5px;color:var(--sub);font-size:12px}.task-meta span{display:inline-flex;align-items:center;gap:4px}.task-meta svg{width:12px;height:12px}.task-meta .overdue{color:var(--coral)}.task-actions{display:flex;flex-shrink:0;margin-top:-5px}.task-actions button{color:var(--sub)}.task details{margin:12px 0 0 31px}.task summary{color:var(--sub);font-size:12px;cursor:pointer;min-height:25px}.step-check{display:flex;gap:9px;align-items:flex-start;padding:7px 0;font-size:12px}.step-check input{width:16px;height:16px;accent-color:var(--green);margin:2px 0 0}.step-check span{overflow-wrap:anywhere}.empty{padding:34px 0 44px;color:var(--sub);max-width:420px}.empty>svg{width:28px;height:28px;color:var(--green);margin-bottom:16px}.empty h2{color:var(--ink);font-size:17px;margin-bottom:8px}.empty p{font-size:13px}.completed-heading{margin-top:28px}.focus-tool{background:var(--paper);padding:20px;border:1px solid var(--line);border-radius:8px}.tool-heading{display:flex;align-items:center;gap:8px;margin-bottom:13px}.tool-heading svg{color:var(--green)}.focus-task{font-size:12px;color:var(--sub);min-height:38px;overflow-wrap:anywhere}.timer{font-size:45px;font-weight:500;line-height:1.2;text-align:center;font-variant-numeric:tabular-nums;padding:10px 0 20px}.duration-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--bg);margin-bottom:14px}.duration-options button{padding:5px 0;font-size:11px;min-height:30px;border:0;background:transparent}.duration-options button[aria-pressed=true]{background:var(--soft);color:var(--green)}.timer-actions{display:flex;align-items:center;gap:5px}.timer-actions .primary{flex:1;font-size:13px}.focus-note{text-align:center;margin-top:14px}.reminder-summary{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.reminder-summary .tool-heading h2{font-size:14px}.reminder-summary .tool-heading svg{color:var(--coral)}.reminder-summary p{font-size:12px;color:var(--sub)}.reminder-summary button{font-size:12px;margin-top:7px}.encouragement{display:flex;gap:9px;align-items:flex-start;border-top:1px solid var(--line);padding-top:18px;margin-top:23px;color:var(--sub);font-size:12px}.encouragement svg{color:var(--coral);margin-top:2px}.offline-banner{background:var(--paper);border-left:3px solid var(--coral);padding:10px 13px;font-size:12px;color:var(--sub);margin-bottom:20px}
dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;max-width:calc(100% - 28px);width:520px;max-height:90dvh;overflow:auto;padding:24px;box-shadow:0 15px 70px var(--shadow)}dialog::backdrop{background:#0d181566;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:20px}.dialog-heading h2{font-size:18px}.dialog-heading>button{margin:-7px -8px -7px 0;flex-shrink:0}label{display:block;font-size:12px;font-weight:600}label input:not([type=checkbox]),label select,label textarea{margin-top:6px}input:not([type=checkbox]),textarea,select{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:9px 10px;min-width:0;max-width:100%}label input:not([type=checkbox]),label select,label textarea{width:100%}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 16px;margin:18px 0}.form-grid label{min-width:0}.form-grid small{display:block;margin-top:3px;font-size:11px}.check{display:flex;gap:9px;align-items:center;font-weight:400}.check input{flex-shrink:0;width:18px;height:18px;margin:0}.task-title-input{width:100%;font-size:20px;font-weight:600;border:0!important;padding:4px 0!important;border-radius:0!important;line-height:1.4}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:23px 0 10px}.edit-step{display:flex;gap:8px;align-items:center;margin-bottom:7px}.edit-step input[type=text]{flex:1;min-width:0;font-size:13px}.edit-step input[type=checkbox]{flex-shrink:0}.edit-step button{flex-shrink:0}.task-reminder{border-top:1px solid var(--line);padding-top:17px;margin-top:18px}.task-reminder p{margin-top:6px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:23px}.dialog-footer>.danger{margin-right:auto}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.reminder-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0 17px}.reminder-controls .check{min-width:0}.reminder-controls input[type=time]{max-width:118px;flex-shrink:0}.settings-section{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.settings-section h3{margin-bottom:12px}.settings-section p{margin-bottom:10px}.install-section{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--sub)}.install-section p{margin:0}.install-section>svg{margin-top:3px}.install-section button{font-size:12px}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:7px;padding:10px 12px;box-shadow:0 8px 30px var(--shadow);max-width:calc(100% - 28px);width:max-content;font-size:13px}.toast>svg{color:var(--green)}.toast>span{min-width:0;max-width:420px;overflow-wrap:anywhere}.toast button{flex-shrink:0;font-size:12px}.toast .icon{width:30px;min-width:30px;height:30px;min-height:30px}.loading,.login-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;gap:10px}.loading>svg{color:var(--green)}.login-form{width:100%;max-width:330px}.login-form .brand{margin-bottom:35px}.login-form h1{font-size:26px;margin-bottom:28px}.login-form button.primary{width:100%;margin-top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-80px;left:12px;z-index:100;background:var(--bg);padding:10px;border:1px solid var(--green);border-radius:4px}.skip:focus{top:12px}:focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media(min-width:1450px){.workspace{padding:34px 55px}.columns{gap:48px;grid-template-columns:minmax(0,1fr) 275px}.sidebar{padding-top:36px}.task{padding:23px 0}}
@media(max-width:1100px){.shell{grid-template-columns:166px minmax(0,1fr)}.workspace{padding:25px}.columns{gap:24px;grid-template-columns:minmax(0,1fr) 228px}.focus-tool{padding:17px}.sidebar{padding-left:9px;padding-right:9px}.sidebar nav a{font-size:13px;gap:8px}.task-actions{flex-direction:column}.task-actions .icon{height:30px;min-height:30px;width:32px;min-width:32px}.timer{font-size:41px}.duration-options button{font-size:10px}}
@media(max-width:900px){.columns{display:block}#tools-home{display:none}.mobile-tool{display:inline-flex!important}.task-actions{flex-direction:row}.task-actions .icon{height:36px;min-height:36px;width:36px;min-width:36px}.workspace{padding:23px 25px}.timer{font-size:48px}.duration-options button{font-size:12px}.focus-tool{padding:23px}.toast{bottom:max(22px,env(safe-area-inset-bottom))}}
@media(max-width:620px){.shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:20;height:auto;display:block;padding:6px 12px max(9px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);background:var(--bg)}.sidebar>.brand,.sidebar-bottom{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.sidebar nav a{flex-direction:column;gap:3px;padding:6px 3px;font-size:11px;min-height:51px}.sidebar nav a svg{width:21px;height:21px}.sidebar nav a[aria-current=page]{box-shadow:none;background:var(--soft)}.nav-count{display:none}.workspace{padding:16px 20px 115px}.topbar{margin-bottom:23px;gap:5px}.topbar time{display:none}.mobile-brand{display:flex!important;font-size:21px;gap:7px}.mobile-brand svg{width:23px;height:23px}.top-actions{gap:1px}.sync-state{margin-right:7px;font-size:10px}.page-head h1{font-size:27px}.page-head p{font-size:13px;max-width:340px}.page-head{margin-bottom:25px}.task{padding:19px 0}.task-top{gap:10px}.task-title{font-size:14px}.task-meta{gap:5px 9px;font-size:11px}.task-actions{flex-direction:column;margin-top:-5px}.task-actions .icon{width:34px;min-width:34px;height:32px;min-height:32px}.task details{margin-left:30px}.quick-add{margin-top:22px}.quick-add input{font-size:16px}.quick-add .add-button{min-width:38px;min-height:38px}.list-heading small{font-size:10px}.toast{bottom:calc(82px + env(safe-area-inset-bottom));font-size:12px;gap:7px;padding:8px 10px;max-width:calc(100% - 24px)}.toast>svg{width:16px;height:16px}.toast>span{max-width:230px}dialog{padding:22px 19px;border-radius:8px;max-height:88dvh;max-width:calc(100% - 18px);width:520px}.form-grid{gap:15px 12px}input:not([type=checkbox]),textarea,select{font-size:16px}.task-title-input{font-size:20px!important}.edit-step input[type=text]{font-size:16px}.edit-step button{width:32px;min-width:32px}.reminder-controls{align-items:flex-start}.reminder-controls label{font-size:12px}.reminder-controls input[type=time]{max-width:108px}.reminder-controls .check{padding-top:10px}.install-section{font-size:11px}.dialog-footer .primary{min-height:44px}.empty{padding-top:25px}}
@media(prefers-reduced-motion:no-preference){progress::-webkit-progress-value{transition:width .2s}button,a{transition:background-color .12s,color .12s}}
/* Multi-comptes : code, listes, étiquettes, priorités, échéances, ntfy */
:root{--tc-bg:light-dark(#eceeed,#343a37);--tc-fg:light-dark(#4b5651,#c9d3ce)}
.tag-gray{--tc-bg:light-dark(#eceeed,#343a37);--tc-fg:light-dark(#4b5651,#c9d3ce)}.tag-red{--tc-bg:light-dark(#fbe4e1,#4a2724);--tc-fg:light-dark(#8a2f27,#f3b4ad)}.tag-orange{--tc-bg:light-dark(#fde9d6,#47301a);--tc-fg:light-dark(#8a4a0c,#f2c28d)}.tag-yellow{--tc-bg:light-dark(#faf0c8,#443c15);--tc-fg:light-dark(#6d5a05,#ead98a)}.tag-green{--tc-bg:light-dark(#dff1e5,#233e2c);--tc-fg:light-dark(#1d5a35,#a6dbb8)}.tag-blue{--tc-bg:light-dark(#e0ecfa,#223446);--tc-fg:light-dark(#1f4f86,#a9cdf2)}.tag-purple{--tc-bg:light-dark(#ece4f8,#35294a);--tc-fg:light-dark(#5a3a8a,#cdb6ee)}
.tag{display:inline-flex;align-items:center;max-width:100%;padding:1px 9px;border-radius:99px;font-size:11px;line-height:1.6;background:var(--tc-bg);color:var(--tc-fg);overflow-wrap:anywhere}
.task-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.swatch{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--tc-fg);flex-shrink:0}
.task-meta .prio{color:var(--sub)}.task-meta .prio-2{color:var(--ink)}.task-meta .prio-3{color:var(--coral);font-weight:600}.task-meta .prio-1 svg{opacity:.6}
.task-meta .due{color:var(--sub)}.task-meta .overdue{font-weight:600}.task.is-overdue{box-shadow:inset 3px 0 0 var(--coral);padding-left:10px}
.task-meta .list-name{color:var(--sub)}
.fieldset-reset,fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;font-size:12px;font-weight:600}
.code-field{margin:0 0 6px}.code-field legend{margin-bottom:10px}.code-cells{display:flex;gap:10px}
.code-cell{width:100%;min-width:0;height:64px;text-align:center;font-size:28px;font-weight:600;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);-webkit-text-security:disc}
.login-hint{margin-top:6px}.login-form .error{min-height:20px}
.side-lists{margin-top:22px;min-height:0;display:flex;flex-direction:column}.side-title{font-size:11px;color:var(--sub);text-transform:uppercase;letter-spacing:.04em;padding:0 12px 6px}
.list-nav{display:grid;gap:3px;overflow-y:auto;min-height:0;max-height:34dvh}
.list-link{justify-content:flex-start;gap:8px;width:100%;min-height:40px;border:0;background:transparent;color:var(--sub);padding:8px 12px;text-align:left}.list-link:hover{background:var(--bg)}.list-link[aria-current=true]{background:var(--bg);color:var(--green);font-weight:600;box-shadow:0 1px 3px var(--shadow)}
.list-link .list-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-lists>.quiet{justify-content:flex-start;padding:8px 12px;font-size:12px;min-height:36px}
.sidebar-bottom{padding-top:16px}.sidebar-bottom button{margin-top:6px;justify-content:flex-start;font-size:12px}.user-line{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:600;overflow-wrap:anywhere}.user-line svg{color:var(--green)}
.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0 0}.filters label{font-size:11px;color:var(--sub)}.filters select{font-size:13px}.filter-list-label{display:none}
.filter-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.filter-summary .quiet{padding:4px 0;white-space:nowrap}
.account-line{margin:-8px 0 14px}.organize-actions{margin-bottom:6px}
.ntfy-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.ntfy-section h3{margin-bottom:8px}.ntfy-section>label[for]{display:block;margin-top:14px}
.ntfy-section>.small{line-height:1.5}.ntfy-section .actions{margin-top:12px}.ntfy-section>.check{margin-top:16px}
.secret-field{display:flex;align-items:center;gap:6px;margin-top:6px}.secret-field input{flex:1;min-width:0;width:100%}.secret-field .icon{border:1px solid var(--line)}
.tag-picker{margin:4px 0 16px}.tag-picker legend{margin-bottom:8px}.tag-options{display:flex;flex-wrap:wrap;gap:8px}
.tag-option{display:inline-flex;align-items:center;gap:6px;font-weight:400;min-height:32px}.tag-option input{width:18px;height:18px;margin:0}.tag-option input:disabled+.tag{opacity:.45}
.inline-form{display:flex;gap:8px;align-items:center;margin-bottom:14px}.inline-form input{flex:1;min-width:0}.inline-form .color-select{width:auto}
.manage-list{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px}.manage-row{display:flex;align-items:center;gap:6px}.manage-row .manage-name{flex:1;min-width:0}.manage-row .color-select{width:auto;max-width:110px}.manage-row .icon{border:0}
#move-form label{margin-top:14px}#move-message{overflow-wrap:anywhere}
@media(max-width:900px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .side-lists{display:none}.filter-list-label{display:block}.filters{grid-template-columns:1fr 1fr;gap:10px}.filter-list-label{grid-column:1/-1}
  button{min-height:44px}button.icon{width:44px;height:44px;min-width:44px;min-height:44px}.task-actions .icon{width:44px;min-width:44px;height:44px;min-height:44px}.task-actions{flex-direction:row;margin-top:-8px}
  .task-check{width:26px;height:26px}.task .task-title{min-height:44px;display:flex;align-items:center}
  .step-check input{width:22px;height:22px}.step-check{padding:11px 0}.duration-options button{min-height:44px}.toast .icon{width:44px;min-width:44px;height:44px;min-height:44px}
  .code-cell{height:60px;font-size:26px}.tag-option{min-height:44px}.tag-option input{width:22px;height:22px}.manage-row .color-select{max-width:96px}.inline-form{flex-wrap:wrap}.inline-form input{flex-basis:100%}
  .secret-field .icon{flex-shrink:0}
}
