:root{--ink: #1a1a18;--paper: #f5f0e8;--paper-dark: #ede8dc;--paper-darker: #e0dace;--accent: #c0392b;--muted: #8a8478;--line: #d4cfc4;--done: #7a9e7a;--tag-bg: #e8e4db;--inbox: #3d5a80;--next: #c0392b;--waiting: #b07d2e;--project: #5a3d7a;--someday: #2e7a6a;--done-col: #5a7a5a}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow:hidden}body{font-family:IBM Plex Sans,sans-serif;background:var(--paper);color:var(--ink);height:100%;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column}header{background:var(--ink);color:var(--paper);padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:3px solid var(--accent);position:sticky;top:0;z-index:100}header h1{font-family:"Instrument Serif",serif;font-size:1.8rem;letter-spacing:-.01em;display:flex;align-items:baseline;gap:.5rem}header h1 span{font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--accent);text-transform:uppercase;letter-spacing:.15em;border:1px solid var(--accent);padding:2px 6px;position:relative;top:-2px}.header-left{display:flex;align-items:center;gap:.85rem;min-width:0}.hamburger{display:none;align-items:center;justify-content:center;background:transparent;color:var(--paper);border:1px solid rgba(245,240,232,.3);border-radius:3px;padding:.35rem;cursor:pointer;transition:all .15s}.hamburger:hover{border-color:var(--paper);background:#f5f0e81a}.header-refresh{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;background:transparent;color:var(--paper);border:1px solid rgba(245,240,232,.3);border-radius:3px;padding:0;font-size:1.25rem;line-height:1;cursor:pointer;transition:all .15s;flex-shrink:0}.header-refresh:hover{border-color:var(--paper);background:#f5f0e81a}.sidebar-close{display:none}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#1a1a1880;z-index:140;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .22s ease}.header-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.header-actions .btn,.header-actions label.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.35rem;line-height:1.2;margin:0;box-sizing:border-box;vertical-align:middle}.header-actions label.btn{cursor:pointer}.header-user{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.08em;color:#f5f0e899;text-transform:lowercase;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{font-family:IBM Plex Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;border:none;padding:.5rem 1rem;transition:all .15s}.btn-ghost{background:transparent;color:var(--paper);border:1px solid rgba(245,240,232,.3)}.btn-ghost:hover{border-color:var(--paper);background:#f5f0e81a}.btn-accent{background:var(--accent);color:var(--paper)}.btn-accent:hover{background:#a93226}.btn-dark{background:var(--ink);color:var(--paper)}.btn-dark:hover{background:#333}.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-outline:hover{border-color:var(--ink)}.stats-bar{display:flex;flex-direction:column;gap:0;padding:0;background:var(--paper-darker);border-bottom:1px solid var(--line);min-height:0;flex-shrink:0}.stats-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem 1.25rem;background:var(--paper-darker);border:none;border-bottom:1px solid transparent;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);transition:color .15s,background .15s}.stats-toggle:hover{color:var(--ink);background:var(--paper-dark)}.stats-bar.open .stats-toggle{border-bottom-color:var(--line)}.stats-toggle-chev{font-size:.75rem;line-height:1;transition:transform .22s ease}.stats-bar.open .stats-toggle-chev{transform:rotate(180deg)}.stats-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.stats-bar.open .stats-panel{grid-template-rows:1fr}.stats-panel-inner{overflow:hidden;display:flex;align-items:stretch;min-height:0}.stats-overview{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:.35rem;padding:.65rem 1.25rem;border-right:1px solid var(--line);background:var(--paper-dark);min-width:148px}.stats-overview-head{display:flex;align-items:baseline;gap:.35rem}.stats-overview-count{font-family:"Instrument Serif",serif;font-size:1.35rem;line-height:1;color:var(--ink)}.stats-overview-label{font-family:IBM Plex Mono,monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.stats-overview-progress{display:flex;flex-direction:column;gap:.3rem}.stats-progress-track{height:4px;background:var(--line);border-radius:999px;overflow:hidden}.stats-progress-fill{height:100%;background:var(--done-col);border-radius:999px;transition:width .35s ease}.stats-overview-ratio{font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.06em;color:var(--muted);white-space:nowrap}.stats-lists{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.55rem 1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none}.stats-lists::-webkit-scrollbar{display:none}.stat-chip{flex:0 0 auto;display:flex;align-items:center;gap:.45rem;padding:.45rem .65rem;background:var(--paper);border:1px solid var(--line);border-radius:3px;scroll-snap-align:start;box-shadow:0 1px #1a1a180a}.stat-chip-dot{width:7px;height:7px;border-radius:50%;background:var(--chip-color);flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--chip-color) 22%,transparent)}.stat-chip-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.stat-chip-val{font-family:"Instrument Serif",serif;font-size:1rem;line-height:1;color:var(--ink)}.stat-chip-name{font-family:IBM Plex Mono,monospace;font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap;max-width:5.5rem;overflow:hidden;text-overflow:ellipsis}.capture-bar{background:var(--paper-dark);border-bottom:1px solid var(--line);padding:.85rem 2rem;display:flex;flex-direction:column;gap:.5rem}.capture-row{display:flex;gap:.75rem;align-items:center}.capture-label{font-family:IBM Plex Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);white-space:nowrap}.capture-input{flex:1;background:var(--paper);border:1px solid var(--line);padding:.6rem 1rem;font-family:IBM Plex Sans,sans-serif;font-size:.95rem;color:var(--ink);outline:none;transition:border-color .15s}.capture-input:focus{border-color:var(--ink)}.capture-input::placeholder{color:var(--muted)}.app-body{flex:1;min-height:0;overflow:hidden;display:flex;align-items:stretch}.sidebar-hover-wrap{flex:0 0 22px;overflow:hidden;align-self:stretch;min-height:0;display:flex;flex-direction:column;transition:flex-basis .22s ease;--sidebar-w: min(220px, calc(100vw - 2rem) )}.sidebar-hover-wrap:hover,.sidebar-hover-wrap:focus-within,.sidebar-hover-wrap.sidebar-intro{flex-basis:var(--sidebar-w)}.sidebar-hover-wrap>aside{flex:1;min-height:0;width:var(--sidebar-w);max-width:var(--sidebar-w);background:var(--ink);color:var(--paper);padding:1.5rem 0;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid rgba(255,255,255,.12);box-sizing:border-box;display:flex;flex-direction:column}@media(prefers-reduced-motion:reduce){.sidebar-hover-wrap{transition-duration:.01ms}}.sidebar-section{padding:0 1.25rem;margin-bottom:1.5rem}.sidebar-label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-label{font-family:IBM Plex Mono,monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.sidebar-mini{border:1px solid rgba(245,240,232,.25);background:transparent;color:#f5f0e8bf;font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;cursor:pointer;border-radius:2px}.sidebar-mini:hover{border-color:#f5f0e88c;color:var(--paper);background:#f5f0e80f}.group-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.85rem 0 .35rem;color:#f5f0e88c;font-family:IBM Plex Mono,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;cursor:default;-webkit-user-select:none;user-select:none}.group-header:hover{color:#f5f0e8cc}.group-header .chev{font-size:.7rem;opacity:.8;cursor:pointer}.group-header>span:first-child{cursor:pointer}.group-header.active{color:#f5f0e8f2}.group-items.collapsed{display:none}.sidebar-item{display:flex;align-items:center;justify-content:space-between;padding:.45rem .75rem;margin:0 -.75rem;cursor:pointer;border-radius:2px;transition:background .12s;font-size:.85rem;color:#f5f0e8b3}.sidebar-item:hover{background:#ffffff12;color:var(--paper)}.sidebar-item.active{background:#ffffff1f;color:var(--paper)}.sidebar-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-right:.6rem}.sidebar-item .count{font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--muted);background:#ffffff0f;padding:1px 6px;border-radius:10px}.sidebar-item .name{flex:1}.sidebar-settings{margin-top:auto;margin-bottom:0;padding-top:1.25rem}.sidebar-account{font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.04em;color:#f5f0e880;margin-bottom:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-action{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;background:transparent;border:1px solid rgba(245,240,232,.15);color:#f5f0e8bf;font-family:IBM Plex Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;padding:.55rem .7rem;margin-bottom:.45rem;border-radius:3px;cursor:pointer;transition:all .12s}.sidebar-action:hover{border-color:#f5f0e866;background:#f5f0e80f;color:var(--paper)}.sidebar-action .sidebar-action-icon{font-size:.85rem;opacity:.8}.sidebar-action.danger:hover{border-color:#c0392b99;background:#c0392b1f;color:#e8a89f}.sidebar-settings form{margin:0}.calendar-feed-settings{margin-bottom:.45rem}.calendar-feed-panel{margin-top:.35rem;margin-bottom:.55rem;padding:.65rem .7rem;border:1px solid rgba(245,240,232,.14);border-radius:4px;background:#00000026}.calendar-feed-lead{margin:0 0 .55rem;font-family:IBM Plex Sans,sans-serif;font-size:.72rem;line-height:1.4;color:#f5f0e8b8}.calendar-feed-label{display:block;font-family:IBM Plex Mono,monospace;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:#f5f0e88c;margin-bottom:.25rem}.calendar-feed-input{width:100%;box-sizing:border-box;font-family:IBM Plex Mono,monospace;font-size:.62rem;padding:.4rem .45rem;border:1px solid rgba(245,240,232,.18);border-radius:3px;background:#0003;color:#f5f0e8d9;margin-bottom:.45rem}.calendar-feed-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.45rem}.calendar-feed-btn{font-size:.62rem!important;padding:.3rem .5rem!important;min-height:auto!important;text-decoration:none;color:inherit}.calendar-feed-help{font-family:IBM Plex Sans,sans-serif;font-size:.68rem;color:#f5f0e8a6}.calendar-feed-help summary{cursor:pointer;margin-bottom:.35rem}.calendar-feed-help ul{margin:0 0 .45rem;padding-left:1rem;line-height:1.45}.calendar-feed-muted{margin:0;font-size:.68rem;color:#f5f0e880}main{flex:1;min-width:0;min-height:0;padding:2rem;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.view-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--ink)}.view-title{font-family:"Instrument Serif",serif;font-size:2rem;color:var(--ink)}.view-count{font-family:IBM Plex Mono,monospace;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}main.main-excalidraw{display:flex;flex-direction:column;overflow:hidden;padding-bottom:1.25rem}main.main-excalidraw .view-header{flex-shrink:0;margin-bottom:1rem}.excalidraw-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:.65rem}.excalidraw-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;flex-shrink:0}.excalidraw-context{font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);max-width:min(420px,55vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excalidraw-context.muted{color:var(--muted)}.excalidraw-toolbar-actions{display:flex;gap:.45rem;flex-wrap:wrap}.excalidraw-toolbar-btn{font-size:.58rem;padding:.4rem .65rem;letter-spacing:.06em;text-decoration:none}.excalidraw-fullscreen-btn{font-size:.85rem;line-height:1;padding:.35rem .55rem;min-width:2rem}.excalidraw-host{flex:1;min-height:0;display:none;flex-direction:column}.excalidraw-host.active{display:flex}.excalidraw-host.active .excalidraw-panel{flex:1;min-height:0}.excalidraw-host:not(.active) .excalidraw-panel{position:fixed;left:-10000px;top:0;width:100vw;height:100vh;visibility:hidden;pointer-events:none}.excalidraw-panel:fullscreen{background:var(--paper);padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));gap:.75rem}.excalidraw-panel:fullscreen .excalidraw-frame{min-height:0;border-color:var(--line)}.excalidraw-frame{flex:1;min-height:420px;width:100%;border:1px solid var(--line);background:#fff}.task-list{display:flex;flex-direction:column}.task-item{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:start;padding:.85rem 1rem;background:var(--paper);border:1px solid var(--line);border-top:none;transition:background .12s}.task-item:first-child{border-top:1px solid var(--line)}.task-item:hover{background:var(--paper-dark)}.task-item.done{opacity:.45}.task-item.done .task-text{text-decoration:line-through}.task-check{width:18px;height:18px;border:1.5px solid var(--line);border-radius:2px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-top:2px}.task-check:hover{border-color:var(--ink)}.task-item.done .task-check{background:var(--done);border-color:var(--done)}.task-check svg{display:none}.task-item.done .task-check svg{display:block}.task-body{min-width:0}.task-text{font-size:.92rem;line-height:1.4;color:var(--ink);margin-bottom:.3rem;word-break:break-word}.task-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.tag{font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:2px;background:var(--tag-bg);color:var(--muted)}.tag.list-tag{color:#fff;opacity:.85}.task-date{font-family:IBM Plex Mono,monospace;font-size:.6rem;color:var(--muted);padding-top:.2rem}.task-progress{margin-top:.45rem}.task-progress-track{height:5px;background:var(--line);border-radius:3px;overflow:hidden}.task-progress-fill{height:100%;border-radius:3px;transition:width .35s ease,background-color .25s ease}.task-progress-meta{font-family:IBM Plex Mono,monospace;font-size:.58rem;color:var(--muted);margin-top:.25rem}.task-actions{display:flex;gap:.3rem;opacity:0;transition:opacity .15s;align-items:flex-start}.task-item:hover .task-actions{opacity:1}.icon-btn{background:none;border:none;cursor:pointer;padding:3px;color:var(--muted);transition:color .12s;display:flex;align-items:center}.icon-btn:hover{color:var(--ink)}.icon-btn.restore:hover{color:var(--someday)}.icon-btn.del:hover{color:var(--accent)}.icon-btn.excalidraw-btn{color:#6b5b95}.icon-btn.excalidraw-btn:hover{color:#4a3d6e}.tl-excal{flex-shrink:0;margin-left:.25rem;padding:2px!important}.all-toolbar{display:flex;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.all-search{flex:1;display:flex;gap:.6rem;align-items:center}.all-search input{width:100%;background:var(--paper);border:1px solid var(--line);padding:.6rem .75rem;font-family:IBM Plex Sans,sans-serif;font-size:.9rem;color:var(--ink);outline:none}.all-search input:focus{border-color:var(--ink)}.all-hint{font-family:IBM Plex Mono,monospace;font-size:.62rem;color:var(--muted);white-space:nowrap}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}.task-card{background:var(--paper);border:1px solid var(--line);padding:.9rem .95rem;transition:background .12s;display:flex;flex-direction:column;gap:.55rem;min-height:120px}.task-card:hover{background:var(--paper-dark)}.task-card-top{display:flex;align-items:flex-start;gap:.55rem}.task-card-check{width:18px;height:18px;border:1.5px solid var(--line);border-radius:2px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-top:2px}.task-card-check:hover{border-color:var(--ink)}.task-card.done .task-card-check{background:var(--done);border-color:var(--done)}.task-card-check svg{display:none}.task-card.done .task-card-check svg{display:block}.task-card.done .task-card-title{text-decoration:line-through;opacity:.6}.task-card-title{font-size:.9rem;line-height:1.35;color:var(--ink);word-break:break-word;flex:1}.task-card-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.task-card-actions{display:flex;gap:.25rem;justify-content:flex-end;margin-top:auto;opacity:.95}.empty-state{text-align:center;padding:4rem 2rem;color:var(--muted)}.empty-state .empty-icon{font-size:2rem;margin-bottom:1rem;opacity:.4}.empty-state p{font-family:"Instrument Serif",serif;font-size:1.2rem;font-style:italic}.empty-state small{font-family:IBM Plex Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;display:block;margin-top:.5rem}.c-done{background:var(--done-col)}.list-row{display:grid;grid-template-columns:1fr 150px 88px auto;gap:.6rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line)}.list-row-simple{grid-template-columns:1fr auto}.list-row:last-child{border-bottom:none}.list-row input[type=text]{font-size:.9rem}.list-row input[type=color]{width:88px;height:36px;border:1px solid var(--line);background:var(--paper);padding:2px;cursor:pointer}.list-row .danger{border-color:#c0392b59;color:var(--accent)}.list-row select{background:var(--paper);border:1px solid var(--line);padding:.55rem .5rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;color:var(--ink);cursor:pointer}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1899;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:var(--paper);border:2px solid var(--ink);padding:2rem;width:100%;max-width:520px;max-height:min(calc(100dvh - 2rem),100%);overflow:hidden;display:flex;flex-direction:column;transform:translateY(12px);transition:transform .22s ease}.modal-overlay.open .modal{transform:translateY(0)}.modal-scroll{overflow-y:auto;flex:1;min-height:0;padding-right:.25rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-title{font-family:"Instrument Serif",serif;font-size:1.4rem;margin-bottom:1.25rem;flex-shrink:0;line-height:1.2}.modal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-grid-dates{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.4rem}.field-label-row label{margin-bottom:0}.field-label-row .btn{padding:.35rem .6rem;flex-shrink:0}.field-spacer{height:.6rem}.field-hint{margin-top:.4rem;font-family:IBM Plex Mono,monospace;font-size:.62rem;color:var(--muted);line-height:1.45}.modal-section-label{font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.modal-section-label.spaced{margin-bottom:.75rem}.modal-divider{height:1px;background:var(--line);margin:1.25rem 0}.modal-actions-row{margin-top:.75rem;display:flex;gap:.75rem;justify-content:flex-start;flex-wrap:wrap}.modal-actions-row.bottom{margin-top:1rem}.field-group{margin-bottom:1rem}label{display:block;font-family:IBM Plex Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.4rem}input[type=text],input[type=url],input[type=date],input[type=email],input[type=password],textarea,select{width:100%;background:var(--paper);border:1px solid var(--line);padding:.6rem .75rem;font-family:IBM Plex Sans,sans-serif;font-size:.9rem;color:var(--ink);outline:none;transition:border-color .15s;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--ink)}select{font-family:IBM Plex Mono,monospace;font-size:.78rem;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238a8478'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-color:var(--paper);padding-right:2rem}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);flex-shrink:0;flex-wrap:wrap}.modal-footer-spacer{flex:1}.modal-footer .btn.danger-text,.btn.danger-text{color:#c0392b;border-color:#c0392b59}.calendar-event-chip.orphan{opacity:.65;filter:grayscale(.35)}.calendar-task-link{text-decoration:underline;text-underline-offset:2px;cursor:pointer}.modal-footer .btn{min-height:2.35rem}.about-modal{max-width:580px}.about-body{overflow-y:auto;flex:1;min-height:0;font-size:.88rem;line-height:1.55;color:var(--ink);padding-right:.35rem}.about-body p{margin-bottom:.75rem}.about-body h3{font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:1.15rem 0 .45rem;font-weight:500}.about-body h3:first-child{margin-top:0}.about-body ul{margin:0 0 .6rem 1rem;padding:0;list-style:disc}.about-body li{margin-bottom:.35rem}.about-body .about-lead{font-family:"Instrument Serif",serif;font-size:1.05rem;font-style:italic;color:var(--muted);margin-bottom:1rem;line-height:1.4}.about-credit{flex-shrink:0;text-align:center;font-family:IBM Plex Mono,monospace;font-size:.72rem;letter-spacing:.06em;color:var(--muted);margin:0;padding:.9rem 0 0;border-top:1px solid var(--line)}.header-brand{font:inherit;color:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left;border-radius:4px}.header-brand:hover{text-decoration:underline;text-decoration-color:#f5f0e866}.roadmap-global-bar{margin-bottom:1.25rem;display:flex;align-items:center;gap:1rem}.roadmap-global-track{flex:1;height:6px;background:var(--line);border-radius:3px;overflow:hidden}.roadmap-global-fill{height:100%;background:var(--done-col);transition:width .5s ease;border-radius:3px}.roadmap-global-label{font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--muted);white-space:nowrap}.timeline-wrap{border:1px solid var(--line);background:var(--paper-dark)}.timeline-head{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;padding:.8rem 1rem;border-bottom:1px solid var(--line);background:var(--paper-darker)}.timeline-head-row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.timeline-title{font-family:"Instrument Serif",serif;font-size:1.2rem}.timeline-sub{font-family:IBM Plex Mono,monospace;font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.roadmap-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;padding-top:.35rem;border-top:1px solid var(--line)}.roadmap-filter-field{display:flex;align-items:center;gap:.45rem}.roadmap-filter-field>span{font-family:IBM Plex Mono,monospace;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.roadmap-filters select,.timeline-zoom-select{background:var(--paper);border:1px solid var(--line);padding:.35rem .5rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;color:var(--ink);cursor:pointer;max-width:220px}.timeline-scroll{overflow:auto;padding:.75rem 0;min-height:520px;max-height:min(90vh,1200px);border-top:1px solid rgba(26,26,24,.06)}.timeline-canvas{position:relative;min-width:100%;padding:0 1rem 1rem}.timeline-axis{position:relative;height:40px}.timeline-axis-line{position:absolute;left:0;right:0;top:18px;height:2px;background:var(--line)}.timeline-tick{position:absolute;top:8px;width:1px;height:22px;background:#1a1a1833}.timeline-tick-label{position:absolute;top:0;transform:translate(-50%);font-family:IBM Plex Mono,monospace;font-size:.6rem;color:var(--muted);white-space:nowrap}.timeline-lanes{position:relative;padding-top:.5rem}.timeline-lane{position:relative;height:44px}.timeline-lane:before{content:"";position:absolute;left:0;right:0;top:22px;border-top:1px dashed rgba(26,26,24,.12)}.timeline-today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid rgba(192,57,43,.65);pointer-events:none;z-index:3}.timeline-today:after{content:"Aujourd’hui";position:absolute;top:4px;left:8px;font-family:IBM Plex Mono,monospace;font-size:.6rem;color:#c0392be6;background:#f5f0e8e6;border:1px solid rgba(192,57,43,.25);padding:2px 6px;border-radius:999px;white-space:nowrap}.tl-item{position:absolute;top:6px;max-width:none;min-width:0;cursor:pointer;z-index:2}.tl-pill{background:var(--paper);border:1px solid var(--line);padding:.45rem .6rem;border-radius:999px;display:flex;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 1px #0000000a;min-width:0;width:100%;box-sizing:border-box}.tl-pill-main{display:flex;align-items:center;gap:.5rem;min-width:0}.tl-progress-track{height:4px;background:#1a1a1814;border-radius:999px;overflow:hidden;width:100%}.tl-progress-fill{height:100%;border-radius:999px;transition:width .35s ease,background-color .25s ease}.tl-item:hover .tl-pill{filter:brightness(.96) saturate(1.02);border-color:#ffffff61}.tl-item.tl-overdue:hover .tl-pill{border-color:#c0392bd9}.tl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tl-pill-badge{font-family:IBM Plex Mono,monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;opacity:.85;white-space:nowrap;flex-shrink:0}.tl-text{font-size:.78rem;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0;flex:1 1 auto}.tl-overdue .tl-pill{border-color:#c0392b8c}.tl-done{opacity:.55}.tl-done .tl-pill{text-decoration:line-through}.tl-done .tl-dot{opacity:.6}.roadmap-info-pop{position:fixed;z-index:280;left:0;top:0;min-width:220px;max-width:min(380px,calc(100vw - 20px));background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px #1a1a182e;padding:.75rem .9rem}.roadmap-info-pop .task-card{margin:0;border:none;padding:0;background:transparent}.roadmap-done-strip{margin-top:2rem;border-top:1px dashed var(--line);padding-top:1rem}.roadmap-done-label{font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.6rem}.roadmap-done-chips{display:flex;flex-wrap:wrap;gap:.4rem}.done-chip{font-family:IBM Plex Sans,sans-serif;font-size:.75rem;padding:.25rem .65rem;background:var(--paper-darker);border:1px solid var(--line);color:var(--muted);text-decoration:line-through;border-radius:2px}.calendar-wrap{display:flex;flex-direction:column;gap:1.25rem}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.calendar-toolbar-left{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.calendar-zoom-select{font-family:IBM Plex Sans,sans-serif;font-size:.78rem;padding:.35rem .55rem;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}.calendar-nav{display:flex;align-items:center;gap:.75rem}.calendar-nav-btn{min-width:2.25rem;padding:.35rem .65rem;font-size:1.1rem;line-height:1}.calendar-period-title{margin:0;font-family:IBM Plex Sans,sans-serif;font-size:1.05rem;font-weight:600;text-transform:capitalize;min-width:8rem;text-align:center}.calendar-wrap.calendar-zoom-day .calendar-day-panel{flex:1}.calendar-week-strip-wrap{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:.65rem}.calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.calendar-week-strip-day{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .25rem;border:1px solid var(--line);border-radius:8px;background:var(--paper-darker);cursor:pointer;position:relative}.calendar-week-strip-day:hover{border-color:var(--ink)}.calendar-week-strip-day.today .calendar-week-strip-num{background:var(--ink);color:var(--paper);border-radius:999px;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center}.calendar-week-strip-day.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--paper)}.calendar-week-strip-dow{font-family:IBM Plex Mono,monospace;font-size:.58rem;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.calendar-week-strip-num{font-family:IBM Plex Sans,sans-serif;font-size:1.05rem;font-weight:600;line-height:1.2}.calendar-week-strip-count{font-family:IBM Plex Mono,monospace;font-size:.55rem;color:var(--muted)}.calendar-timeline-panel .calendar-timeline-scroll{margin-top:.5rem}.calendar-timeline-scroll{overflow:auto;max-height:min(70vh,640px);border:1px solid var(--line);border-radius:8px;background:var(--paper)}.calendar-timeline{display:flex;position:relative;min-width:min(100%,520px)}.calendar-timeline-hours{flex:0 0 3.25rem;border-right:1px solid var(--line);background:var(--paper-darker)}.calendar-timeline-hour{display:flex;align-items:flex-start;justify-content:flex-end;padding:.15rem .45rem 0 0;font-family:IBM Plex Mono,monospace;font-size:.58rem;color:var(--muted);box-sizing:border-box;transform:translateY(-.35rem)}.calendar-timeline-canvas{position:relative;flex:1;min-width:0}.calendar-timeline-gridline{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line);pointer-events:none}.calendar-timeline-now{position:absolute;left:0;right:0;height:2px;background:#c0392b;z-index:2;pointer-events:none}.calendar-timeline-now-dot{position:absolute;left:-5px;top:-4px;width:8px;height:8px;border-radius:999px;background:#c0392b}.calendar-timeline-block{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.3rem .4rem;border:1px solid rgba(255,255,255,.2);border-radius:5px;overflow:hidden;text-align:left;cursor:pointer;z-index:1;box-sizing:border-box;min-height:28px}.calendar-timeline-block:hover{filter:brightness(.96);z-index:3;box-shadow:0 2px 8px #1a1a181f}.calendar-timeline-block-time{font-family:IBM Plex Mono,monospace;font-size:.58rem;opacity:.92}.calendar-timeline-block-title{font-size:.72rem;font-weight:600;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.calendar-timeline-block-meta{font-size:.58rem;opacity:.85}.calendar-allday{display:flex;align-items:flex-start;gap:.65rem;padding:.65rem 0;border-bottom:1px dashed var(--line);margin-bottom:.25rem}.calendar-allday-label{flex:0 0 3.25rem;font-family:IBM Plex Mono,monospace;font-size:.58rem;color:var(--muted);text-align:right;padding-top:.2rem}.calendar-allday-events{display:flex;flex-wrap:wrap;gap:.35rem;flex:1}.calendar-allday-chip{border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:.25rem .5rem;font-size:.72rem;cursor:pointer}.calendar-day-empty-inline{margin-top:0;padding:0 0 .5rem}.calendar-grid-wrap{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--paper-darker);border-bottom:1px solid var(--line)}.calendar-weekday{padding:.45rem .35rem;text-align:center;font-family:IBM Plex Mono,monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(5.5rem,auto)}.calendar-day{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;padding:.35rem;border:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);text-align:left;cursor:pointer;min-height:5.5rem}.calendar-day:nth-child(7n){border-right:none}.calendar-day.muted{background:#00000005;opacity:.45}.calendar-day.today .calendar-day-num{background:var(--ink);color:var(--paper);border-radius:999px;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center}.calendar-day.selected{box-shadow:inset 0 0 0 2px var(--ink)}.calendar-day-num{font-family:IBM Plex Mono,monospace;font-size:.72rem;color:var(--muted);align-self:flex-start;padding:.1rem .2rem}.calendar-day-events{display:flex;flex-direction:column;gap:.15rem;min-height:0;flex:1;overflow:hidden}.calendar-event-chip{display:flex;align-items:center;gap:.25rem;font-size:.62rem;line-height:1.2;padding:.12rem .3rem;border-radius:3px;border:1px solid rgba(255,255,255,.15);max-width:100%;cursor:pointer}.calendar-event-time{font-family:IBM Plex Mono,monospace;font-size:.58rem;opacity:.9;flex-shrink:0}.calendar-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.calendar-more{font-family:IBM Plex Mono,monospace;font-size:.58rem;color:var(--muted);padding-left:.15rem}.calendar-day-panel{border:1px solid var(--line);border-radius:8px;padding:1rem 1.1rem;background:var(--paper)}.calendar-day-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.calendar-day-panel-title{margin:0;font-size:.95rem;font-weight:600;text-transform:capitalize}.calendar-add-btn{font-size:.78rem;padding:.4rem .85rem}.calendar-day-empty{margin:0;color:var(--muted);font-size:.82rem}.calendar-day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.calendar-day-item-btn{display:flex;align-items:flex-start;gap:.65rem;width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:6px;background:var(--paper-darker);cursor:pointer;text-align:left}.calendar-day-item-btn:hover{border-color:var(--ink)}.calendar-day-item-dot{width:.55rem;height:.55rem;border-radius:999px;margin-top:.35rem;flex-shrink:0}.calendar-day-item-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.calendar-day-item-title{font-size:.88rem;font-weight:500}.calendar-day-item-meta{font-size:.72rem;color:var(--muted)}.calendar-year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.calendar-year-month{border:1px solid var(--line);border-radius:8px;padding:.65rem .55rem .75rem;background:var(--paper)}.calendar-year-month-title{display:block;width:100%;margin:0 0 .45rem;padding:.15rem .25rem;border:none;background:none;font-family:IBM Plex Sans,sans-serif;font-size:.82rem;font-weight:600;text-align:center;text-transform:capitalize;cursor:pointer;color:var(--ink);border-radius:4px}.calendar-year-month-title:hover{background:var(--paper-darker)}.calendar-year-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:.2rem}.calendar-year-weekdays span{text-align:center;font-family:IBM Plex Mono,monospace;font-size:.52rem;color:var(--muted)}.calendar-year-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.calendar-year-day{aspect-ratio:1;min-height:0;padding:0;border:none;background:transparent;font-family:IBM Plex Mono,monospace;font-size:.58rem;color:var(--ink);border-radius:3px;cursor:pointer;position:relative}.calendar-year-day.muted{color:var(--muted);opacity:.35}.calendar-year-day.today{font-weight:700;box-shadow:inset 0 0 0 1px var(--ink)}.calendar-year-day.selected{background:var(--ink);color:var(--paper)}.calendar-year-day.has-events:not(.selected):after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:999px;background:var(--ink);opacity:.45}.calendar-year-day.selected.has-events:after{background:var(--paper);opacity:.85}.field-sub-label{display:block;margin-top:.65rem;margin-bottom:.25rem;font-size:.78rem;color:var(--muted)}.notif{position:fixed;bottom:1.5rem;right:1.5rem;max-width:min(420px,calc(100vw - 2rem));background:var(--ink);color:var(--paper);padding:.75rem 1.25rem;font-family:IBM Plex Sans,sans-serif;font-size:.82rem;line-height:1.35;transform:translateY(20px);opacity:0;transition:all .2s;z-index:300;pointer-events:none}.notif.show{transform:translateY(0);opacity:1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line)}.auth-wrap{height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow:auto}.auth-card{width:100%;max-width:380px;background:var(--paper);border:2px solid var(--ink);padding:2rem}.auth-brand{font-family:"Instrument Serif",serif;font-size:2rem;display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.auth-brand span{font-family:IBM Plex Mono,monospace;font-size:.55rem;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;border:1px solid var(--accent);padding:2px 6px}.auth-lead{font-size:.85rem;color:var(--muted);margin-bottom:1.5rem}.auth-card form{display:flex;flex-direction:column}.auth-card label{margin-top:.5rem}.auth-submit{margin-top:1.5rem;width:100%;padding:.7rem}.auth-switch{margin-top:1.25rem;font-size:.8rem;color:var(--muted);text-align:center}.auth-switch a{color:var(--accent)}.auth-error{background:#c0392b1a;border:1px solid rgba(192,57,43,.4);color:var(--accent);font-size:.8rem;padding:.6rem .75rem;margin-bottom:1rem}.password-field{position:relative;display:flex;align-items:center}.password-field input{padding-right:2.75rem}.password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;background:none;border:none;padding:4px;cursor:pointer;color:var(--muted);transition:color .12s}.password-toggle:hover{color:var(--ink)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media(max-width:600px){.list-row input[type=color]{width:100%}}@media(max-width:768px){header{padding:.75rem 1rem;flex-wrap:wrap;gap:.6rem}header h1{font-size:1.4rem}.header-left{order:1}.hamburger{display:inline-flex;order:2;margin-left:auto}.header-user{display:none}.header-actions{order:3;width:100%;display:flex;gap:.4rem}.header-actions .btn{flex:1;font-size:.62rem;padding:.6rem .5rem;letter-spacing:.06em}.stats-bar,.capture-bar{padding-left:0;padding-right:0}.capture-bar{padding-left:1rem;padding-right:1rem}.stats-toggle{padding:.55rem 1rem}.stats-panel-inner{flex-direction:column}.stats-overview{flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;width:100%;padding:.6rem 1rem;border-right:none;border-bottom:1px solid var(--line)}.stats-overview-progress{flex:1;max-width:9rem;align-items:flex-end}.stats-progress-track{width:100%}.stats-lists{padding:.55rem 1rem .65rem;gap:.45rem;mask-image:linear-gradient(to right,transparent,#000 .75rem,#000 calc(100% - .75rem),transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 .75rem,#000 calc(100% - .75rem),transparent)}.stat-chip{padding:.4rem .55rem}.stat-chip-val{font-size:.95rem}.stat-chip-name{max-width:4.5rem}main{padding:1.25rem 1rem}.view-title{font-size:1.6rem}.modal-overlay{align-items:flex-end;justify-content:stretch;padding:0}.modal{max-width:none;width:100%;max-height:min(94dvh,100%);border-radius:10px 10px 0 0;border-left:none;border-right:none;border-bottom:none;padding:1rem 1rem max(1rem,env(safe-area-inset-bottom));transform:translateY(100%)}.modal-overlay.open .modal{transform:translateY(0)}.modal-title{font-size:1.25rem;margin-bottom:1rem;padding-right:.25rem}.modal-grid-2,.modal-grid-dates{grid-template-columns:1fr}.field-label-row{flex-wrap:wrap}.list-row,.list-row-simple{grid-template-columns:1fr;gap:.5rem;padding:.75rem 0}.list-row .btn,.list-row-simple .btn{width:100%;display:inline-flex;align-items:center;justify-content:center}.modal-footer{flex-direction:column;align-items:stretch;gap:.5rem;margin-top:1rem;padding-top:.85rem}.modal-footer .btn{width:100%;display:inline-flex;align-items:center;justify-content:center}.modal-actions-row,.modal-actions-row.bottom{flex-direction:column;align-items:stretch}.modal-actions-row .btn{width:100%;justify-content:center}.about-modal{max-width:none}.about-body{font-size:.85rem}.sidebar-hover-wrap{position:fixed;top:0;right:0;left:auto;bottom:0;flex:none;width:min(285px,84vw);--sidebar-w: min(285px, 84vw);z-index:150;transform:translate(100%);transition:transform .25s ease;box-shadow:-2px 0 24px #00000047}.sidebar-hover-wrap.open{transform:translate(0)}.sidebar-hover-wrap:hover,.sidebar-hover-wrap:focus-within,.sidebar-hover-wrap.sidebar-intro{flex-basis:auto}.sidebar-hover-wrap>aside{width:100%;max-width:none;padding-top:3.5rem;border-right:none;border-left:1px solid rgba(255,255,255,.12)}.sidebar-close{display:flex;position:absolute;top:.6rem;right:.75rem;z-index:2;width:2rem;height:2rem;align-items:center;justify-content:center;background:none;border:none;color:var(--paper);font-size:1.6rem;line-height:1;cursor:pointer}.sidebar-backdrop{display:block}.sidebar-backdrop.show{opacity:1;pointer-events:auto}.calendar-grid{grid-auto-rows:minmax(4.5rem,auto)}.calendar-day{min-height:4.5rem;padding:.25rem}.calendar-event-chip{font-size:.55rem}.calendar-day-panel-head{flex-direction:column;align-items:stretch}.calendar-add-btn,.calendar-toolbar-left{width:100%}.calendar-period-title{font-size:.92rem;min-width:0;flex:1}.calendar-year-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.65rem}.calendar-week-strip{gap:.2rem}.calendar-week-strip-day{padding:.4rem .1rem}.calendar-week-strip-num{font-size:.88rem}}
