/* Tasks — styles de l'application (chargés par index.html). */
:root{
  --bg:#0a0a0a;--bg1:#111;--bg2:#161616;--bg3:#1c1c1c;
  --txt:#f5f5f5;--txt2:#a0a0a0;--txt3:#555;
  --brd:rgba(255,255,255,.06);--brd2:rgba(255,255,255,.12);
  --acc-dim:rgba(255,255,255,.06);
  --green:#4ade80;--red:#f87171;
  --r:8px;--r2:12px;
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace
}
[data-theme="light"]{
  --bg:#f8f8f7;--bg1:#ffffff;--bg2:#f2f1ef;--bg3:#e8e7e4;
  --txt:#1a1a1a;--txt2:#6b6b6b;--txt3:#b0b0b0;
  --brd:rgba(0,0,0,.07);--brd2:rgba(0,0,0,.14);
  --acc-dim:rgba(0,0,0,.04);
  --green:#16a34a;--red:#dc2626
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;max-height:100%;overflow:hidden;background:var(--bg);color:var(--txt);font-family:var(--font);font-size:15px;-webkit-font-smoothing:antialiased}
input,textarea,select,button{font-family:var(--font)}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.4}

/* APP */
#app{display:none;flex-direction:column;height:100vh;height:-webkit-fill-available;max-height:100vh;overflow:hidden;position:fixed;inset:0;width:100%}
#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--bg);z-index:999}
.load-brand{display:flex;flex-direction:column;align-items:center;gap:12px;animation:fade-in .35s ease-out}
.load-brand svg{filter:drop-shadow(0 8px 24px rgba(59,130,246,.35))}
.load-name{font-size:22px;font-weight:600;letter-spacing:-.4px;color:var(--txt)}
.load-dots{display:flex;gap:6px;margin-top:4px}
.load-dot{width:6px;height:6px;border-radius:50%;background:var(--txt3);animation:pulse 1.2s ease-in-out infinite}
.load-dot:nth-child(2){animation-delay:.2s}.load-dot:nth-child(3){animation-delay:.4s}
@keyframes pulse{0%,80%,100%{transform:scale(.8);opacity:.4}40%{transform:scale(1);opacity:1}}

/* AUTH */
#auth{display:none;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;background:var(--bg)}
.auth-wrap{width:100%;max-width:380px;display:flex;flex-direction:column;gap:1.5rem}
.auth-mark{font-size:20px;font-weight:500;letter-spacing:-.5px;display:flex;align-items:center;gap:.6rem}
.auth-title{font-size:24px;font-weight:500;letter-spacing:-.5px;margin-bottom:.35rem}
.auth-sub{font-size:14px;color:var(--txt2);font-weight:300}
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}
.field label{font-size:12px;color:var(--txt3)}
.field input{background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r);padding:10px 12px;font-size:14px;color:var(--txt);outline:none;transition:border-color .15s}
.field input:focus{border-color:var(--txt3)}
.btn{width:100%;padding:12px;background:var(--txt);color:var(--bg);border:none;border-radius:var(--r);font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;letter-spacing:.01em}
.btn:hover{opacity:.88}
.btn-ghost{background:transparent;color:var(--txt2);border:1px solid var(--brd2);margin-top:.6rem}
.btn-ghost:hover{opacity:1;border-color:var(--brd2);color:var(--txt);background:var(--acc-dim)}
.auth-err{font-size:12px;color:var(--red);min-height:16px}
.auth-switch{font-size:13px;color:var(--txt3);text-align:center;cursor:pointer}
.auth-switch span{color:var(--txt2);text-decoration:underline}
.auth-legal{font-size:12px;color:var(--txt3);line-height:1.5;margin-top:.75rem}
.auth-legal a{color:var(--txt2)}

/* LAYOUT */
#main{display:none;flex:1;min-height:0;overflow:hidden;flex-direction:column}
.mobile-nav{display:none;align-items:center;padding:.75rem 1rem;padding-top:max(.75rem, env(safe-area-inset-top));border-bottom:1px solid var(--brd);background:var(--bg1);gap:.75rem;flex-shrink:0;position:sticky;top:0;z-index:100}
@media(max-width:768px){.mobile-nav{display:flex}}
.mobile-view-title{flex:1;font-size:15px;font-weight:500;letter-spacing:-.3px;color:var(--txt);text-align:center}
.hamburger-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px;width:32px;height:32px;flex-shrink:0}
.hamburger-btn span{display:block;height:1.5px;background:var(--txt);border-radius:2px;transition:all .25s}
.user-ava{width:28px;height:28px;border-radius:50%;background:var(--bg3);border:1px solid var(--brd2);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;overflow:hidden;flex-shrink:0;line-height:1;color:var(--txt)}
.layout{display:flex;flex:1;min-height:0;overflow:hidden}


/* SIDEBAR */
.sidebar{width:220px;flex-shrink:0;border-right:1px solid var(--brd);display:flex;flex-direction:column;padding:1.25rem 0;background:var(--bg1);transition:width .25s cubic-bezier(.4,0,.2,1);overflow:hidden}
@media(max-width:768px){.sidebar{display:none}}
.sidebar.collapsed{width:56px}
.sidebar-logo{padding:0 1rem 1.25rem;display:flex;align-items:center;gap:.6rem;color:var(--txt);font-size:15px;font-weight:500;letter-spacing:-.3px;min-width:0}
.sidebar-logo-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.sidebar.collapsed .sidebar-logo-text{display:none}
.sidebar.collapsed .sidebar-logo{justify-content:center;padding:0 0 1.25rem}
.sidebar-toggle-btn{width:100%;background:none;border:none;cursor:pointer;color:var(--txt3);padding:.4rem .75rem;border-radius:0;display:flex;align-items:center;gap:.5rem;font-size:12px;font-family:var(--font);font-weight:400;transition:all .15s;margin-bottom:.5rem}
.sidebar-toggle-btn:hover{color:var(--txt);background:var(--acc-dim)}
.sidebar-toggle-btn:hover{color:var(--txt);background:var(--acc-dim)}
.sidebar-toggle-btn svg{width:16px;height:16px;transition:transform .25s}
.sidebar.collapsed .sidebar-toggle-btn svg{transform:rotate(180deg)}
.sidebar.collapsed .sidebar-toggle-btn{justify-content:center;padding:.4rem 0}
.sidebar.collapsed .sidebar-toggle-label{display:none}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .5rem;flex:1;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:var(--r);border:none;background:none;color:var(--txt2);font-size:14px;cursor:pointer;transition:all .12s;font-family:var(--font);font-weight:400;width:100%;text-align:left}
.nav-item svg{width:15px;height:15px;flex-shrink:0;opacity:.6}
.nav-item:hover{background:var(--acc-dim);color:var(--txt)}
.nav-item.active{background:var(--acc-dim);color:var(--txt)}
.nav-item.active svg{opacity:1}
.nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar.collapsed .nav-item span{display:none}
.sidebar.collapsed .nav-item{justify-content:center;padding:.55rem 0}
.sidebar-footer{margin-top:auto;padding:.75rem .75rem;border-top:1px solid var(--brd)}
.user-pill{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border-radius:var(--r)}
.user-name{font-size:12px;color:var(--txt2);font-weight:300;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.sidebar.collapsed .user-name{display:none}
.sidebar.collapsed .user-pill{justify-content:center;padding:.4rem 0}
.sidebar.collapsed .user-pill .user-ava{margin:0 auto}
.sidebar.collapsed .sidebar-footer{padding:.6rem 0}
.sidebar.collapsed .user-pill{flex-direction:column;gap:.35rem}
.btn-logout-s{background:none;border:none;cursor:pointer;color:var(--txt3);padding:4px;border-radius:6px;transition:color .15s;display:flex;align-items:center;flex-shrink:0}
.btn-logout-s:hover{color:var(--txt)}

/* CONTENT */
.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.5rem 2rem;min-width:0;-webkit-overflow-scrolling:touch}
@media(max-width:768px){.content{padding:1rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}}
.content-header{margin-bottom:1.5rem}
.page-title{font-size:22px;font-weight:500;letter-spacing:-.5px}
.page-sub{font-size:13px;color:var(--txt3);margin-top:.2rem;font-weight:300}

/* VIEWS */
.view{display:none}.view.active{display:block}

/* TASKS VIEW */
.voice-area{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:1.25rem;margin-bottom:1.25rem}
.mic-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.mic-ring{width:44px;height:44px;border-radius:50%;background:var(--bg3);border:1.5px solid var(--brd2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.mic-ring.off{opacity:.35;cursor:not-allowed}
.mic-ring.listening{border-color:var(--green);background:rgba(22,163,74,.08);animation:ring-pulse 1.5s ease-in-out infinite}
.mic-ring svg{width:18px;height:18px;fill:none;stroke:var(--txt2);stroke-width:1.8;stroke-linecap:round}
.mic-ring.listening svg{stroke:var(--green)}
@keyframes ring-pulse{0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,.2)}50%{box-shadow:0 0 0 8px rgba(74,222,128,0)}}
.mic-info{flex:1;min-width:0}
.mic-status{font-size:13px;color:var(--txt3);font-weight:300}
.mic-status.listening{color:var(--green)}
.transcript{display:none;font-size:14px;color:var(--txt2);line-height:1.6;font-weight:300;min-height:0;max-height:80px;overflow:hidden}
.transcript.show{display:block}
.transcript.has-text{color:var(--txt)}
.ai-row{display:flex;gap:.5rem;margin-top:.75rem;align-items:center}
.btn-ai{display:none;flex:1;padding:9px;background:var(--txt);color:var(--bg);border:none;border-radius:var(--r);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s;align-items:center;justify-content:center;gap:.4rem}
.btn-ai.show{display:flex}
.btn-ai:disabled{opacity:.5}
.ai-spin{width:12px;height:12px;border:1.5px solid rgba(10,10,10,.2);border-top-color:#0a0a0a;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ADD TOGGLE */
.add-toggle-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent!important;border:none!important;outline:none!important;box-shadow:none!important;color:var(--txt3);font-size:12px;cursor:pointer;padding:.2rem 0;margin-bottom:1rem;transition:color .15s;font-family:var(--font);font-weight:400}
.add-toggle-btn:hover{color:var(--txt2)}
.add-toggle-btn svg{stroke:currentColor;transition:transform .2s;width:13px;height:13px;flex-shrink:0}

/* ADD SECTION */
.add-section{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:1.25rem;margin-bottom:1rem;display:none}
.add-section.open{display:block}
.add-title{font-size:12px;color:var(--txt3);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}
.add-row{display:flex;gap:.5rem;flex-wrap:wrap}
.add-input{flex:1;min-width:140px;background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);padding:8px 10px;font-size:13px;color:var(--txt);outline:none;font-weight:300}
.add-input::placeholder{color:var(--txt3)}
.add-select{background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);padding:8px 10px;font-size:13px;color:var(--txt);outline:none;cursor:pointer}
.add-select option{background:var(--bg2)}
.btn-add{padding:9px 16px;background:var(--acc-dim);border:1px solid var(--brd2);border-radius:var(--r);font-size:13px;color:var(--txt);cursor:pointer;transition:all .15s;white-space:nowrap;font-weight:400}
.btn-add:hover{background:rgba(245,245,245,.1);border-color:var(--txt3)}

