:root{font-family:Arial,Segoe UI,sans-serif;color:#18231e;background:#fafbfa;--bg:#fafbfa;--panel:#fff;--text:#18231e;--muted:#7d8589;--line:#e8ebea;--soft:#f0f2f1;--green:#005c36;--on-green:#fff;--danger:#df4e4e;color-scheme:light}*{box-sizing:border-box}html[data-theme=dark]{--bg:#10191b;--panel:#162123;--text:#eaf0ed;--muted:#929fa3;--line:#273234;--soft:#202c2e;--green:#80d99e;--on-green:#10291b;--danger:#ff7474;color-scheme:dark;background:var(--bg);color:var(--text)}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer;background:none;border:0;color:inherit;min-height:44px;padding:8px 12px;border-radius:7px}@media(hover:hover) and (pointer:fine){button:hover{background:var(--soft)}}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:2px}svg{width:21px;height:21px;vertical-align:middle;flex-shrink:0}[hidden]{display:none!important}.shell{max-width:740px;margin:auto;min-height:100dvh;padding:0 18px}.heading{height:84px;display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:0;z-index:3;background:var(--bg)}h1{font-size:20px;line-height:1.2;margin:0 0 5px;font-weight:700;letter-spacing:-.4px}h2{font-size:17px;margin:14px 0}p{font-size:13px;line-height:1.5;color:var(--muted);margin:0}#today{font-size:11px;color:var(--muted);text-transform:capitalize}.header-actions{display:flex;align-items:center;gap:2px}.header-actions button{width:44px;height:44px;padding:10px}.header-actions #add{width:36px;height:36px;min-height:36px;border-radius:50%;font-size:25px;line-height:1;padding:0;margin-left:5px}.primary{background:var(--green);color:var(--on-green)}@media(hover:hover) and (pointer:fine){.primary:hover{filter:brightness(1.1);background:var(--green)}}main{padding-bottom:90px}.layout{display:block}.overview,aside{display:none}.workspace{margin:0}.tabs,.finance-tabs{display:flex;background:var(--soft);border-radius:8px;height:44px;margin-bottom:8px;overflow:hidden}.tabs button,.finance-tabs button{flex:1;border-radius:7px 7px 0 0;min-width:0;font-size:13px;color:var(--muted)}.tabs button.active,.finance-tabs button.active{background:var(--panel);color:var(--green);font-weight:600;border-bottom:2px solid var(--green)}#count,.tabs .spacer,#filter{display:none}.chips{display:flex;gap:7px;align-items:center;height:44px;margin-bottom:4px}.chips button{min-height:32px;padding:6px 13px;border-radius:20px;font-size:12px;background:var(--soft)}.chips button.active{background:var(--green);color:var(--on-green)}.item{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);height:56px;margin:0;padding:0;background:transparent}.item-content{min-width:0;flex:1}.item-title{display:block;max-width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:20px;padding:0;min-height:32px;border-radius:2px}@media(hover:hover) and (pointer:fine){.item-title:hover{background:none;color:var(--green)}}.check{flex:0 0 36px;width:36px;min-height:44px;position:relative;display:grid;place-items:center;padding:0;color:transparent;background:transparent!important}.check:before{content:'';position:absolute;width:19px;height:19px;border:1px solid var(--muted);border-radius:50%;z-index:0}.check.done{color:var(--on-green);font-size:12px}.check.done:before{background:var(--green);border-color:var(--green);z-index:-1}.check{isolation:isolate}.completed{color:var(--muted)}.row-date{font-size:11px;color:var(--muted);white-space:nowrap}.row-menu{width:36px;flex:0 0 36px;padding:8px 6px;color:var(--muted);font-size:18px}.row-menu svg{width:17px;height:17px}.inline-progress{display:flex;align-items:center;gap:8px;margin-top:-3px;padding-bottom:4px}.track{height:5px;border-radius:6px;background:var(--line);overflow:hidden}.track i{display:block;height:100%;background:var(--green);border-radius:6px}.inline-progress .track{width:110px}.inline-progress small{font-size:10px;color:var(--muted)}.notes-list .item{height:92px;gap:10px}.notes-list .item-title{font-size:14px}.notes-list p{font-size:12px;line-height:17px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.note-icon{width:32px;height:36px;color:#775a9d;background:#eee9f4;border-radius:7px;display:grid;place-items:center}.notes-list .item:nth-child(3n+2) .note-icon{color:#b87d33;background:#f6eddf}.notes-list .item:nth-child(3n) .note-icon{color:#2a8c52;background:#e6f3e9}.empty{text-align:center;padding:45px 18px}.empty .symbol{font-size:30px;color:var(--green)}.empty h2{font-size:17px}.empty button{color:var(--green);margin-top:12px}.empty p{max-width:320px;margin:auto}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,740px);display:flex;gap:0;padding:7px 8px calc(8px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);z-index:5}nav button{flex:1;min-width:0;min-height:49px;padding:2px 0;font-size:9px;line-height:1.2;color:var(--muted);border-radius:0}nav button span{display:block;margin-bottom:5px}nav button svg{width:20px;height:20px}nav button.active{color:var(--green);font-weight:700}nav button.active svg{stroke-width:2}#search-box{padding:0 0 10px}input,select,textarea{display:block;width:100%;padding:9px 10px;min-height:40px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);margin-top:5px;font-size:14px;outline-color:var(--green)}label{display:block;font-size:12px;color:var(--muted);margin:12px 0}textarea{resize:vertical;line-height:1.5}dialog{width:min(480px,100%);max-height:94dvh;border:1px solid var(--line);border-radius:18px 18px 0 0;padding:18px 20px 24px;color:var(--text);background:var(--bg);margin:auto auto 0;box-shadow:0 -12px 60px #0002;overscroll-behavior:contain}dialog::backdrop{background:#0007;backdrop-filter:blur(2px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px;position:sticky;top:-18px;background:var(--bg);z-index:1}.dialog-top h2{font-size:16px}.close,#money-close{font-size:24px;color:var(--green)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid label{min-width:0}.field-help{font-size:11px;line-height:1.5;margin:8px 0}input[type=range]{padding:0;accent-color:var(--green);border:0;background:none}output{float:right}.reorder{display:flex;gap:8px}.reorder button{font-size:12px;color:var(--muted)}footer{display:flex;gap:10px;margin-top:16px}footer>.primary{flex:1}.danger{color:var(--danger)}#preferences>button{display:block;text-align:left;width:100%;border-bottom:1px solid var(--line);font-size:14px}#toast{position:fixed;bottom:88px;left:50%;transform:translateX(-50%);display:none;background:var(--text);color:var(--bg);padding:12px 16px;border-radius:9px;max-width:90%;font-size:13px;z-index:20}.error{font-size:12px;color:var(--danger);line-height:1.5;margin:8px 0}.error:empty{display:none}.finance-mode .layout{display:none}.finance-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 2px 10px}.finance-summary span{font-size:11px;color:var(--muted)}.finance-summary strong{display:block;font-size:19px;margin-top:5px;font-weight:600}.finance-summary .balance-value{color:var(--green)}.finance-summary .reserve-note{grid-column:1/-1;font-size:10px;color:var(--muted)}.income{color:var(--green)}.expense{color:var(--danger)}.finance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0}.finance-toolbar input{font-size:12px;margin:0;padding:4px;min-height:32px;width:140px}.finance-toolbar button{min-height:32px;font-size:11px;color:var(--muted)}.finance-toolbar h2{font-size:14px}.finance-toolbar label{margin:0}.finance-toolbar #add-money{display:none}.money-icon{display:grid;place-items:center;width:34px;height:34px;background:var(--soft);border-radius:7px;margin-right:6px}.money-value{font-size:14px;white-space:nowrap;padding:0 2px;min-height:44px}.meta{font-size:11px;color:var(--muted)}.date-divider{font-size:11px;color:var(--muted);background:var(--soft);padding:6px 4px;margin-top:8px}.goal-card{position:relative;border-bottom:1px solid var(--line);padding:16px 0 14px 56px;min-height:100px}.goal-card:before{content:'◇';position:absolute;left:0;top:16px;width:44px;height:52px;display:grid;place-items:center;background:linear-gradient(145deg,#b8cbbc,#46695c);border-radius:8px;color:white;font-size:25px}.goal-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.goal-top .item-title{font-size:14px;min-height:24px}.goal-top strong{font-size:11px;color:var(--muted)}.goal-card p{font-size:12px}.goal-card .track{margin:9px 0;width:100%;height:6px}.goal-bottom{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:10px;color:var(--muted)}.goal-bottom button{min-height:30px;padding:2px 0;font-size:10px;color:var(--green)}#add-goal{width:100%;border:1px solid var(--green);color:var(--green);margin-top:16px;font-size:13px}.finance-help{font-size:11px;margin-top:12px}.finance-diary-link{font-size:12px;color:var(--green);width:100%;margin-top:20px}.finance-mode.show-finance-diary .layout{display:block;margin-top:18px}.finance-diary-title{display:none}body:not(.authenticated)>.shell,body:not(.authenticated)>dialog{display:none!important}.authenticated #login-screen{display:none}#login-screen{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(#082b3140,#071c17a0),url('landscape.svg') center/cover;padding:35px 22px}#login-form{width:min(350px,100%)}.login-brand{text-align:center;color:white;margin-bottom:32px}.login-brand h1{font-size:48px;font-weight:750;letter-spacing:-1.5px}.login-brand p{color:white;font-size:15px;line-height:1.5;margin-top:16px}.login-card{background:var(--panel);border-radius:14px;padding:10px 20px 24px;box-shadow:0 8px 30px #0002}.login-card h2{font-size:14px;text-align:center;color:var(--green);padding-bottom:14px;border-bottom:1px solid var(--green)}.login-card .primary{width:100%;margin-top:14px}.login-card input{min-height:44px}.password-field{position:relative;display:block}.password-field input{padding-right:44px}.password-field button{position:absolute;right:0;top:0;width:44px;padding:11px}.password-field svg{width:18px}.login-card label{margin:18px 0}.eyebrow{font-size:10px;letter-spacing:.1em;color:var(--muted)}@media(min-width:800px){.shell{border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 26px}.heading{height:90px}nav{border-left:1px solid var(--line);border-right:1px solid var(--line)}dialog{margin:auto;border-radius:16px}.login-brand{margin-bottom:40px}}@media(max-width:360px){.shell{padding:0 10px}.header-actions{gap:0}.header-actions button{width:40px}.item-title{font-size:13px}.row-menu{width:28px;flex-basis:28px}h1{font-size:18px}}
#boot-recovery{position:fixed;z-index:100;top:env(safe-area-inset-top,0);left:0;right:0;padding:16px;background:#fff4dd;color:#302b20;font:14px system-ui;box-shadow:0 2px 12px #0002}#boot-recovery p{color:inherit;margin-bottom:8px}#boot-recovery button{border:1px solid #bcae90;margin-right:8px;background:white;color:#244f46}body{padding-top:env(safe-area-inset-top,0)}
/* Keep the viewport still; only content and forms can scroll. */
html{height:100%;overflow:hidden;overscroll-behavior:none}
body{position:fixed;inset:0;width:100%;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;padding:0}
.shell{height:100%;min-height:0;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0)}
main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;padding-bottom:16px}
.heading{position:sticky;top:0}
nav{position:relative;bottom:auto;left:auto;transform:none;width:auto;flex-shrink:0;margin:0 -18px}
#login-screen{height:100%;min-height:0;overflow:hidden;overscroll-behavior:none;padding:calc(20px + env(safe-area-inset-top,0)) 22px calc(20px + env(safe-area-inset-bottom,0))}
#login-form{max-height:100%;overflow-y:auto;overscroll-behavior:none;-webkit-overflow-scrolling:touch}
input,textarea,select{font-size:16px}
dialog{overflow-y:auto;overscroll-behavior:none;max-height:calc(100dvh - env(safe-area-inset-top,0) - 16px)}
@media(min-width:800px){nav{margin:0 -26px}}
@media(max-width:360px){nav{margin:0 -10px}}
@media(max-height:600px){.login-brand{margin-bottom:12px}.login-brand h1{font-size:32px}.login-brand p{margin-top:8px;font-size:13px}.login-card label{margin:10px 0}}
.login-brand h1{font-size:64px;letter-spacing:3px;line-height:1.1}@media(max-height:600px){.login-brand h1{font-size:44px}}
/* Compact editors and a clear three-state task cell. */
.check{flex-basis:36px;width:36px;min-height:44px;font-weight:700;font-size:18px}
.check:before{width:22px;height:22px;border-radius:5px}
.check.done{color:#fff;font-size:17px}.check.done:before{background:#168447;border-color:#168447}
.check.missed{color:#fff;font-size:22px}.check.missed:before{background:#db4141;border-color:#db4141;z-index:-1}
#editor,#money-editor{padding:12px 14px 16px}
#editor .dialog-top,#money-editor .dialog-top{top:-12px;margin-bottom:6px}
#editor h2,#money-editor h2{margin:4px 0;font-size:15px}
#editor label,#money-editor label{margin:6px 0;font-size:11px}
#editor input,#editor select,#editor textarea,#money-editor input,#money-editor select{min-height:36px;margin-top:3px;padding:6px 8px}
#editor textarea{line-height:1.25;min-height:54px}
#editor .form-grid,#money-editor .form-grid{gap:8px}
#editor .field-help,#money-editor .field-help{font-size:10px;line-height:1.3;margin:4px 0}
#editor footer,#money-editor footer{margin-top:8px}
#editor button,#money-editor button{min-height:36px;padding:6px 10px}
#editor .reorder{gap:4px}#editor .reorder button{min-height:30px}
/* Keep login fields above the iPhone keyboard. */
#login-screen{position:fixed;inset:auto 0 auto;top:var(--login-top,0px);height:var(--login-height,100dvh);align-items:start;padding-top:calc(clamp(24px,5vh,48px) + env(safe-area-inset-top,0))}
#login-form{min-height:0;scroll-padding:12px}
#login-screen .login-brand{margin-bottom:20px}
#login-screen.compact-login{padding-top:8px;padding-bottom:8px}
.compact-login .login-brand h1{font-size:32px}
#login-screen.compact-login .login-brand{margin-bottom:8px}
.compact-login .login-card{padding:6px 16px 12px}
.compact-login .login-card h2{margin:6px 0;padding-bottom:8px}
.compact-login .login-card label{margin:8px 0}
.compact-login .login-card .primary{margin-top:6px}
.section-dates{display:flex;align-items:center;gap:4px;margin-bottom:8px;min-width:0}.section-dates input{width:140px;min-width:0;flex:1;margin:0;min-height:36px;padding:4px;font-size:14px}.section-dates button{min-height:36px;padding:4px 7px;white-space:nowrap;font-size:12px}.section-dates #date-prev,.section-dates #date-next{font-size:24px}.section-dates .active{color:var(--green);background:var(--soft)}
#items .item{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#items .item.dragging{background:var(--soft);box-shadow:inset 3px 0 var(--green),0 3px 12px #0002;position:relative;z-index:4;opacity:.85}
#items.is-reordering,#items.is-reordering button{cursor:grabbing}
#items .item-content{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
#items .item-content>.item-title{width:100%;min-height:40px}
#items .inline-title,#items .inline-title:focus{display:block;width:100%;height:40px;min-height:40px;margin:0;padding:0;border:0;border-radius:0;outline:none;box-shadow:none;background:transparent;font-size:14px;line-height:20px;appearance:none;-webkit-appearance:none;caret-color:var(--green);user-select:text;-webkit-user-select:text}
.task-time{min-width:44px;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
#items .task-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:55px;column-gap:6px;row-gap:0;height:auto;min-height:56px}
#items .task-item.swipe-open{grid-template-columns:36px minmax(0,1fr) auto 84px}
.task-end{display:flex;align-items:center;gap:2px;height:100%;grid-column:3;grid-row:1}
#items .comment-toggle{display:grid;place-items:center;width:28px;min-height:44px;padding:0;color:var(--muted)}
#items .comment-toggle svg{width:14px;height:14px}
#items .comment-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
#items .comment-toggle,#items .comment-toggle:hover,#items .comment-toggle:active,#items .comment-toggle:focus{background:transparent;box-shadow:none;color:var(--muted);-webkit-tap-highlight-color:transparent}
#items .comment-toggle:focus:not(:focus-visible){outline:none}
#items .task-comment{grid-column:2/-1;margin:0;padding:0 4px 12px 0;font-size:12px;line-height:1.5;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
#items .task-item .swipe-delete{grid-column:4;grid-row:1}
#items .item{overflow:hidden}
#items .swipe-delete{display:none;align-self:stretch;flex:0 0 84px;background:#d93636;color:white;border-radius:0;font-size:13px;padding:6px}
#items .swipe-open .swipe-delete{display:block}
@media(hover:hover) and (pointer:fine){#items .swipe-delete:hover{background:#bc2929}}
/* Consistent rectangular controls with gently rounded corners. */
button,.header-actions #add,.tabs button,.finance-tabs button,.chips button,nav button,#items .swipe-delete{border-radius:4px}
.tabs,.finance-tabs,.note-icon,.money-icon,.goal-card:before,.check:before{border-radius:4px}
input,select,textarea{border-radius:4px}
.login-card,dialog{border-radius:6px}
.note-icon{width:34px;height:34px;flex-shrink:0}
.section-dates{justify-content:flex-start;gap:8px;flex-wrap:wrap}
.section-dates button{flex:0 0 auto;min-height:36px;padding:6px 10px;background:var(--soft);font-size:13px;border:1px solid var(--line)}
.section-dates button.active{color:var(--green);border-color:var(--green)}
#date-editor{max-width:380px;padding:14px}#date-editor input{min-width:0}
/* Top-aligned editor and consistent native date fields on iPhone. */
#editor{margin:calc(env(safe-area-inset-top,0px) + 12px) auto auto;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 24px)}
#editor .dialog-top{justify-content:flex-end;margin-bottom:0;min-height:28px}
#editor .dialog-top .close{min-height:28px;height:28px;padding:0 6px;line-height:28px}
#editor .form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
#editor .form-grid>label{min-width:0}
#editor #task-fields>.form-grid+label{margin-top:10px}
#editor input[type=date],#editor input[type=time],#editor input[type=datetime-local]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:40px;min-height:40px;line-height:26px;text-align:left;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none}
#editor input::-webkit-date-and-time-value{text-align:left;min-height:26px;line-height:26px;margin:0}
#editor input::-webkit-datetime-edit{padding:0;min-width:0}
/* Compact navy cards, inspired by the supplied reference. */
#items .task-end{padding:0;min-height:44px;min-width:44px;justify-content:flex-end;gap:4px;border:0;border-radius:0;touch-action:manipulation}
#items .task-end,#items .task-end:hover,#items .task-end:active,#items .task-end:focus{background:transparent;box-shadow:none;color:var(--muted);-webkit-tap-highlight-color:transparent}
#items .task-end:focus:not(:focus-visible){outline:none}
#items .task-end[aria-expanded=true] .comment-toggle svg{transform:rotate(180deg)}
#items.notes-list article.note-item{grid-template-columns:36px minmax(0,1fr) 44px}
#items.notes-list article.note-item.swipe-open{grid-template-columns:36px minmax(0,1fr) 44px 84px}
#items.notes-list .note-item{display:grid;grid-template-columns:36px minmax(0,1fr) 24px;grid-template-rows:44px;column-gap:6px;row-gap:0;min-height:46px;height:auto;padding:0 6px}
#items.notes-list .note-item.swipe-open{grid-template-columns:36px minmax(0,1fr) 24px 84px}
#items.notes-list .note-item>.note-icon{grid-column:1;grid-row:1}
#items.notes-list .note-item>.swipe-delete{grid-column:4;grid-row:1}
#items.notes-list .task-comment{display:block;overflow:visible;-webkit-line-clamp:unset;max-height:none;font-size:12px;line-height:1.5;white-space:pre-wrap}
#credit-list .credit-card{display:grid;grid-template-columns:minmax(0,1fr) 0px;transition:grid-template-columns .18s ease}
#credit-list .credit-card.swipe-open{grid-template-columns:minmax(0,1fr) 64px}
#credit-list .credit-heading{grid-column:1;grid-row:1;min-width:0}
#credit-list .credit-payments{grid-column:1/-1;grid-row:2}
#credit-list .credit-delete-action{grid-column:2;grid-row:1;align-self:stretch;min-width:0;width:100%;padding:0;border-radius:0;overflow:hidden;background:#d93636;color:white;font-size:12px;opacity:0;visibility:hidden;transition:opacity .15s ease}
#credit-list .swipe-open .credit-delete-action{opacity:1;visibility:visible}
@media(prefers-reduced-motion:reduce){#credit-list .credit-card,#credit-list .credit-delete-action{transition:none}}
.business-columns .money-entry{display:grid;grid-template-columns:minmax(0,1fr) 0px;gap:0;padding:0;overflow:hidden;transition:grid-template-columns .18s ease}
.business-columns .money-entry.swipe-open{grid-template-columns:minmax(0,1fr) 62px}
.money-entry-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-width:0;min-height:70px;padding:9px;text-align:left;overflow:hidden}
.money-entry-main>span,.money-entry-main>strong{max-width:100%;overflow-wrap:anywhere}
.business-columns .money-entry .money-delete{display:block;align-self:stretch;min-width:0;width:100%;padding:0;overflow:hidden;border-radius:0;background:#d93636;color:white;font-size:11px;opacity:0;visibility:hidden;transition:opacity .15s ease}
.business-columns .money-entry.swipe-open .money-delete{opacity:1;visibility:visible}
@media(prefers-reduced-motion:reduce){.business-columns .money-entry,.business-columns .money-entry .money-delete{transition:none}}
.business-columns .credit-drag-placeholder{opacity:.2;border-style:dashed}
#items .credit-drag-placeholder{opacity:.2;border-style:dashed}
#items .record-drag-ghost{background:var(--panel);border-color:var(--green);box-shadow:0 12px 30px #0005}
.credit-drag-ghost{background:var(--panel);border:1px solid var(--green);border-radius:7px;box-shadow:0 12px 30px #0005;will-change:transform;opacity:.96}
#credit-list .credit-drag-placeholder{opacity:.2;border-style:dashed}
.credit-reordering,.credit-reordering *{cursor:grabbing!important}
@media(prefers-reduced-motion:reduce){.credit-drag-ghost{will-change:auto}}
#editor .editor-selectors{margin:0 0 8px;column-gap:8px}
#editor .editor-selectors select{width:100%;min-width:0;max-width:100%;margin-top:0}
#credit-editor .form-grid,#payment-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#credit-editor .form-grid>label,#payment-editor .form-grid>label{min-width:0}
#credit-editor input,#payment-editor input{box-sizing:border-box;min-width:0;max-width:100%;width:100%}
#credit-editor input[type=date],#payment-editor input[type=date]{-webkit-appearance:none;appearance:none;height:40px;text-align:left;padding:6px 8px;font-variant-numeric:tabular-nums}
#credit-editor input[type=date]::-webkit-date-and-time-value,#payment-editor input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0;margin:0}
#credit-editor input[type=date]::-webkit-datetime-edit,#payment-editor input[type=date]::-webkit-datetime-edit{padding:0;min-width:0}
html{-webkit-tap-highlight-color:transparent}
.shell,#login-screen,dialog{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button:focus:not(:focus-visible){outline:none}
input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

#credit-list .credit-card{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#credit-list .credit-name,#credit-list .credit-payment{touch-action:pan-y pinch-zoom}
#credit-list .credit-name:hover,#credit-list .credit-name:active,#credit-list .credit-name:focus,#credit-list .credit-payment:hover,#credit-list .credit-payment:active,#credit-list .credit-payment:focus{background:transparent;box-shadow:none}
#credit-list .credit-name:focus:not(:focus-visible),#credit-list .credit-payment:focus:not(:focus-visible){outline:none}
.credit-summary>div{background:#fff0d9;border:1px solid #e5c598;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;justify-content:center}
html[data-theme=dark] .credit-summary>div{background:#30271c;border-color:#665031}
#credits-pane .credit-summary{gap:8px;margin:6px 0;padding:0;border:0;background:transparent}
#credits-pane .credit-summary strong{margin-top:3px;font-size:16px;line-height:20px}
#credits-pane .credit-summary span{font-size:11px;line-height:15px}
#credit-list .credit-name{column-gap:10px;row-gap:6px;align-items:start}
#credit-list .credit-name>.credit-info{grid-column:1;grid-row:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-weight:400;overflow:hidden}
.credit-bank{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#credit-list .credit-info small{font-size:10px;line-height:1.4}
#credit-list .credit-name>.credit-amounts{grid-column:2;grid-row:1;display:grid;grid-template-columns:auto auto;gap:4px 8px;align-items:baseline;font-weight:400;white-space:nowrap}
.credit-amounts>span{font-size:11px;text-align:left}.credit-amounts>strong{font-size:14px;text-align:right;font-variant-numeric:tabular-nums}
#credit-list .credit-amounts>.credit-total{color:#b85c0f}html[data-theme=dark] #credit-list .credit-amounts>.credit-total{color:#ffb163}
#credit-list .credit-amounts>.credit-rest{color:var(--green)}
#credit-list .credit-name>.credit-next{grid-column:1/-1;grid-row:2;font-size:11px;line-height:1.4;color:#2769a0;font-weight:500}
html[data-theme=dark] #credit-list .credit-name>.credit-next{color:#83bff5}
button[aria-label="Закрыть"],button[aria-label="Закрыть"]:hover,button[aria-label="Закрыть"]:active,button[aria-label="Закрыть"]:focus,button[aria-label="Закрыть"]:focus-visible{background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}
#payment-editor{margin:calc(env(safe-area-inset-top,0px) + 12px) auto auto;padding:12px 14px 16px}#payment-editor label{margin:8px 0}#payment-editor .dialog-top{top:-12px}#payment-close{font-size:24px;color:var(--green)}
.credit-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.credit-summary>div:last-child{text-align:right}.credit-summary span{display:block;font-size:12px;color:var(--muted)}.credit-summary strong{display:block;margin-top:5px;font-size:17px;color:var(--green);overflow-wrap:anywhere}.credit-summary small{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.finance-mode.show-finance-diary .workspace>.tabs{display:none}
.finance-mode.show-finance-diary .layout{margin-top:8px}
#date-editor .calendar-close,#date-editor .calendar-close:hover,#date-editor .calendar-close:active,#date-editor .calendar-close:focus,#date-editor .calendar-close:focus-visible{outline:none;border:0;box-shadow:none;background:transparent;-webkit-tap-highlight-color:transparent}
#date-editor .calendar-periods{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}#date-editor .calendar-periods button{min-height:44px;font-size:13px;text-transform:capitalize;border-color:var(--line)}
.calendar-navigation.period-navigation{grid-template-columns:36px minmax(0,1fr) 36px}
#date-editor{margin:auto;width:min(360px,calc(100% - 24px));padding:14px;border-radius:8px}
#date-editor .dialog-top{position:static;margin-bottom:12px}#date-editor .calendar-close{font-size:24px;color:var(--muted);padding:0 6px}
.calendar-navigation{display:grid;grid-template-columns:30px minmax(0,1fr) 86px 30px;gap:5px;align-items:center;margin-bottom:12px}.calendar-navigation select{margin:0;padding:5px;min-height:36px;font-size:16px}.calendar-navigation button{padding:0;min-height:36px;font-size:25px;color:var(--muted)}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays span{text-align:center;font-size:11px;color:var(--muted);padding-bottom:8px}.calendar-days button{padding:0;min-height:36px;font-size:14px;border:1px solid transparent;border-radius:5px;touch-action:manipulation}.calendar-days .current-day{border-color:var(--green);color:var(--green)}.calendar-days .selected{background:var(--green);color:var(--on-green);font-weight:700}.calendar-today{margin-top:12px;width:100%;border:1px solid var(--line);background:var(--soft);color:var(--green);font-size:13px}
#items .task-day-heading{position:sticky;top:72px;z-index:2;margin:0;padding:9px 4px 7px;background:var(--bg);color:var(--muted);font-size:12px;font-weight:650;line-height:18px;border-bottom:1px solid var(--line);margin-bottom:6px}
#items.is-reordering .task-day-heading{z-index:0}
.finance-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:50px;gap:3px 8px}.finance-entry small{grid-column:1/-1}.savings-details{margin-top:16px;border:1px solid var(--line);border-radius:6px;padding:10px}.savings-details summary{font-size:13px;color:var(--muted);cursor:pointer}
.credit-card{border:1px solid var(--line);border-radius:7px;background:var(--panel);margin:8px 0;overflow:hidden}.credit-heading{display:flex;align-items:center;gap:4px;padding:5px 7px}.credit-name{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;text-align:left;padding:5px}.credit-name>span{font-size:14px;font-weight:600;overflow-wrap:anywhere}.credit-name strong{font-size:14px;color:var(--green)}.credit-name small{grid-column:1/-1;font-size:11px;color:var(--muted)}
.credit-disclosure{width:28px;min-height:44px;padding:4px;flex-shrink:0;color:var(--muted)}.credit-disclosure svg{width:15px;height:15px}.credit-disclosure[aria-expanded=true] svg{transform:rotate(180deg)}.credit-disclosure,.credit-disclosure:hover,.credit-disclosure:active,.credit-disclosure:focus{background:transparent;box-shadow:none;-webkit-tap-highlight-color:transparent}.credit-disclosure:focus:not(:focus-visible){outline:none}
.credit-payments{padding:0 10px 6px}.credit-payment{display:flex;align-items:center;width:100%;gap:8px;min-height:44px;padding:6px 0;text-align:left;border-top:1px solid var(--line);border-radius:0;font-size:12px;touch-action:manipulation}.credit-payment>span:nth-child(2){flex:1;min-width:0}.credit-payment small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.credit-payment strong{font-size:12px;white-space:nowrap}.payment-check{display:grid;place-items:center;flex:0 0 22px;height:22px;border:1px solid var(--line);border-radius:4px;background:var(--soft)}.payment-check.paid{background:var(--green);border-color:var(--green);color:var(--on-green)}
#credit-editor{margin:calc(env(safe-area-inset-top,0px) + 12px) auto auto;padding:12px 14px 16px}#credit-editor label{margin:8px 0}#credit-editor .dialog-top{top:-12px}#credit-close{font-size:24px;color:var(--green)}
.business-result{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 0;font-size:13px;color:var(--muted)}.business-result strong{font-size:17px}
.business-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.business-columns>section{min-width:0}
.business-column-heading{min-height:55px;padding:8px;border:1px solid var(--line);background:var(--soft);border-radius:6px;margin-bottom:7px}.business-column-heading h2{font-size:13px;margin:0 0 4px}.business-column-heading strong{font-size:13px;overflow-wrap:anywhere}
.business-entry{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:4px;min-height:72px;margin-bottom:6px;padding:9px;border:1px solid var(--line);background:var(--panel);border-radius:6px;text-align:left;overflow-wrap:anywhere}.business-entry span{font-size:13px;font-weight:600;max-width:100%}.business-entry strong{font-size:14px;max-width:100%}.business-entry small{font-size:10px;color:var(--muted)}
.business-add{width:100%;border:1px solid var(--line);background:var(--soft);border-radius:6px;font-size:12px;padding:6px}.business-empty{padding:12px 6px;font-size:12px}
#business-editor{margin:calc(env(safe-area-inset-top,0px) + 12px) auto auto;padding:12px 14px 16px}#business-editor label{margin:8px 0}#business-editor .dialog-top{top:-12px}#business-close{font-size:24px;color:var(--green)}
#section-dates{flex-wrap:nowrap;gap:5px}
#section-dates button{padding:5px 8px;font-size:12px;min-width:0}
#date-editor .form-grid{grid-template-columns:1fr}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#items{touch-action:manipulation;overflow-anchor:none}
#items .inline-title-slot{position:relative;width:100%;min-width:0;flex-shrink:0}
#items .inline-title-slot>.inline-title{position:absolute;top:0;left:0;max-width:none;transform-origin:top left}
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#f3f5f8;--panel:#fff;--text:#182537;--muted:#68768a;--line:#d9e0e9;--soft:#e8edf4;--green:#367818;--on-green:#fff;--card-shadow:0 2px 5px #162a4210}
html[data-theme=dark]{--bg:#0b1421;--panel:#142030;--text:#e8edf5;--muted:#94a1b4;--line:#2a384c;--soft:#1c2b3f;--green:#a6ee73;--on-green:#182a16;--danger:#ff8188;--card-shadow:inset 0 1px 0 #ffffff04,0 3px 8px #0002;background:var(--bg);color:var(--text)}
body{background:var(--bg)}
.shell{padding-left:12px;padding-right:12px;background:var(--bg)}
.heading{height:72px;background:var(--bg)}
h1{font-size:21px;letter-spacing:-.35px}#today{font-size:11px;color:var(--muted)}
.header-actions{gap:5px}.header-actions button{width:34px;height:36px;min-height:36px;padding:7px;border:1px solid var(--line);background:var(--panel);border-radius:6px}
.header-actions #add{width:36px;margin-left:0;border-color:var(--green);background:var(--green);color:var(--on-green);border-radius:6px}
.section-dates{gap:7px;margin-bottom:10px}.section-dates button{background:var(--panel);border-color:var(--line);border-radius:6px;font-weight:600;min-height:32px;padding:5px 10px;font-size:12px}
.section-dates button.active{color:var(--green);border-color:var(--line);background:var(--soft)}
.tabs,.finance-tabs{height:38px;gap:6px;background:none;overflow:visible;margin-bottom:6px;border-radius:0}
.tabs button,.finance-tabs button{min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-weight:650;color:var(--muted);box-shadow:var(--card-shadow)}
.tabs button.active,.finance-tabs button.active{border:1px solid var(--green);background:var(--green);color:var(--on-green)}
.chips{height:34px;margin-bottom:6px}.chips button{min-height:28px;padding:4px 9px;font-size:11px;border:1px solid var(--line);background:var(--panel);border-radius:5px}.chips button.active{border-color:var(--green)}
#items .item,#finance .item{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--card-shadow);margin-bottom:6px;padding-left:6px;padding-right:6px}
#items .task-item{grid-template-rows:44px;min-height:46px;column-gap:5px}
#items .item-title{font-weight:600;font-size:14px;letter-spacing:.05px;color:var(--text)}
#items .item-title.completed{color:var(--muted)}
#items .item-title:hover{color:var(--text)}
#items .inline-title{letter-spacing:.05px}
.check:before{width:24px;height:24px;border-radius:5px;background:var(--soft);border-color:var(--line)}
.check.done{color:var(--on-green)}.check.done:before{background:var(--green);border-color:var(--green)}
.check.missed{color:#fff}.check.missed:before{background:#c84353;border-color:#c84353}
.task-time{font-size:11px;color:var(--muted)}
#items .comment-toggle{width:24px}#items .task-comment{padding:2px 7px 11px 0;font-size:12px;line-height:1.5}
.inline-progress .track{height:3px}.inline-progress{padding-bottom:2px}.inline-progress small{font-size:9px}
#items .item-content:has(.inline-progress)>.item-title{min-height:30px}
#items .item-content:has(.inline-progress)>.inline-title{height:30px;min-height:30px}
#items .notes-list .item,.notes-list .item{min-height:78px;height:auto;padding-top:10px;padding-bottom:10px}
html[data-theme=dark] .note-icon,html[data-theme=dark] .notes-list .item:nth-child(n) .note-icon{background:var(--soft);color:var(--green)}
nav{margin:0 -12px;padding:7px 7px calc(7px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -8px 18px #0000000a}
nav button{font-size:9px;font-weight:550;min-height:46px;border-radius:5px;color:var(--muted)}nav button span{margin-bottom:4px}nav button.active{background:var(--soft);color:var(--green)}
dialog{background:var(--panel);border-color:var(--line);border-radius:8px;box-shadow:0 16px 70px #0006}.dialog-top{background:var(--panel)}
input,select,textarea{background:var(--bg);border-color:var(--line);border-radius:6px;color:var(--text)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:1px solid var(--green);outline-offset:1px}
label{color:var(--muted)}button.primary{border-radius:6px;font-weight:650}
.finance-summary{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--card-shadow);margin:8px 0}
.goal-card{padding:14px 10px 12px 66px;border:1px solid var(--line);border-radius:8px;background:var(--panel);margin-bottom:7px;box-shadow:var(--card-shadow)}.goal-card:before{left:10px;border-radius:6px;background:var(--soft);color:var(--green)}
.date-divider{border-radius:5px;margin-bottom:6px;background:var(--soft);color:var(--muted)}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 45px #0003}
html[data-theme=dark] #login-screen{background:linear-gradient(#0b142170,#0b1421ed),url('landscape.svg') center/cover}
.login-card h2{border-color:var(--line);font-weight:650}.login-brand h1{color:#f1f6fc}
.login-card .connection-retry{width:100%;border:1px solid var(--green);color:var(--green);margin-top:8px;font-size:14px}
@media(max-width:360px){.shell{padding-left:10px;padding-right:10px}nav{margin:0 -10px}#items .item-title{font-size:13px}.header-actions{gap:3px}.header-actions button{width:32px}.task-time{min-width:36px;font-size:10px}}

/* Keep compact credit dimensions after the shared card rules. */
#credit-list .credit-card{margin:5px 0}
#credit-list .credit-heading{padding:2px 6px;gap:2px}
#credit-list .credit-name{padding:3px 2px;row-gap:3px;column-gap:8px}
#credit-list .credit-name>.credit-info{gap:0}
#credit-list .credit-bank{font-size:13px;line-height:17px}
#credit-list .credit-info small{font-size:10px;line-height:13px}
#credit-list .credit-name>.credit-amounts{row-gap:2px;column-gap:6px;line-height:17px}
#credit-list .credit-amounts>strong{font-size:13px}
#credit-list .credit-name>.credit-next{font-size:10px;line-height:14px}
