*{box-sizing:border-box;margin:0;padding:0}:root{--content-max:1140px;--flyout-width:min(90vw,calc(var(--content-max)*0.9));--bg-grad-start:#9dc2df;--bg-grad-mid:#5f9ecf;--bg-grad-end:#2f6f99;--panel-bg:#fff;--ink:#203040;--ink-soft:#506274;--accent:#2f6f99;--accent-2:#254f75;--danger:#cf3b3b;--success:#2f9e44;--toolbar:#2b577b;--toolbar-text:#fff;--mobile-breakpoint:600px}html{background:linear-gradient(135deg,var(--bg-grad-start) 0,var(--bg-grad-mid) 45%,var(--bg-grad-end) 100%);font-size:16px;overflow-y:overlay;scroll-behavior:smooth;scrollbar-gutter:auto}html::-webkit-scrollbar{background-color:transparent;width:15px}html::-webkit-scrollbar-button{display:none;height:0;width:0}html::-webkit-scrollbar-track{background-color:var(--bg-grad-end);background-image:linear-gradient(to bottom,var(--bg-grad-mid),var(--bg-grad-end))}html::-webkit-scrollbar-thumb{background:#1212f9;background-clip:padding-box;border:2px solid transparent;border-radius:100px}html::-webkit-scrollbar-thumb:active{background:rgba(87,5,202,.87);min-width:30px}html::-webkit-scrollbar:hover{background-color:rgba(87,5,202,.87)}body{background:transparent;color:var(--ink);font-family:Segoe UI,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji,sans-serif;margin:0 auto;max-width:calc(var(--content-max) + 10px);min-height:100vh;overflow-y:overlay;padding:10px 15px 30px 55px}body.fullscreen-mode{max-width:100%;padding:0}#app{min-height:100vh;width:100%}h1{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#dff4ff,#4a8fbe 45%,#2a4460);-webkit-background-clip:text;font-weight:800;margin-bottom:-50px;text-align:center}.migration-notice,.startup-debug{border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.12);margin-bottom:12px;padding:12px 16px}.migration-banner-info,.migration-notice{background:#e8fff2;border:1px solid #7ad7a1;color:#185a37}.migration-banner-error{background:#ffe8e8;border:1px solid #d7a1a1;color:#5a1818}.hidden{display:none!important}.app-loading{align-items:center;display:flex;justify-content:center;min-height:70vh}.left-dock,.right-dock{display:flex;flex-direction:column;gap:10px;position:fixed;top:18px;z-index:70}.left-dock{align-items:flex-start;left:max(8px,calc((100vw - var(--content-max))/2 - 68px))}.right-dock{align-items:flex-end;right:max(8px,calc((100vw - var(--content-max))/2 - 68px))}.dock-item{display:flex;position:relative}.dock-btn,.dock-link,.floating-archive,.floating-permissions{align-items:center;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);border:1px solid hsla(0,0%,100%,.25);border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:1.2em;font-weight:700;height:54px;justify-content:center;text-decoration:none;width:54px}.floating-archive,.floating-permissions{font-size:.95em;padding:0 8px;width:98px}.floating-permissions{background:linear-gradient(135deg,#7d5f1d,#a17927)}.dock-flyout{background:var(--panel-bg);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.24);margin:-5px 60px 0 0;max-height:min(80vh,730px);overflow:auto;padding:14px;position:fixed;transition:transform .35s cubic-bezier(.2,.65,.2,1);width:var(--flyout-width);z-index:75}.right-dock .dock-item{position:relative}#add-flyout{max-height:70vh;position:fixed;right:max(8px,calc((100vw - var(--content-max))/2 - 68px));top:18px;transform:translateX(0);transition:transform .35s cubic-bezier(.2,.65,.2,1);width:var(--flyout-width);z-index:100}#add-flyout.is-hidden{pointer-events:none;transform:translateX(112%)}.right-dock .dock-flyout{right:max(8px,calc((100vw - var(--content-max))/2 - 68px));transform:translateX(0)}.right-dock .dock-flyout.is-hidden{pointer-events:none;transform:translateX(112%)}.dock-flyout-left{left:64px;transform:translateX(0)}.dock-flyout-left.is-hidden{pointer-events:none;transform:translateX(-112%)}#search-flyout,.search-panel-inner{align-items:center;display:flex;gap:10px;width:90%}.search-panel-inner{width:100%}#search-input{border:1px solid #d3dbe4;border-radius:10px;flex:1;font-size:1.05em;outline:none;padding:11px 12px;width:100%}.close-search{background:none!important;box-shadow:none;color:#333!important;font-size:1.4em;padding:0 8px}#todo-form{align-items:center;display:flex;flex-wrap:wrap;gap:8px}#todo-form input{border:1px solid #ddd;border-radius:8px;font-size:.95em;padding:10px}#todo-form input[type=text]{flex:1;min-width:160px}.subtask-context{background:#e8f4fc;border:1px solid #b2d9ef;border-radius:8px;color:#154566;font-size:.9em;padding:8px 10px;width:100%}.importance-selector{display:flex;gap:5px}.importance-selector input{display:none}.importance-selector label{border-radius:4px;cursor:pointer;height:22px;transition:transform .2s;width:22px}.importance-selector input:checked+label{outline:2px solid #333;transform:scale(1.1)}.importance-selector input[value="2"]+label{background:#ffeb3b!important;color:#333!important}.add-panel-actions{display:flex;gap:8px;justify-content:flex-end;width:100%}.single-line-row{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;white-space:nowrap;button{width:133px}}.single-line-row button{flex:0 0 auto;min-width:120px}.archive-link,button{background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 14px;transition:transform .2s ease}.archive-link:hover,.dock-btn:hover,.floating-archive:hover,.floating-permissions:hover,button:hover{transform:translateY(-1px)}.active-filter{background:#1e8ec6!important;box-shadow:inset 0 2px 4px rgba(0,0,0,.2)}.main-content{width:100%}#todo-list{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-top:18px;padding:0}h3{border-bottom:2px solid #bfe9ff;color:#e9f6ff;font-size:1.1em;grid-column:1/-1;margin-top:20px;padding-bottom:5px}#todo-list>li{background:#fff;border-left:16px solid #ccc;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.12);cursor:pointer;display:flex;flex-direction:column;gap:10px;list-style:none;padding:15px;transition:all .25s ease}#todo-list>li:hover{box-shadow:0 8px 24px rgba(0,0,0,.2);transform:translateY(-2px)}.todo-card-full{grid-column:1/-1!important}.overdue-item{background:#feb3b3!important;border-left-color:#df3d3d!important}.empty-state{background:#f0f7ff;border:2px dashed #2f6f99;border-radius:12px;box-shadow:none;color:#2f6f99;grid-column:1/-1!important;list-style:none;margin-top:100px;padding:40px 20px;text-align:center}.empty-state p{font-size:1.1em;font-weight:600;margin:10px 0}.empty-state .empty-state-hint{color:#5f8fa8;font-size:.95em;font-weight:400}.todo-grid-container{align-items:center;display:grid;gap:15px;grid-template-columns:3fr 1fr;width:100%}.todo-title{font-size:1.15em}.todo-details-extra{margin-top:6px}.todo-actions-grid{display:grid;gap:6px;grid-template-rows:auto auto}.todo-actions-row{display:grid;gap:6px;grid-template-columns:repeat(4,minmax(0,1fr))}.todo-actions-row.second-row{grid-template-columns:1fr}.todo-actions-grid button{min-width:0;padding:6px 8px}.todo-info-placeholder{display:block;min-height:34px}.todo-project{background:#e8f3f9;border-radius:999px;color:#23495d;display:inline-flex;font-size:.82em;font-weight:600;margin-top:6px;padding:3px 8px}.subtask-section{border-top:1px dashed #ced6dd;padding-top:8px}.subtask-section-title{color:#446175;display:block;margin-bottom:8px;text-align:center}.subtask-progress-stack{display:flex;flex-wrap:wrap}.subtask-entry{display:grid;flex:1 1 20%;gap:5px;min-width:150px}.subtask-label-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.subtask-title-btn{background:none;border-radius:0;box-shadow:none;color:var(--ink);font-size:.9em;font-weight:700;padding:0}.subtask-title-btn.done{color:#567385;text-decoration:line-through}.subtask-prio{border-radius:999px;color:#000;font-size:.78em;font-weight:700;padding:2px 8px}.subtask-actions{display:inline-flex;gap:4px}.subtask-actions button{font-size:.78em;padding:2px 8px}.subtask-bar{background:#d96464;border:none;border-radius:0;cursor:pointer;height:8px;transition:background .3s ease;width:100%}.subtask-bar.done{background:#2f9e44}.modal{background:rgba(0,0,0,.5);display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background:#fff;border-radius:15px;box-shadow:0 10px 40px rgba(0,0,0,.35);margin:4% auto;max-width:760px;overflow:hidden;width:92%}.notes-modal-content{display:flex;flex-direction:column;margin-top:3.5vh;max-height:85vh;max-width:840px;width:min(95vw,840px)}.modal-header{align-items:center;background:var(--toolbar);color:var(--toolbar-text);display:flex;justify-content:space-between;padding:16px 18px}.modal-body{flex:1;overflow:auto;padding:20px}.close-btn{background:none;box-shadow:none;font-size:1.2em;padding:0 8px}.notes-search-toolbar{align-items:center;display:flex;gap:8px;margin-bottom:10px}.notes-search-toolbar input{border:1px solid #c9d4df;border-radius:8px;flex:1;padding:9px 10px}.notes-input{background:#fff;border:1px solid #ddd;border-radius:10px;font-family:inherit;font-size:1em;height:100%;line-height:1.5;padding:15px;resize:none;width:100%;z-index:2}.notes-container,.notes-input{min-height:300px;position:relative}.notes-container{display:flex;flex:1;max-height:calc(85vh - 100px);overflow:hidden}.notes-highlight-layer{word-wrap:break-word;background:#fff;border:1px solid #ddd;border-radius:10px;font-family:inherit;font-size:1em;height:100%;left:0;line-height:1.5;overflow:auto;padding:15px;pointer-events:none;position:absolute;top:0;white-space:pre-wrap;width:100%;z-index:1}.highlight-match{background:#ffef8a;border-radius:2px;color:#1f2933;padding:0 1px}.highlight-match.current{background:#ff6b6b;color:#fff}.notes-search-preview{display:none}.confirm-modal-content{max-width:460px}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.secondary-btn{background:#718291}.danger-btn{background:linear-gradient(135deg,#9d2323,#cf3b3b)}.toast{background:rgba(22,30,36,.95);border-radius:10px;bottom:18px;box-shadow:0 10px 25px rgba(0,0,0,.25);color:#fff;opacity:1;padding:12px 16px;position:fixed;right:18px;transform:translateY(0);transition:opacity .25s ease,transform .25s ease;z-index:1200}.toast.hidden{opacity:0;pointer-events:none;transform:translateY(10px)}.theme-grid{display:grid;gap:10px;grid-template-columns:repeat(5,1fr)}.theme-swatch{aspect-ratio:1/1;border:2px solid rgba(0,0,0,.15);border-radius:10px;padding:0;width:100%}.theme-swatch.theme-active{border-color:#0f1d2b}.theme-swatch[data-theme=ocean]{background:linear-gradient(135deg,#d7e9f9,#84b1d8)}.theme-swatch[data-theme=mint]{background:linear-gradient(135deg,#dff7ef,#86d4bb)}.theme-swatch[data-theme=sunset]{background:linear-gradient(135deg,#ffe5d2,#f5a57f)}.theme-swatch[data-theme=sand]{background:linear-gradient(135deg,#f7ecd8,#d3b37e)}.theme-swatch[data-theme=slate]{background:linear-gradient(135deg,#dce2ea,#8fa0b2)}.theme-swatch[data-theme=forest]{background:linear-gradient(135deg,#deeedf,#6ab184)}.theme-swatch[data-theme=rose]{background:linear-gradient(135deg,#fde1e8,#d97c95)}.theme-swatch[data-theme=arctic]{background:linear-gradient(135deg,#e4f7ff,#9ad8ef)}.theme-swatch[data-theme=amber]{background:linear-gradient(135deg,#fff3d6,#ebba69)}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.theme-swatch[data-theme=lavender]{background:linear-gradient(135deg,#ece8ff,#a99ce8)}.archive-page{padding-top:8px}.archive-toolbar{display:flex;justify-content:flex-start;margin-bottom:14px}.archive-container{display:grid;gap:12px}.archive-empty{color:#fff;padding:20px;text-align:center}.timeline-item{align-items:center;border:none;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.1);display:flex;gap:14px;justify-content:space-between;padding:15px;transition:all .3s ease}.timeline-item:hover{box-shadow:0 8px 25px rgba(0,0,0,.2);transform:translateY(-3px)}.archive-item-content{display:flex;flex-direction:column;gap:6px}.archive-item-actions{align-items:center;display:flex;gap:10px}.auth-page{align-items:center;display:flex;justify-content:center;min-height:100vh}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);display:grid;gap:14px;padding:28px;width:min(92vw,420px)}.auth-card-wide{width:min(92vw,640px)}.auth-card h1{margin-bottom:4px}.auth-form{display:grid;gap:10px}.auth-form input{border:1px solid #d2dce6;border-radius:8px;padding:10px}.auth-error{color:var(--danger);font-size:.92rem}.auth-switch{color:#546678}.link-button{background:none;box-shadow:none;color:var(--accent);padding:0;text-decoration:underline}@media (max-width:1220px){.left-dock,.right-dock{top:10px}.left-dock{left:8px}.right-dock{right:8px}}@media (max-width:980px){#todo-list,.todo-grid-container{grid-template-columns:1fr}.todo-actions-row{grid-template-columns:repeat(4,minmax(40px,1fr))}.dock-flyout,.dock-flyout-left{width:min(92vw,740px)}.timeline-item{align-items:stretch;flex-direction:column}}@media (max-width:600px){.subtask-entry{flex:1 1 100%;min-width:auto}}@media (max-width:760px){.subtask-progress-stack{flex-direction:column}}@media (max-width:640px){body{padding-top:82px}.dock-btn,.floating-archive,.floating-permissions{font-size:1.05em;height:46px;width:46px}.floating-archive,.floating-permissions{font-size:.8em;width:74px}.dock-flyout-left,.right-dock .dock-flyout{width:min(92vw,520px)}.right-dock .dock-flyout{right:54px}.dock-flyout-left{left:54px}.notes-modal-content{min-height:92vh}}