/* TASK LIST */
.tasks-section-title{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.4rem}
.task-list{display:flex;flex-direction:column;gap:4px}
.task-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:var(--r);border:1px solid transparent;transition:all .12s;cursor:pointer}
.task-item:hover{background:var(--bg2);border-color:var(--brd)}
.task-item.done{opacity:.45}
.task-item.selected{background:var(--acc-dim);border-color:var(--brd)}
.task-cb{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--brd2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;cursor:pointer}
.task-cb svg{width:9px;height:9px;display:none}
.task-item.done .task-cb{background:var(--green);border-color:var(--green)}
.task-item.done .task-cb svg{display:block}
.task-body{flex:1;min-width:0}
.task-title{font-size:15px;font-weight:400;color:var(--txt);margin-bottom:2px;word-break:break-word}
.task-meta{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
.chip{font-size:11px;padding:2px 7px;border-radius:99px;border:1px solid var(--brd);color:var(--txt3);font-weight:300}
.chip-time{color:var(--txt2);border-color:var(--brd2)}
.chip-cat{color:var(--txt3);border-color:var(--brd)}
.chip-date{color:#818cf8;border-color:rgba(129,140,248,.3);background:rgba(129,140,248,.06)}
.sub-count{font-size:11px;color:var(--txt3);background:var(--bg3);border-radius:99px;padding:1px 6px;border:1px solid var(--brd)}
.task-expand{background:none;border:none;color:var(--txt3);cursor:pointer;font-size:16px;padding:2px 4px;transition:transform .15s;line-height:1}
.task-expand.open{transform:rotate(180deg)}
.task-del{background:none;border:none;color:transparent;cursor:pointer;font-size:13px;padding:2px 4px;transition:color .12s}
.task-item:hover .task-del{color:var(--txt3)}
.task-del:hover{color:var(--red)!important}
.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--txt3);font-size:14px;font-weight:300;line-height:1.8}
.task-detail{display:none;padding:.6rem .75rem .75rem calc(.75rem + 18px + .75rem);background:transparent}
.task-detail.open{display:block}
.detail-desc{width:100%;background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r);padding:8px 10px;font-size:13px;color:var(--txt);outline:none;resize:none;font-family:var(--font);font-weight:300;margin-bottom:.5rem;transition:border-color .15s}
.detail-desc:focus{border-color:var(--brd2)}
.sub-list{display:flex;flex-direction:column;gap:2px;margin-bottom:.5rem}
.sub-item{display:flex;align-items:center;gap:.5rem;padding:3px 0}
.sub-cb{width:14px;height:14px;border-radius:3px;border:1px solid var(--brd2);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent}
.sub-item.done .sub-cb{background:var(--green);border-color:var(--green)}
.sub-item.done .sub-cb svg{display:block}
.sub-cb svg{width:7px;height:7px;display:none}
.sub-lbl{font-size:13px;color:var(--txt2);flex:1;font-weight:300}
.sub-item.done .sub-lbl{text-decoration:line-through;color:var(--txt3)}
.sub-del{background:none;border:none;color:transparent;cursor:pointer;font-size:12px;padding:0 3px}
.sub-item:hover .sub-del{color:var(--txt3)}
.sub-del:hover{color:var(--red)!important}
.sub-add-row{display:flex;gap:.4rem}
.sub-add-input{flex:1;background:transparent;border:none;border-bottom:1px solid var(--brd);padding:4px 2px;font-size:13px;color:var(--txt);outline:none;font-weight:300;font-family:var(--font)}
.sub-add-input:focus{border-color:var(--brd2)}
.sub-add-input::placeholder{color:var(--txt3)}
.sub-add-btn{padding:4px 10px;background:transparent;border:1px solid var(--brd);border-radius:6px;font-size:12px;color:var(--txt2);cursor:pointer;transition:all .12s;font-weight:400}
.sub-add-btn:hover{border-color:var(--brd2);color:var(--txt)}

/* NOTIF */
.notif{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(8px);background:var(--txt);color:var(--bg);padding:8px 16px;border-radius:99px;font-size:13px;font-weight:500;opacity:0;transition:all .25s;pointer-events:none;z-index:500;white-space:nowrap}
.notif.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* DETAIL PANEL (PC right panel) */
.detail-panel{width:360px;flex-shrink:0;border-left:1px solid var(--brd);background:var(--bg1);display:flex;flex-direction:column;overflow-y:auto;transition:width .2s}
.detail-panel.empty{width:0;border:none;overflow:hidden}
@media(max-width:900px){.detail-panel{display:none}}
.dp-inner{padding:1.5rem;flex:1;display:flex;flex-direction:column;gap:1rem}
.dp-empty{text-align:center;padding:3rem 1rem;color:var(--txt3);font-size:14px;font-weight:300;line-height:1.8}

/* CALENDAR */
.cal-nav-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.cal-month{font-size:16px;font-weight:500;flex:1;letter-spacing:-.3px}
.cal-arrow{background:none;border:1px solid var(--brd2);border-radius:6px;color:var(--txt2);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .12s;flex-shrink:0}
.cal-arrow:hover{border-color:var(--brd2);color:var(--txt);background:var(--acc-dim)}
.day-detail{display:flex;flex-direction:column;gap:0}
.day-detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}
.day-back{background:none;border:1px solid var(--brd2);border-radius:6px;color:var(--txt2);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .12s}
.day-back:hover{color:var(--txt);background:var(--acc-dim)}
.day-date-title{font-size:18px;font-weight:500;letter-spacing:-.3px}
.day-date-sub{font-size:13px;color:var(--txt3);font-weight:300}
.tl-row{display:flex;align-items:flex-start;gap:.75rem;min-height:40px}
.tl-hour{width:28px;font-size:11px;color:var(--txt3);padding-top:10px;flex-shrink:0;font-family:var(--mono);font-weight:300}
.tl-line{width:1px;background:var(--brd);flex-shrink:0;align-self:stretch;margin-top:8px}
.tl-events{flex:1;padding:.25rem 0 .25rem .5rem;display:flex;flex-direction:column;gap:4px}
.tl-task{display:flex;align-items:center;gap:.5rem;padding:5px 10px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--brd);cursor:pointer;transition:all .12s}
.tl-task:hover{border-color:var(--brd2);background:var(--bg3)}
.tl-task.done{opacity:.4}
.tl-cb{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--brd2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.tl-task.done .tl-cb{background:var(--green);border-color:var(--green)}
.tl-title{font-size:13px;color:var(--txt2);font-weight:300;flex:1;word-break:break-word}
.tl-sub{font-size:11px;color:var(--txt3);background:var(--bg3);border-radius:99px;padding:1px 6px;border:1px solid var(--brd)}
.no-time-section{margin-top:.5rem}
.no-time-label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-weight:400}

/* WEEK VIEW */
.week-nav-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.week-nav-label{font-size:14px;color:var(--txt2);flex:1;font-weight:300}
.week-day-row{display:flex;gap:0;border-bottom:1px solid var(--brd)}
.week-day-row:last-child{border-bottom:none}
.week-day-header{width:80px;flex-shrink:0;padding:.75rem .5rem;border-right:1px solid var(--brd)}
.week-day-name{font-size:11px;color:var(--txt3);font-weight:400;text-transform:uppercase;letter-spacing:.03em}
.week-day-date{font-size:20px;font-weight:500;letter-spacing:-.5px;color:var(--txt);line-height:1.2}
.week-day-header.today .week-day-date{color:var(--green)}
.week-day-tasks{flex:1;padding:.5rem .75rem;display:flex;flex-direction:column;gap:4px;min-height:44px}
.week-task{display:flex;align-items:center;gap:.5rem;padding:5px 8px;border-radius:var(--r);background:var(--bg2);border:1px solid var(--brd);cursor:pointer;transition:all .12s;font-size:13px;color:var(--txt2);font-weight:300}
.week-task:hover{border-color:var(--brd2);color:var(--txt)}
.week-task.done{opacity:.35;text-decoration:line-through}
.week-task-time{font-size:11px;color:var(--txt3);font-family:var(--mono,monospace);flex-shrink:0}
.week-empty{font-size:12px;color:var(--txt3);padding:.25rem 0;font-weight:300}
@media(max-width:600px){.week-day-header{width:48px}.week-day-name{font-size:9px}.week-day-date{font-size:15px}}

/* SEARCH */
.search-input{width:100%;background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r);padding:11px 14px;font-size:15px;color:var(--txt);outline:none;font-family:var(--font);font-weight:300;box-sizing:border-box;margin-bottom:1.25rem}
.search-input:focus{border-color:var(--txt3)}
.search-input::placeholder{color:var(--txt3)}
.search-empty{font-size:14px;color:var(--txt3);text-align:center;padding:2rem;font-weight:300}
.search-date-label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;margin-top:.75rem;font-weight:400}

/* SUMMARY */
.btn-generate-summary{display:flex;align-items:center;gap:.5rem;background:var(--txt);color:var(--bg);border:none;border-radius:var(--r);padding:10px 18px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;margin-bottom:1.5rem;font-family:var(--font)}
.btn-generate-summary:hover{opacity:.85}
.btn-generate-summary:disabled{opacity:.4;cursor:default}
.summary-content{font-size:14px;line-height:1.8;color:var(--txt2);font-weight:300;white-space:pre-wrap;background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:1.25rem}
.summary-spin{display:inline-block;width:12px;height:12px;border:1.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:.4rem;vertical-align:middle}

/* MOBILE MODAL */
.task-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:none;align-items:flex-end;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.task-modal-overlay.open{display:flex}
@media(min-width:540px){.task-modal-overlay{align-items:center}}
.task-modal{background:var(--bg1);border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;overflow-x:hidden;padding:1.25rem 1rem;animation:slide-up .22s ease;box-sizing:border-box}
@media(min-width:540px){.task-modal{border-radius:16px;max-width:480px;max-height:80vh;animation:fade-in .18s ease}}
.task-modal *{box-sizing:border-box}
@keyframes slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes fade-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.task-modal-bar{width:36px;height:4px;background:var(--brd2);border-radius:99px;margin:0 auto .75rem}
.task-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.task-modal-title{font-size:17px;font-weight:500;letter-spacing:-.3px;line-height:1.4;flex:1;min-width:0}
.modal-title-edit{width:100%;background:transparent;border:none;border-bottom:1.5px solid var(--brd2);padding:4px 0;font-size:18px;font-weight:500;color:var(--txt);outline:none;font-family:var(--font);letter-spacing:-.3px}
.modal-title-edit:focus{border-color:var(--txt2)}
.task-modal-close{width:28px;height:28px;border-radius:8px;border:1px solid var(--brd2);background:transparent;color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.task-modal-section{margin-bottom:1rem}
.task-modal-label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-weight:400}
.task-modal-desc{font-size:14px;color:var(--txt2);line-height:1.6;font-weight:300;background:var(--bg3);border:1px solid var(--brd);border-radius:var(--r);padding:10px 12px;min-height:44px;word-break:break-word;white-space:pre-wrap;width:100%}
.task-modal-desc.empty-desc{color:var(--txt3);font-style:italic}
.task-modal-desc-edit{width:100%;background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);padding:10px 12px;font-size:14px;color:var(--txt);outline:none;resize:none;line-height:1.6;font-weight:300;font-family:var(--font);min-height:80px}
.task-modal-sub-item{display:flex;align-items:center;gap:.6rem;padding:.4rem .25rem;border-radius:6px}
.task-modal-sub-item.done .task-modal-sub-lbl{text-decoration:line-through;color:var(--txt3)}
.task-modal-sub-cb{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--brd2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;background:transparent;transition:all .15s}
.task-modal-sub-item.done .task-modal-sub-cb{background:var(--green);border-color:var(--green)}
.task-modal-sub-cb svg{width:8px;height:8px;display:none;stroke:#0a0a0a;stroke-width:2.5;stroke-linecap:round;fill:none}
.task-modal-sub-item.done .task-modal-sub-cb svg{display:block}
.task-modal-sub-lbl{font-size:15px;flex:1;color:var(--txt2);font-weight:300;word-break:break-word;min-width:0}
.task-modal-sub-del{background:none;border:none;cursor:pointer;color:var(--txt3);padding:0 4px;font-size:13px;flex-shrink:0}
.task-modal-sub-add{display:flex;gap:.5rem;margin-top:.5rem}
.task-modal-sub-input{flex:1;min-width:0;background:transparent;border:none;border-bottom:1px solid var(--brd2);padding:6px 2px;font-size:14px;color:var(--txt);outline:none;font-weight:300;font-family:var(--font)}
.task-modal-sub-input::placeholder{color:var(--txt3)}
.task-modal-actions{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--brd);margin-top:.5rem;flex-wrap:wrap}
.task-modal-btn{padding:9px 16px;border-radius:var(--r);font-size:14px;cursor:pointer;transition:all .15s;font-weight:400;border:1px solid var(--brd2);background:transparent;color:var(--txt2);flex:1}
.task-modal-btn:hover{color:var(--txt);border-color:var(--brd2);background:var(--acc-dim)}
.task-modal-btn.primary{background:var(--txt);color:var(--bg);border-color:var(--txt)}
.task-modal-btn.danger{color:var(--red);border-color:rgba(248,113,113,.3)}
.modal-field{width:100%;display:flex;flex-direction:column;gap:.3rem;margin-bottom:.5rem}
.modal-field label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;font-weight:400}
.modal-field input,.modal-field select{width:100%;background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);padding:9px 10px;font-size:14px;line-height:1.4;min-height:40px;color:var(--txt);outline:none;font-family:var(--font);font-weight:300;transition:border-color .15s;-webkit-appearance:none;appearance:none}
.modal-field input:focus,.modal-field select:focus{border-color:var(--brd2)}
.modal-field select option{background:var(--bg2)}

/* DRAWER */
.drawer-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.drawer-overlay.open{display:block}
.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;background:var(--bg1);z-index:301;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;border-right:1px solid var(--brd);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.drawer.open{transform:translateX(0)}
.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;border-bottom:1px solid var(--brd);flex-shrink:0}
.drawer-logo{font-size:15px;font-weight:500;letter-spacing:-.3px;color:var(--txt);display:flex;align-items:center;gap:.5rem}
.drawer-close{background:none;border:none;color:var(--txt3);cursor:pointer;font-size:18px;padding:2px;line-height:1;transition:color .15s}
.drawer-close:hover{color:var(--txt)}
.drawer-nav{flex:1;padding:.75rem;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.drawer-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .9rem;border-radius:var(--r);border:none;background:none;color:var(--txt2);font-size:15px;cursor:pointer;transition:all .15s;font-family:var(--font);font-weight:400;text-align:left;width:100%}
.drawer-item svg{width:16px;height:16px;flex-shrink:0;opacity:.7}
.drawer-item:hover{background:var(--acc-dim);color:var(--txt)}
.drawer-item.active{background:var(--acc-dim);color:var(--txt);font-weight:500}
.drawer-item.active svg{opacity:1}
.drawer-footer{padding:.75rem 1.25rem;border-top:1px solid var(--brd);display:flex;align-items:center;gap:.75rem}
.drawer-footer-user{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}
.drawer-footer-name{font-size:13px;color:var(--txt2);font-weight:300;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.prio-haute{border-left:2.5px solid #f87171!important}
.prio-normale{border-left:2.5px solid #a3a3a3!important}
.prio-basse{border-left:2.5px solid #60a5fa!important}
.chip-prio-haute{color:#f87171;border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06)}
.chip-prio-basse{color:#60a5fa;border-color:rgba(96,165,250,.3);background:rgba(96,165,250,.06)}
.chip-prio-normale{color:#a3a3a3;border-color:rgba(163,163,163,.3);background:rgba(163,163,163,.05)}

.sidebar-toggle-label{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* HISTORY */
.history-toolbar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.history-toolbar .search-input{flex:1;min-width:140px;margin-bottom:0}
.btn-export{display:flex;align-items:center;gap:.4rem;padding:10px 16px;background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r);font-size:13px;color:var(--txt2);cursor:pointer;transition:all .15s;font-family:var(--font);white-space:nowrap;flex-shrink:0}
.btn-export:hover{color:var(--txt);border-color:var(--txt3);background:var(--bg3)}
.btn-export svg{width:14px;height:14px;flex-shrink:0}
.history-date-group{margin-bottom:1.25rem}
.history-date-label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-weight:400;padding-bottom:.3rem;border-bottom:1px solid var(--brd)}
.history-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--r);opacity:.6;transition:all .15s;cursor:pointer}
.history-item:hover{background:var(--bg2);opacity:1}
.history-cb{width:18px;height:18px;border-radius:5px;background:var(--green);border:1.5px solid var(--green);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.history-cb svg{width:9px;height:9px;stroke:#0a0a0a;stroke-width:2.5;stroke-linecap:round;fill:none}
.history-title{font-size:14px;color:var(--txt2);text-decoration:line-through;flex:1;word-break:break-word}
.history-meta{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center;margin-top:2px}
.history-reactivate{background:none;border:1px solid var(--brd);border-radius:6px;color:var(--txt3);font-size:11px;padding:2px 8px;cursor:pointer;transition:all .12s;font-family:var(--font);white-space:nowrap;flex-shrink:0}
.history-reactivate:hover{border-color:var(--green);color:var(--green)}
.history-empty{text-align:center;padding:2.5rem 1rem;color:var(--txt3);font-size:14px;font-weight:300}
/* PWA safe areas */
@supports(padding:max(0px)){
  .mobile-nav{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}
}

/* RECURRENCE */
.recur-select select{-webkit-appearance:none;appearance:none}

/* REMINDER */
.reminder-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}
.reminder-toggle{width:36px;height:20px;border-radius:99px;background:var(--brd2);border:none;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}
.reminder-toggle.on{background:var(--green)}
.reminder-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.reminder-toggle.on::after{transform:translateX(16px)}
.reminder-label{font-size:13px;color:var(--txt2);font-weight:300}

/* THEME TOGGLE */
.btn-theme-s{background:none;border:none;cursor:pointer;color:var(--txt3);padding:4px;border-radius:6px;transition:all .15s;display:flex;align-items:center;flex-shrink:0}
.btn-theme-s:hover{color:var(--txt);background:var(--acc-dim)}
[data-theme="light"] .task-cb svg{stroke:#16a34a}
[data-theme="light"] .history-cb{background:#16a34a;border-color:#16a34a}
[data-theme="light"] .history-cb svg{stroke:#fff}
[data-theme="light"] .mic-ring.listening{background:rgba(22,163,74,.08)}
[data-theme="light"] .prio-haute{border-left-color:#ef4444!important}
[data-theme="light"] .chip-prio-haute{color:#ef4444;border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.06)}
[data-theme="light"] .chip-prio-basse{color:#2563eb;border-color:rgba(37,99,235,.3);background:rgba(37,99,235,.06)}
[data-theme="light"] .prio-basse{border-left-color:#2563eb!important}
[data-theme="light"] .btn-ai{background:var(--txt);color:var(--bg)}
[data-theme="light"] .btn{background:var(--txt);color:var(--bg)}
[data-theme="light"] .notif{background:var(--txt);color:var(--bg)}
[data-theme="light"] .task-item:hover{background:var(--bg2)}
[data-theme="light"] .week-task:hover{background:var(--bg3)}

/* Prevent iOS zoom on input focus */
@media(max-width:768px){
  input,textarea,select{font-size:16px!important}
  .add-input,.add-select,.detail-desc,.sub-add-input{font-size:16px!important}
  .modal-field input,.modal-field select,.task-modal-desc-edit,.task-modal-sub-input{font-size:16px!important}
  .search-input{font-size:16px!important}
}

/* PULL TO REFRESH : pastille ronde qui descend sous la barre du haut */
.ptr-indicator{position:fixed;top:calc(env(safe-area-inset-top,0px) + 64px);left:50%;z-index:999;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:var(--bg1);border:1px solid var(--brd2);box-shadow:0 6px 20px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-56px) scale(.85);transition:transform .25s,opacity .25s;pointer-events:none}
.ptr-indicator.refreshing{opacity:1;transform:translateY(0) scale(1)}
.ptr-spin{width:18px;height:18px;border:2px solid var(--brd2);border-top-color:var(--acc);border-radius:50%}
.ptr-spin.spinning{animation:spin .7s linear infinite}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Silhouettes pendant le premier chargement */
.task-skel{display:flex;align-items:center;gap:.9rem;padding:1rem 1rem;margin-bottom:8px;border-radius:var(--r2);border:1px solid var(--brd);background:var(--bg1)}
.skel{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--bg2) 0%,var(--bg3) 50%,var(--bg2) 100%);background-size:200% 100%;animation:skel 1.2s ease-in-out infinite}
.skel-cb{width:24px;height:24px;border-radius:8px;flex-shrink:0}
.skel-lines{flex:1;display:flex;flex-direction:column;gap:8px}
@keyframes skel{0%{background-position:100% 0}100%{background-position:-100% 0}}

/* TOPICS */
.btn-new-topic{display:flex;align-items:center;gap:.5rem;padding:9px 16px;background:var(--txt);color:var(--bg);border:none;border-radius:var(--r);font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;margin-bottom:1.25rem;font-family:var(--font)}
.btn-new-topic:hover{opacity:.85}
.topic-item{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:1rem 1.1rem;margin-bottom:.6rem;cursor:pointer;transition:all .15s;display:flex;align-items:flex-start;gap:.85rem}
.topic-item:hover{border-color:var(--brd2);background:var(--bg3)}
.topic-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:5px}
.status-en_cours .topic-status-dot{background:#60a5fa}
.status-en_attente .topic-status-dot{background:#f59e0b;animation:pulse-dot 2s ease-in-out infinite}
.status-bloque .topic-status-dot{background:#f87171}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}
.topic-body{flex:1;min-width:0}
.topic-title{font-size:15px;font-weight:500;color:var(--txt);margin-bottom:.25rem;word-break:break-word}
.topic-desc{font-size:13px;color:var(--txt2);font-weight:300;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.topic-meta{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}
.topic-status-chip{font-size:11px;padding:2px 8px;border-radius:99px;font-weight:400;border:1px solid}
.chip-en_cours{color:#60a5fa;border-color:rgba(96,165,250,.3);background:rgba(96,165,250,.06)}
.chip-en_attente{color:#f59e0b;border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06)}
.chip-bloque{color:#f87171;border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06)}
.chip-termine{color:var(--txt3);border-color:var(--brd);background:var(--bg3)}
.status-termine .topic-status-dot{background:var(--txt3)}
.topic-date{font-size:11px;color:var(--txt3);font-weight:300}
.topic-empty{text-align:center;padding:3rem 1rem;color:var(--txt3);font-size:14px;font-weight:300;line-height:1.8}
.topic-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:none;align-items:flex-end;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.topic-modal-overlay.open{display:flex}
@media(min-width:540px){.topic-modal-overlay{align-items:center}}
.topic-modal{background:var(--bg1);border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;padding:1.25rem 1rem;animation:slide-up .22s ease;box-sizing:border-box}
@media(min-width:540px){.topic-modal{border-radius:16px;max-width:520px;max-height:80vh;animation:fade-in .18s ease}}
.topic-modal *{box-sizing:border-box}
.topic-status-btns{display:flex;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}
.topic-status-btn{padding:5px 12px;border-radius:99px;border:1px solid var(--brd2);background:transparent;font-size:12px;color:var(--txt3);cursor:pointer;font-family:var(--font);transition:all .15s}
.topic-status-btn.active-en_cours{background:rgba(96,165,250,.1);border-color:#60a5fa;color:#60a5fa}
.topic-status-btn.active-en_attente{background:rgba(245,158,11,.1);border-color:#f59e0b;color:#f59e0b}
.topic-status-btn.active-bloque{background:rgba(248,113,113,.1);border-color:#f87171;color:#f87171}

/* DRAG & DROP NAV */
.draggable-nav,.draggable-drawer{cursor:default}
.drag-handle{cursor:grab;touch-action:none}
.drag-handle:active{cursor:grabbing}
.nav-item .drag-handle{display:none}
.nav-item:hover .drag-handle{display:block}
.sidebar.collapsed .drag-handle{display:none!important}
.drawer-item .drag-handle{opacity:.2}
.drawer-item:hover .drag-handle{opacity:.5}

.topic-status-btn.active-termine{background:rgba(163,163,163,.1);border-color:#a3a3a3;color:#a3a3a3}

/* IMPROVED CALENDAR */
/* Day view */
.day-view-wrap{display:flex;flex-direction:column;height:100%}
.day-nav-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-shrink:0}
.day-nav-title{font-size:17px;font-weight:500;flex:1;letter-spacing:-.3px}
.day-nav-sub{font-size:13px;color:var(--txt3);font-weight:300}

/* Timeline blocks */
.tl-hour-row{display:flex;align-items:stretch;min-height:56px;border-bottom:1px solid var(--brd);position:relative}
.tl-hour-row:last-child{border-bottom:none}
.tl-hour-label{width:44px;flex-shrink:0;padding:.5rem .5rem 0;font-size:11px;color:var(--txt3);font-family:var(--mono,monospace);font-weight:300;line-height:1}
.tl-hour-slot{flex:1;padding:.25rem .5rem;display:flex;flex-direction:column;gap:3px;position:relative;cursor:pointer;transition:background .1s}
.tl-hour-slot:hover{background:var(--acc-dim)}
.tl-hour-slot.clickable:hover::after{content:'+ Ajouter';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--txt3);pointer-events:none}
.tl-block{display:flex;align-items:center;gap:.5rem;padding:5px 10px;border-radius:var(--r);border-left:3px solid;cursor:pointer;transition:all .12s;position:relative}
.tl-block:hover{filter:brightness(1.1)}
.tl-block.done{opacity:.45}
.tl-block-title{font-size:13px;font-weight:400;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-block-time{font-size:11px;opacity:.7;font-family:var(--mono,monospace);flex-shrink:0}
.tl-block-cat{font-size:10px;padding:1px 5px;border-radius:99px;font-weight:400;flex-shrink:0;opacity:.8}
.tl-done-cb{width:14px;height:14px;border-radius:4px;border:1.5px solid rgba(255,255,255,.4);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.tl-block.done .tl-done-cb{background:rgba(255,255,255,.3);border-color:transparent}

/* No-time zone */
.no-time-zone{margin-top:1rem;border-top:1px solid var(--brd);padding-top:.75rem}
.no-time-zone-title{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-weight:400}
.no-time-task{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:var(--r);border-left:3px solid;cursor:pointer;transition:all .12s;margin-bottom:3px}
.no-time-task:hover{filter:brightness(1.1)}
.no-time-task.done{opacity:.45}
.no-time-task-title{font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

:root{--bg:#0d0f14;--bg1:#141720;--bg2:#1a1e2a;--bg3:#222736;--txt:#eef0f6;--txt2:#9ba8bc;--txt3:#6b7280;--brd:rgba(255,255,255,.08);--brd2:rgba(255,255,255,.16);--acc-dim:rgba(99,179,237,.06);--green:#34d399;--red:#f87171;--acc:#63b3ed;--acc-glow:rgba(99,179,237,.15);--shadow:0 4px 24px rgba(0,0,0,.4);--r:8px;--r2:14px;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
[data-theme="light"]{--bg:#f5f6fa;--bg1:#ffffff;--bg2:#eceef5;--bg3:#e0e3ee;--txt:#111827;--txt2:#4b5563;--txt3:#7b8494;--brd:rgba(0,0,0,.09);--brd2:rgba(0,0,0,.18);--acc-dim:rgba(37,99,235,.06);--green:#059669;--red:#dc2626;--acc:#2563eb;--acc-glow:rgba(37,99,235,.12);--shadow:0 4px 24px rgba(0,0,0,.12)}
.nav-item.active{background:var(--acc-glow)!important;color:var(--acc)!important;font-weight:500}.nav-item.active svg{stroke:var(--acc)!important;opacity:1!important}
.drawer-item.active{background:var(--acc-glow)!important;color:var(--acc)!important;font-weight:500}
.task-item{background:var(--bg1);border:1px solid var(--brd);margin-bottom:3px}
.task-item:hover{background:var(--bg2)!important;border-color:var(--brd2)!important;transform:translateX(1px)}
.task-title{font-size:15px;font-weight:500;line-height:1.4}
.chip-time{color:var(--acc);border-color:rgba(99,179,237,.3);background:rgba(99,179,237,.08)}
.chip-prio-haute{color:#f87171;border-color:rgba(248,113,113,.5);background:rgba(248,113,113,.12);font-weight:500}
.chip-prio-basse{color:var(--acc);border-color:rgba(99,179,237,.4);background:rgba(99,179,237,.1)}
.mic-ring:not(.off):not(.listening):hover{border-color:var(--acc);background:var(--acc-glow);transform:scale(1.05)}
.mic-ring:not(.off):not(.listening):hover svg{stroke:var(--acc)}
.mic-ring.listening{border-color:var(--green)!important;background:radial-gradient(circle,rgba(52,211,153,.18),rgba(52,211,153,.06))!important;box-shadow:0 0 0 3px rgba(52,211,153,.12),0 0 24px rgba(52,211,153,.25)!important}
.mic-ring.listening svg{stroke:var(--green)!important;filter:drop-shadow(0 0 4px rgba(52,211,153,.6))}
.day-two-col{display:flex;gap:1.5rem;align-items:flex-start;width:100%}
.day-col-timeline{flex:1;min-width:0}
.day-col-untimed{width:260px;flex-shrink:0;position:sticky;top:0}
@media(max-width:768px){.day-two-col{flex-direction:column;gap:.75rem}.day-col-untimed{width:100%;position:static}.day-col-timeline{width:100%!important;flex:none!important}}
.untimed-sidebar{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:.85rem}
.untimed-sidebar-title{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-weight:400}
.untimed-task{display:flex;align-items:center;gap:.5rem;padding:6px 10px;border-radius:var(--r);cursor:pointer;transition:all .12s;margin-bottom:3px;border-left:3px solid}
.untimed-task-title{font-size:13px;font-weight:400;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-block{display:flex;align-items:center;gap:.5rem;padding:5px 10px;border-radius:var(--r);cursor:pointer;transition:all .12s;border-left:3px solid;margin-bottom:3px}
.tl-block-title{font-size:13px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-block-time{font-size:11px;opacity:.8;font-family:var(--mono,monospace);flex-shrink:0}



.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:600;display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1rem}
.confirm-overlay.open{display:flex}
.confirm-modal{background:var(--bg1);border-radius:var(--r2);padding:1.5rem;max-width:340px;width:100%;border:1px solid var(--brd2);box-shadow:var(--shadow)}
.confirm-title{font-size:16px;font-weight:600;color:var(--txt);margin-bottom:.5rem}
.confirm-body{font-size:14px;color:var(--txt2);line-height:1.5;margin-bottom:1.25rem}
.confirm-actions{display:flex;flex-direction:column;gap:.5rem}
.confirm-btn{padding:11px;border-radius:var(--r);font-size:14px;cursor:pointer;font-family:var(--font);border:1px solid var(--brd2);background:transparent;color:var(--txt2);transition:all .15s;text-align:center}
.confirm-btn:hover{background:var(--acc-dim);color:var(--txt)}
.confirm-btn.danger{color:var(--red);border-color:rgba(248,113,113,.3)}
.drawer-item svg{width:16px!important;height:16px!important;min-width:16px;min-height:16px;flex-shrink:0!important}
.nav-item svg{width:15px!important;height:15px!important;min-width:15px;min-height:15px;flex-shrink:0!important}
.content-header{padding-bottom:1rem;border-bottom:1px solid var(--brd)}
.page-title{font-size:24px;font-weight:600;letter-spacing:-.6px}

@media(max-width:768px){
  
  #btn-hide-done{font-size:10px;padding:2px 8px}
  
}

/* FILTER PANEL */
#filter-panel{display:none}
#filter-panel.open{display:flex!important}
#btn-filter.active{background:var(--acc-glow);border-color:var(--acc);color:var(--acc)}
/* ════════ REFONTE VISUELLE 2026-10 ════════ */
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
button.user-ava{cursor:pointer;padding:0;font-family:var(--font)}
.notif{max-width:calc(100vw - 2rem);overflow:hidden;text-overflow:ellipsis;box-shadow:var(--shadow)}
.notif.error{background:var(--red);color:#fff}
/* Zone vocale */
.voice-area{background:linear-gradient(135deg,var(--bg2),var(--bg1));border:1px solid var(--brd);box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
.voice-area{padding:.75rem}
.ai-text-row{display:flex;gap:.5rem}
/* Assistant vocal : bouton flottant en bas à droite, visible sur toutes les vues */
.mic-fab,.voice-panel{display:none}
body.signed-in .mic-fab{display:flex;position:fixed;right:28px;bottom:28px;z-index:160;width:60px;height:60px;border-radius:50%;border:none;padding:0;cursor:pointer;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#63b3ed);box-shadow:0 8px 24px rgba(37,99,235,.35),0 2px 6px rgba(0,0,0,.25);transition:transform .15s,box-shadow .2s;-webkit-tap-highlight-color:transparent}
.mic-fab svg{fill:#fff}
.mic-fab:hover{transform:scale(1.05)}
.mic-fab:active{transform:scale(.94)}
body.signed-in .mic-fab.off{background:var(--bg3);border:1px solid var(--brd2);box-shadow:var(--shadow)}
.mic-fab.off svg{fill:var(--txt3)}
body.signed-in .mic-fab.listening{background:linear-gradient(135deg,#ef4444,#f87171);animation:fab-pulse 1.4s ease-in-out infinite}
@keyframes fab-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.45),0 8px 24px rgba(239,68,68,.3)}50%{box-shadow:0 0 0 14px rgba(239,68,68,0),0 8px 24px rgba(239,68,68,.3)}}
body.signed-in .voice-panel.open{display:block;position:fixed;right:28px;bottom:100px;z-index:160;width:min(380px,calc(100vw - 32px));background:var(--bg1);border:1px solid var(--brd2);border-radius:16px;padding:.9rem 1rem 1rem;box-shadow:var(--shadow);animation:fade-in .18s ease}
.voice-panel-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
.voice-panel-head .mic-status{flex:1;min-width:0}
.voice-panel-close{background:none;border:none;color:var(--txt3);cursor:pointer;font-size:14px;line-height:1;padding:6px;border-radius:6px;flex-shrink:0}
.voice-panel-close:hover{color:var(--txt);background:var(--acc-dim)}
.voice-panel .transcript{max-height:140px;overflow-y:auto}
.voice-panel .ai-row{margin-top:.6rem}
.voice-panel .ai-row:empty{display:none}
.voice-panel .voice-feedback{margin-top:.6rem}
@media(min-width:769px){body.signed-in .content{padding-bottom:110px}}
.ai-text{flex:1;min-width:0;background:var(--bg1);border:1px solid var(--brd2);border-radius:99px;padding:9px 14px;font-size:14px;color:var(--txt);outline:none;font-family:var(--font);transition:border-color .15s}
.ai-text:focus{border-color:var(--acc)}
.ai-text::placeholder{color:var(--txt3)}
.ai-send{width:38px;height:38px;flex-shrink:0;border-radius:50%;border:none;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,opacity .15s}
.ai-send:active{transform:scale(.92)}
.voice-feedback{display:none;margin-top:.65rem;font-size:13px;color:var(--txt2);line-height:1.5;padding:.55rem .75rem;border-radius:var(--r);background:var(--acc-glow);border:1px solid rgba(99,179,237,.2)}
.voice-feedback.show{display:block;animation:fade-in .2s ease}
/* Progression du jour */
.day-progress{display:flex;align-items:center;gap:.75rem;margin-top:.75rem}
.day-progress-bar{flex:1;height:6px;border-radius:99px;background:var(--bg3);overflow:hidden}
.day-progress-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--acc),var(--green));transition:width .4s cubic-bezier(.4,0,.2,1)}
.day-progress-label{font-size:12px;color:var(--txt3);white-space:nowrap;font-variant-numeric:tabular-nums}
/* Liste de tâches */
.task-item{border-radius:12px;padding:.75rem .85rem;gap:.85rem}
.task-item:hover{transform:none}
.task-cb{width:22px;height:22px;border-radius:7px;border-width:2px}
.task-cb svg{width:11px;height:11px}
.task-item.done .task-cb{background:var(--green);border-color:var(--green)}
.task-cb.pop{animation:cb-pop .28s ease}
@keyframes cb-pop{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
.task-item.done .task-title{text-decoration:line-through;text-decoration-color:var(--txt3)}
.task-del{font-size:14px;padding:6px}
@media(hover:none){.task-del{color:var(--txt3)}}
.chip{display:inline-flex;align-items:center;gap:4px}
.cat-dot{display:inline-block;width:6px;height:6px;border-radius:50%;font-style:normal}
.chip-recur{color:var(--acc);border-color:rgba(99,179,237,.3)}
.empty-state{padding:2.5rem 1rem}
.empty-state b{color:var(--txt2);font-weight:500}
.empty-state i{color:var(--txt2)}
.empty-icon{width:56px;height:56px;margin:0 auto .9rem;border-radius:16px;display:flex;align-items:center;justify-content:center;background:var(--acc-glow);color:var(--acc)}
/* Champs */
.field-hint{font-size:11px;color:var(--txt3);text-transform:none;letter-spacing:0;margin-top:2px}
.qa-row{display:flex;gap:.6rem}
.qa-row .modal-field{flex:1;min-width:0}
.quick-title{font-size:17px;font-weight:600;letter-spacing:-.3px;color:var(--txt)}
.quick-sub{font-size:13px;color:var(--txt3);font-weight:400;margin-top:2px}
/* Compte */
.account-head{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}
.account-ava{width:40px;height:40px;font-size:13px;background:var(--acc-glow);color:var(--acc);border-color:rgba(99,179,237,.3)}
.account-list{display:flex;flex-direction:column;gap:2px;margin-top:.25rem}
.account-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.8rem .75rem;border:none;background:none;border-radius:var(--r);color:var(--txt);font-size:15px;font-family:var(--font);cursor:pointer;text-align:left}
.account-item:hover{background:var(--acc-dim)}
.account-item svg{color:var(--txt3);flex-shrink:0}
.account-item.danger,.account-item.danger svg{color:var(--red)}
.account-foot{font-size:11px;color:var(--txt3);text-align:center;margin-top:1rem}
#quick-overlay,#account-overlay{z-index:250}
.confirm-overlay{z-index:600}
/* Barre d'onglets mobile */
.tabbar{display:none}
@media(max-width:768px){
  body.signed-in .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:150;background:color-mix(in srgb,var(--bg1) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--brd);padding:4px 4px max(6px,env(safe-area-inset-bottom))}
  .tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 4px;border:none;background:none;color:var(--txt3);font-size:10.5px;font-family:var(--font);cursor:pointer;border-radius:10px;min-width:0}
  .tab-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tab-item.active{color:var(--acc)}
  .tab-item.active svg{filter:drop-shadow(0 0 6px var(--acc-glow))}
  body.signed-in .content{padding-bottom:calc(160px + env(safe-area-inset-bottom))!important}
  body.signed-in .notif{bottom:calc(150px + env(safe-area-inset-bottom))}
  /* Micro au-dessus de la barre d'onglets, panneau au-dessus du micro */
  body.signed-in .mic-fab{right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}
  body.signed-in .voice-panel.open{right:16px;left:16px;width:auto;bottom:calc(148px + env(safe-area-inset-bottom))}
  .day-col-untimed{position:static}
}
/* Onglets : sélecteurs, tuiles de statistiques, recherche (2026-10) */
.seg{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}
.seg:empty{display:none}
.seg-btn{padding:6px 13px;border-radius:99px;border:1px solid var(--brd2);background:transparent;color:var(--txt2);font-size:13px;font-family:var(--font);cursor:pointer;transition:all .15s}
.seg-btn:hover{color:var(--txt)}
.seg-btn.active{background:var(--acc-glow);border-color:var(--acc);color:var(--acc);font-weight:500}
.seg-count{font-size:11px;opacity:.7;font-variant-numeric:tabular-nums}
.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin-bottom:1.1rem}
.stat-tiles:empty{display:none}
.stat-tile{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:.75rem .85rem}
.stat-num{font-size:22px;font-weight:600;letter-spacing:-.5px;color:var(--txt);font-variant-numeric:tabular-nums}
.stat-tile.ok .stat-num{color:var(--green)}
.stat-tile.warn .stat-num{color:var(--red)}
.stat-lbl{font-size:12px;color:var(--txt3);margin-top:1px}
/* Résumé : calendrier de l'iPhone et agenda (2026-10) */
.summary-cal{display:flex;align-items:center;gap:.75rem;justify-content:space-between;background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:.7rem .85rem;margin-bottom:1rem;font-size:13px;color:var(--txt2)}
.summary-cal.ok{justify-content:flex-start;color:var(--txt3);font-size:12px;padding:.5rem .85rem}
.summary-cal svg{flex-shrink:0;color:var(--acc)}
.summary-agenda{margin-bottom:1.25rem}
@media(max-width:480px){#summary-stats{grid-template-columns:repeat(2,1fr)}}
.summary-agenda:empty{display:none}
.agenda-day{font-size:12px;font-weight:600;color:var(--txt3);text-transform:capitalize;margin:.75rem 0 .35rem}
.agenda-item{display:flex;gap:.65rem;align-items:flex-start;padding:.5rem .1rem;border-bottom:1px solid var(--brd)}
.agenda-item:last-child{border-bottom:none}
.agenda-time{min-width:3.4rem;font-size:13px;font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums}
.agenda-body{flex:1;min-width:0;font-size:14px;color:var(--txt)}
.agenda-body small{display:block;font-size:12px;color:var(--txt3)}
.agenda-item.ev .agenda-time{color:var(--acc)}
.agenda-item.done .agenda-body{color:var(--txt3);text-decoration:line-through}
.agenda-kind{font-size:11px;color:var(--txt3);white-space:nowrap}
.summary-hint{font-size:12px;color:var(--txt3);margin:.9rem 0 0}
.summary-content:empty{display:none}
.summary-hint a{color:var(--acc);cursor:pointer}
.search-count{font-size:12px;color:var(--txt3);margin:-.25rem 0 .5rem}
.search-snippet{font-size:12px;color:var(--txt3);margin:1px 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
mark{background:rgba(245,158,11,.28);color:inherit;border-radius:3px;padding:0 1px}
/* Calendrier et semaine (2026-10) */
.today-btn{padding:5px 12px;border-radius:99px;border:1px solid var(--brd2);background:transparent;color:var(--txt2);font-size:12px;font-family:var(--font);cursor:pointer;white-space:nowrap}
.today-btn:hover{color:var(--txt);background:var(--acc-dim)}
.week-day-header{background:none;border:none;border-right:1px solid var(--brd);cursor:pointer;font-family:var(--font);text-align:left;color:inherit}
.week-day-header:hover{background:var(--acc-dim)}
.week-day-count{font-size:10px;color:var(--txt3);margin-top:2px;font-variant-numeric:tabular-nums}
.week-day-row.past .week-day-date{color:var(--txt3)}
.week-task{border-left:2.5px solid var(--c);background:color-mix(in srgb,var(--c) 8%,transparent)}
.week-task-title{color:var(--c);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.week-task.done .week-task-title{color:var(--txt3)}
.week-cb{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--brd2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;cursor:pointer}
.week-task.done .week-cb{background:var(--green);border-color:var(--green)}
.week-bell{color:#f59e0b;display:flex;flex-shrink:0}
.week-add{align-self:flex-start;background:none;border:none;color:var(--txt3);font-size:12px;font-family:var(--font);cursor:pointer;padding:2px 4px;border-radius:6px}
.week-add:hover{color:var(--acc);background:var(--acc-dim)}
@media(max-width:600px){.today-btn{padding:4px 9px;font-size:11px}}
/* Aujourd'hui et semaine (2026-10, suite) */
.count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;margin-left:6px;border-radius:99px;background:var(--acc-glow);color:var(--acc);font-size:11px;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}
.week-day-header.today .week-day-date{color:#fff;background:var(--acc);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 4px;box-shadow:0 3px 10px var(--acc-glow)}
.week-day-header.today .week-day-name{color:var(--acc);font-weight:600}
.week-day-row.empty .week-day-header{padding-top:.45rem;padding-bottom:.45rem}
.week-day-row.empty .week-day-tasks{min-height:0;padding-top:.35rem;padding-bottom:.35rem;justify-content:center}
.week-day-row.empty .week-day-date{font-size:15px}
.week-day-row.empty.past .week-add{display:none}
.week-day-row.empty.past .week-day-tasks::before{content:'—';color:var(--txt3);font-size:12px}
.week-task-time{font-family:var(--font);font-variant-numeric:tabular-nums;font-weight:600;color:var(--c);opacity:.85}
/* Rappels, calendrier, raccourci (2026-10) */
.chip-remind{color:#f59e0b;border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.chip-remind svg{flex-shrink:0}
.cal-add-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.45rem;margin:-.25rem 0 .9rem}
.account-section-title{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin:1rem .25rem .4rem}
.account-card{background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r2);padding:.85rem;display:flex;flex-direction:column;gap:.65rem}
.account-status{font-size:13px;color:var(--txt2);line-height:1.5}
.account-status.ok{color:var(--green)}
.account-status.small{font-size:12px;color:var(--txt3);margin-top:.4rem}
.account-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.account-actions:empty{display:none}
.mini-btn{padding:7px 12px;border-radius:99px;border:1px solid var(--brd2);background:transparent;color:var(--txt);font-size:13px;font-family:var(--font);cursor:pointer;white-space:nowrap}
.mini-btn:hover{background:var(--acc-dim)}
.mini-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:500}
.account-field{display:flex;flex-direction:column;gap:.35rem;font-size:12px;color:var(--txt3)}
.account-field select{background:var(--bg3);border:1px solid var(--brd2);border-radius:var(--r);padding:8px 10px;font-size:14px;color:var(--txt);font-family:var(--font)}
.account-item-txt{display:flex;flex-direction:column;min-width:0;text-align:left}
.account-item-txt small{font-size:12px;color:var(--txt3);margin-top:1px}
.account-item.muted,.account-item.muted svg{color:var(--txt3);font-size:14px}
.account-toggle{display:flex;align-items:center;gap:.6rem;padding:.7rem .75rem;font-size:14px;color:var(--txt2);cursor:pointer}
.account-toggle input{width:18px;height:18px;accent-color:var(--acc);flex-shrink:0}
.account-loading{font-size:13px;color:var(--txt3);padding:.75rem .25rem}
.help-intro{font-size:14px;color:var(--txt2);line-height:1.55;margin:.25rem 0 .9rem}
.help-steps{padding-left:1.2rem;margin:.75rem 0 1rem;display:flex;flex-direction:column;gap:.6rem}
.help-steps li{font-size:14px;color:var(--txt2);line-height:1.55}
.help-steps b{color:var(--txt);font-weight:600}
.copy-row{display:flex;align-items:center;gap:.6rem;background:var(--bg2);border:1px solid var(--brd);border-radius:var(--r);padding:.6rem .75rem;margin-bottom:.5rem}
.copy-row>div{flex:1;min-width:0}
.copy-label{font-size:11px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.copy-row code,.help-intro code{font-family:var(--mono);font-size:12px;color:var(--txt);word-break:break-all}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.filter-chip{padding:4px 12px;border-radius:99px;border:1px solid var(--brd2);background:transparent;font-size:12px;color:var(--txt3);cursor:pointer;font-family:var(--font);transition:all .15s;font-weight:400}
.filter-chip:hover{border-color:var(--brd2);color:var(--txt)}
.filter-chip.active{background:var(--bg3);border-color:var(--brd2);color:var(--txt);font-weight:500}
.filter-chip-haute.active{background:rgba(248,113,113,.12);border-color:#f87171;color:#f87171}
.filter-chip-normale.active{background:rgba(163,163,163,.1);border-color:#a3a3a3;color:var(--txt2)}
.filter-chip-basse.active{background:var(--acc-glow);border-color:var(--acc);color:var(--acc)}
/* CALENDRIER : le mois + la journée choisie (2026-10) */
#view-cal{max-width:none}
.cal-layout{display:flex;flex-direction:column;gap:1rem}
.cal-card,.cal-dayp{background:var(--bg1);border:1px solid var(--brd);border-radius:var(--r2)}
.cal-card{padding:.85rem .7rem .55rem}
.cal-nav-row{display:flex;align-items:center;gap:.5rem;margin:0 .3rem .7rem}
.cal-mwrap{flex:1;min-width:0}
.cal-month{font-size:19px;font-weight:600;letter-spacing:-.4px}
.cal-msub{display:none;font-size:12px;color:var(--txt3);margin-top:2px}
.cal-nav-row .cal-arrow{width:34px;height:34px;border-radius:10px;font-size:21px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:0}
.cal-dow{font-size:11px;color:var(--txt3);text-align:center;padding:0 0 6px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cal-day{-webkit-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;height:54px;min-width:0;padding:5px 0 0;margin:0;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--txt);font-family:var(--font);font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s}
@media(hover:hover){.cal-day:hover{background:var(--bg2)}}
.cal-day:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
.cal-num{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:500;font-variant-numeric:tabular-nums;line-height:1;flex-shrink:0;transition:background .15s,color .15s}
.cal-day.past .cal-num{color:var(--txt3)}
.cal-day.other-month{opacity:.35}
.cal-day.today .cal-num{color:var(--acc);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--acc)}
.cal-day.sel .cal-num{background:var(--acc);color:#fff;font-weight:700;box-shadow:0 3px 12px var(--acc-glow)}
.cal-dots{display:flex;gap:3px;height:6px;align-items:center}
.cal-dots i,.cal-legend i{width:6px;height:6px;border-radius:50%;background:var(--c,var(--acc));display:inline-block}
.cal-dots i.done{opacity:.35}
.cal-dots i.ev,.cal-legend i.ev{background:transparent;box-shadow:inset 0 0 0 1.5px var(--txt3)}
.cal-evs{display:none}
.cal-legend{display:flex;gap:1rem;justify-content:center;align-items:center;font-size:11px;color:var(--txt3);padding:.55rem 0 .15rem}
.cal-legend:empty{display:none}
.cal-legend span{display:inline-flex;align-items:center;gap:5px}
.cal-link{background:none;border:none;color:var(--acc);font-size:12px;font-family:var(--font);cursor:pointer;padding:2px 4px}
.cal-dayp{padding:.95rem .85rem .7rem}
.cal-dayp-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.7rem}
.cal-dayp-titles{flex:1;min-width:0}
.cal-dayp-title{font-size:17px;font-weight:600;letter-spacing:-.3px}
.cal-dayp-sub{font-size:12.5px;color:var(--txt3);margin-top:2px}
.cal-dayp-add{width:38px;height:38px;border-radius:50%;border:none;background:var(--acc);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:0 4px 14px var(--acc-glow)}
.cal-mode{margin-bottom:.7rem}
.cal-mode .seg-btn{padding:4px 11px;font-size:12px}
.cal-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .6rem .6rem .5rem;margin-bottom:6px;border-radius:12px;border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 7%,transparent);cursor:pointer;transition:background .12s}
.cal-item:hover{background:color-mix(in srgb,var(--c) 13%,transparent)}
.cal-item.done{opacity:.5}
.cal-item.done .cal-item-title{text-decoration:line-through}
.cal-item-cb{width:22px;height:22px;padding:0;margin-top:1px;border-radius:7px;border:1.5px solid var(--brd2);background:transparent;color:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.cal-item.done .cal-item-cb{background:var(--green);border-color:var(--green)}
.cal-item-time{width:42px;flex-shrink:0;padding-top:3px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--c)}
.cal-item-time span{font-size:11px;font-weight:500;color:var(--txt3)}
.cal-item-main{flex:1;min-width:0}
.cal-item-title{font-size:14.5px;font-weight:500;color:var(--txt);line-height:1.35;word-break:break-word}
.cal-item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;margin-top:3px;font-size:11.5px;color:var(--txt3)}
.cal-item-meta>span{display:inline-flex;align-items:center;gap:4px}
.cal-item-meta i{width:6px;height:6px;border-radius:50%;display:inline-block}
.cal-meta-hi{color:var(--red);font-weight:500}
.cal-meta-bell{color:#f59e0b}
.cal-item.ev{--c:var(--txt3);background:var(--bg2);cursor:default}
.cal-item.ev .cal-item-time{color:var(--txt2)}
.cal-item-ico{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--txt3);margin-top:1px}
.cal-add-line{width:100%;margin-top:.2rem;padding:.65rem;border:1px dashed var(--brd2);border-radius:12px;background:transparent;color:var(--txt3);font-family:var(--font);font-size:13px;cursor:pointer}
.cal-add-line:hover{color:var(--acc);border-color:var(--acc);background:var(--acc-dim)}
.cal-empty{text-align:center;padding:1.4rem .5rem 1rem;color:var(--txt3);font-size:14px;line-height:1.6}
.cal-empty .mini-btn{margin-top:.8rem}
.cal-empty-ico{width:44px;height:44px;margin:0 auto .6rem;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--acc-glow);color:var(--acc)}
@media(max-width:768px){#view-cal .content-header{display:none}.cal-msub{display:block}.cal-day{height:48px;gap:3px;padding-top:3px}#view-cal,.cal-layout{width:100%;overflow-x:hidden}.cal-card{padding:.75rem .3rem .5rem}#dd-timeline,.tl-hour-row,.tl-hour-slot{width:100%;max-width:100%;box-sizing:border-box}}
@media(min-width:769px){.cal-day{height:62px}}
@media(min-width:1100px){
  .cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:1.25rem}
  .cal-dayp{position:sticky;top:0;max-height:calc(100vh - 7rem);overflow:auto}
  .cal-grid{gap:4px}
  .cal-day{height:auto;min-height:96px;align-items:stretch;gap:3px;padding:4px 4px 5px;border-color:var(--brd);border-radius:10px}
  .cal-day.sel{border-color:var(--acc);background:var(--acc-dim)}
  .cal-num{width:26px;height:26px;font-size:13px}
  .cal-dots{display:none}
  .cal-evs{display:flex;flex-direction:column;gap:2px;min-width:0}
  .cal-ev{display:block;font-size:11px;line-height:1.35;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--c) 15%,transparent);color:var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
  .cal-ev b{font-weight:600;font-variant-numeric:tabular-nums}
  .cal-ev.done{opacity:.5;text-decoration:line-through}
  .cal-ev.dev{--c:var(--txt2);background:transparent;box-shadow:inset 0 0 0 1px var(--brd2)}
  .cal-more{display:block;font-size:10px;color:var(--txt3);text-align:left;padding-left:5px}
}
/* Bilan de la semaine (onglet Résumé) */
.review-cats{display:flex;flex-direction:column;gap:.45rem;margin:.35rem 0 .6rem}
.review-cat{display:flex;align-items:center;gap:.6rem;font-size:13px;color:var(--txt2)}
.review-cat-name{width:6.2rem;flex-shrink:0;display:inline-flex;align-items:center;gap:6px}
.review-cat-name i{width:7px;height:7px;border-radius:50%;display:inline-block}
.review-bar{flex:1;height:7px;border-radius:99px;background:var(--bg3);overflow:hidden}
.review-bar span{display:block;height:100%;border-radius:99px}
.review-cat-n{min-width:2.6rem;text-align:right;font-variant-numeric:tabular-nums;color:var(--txt3);font-size:12px}
.review-note{font-size:13px;color:var(--txt3);margin:.4rem 0}
.agenda-day.review-h{text-transform:none}
.review-note b{color:var(--txt2);font-weight:600}

/* Répétition personnalisée (fenêtre « Personnaliser… ») */
.recur-overlay{z-index:300}
.rp-modes{display:flex;gap:.35rem;background:var(--bg2);border:1px solid var(--brd);border-radius:12px;padding:.25rem;margin:.25rem 0 1rem}
.rp-mode{flex:1;border:0;background:none;color:var(--txt2);font:inherit;font-size:.85rem;padding:.5rem .25rem;border-radius:9px;cursor:pointer}
.rp-mode.on{background:var(--acc);color:#fff;font-weight:600}
.rp-days{display:flex;gap:.35rem;justify-content:space-between;margin-bottom:.75rem}
.rp-day{width:40px;height:40px;border-radius:50%;border:1px solid var(--brd2);background:var(--bg2);color:var(--txt);font:inherit;font-weight:600;cursor:pointer}
.rp-day.on{background:var(--acc);border-color:var(--acc);color:#fff}
.rp-quick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}
.rp-quick button{border:1px solid var(--brd2);background:none;color:var(--txt2);font:inherit;font-size:.8rem;padding:.35rem .7rem;border-radius:999px;cursor:pointer}
.rp-line{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;color:var(--txt2)}
.rp-line input,.rp-line select{background:var(--bg2);border:1px solid var(--brd2);color:var(--txt);border-radius:9px;padding:.5rem .6rem;font:inherit}
.rp-line input{width:4.5rem}
.rp-until{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--txt2);font-size:.9rem;margin-bottom:.6rem}
.rp-until input[type=date]{background:var(--bg2);border:1px solid var(--brd2);color:var(--txt);border-radius:9px;padding:.4rem .5rem;font:inherit}
.rp-preview{min-height:1.2em;font-size:.82rem;color:var(--txt3);margin-bottom:.4rem}

/* Hors connexion (pastille en haut, au-dessus du contenu) */
.offline-pill{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + .5rem);transform:translate(-50%,-150%);z-index:550;
  background:var(--bg2);color:var(--txt);border:1px solid var(--brd2);border-radius:999px;padding:.35rem .85rem;font-size:.8rem;
  box-shadow:0 6px 20px rgba(0,0,0,.25);transition:transform .25s ease;pointer-events:none;white-space:nowrap;max-width:calc(100vw - 2rem);overflow:hidden;text-overflow:ellipsis}
.offline-pill::before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:#f6ad55;margin-right:.45rem;vertical-align:.05rem}
.offline-pill.show{transform:translate(-50%,0)}

/* Étiquettes (#maison) */
.chip-tag{color:var(--acc);border-color:rgba(99,179,237,.28);cursor:pointer}
.chip-tag.on{background:var(--acc);color:#fff;border-color:var(--acc)}

/* Listes partagées */
.lists-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.list-btn{background:var(--bg2);border:1px solid var(--brd2);color:var(--txt);border-radius:999px;padding:.4rem .85rem;font:inherit;font-size:.82rem;cursor:pointer}
.list-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}
.list-card{background:var(--bg1);border:1px solid var(--brd);border-radius:var(--r2,14px);padding:.9rem;margin-bottom:.9rem}
.list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.6rem}
.list-name{font-weight:700;font-size:1.02rem}
.list-meta,.list-owner{font-size:.78rem;color:var(--txt3)}
.list-owner{margin-top:.5rem}
.list-head-actions{display:flex;gap:.35rem}
.list-add{display:flex;gap:.4rem;margin-bottom:.5rem}
.list-add input{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--brd2);color:var(--txt);border-radius:10px;padding:.55rem .7rem;font:inherit}
.list-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .1rem;border-bottom:1px solid var(--brd)}
.list-item:last-child{border-bottom:0}
.list-item-body{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;cursor:pointer}
.list-item.done .list-item-title{text-decoration:line-through;color:var(--txt3)}
.list-by{font-size:.72rem;color:var(--txt3);background:var(--bg2);border-radius:999px;padding:.05rem .45rem}
.list-empty{font-size:.85rem;color:var(--txt3);padding:.4rem 0}
.list-done-toggle{background:none;border:0;color:var(--txt3);font:inherit;font-size:.8rem;padding:.4rem 0;cursor:pointer}

/* Mails (Gmail) : pastille de l'onglet, tuiles, cartes avec brouillon */
.tab-ico{position:relative}
.tab-badge{position:absolute;top:-3px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:#f97316;color:#fff;font-size:10px;font-style:normal;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--bg1);font-variant-numeric:tabular-nums}
.nav-badge{margin-left:auto;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#f97316;color:#fff;font-size:11px;font-style:normal;font-weight:600;line-height:19px;text-align:center;flex-shrink:0;font-variant-numeric:tabular-nums}
.nav-badge+.drag-handle{margin-left:.4rem!important}
.nav-item{position:relative}
.sidebar.collapsed .nav-badge{position:absolute;top:2px;right:6px;min-width:8px;width:8px;height:8px;padding:0;font-size:0}
.mail-header{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.mail-header .mini-btn:disabled{opacity:.6;cursor:default}
.mail-tiles{grid-template-columns:repeat(4,1fr)}
.mail-warn{margin:-.4rem 0 1rem;padding:.6rem .8rem;border-radius:var(--r);background:rgba(249,115,22,.1);border:1px solid rgba(249,115,22,.3);color:#fb923c;font-size:13px}
#view-mails .tasks-section-title{margin-top:1.2rem}
.mail-empty{font-size:13.5px;color:var(--txt3);padding:.2rem 0 .6rem}
.mail-card{background:var(--bg1);border:1px solid var(--brd);border-radius:var(--r2);padding:.85rem .95rem;margin-bottom:.65rem}
.mail-card.is-action{border-left:3px solid #fb923c}
.mail-card{transition:box-shadow .3s,border-color .3s}
.mail-card.mail-flash{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-glow)}
.mail-head{display:flex;align-items:center;gap:.45rem;min-width:0}
.mail-from{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.mail-time{margin-left:auto;font-size:12px;color:var(--txt3);white-space:nowrap;font-variant-numeric:tabular-nums}
.mail-subj{font-size:14px;color:var(--txt);margin-top:2px;overflow-wrap:anywhere}
.mail-sum{font-size:13.5px;color:var(--txt2);line-height:1.5;margin-top:.35rem}
.mail-draft-lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--txt3);margin:.75rem 0 .35rem}
.mail-draft{display:block;width:100%;box-sizing:border-box;min-height:120px;resize:vertical;background:var(--bg2);border:1px solid var(--brd2);border-radius:var(--r);color:var(--txt);font-family:var(--font);font-size:14.5px;line-height:1.5;padding:.65rem .75rem}
.mail-draft:focus{outline:none;border-color:var(--acc)}
.mail-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}
.mail-task{display:block;width:100%;margin-top:.6rem;padding:.55rem .7rem;border-radius:var(--r);border:1px dashed var(--brd2);background:transparent;color:var(--acc);font-family:var(--font);font-size:13.5px;text-align:left;cursor:pointer}
.mail-task:hover{background:var(--acc-dim)}
.mail-done{margin-top:1.2rem}
.mail-done summary{font-size:12px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;padding:.3rem 0}
.mail-row{display:flex;align-items:baseline;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--brd);font-size:13px;min-width:0}
.mail-row:last-child{border-bottom:0}
.mail-row-from{flex:0 0 32%;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-row-sub{flex:1;min-width:0;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-row-st{font-size:11.5px;color:var(--txt3);white-space:nowrap}
.confirm-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:500}
/* Mon abonnement (plans) */
.plan-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.plan-name{font-size:17px;font-weight:600}
.plan-quota{font-size:12.5px;color:var(--txt3)}
.plan-usage{display:flex;align-items:center;gap:.6rem;margin:.6rem 0 .2rem;font-size:12.5px;color:var(--txt2);font-variant-numeric:tabular-nums}
.plan-bar{flex:1;height:6px;border-radius:99px;background:var(--bg3);overflow:hidden}
.plan-bar i{display:block;height:100%;border-radius:99px;background:var(--acc)}
.plan-bar.full i{background:#f97316}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:.75rem 0 .4rem}
.plan-tile{position:relative;display:flex;flex-direction:column;gap:2px;padding:.6rem .55rem;border-radius:var(--r);border:1px solid var(--brd);background:var(--bg2);font-size:12px;color:var(--txt2)}
.plan-tile b{font-size:13.5px;color:var(--txt)}
.plan-tile small{font-size:11.5px;color:var(--txt3)}
.plan-tile.current{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.plan-tile i{font-style:normal;font-size:10.5px;font-weight:600;color:var(--acc);margin-top:2px}
.plan-buy{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0 .3rem}
.plan-legal{font-size:11.5px;line-height:1.5;color:var(--txt3);margin:.3rem 0 .5rem}
.plan-legal a{color:var(--txt2)}
/* Chargement de Mon compte, achat en cours */
.acc-spin{display:inline-block;flex-shrink:0;width:16px;height:16px;border:2px solid var(--brd2);border-top-color:var(--acc);border-radius:50%;animation:spin .7s linear infinite}
.acc-wait{display:flex;align-items:center;gap:.6rem;min-height:72px;font-size:14px;color:var(--txt2)}
.plan-wait{display:flex;align-items:center;gap:.6rem;width:100%;padding:.7rem .8rem;border-radius:var(--r);background:var(--bg2);border:1px solid var(--brd);font-size:14px;color:var(--txt)}
.plan-tile em{font-style:normal;font-size:10.5px;line-height:1.3;color:var(--txt2)}
/* Agendas connectés (Mon compte › Google Agenda et Outlook) */
.agenda-link{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:var(--r);background:var(--bg2)}
.agenda-link .account-item-txt{flex:1}
.agenda-ico{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:700;color:#fff;background:#1a73e8}
.agenda-ico.ms{background:#0f6cbd}
.account-item-txt small.agenda-err{color:var(--red)}
.agenda-connect{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.45rem}
@media(max-width:768px){.mail-tiles{grid-template-columns:repeat(2,1fr)}.mail-row-from{flex-basis:38%}.mail-draft{font-size:16px}}
.list-item .task-cb{flex-shrink:0}
.chip-list{color:var(--txt2)}

/* Pièces jointes (fiche d'une tâche) */
.att-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.5rem}
.att-item{display:flex;align-items:center;gap:.5rem;font-size:.88rem;min-width:0}
.att-item a{color:var(--acc);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.att-item audio{flex:1;min-width:0;height:36px}
.att-photo img{max-width:100%;max-height:220px;border-radius:10px;border:1px solid var(--brd);cursor:zoom-in;background:var(--bg2);min-height:60px;min-width:60px;object-fit:cover}
.att-del{background:none;border:0;color:var(--txt3);font-size:1rem;cursor:pointer;padding:.2rem .4rem;flex-shrink:0}
.att-empty{font-size:13px;color:var(--txt3)}
.att-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.att-btn{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg2);border:1px solid var(--brd2);color:var(--txt);border-radius:999px;padding:.35rem .75rem;font:inherit;font-size:.8rem;cursor:pointer}
.att-btn.rec{background:var(--red,#e53e3e);border-color:var(--red,#e53e3e);color:#fff}
/* Rappel par lieu (migration n°10) */
.chip-place{color:var(--green,#34d399);border-color:rgba(52,211,153,.3)}
.loc-current{font-size:.9rem;margin-bottom:.4rem;line-height:1.35}
.loc-current small{display:block;color:var(--txt3);font-size:.78rem}
.loc-actions{display:flex;gap:.5rem}
.loc-actions .task-modal-btn{flex:1}
.place-on{display:flex;background:var(--bg2);border:1px solid var(--brd2);border-radius:10px;padding:3px;margin-bottom:.75rem}
.place-on button{flex:1;background:none;border:0;color:var(--txt2);font:inherit;font-size:.9rem;padding:.45rem;border-radius:8px;cursor:pointer}
.place-on button.on{background:var(--acc);color:#fff}
.place-results{display:flex;flex-direction:column;gap:.35rem;max-height:40vh;overflow-y:auto;margin-bottom:.75rem}
.place-item{display:block;text-align:left;width:100%;background:var(--bg2);border:1px solid var(--brd);border-radius:10px;padding:.55rem .7rem;color:var(--txt);font:inherit;font-size:.9rem;cursor:pointer}
.place-item small{display:block;color:var(--txt3);font-size:.78rem;margin-top:.1rem}
.place-sub{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--txt3);margin:.3rem 0 0}
/* Minuteur de concentration */
.focus-btn{width:100%;margin-bottom:.5rem}
.focus-pick-task{font-size:1rem;font-weight:600;margin-bottom:.75rem}
.focus-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.75rem}
.focus-pick button{background:var(--bg2);border:1px solid var(--brd2);border-radius:12px;color:var(--txt);font:inherit;font-size:.8rem;padding:.7rem .2rem;cursor:pointer}
.focus-pick button b{display:block;font-size:1.35rem;font-weight:600}
.focus-pick button.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.focus-overlay{position:fixed;inset:0;z-index:950;display:none;align-items:center;justify-content:center;background:rgba(5,7,10,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px}
.focus-overlay.open{display:flex}
.focus-card{position:relative;width:100%;max-width:380px;text-align:center;color:#fff}
.focus-min{position:absolute;top:-8px;right:0;background:rgba(255,255,255,.08);border:0;color:#fff;width:40px;height:40px;border-radius:50%;font-size:1.3rem;line-height:1;cursor:pointer}
.focus-kind{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--acc);margin-bottom:.4rem}
.focus-overlay.is-break .focus-kind{color:var(--green,#34d399)}
.focus-task{font-size:1.15rem;font-weight:600;line-height:1.3;margin:0 48px 1.25rem;overflow-wrap:anywhere}
.focus-ring{position:relative;width:220px;height:220px;margin:0 auto 1.5rem}
.focus-ring svg{display:block}
.focus-track{fill:none;stroke:rgba(255,255,255,.1);stroke-width:10}
.focus-prog{fill:none;stroke:var(--acc);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .9s linear}
.focus-overlay.is-break .focus-prog{stroke:var(--green,#34d399)}
.focus-time{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3.2rem;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.focus-btns{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:.9rem}
.focus-btns .task-modal-btn{flex:1 1 40%;min-width:120px}
.focus-done{background:none;border:1px solid rgba(52,211,153,.5);color:var(--green,#34d399);border-radius:999px;padding:.55rem 1.1rem;font:inherit;font-size:.9rem;cursor:pointer;margin-bottom:1rem}
.focus-today{font-size:.82rem;color:rgba(255,255,255,.6)}
.focus-pill{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;transform:translateX(-50%);z-index:900;display:none;background:var(--bg2);color:var(--txt);border:1px solid var(--acc);border-radius:999px;padding:.4rem .9rem;font:inherit;font-size:.85rem;font-variant-numeric:tabular-nums;box-shadow:0 4px 18px rgba(0,0,0,.35);cursor:pointer}
.focus-pill.show{display:block}
/* Fiche d'une tâche sur ordinateur : plus large, en deux colonnes, sans défilement inutile */
@media(min-width:1024px){
  #task-modal{max-width:980px;max-height:90vh;padding:1.5rem 1.75rem}
  .tm-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 2rem;align-items:start}
  .tm-fields{display:grid;grid-template-columns:1fr 1fr;column-gap:.85rem}
  .tm-fields>*{grid-column:1/-1}
  .tm-fields>.modal-field:has(>#modal-field-date,>#modal-field-time,>#modal-field-prio,>#modal-field-cat,>#modal-field-recur,>#modal-field-list){grid-column:auto}
  .tm-fields>.focus-btn,.tm-fields>.cal-add-btn{grid-column:auto;width:100%;margin:0 0 .5rem}
  .tm-side>.task-modal-section:first-child{margin-top:0}
}
/* ════════ MOBILE 2026-10 : barre d'onglets flottante, micro central, « Plus » en feuille ════════ */
.m-logo,.more-overlay{display:none}
@media(max-width:768px){
  /* En-tête : logo + titre à gauche ; le menu complet est dans « Plus » */
  body.signed-in .hamburger-btn{display:none}
  body.signed-in .m-logo{display:block;flex-shrink:0}
  body.signed-in .mobile-nav{background:var(--bg);border-bottom-color:var(--brd)}
  body.signed-in .mobile-view-title{text-align:left;font-size:17px;font-weight:600;letter-spacing:-.3px}
  /* Barre flottante, translucide */
  body.signed-in .tabbar{left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));height:64px;padding:0 4px;align-items:stretch;border:1px solid var(--brd2);border-radius:26px;background:color-mix(in srgb,var(--bg1) 82%,transparent);-webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);box-shadow:0 14px 34px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05)}
  [data-theme="light"] body.signed-in .tabbar{box-shadow:0 12px 30px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.8)}
  .tab-item{justify-content:center;gap:2px;padding:0 2px;font-size:10.5px;font-weight:500;letter-spacing:.1px;border-radius:20px;-webkit-tap-highlight-color:transparent}
  .tab-item .tab-ico{display:flex;align-items:center;justify-content:center;width:48px;max-width:none;height:30px;border-radius:99px;overflow:visible;transition:background .2s,transform .15s}
  .tab-item.active .tab-ico{background:var(--acc-glow)}
  .tab-item.active svg{filter:none}
  .tab-item:active .tab-ico{transform:scale(.9)}
  .tab-mic{flex:0 0 78px}
  /* Micro : le plus gros bouton, au centre, il dépasse de la barre ; anneau couleur de fond = encoche */
  body.signed-in .mic-fab{left:calc(50% - 35px);right:auto;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 14px);width:70px;height:70px;border:4px solid var(--bg);background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.32),transparent 46%),linear-gradient(135deg,#2563eb,#63b3ed);box-shadow:0 10px 28px rgba(37,99,235,.5),0 0 0 1px rgba(99,179,237,.3)}
  body.signed-in .mic-fab.off{border:4px solid var(--bg);box-shadow:0 8px 22px rgba(0,0,0,.35)}
  .mic-fab svg{width:30px;height:30px}
  body.signed-in .voice-panel.open{left:12px;right:12px;width:auto;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 96px)}
  body.signed-in .notif{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 100px)}
  body.signed-in .content{padding-bottom:calc(124px + env(safe-area-inset-bottom))!important}
  /* « Plus » : feuille du bas, tuiles colorées */
  .more-overlay{position:fixed;inset:0;z-index:240;background:rgba(5,7,10,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:flex-end}
  .more-overlay.open{display:flex;animation:more-fade .18s ease}
  .more-sheet{width:100%;background:var(--bg1);border-top:1px solid var(--brd2);border-radius:24px 24px 0 0;padding:.5rem 1rem calc(1rem + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(0,0,0,.4);animation:sheet-up .26s cubic-bezier(.2,.8,.2,1)}
  .more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:.6rem 0 .9rem}
  .more-tile{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.9rem .4rem .8rem;border-radius:18px;border:1px solid var(--brd);background:var(--bg2);color:var(--txt);font-family:var(--font);font-size:12.5px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s}
  .more-tile:active{transform:scale(.95)}
  .more-tile.active{border-color:var(--tint)}
  .more-ico{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--tint);background:color-mix(in srgb,var(--tint) 16%,transparent)}
  .more-lbl{text-align:center;line-height:1.25}
  .more-row{display:flex;gap:.6rem}
  .more-link{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem;border-radius:14px;border:1px solid var(--brd);background:transparent;color:var(--txt2);font-family:var(--font);font-size:14px;cursor:pointer}
  /* Aujourd'hui : assistant sans cadre, cartes plus aérées, coche ronde, croix discrète */
  .voice-area{background:none;border:none;box-shadow:none;padding:0;margin-bottom:.85rem}
  .ai-text{padding:12px 16px;font-size:15px;background:var(--bg1)}
  .ai-send{width:46px;height:46px;background:linear-gradient(135deg,#2563eb,#63b3ed)}
  .task-list{gap:8px}
  .task-item{border-radius:16px;padding:.85rem .9rem;margin-bottom:0}
  .task-cb{width:24px;height:24px;border-radius:50%}
  .task-title{font-size:15.5px;font-weight:500;line-height:1.3;margin-bottom:5px}
  .task-del{opacity:.45}
}
@keyframes sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes more-fade{from{opacity:0}to{opacity:1}}
