:root {
  --bg: #f5f7f3;
  --surface: #ffffff;
  --surface-soft: #eef2ec;
  --text: #252b27;
  --muted: #758078;
  --line: #e2e7e1;
  --primary: #6f8274;
  --primary-dark: #506158;
  --primary-soft: #dfe7df;
  --sand: #e9dfcd;
  --blue: #dce7e8;
  --danger: #c87060;
  --shadow: 0 8px 28px rgba(42, 59, 48, .06);
  --radius: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: Vazirmatn, IRANSans, Tahoma, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.hidden { display: none !important; }
.app-shell { min-height: 100vh; }

.sidebar { position: fixed; inset: 0 0 0 auto; width: 270px; background: #fbfcfa; border-left: 1px solid var(--line); padding: 28px 20px 22px; display: flex; flex-direction: column; z-index: 20; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 25px; }
.brand-mark { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 13px 4px 13px 4px; background: var(--primary); color: #fff; font-family: Georgia, serif; font-size: 23px; box-shadow: 0 7px 18px rgba(80,97,88,.2); }
.brand strong { display: block; font-family: Georgia, serif; font-size: 25px; letter-spacing: .5px; }
.brand span { display: block; color: var(--muted); font-size: 11px; margin-top: 1px; }

.desktop-nav { margin-top: 26px; display: grid; gap: 6px; }
.nav-item { border: 0; background: transparent; padding: 12px 14px; border-radius: 12px; display: flex; align-items: center; gap: 13px; cursor: pointer; color: #667169; text-align: right; }
.nav-item span { font-size: 19px; width: 20px; text-align: center; }
.nav-item:hover { background: #f0f3ef; }
.nav-item.active { background: var(--primary-soft); color: var(--primary-dark); font-weight: 800; }
.nav-badge { margin-right: auto; background: var(--primary); color: white; min-width: 21px; height: 21px; border-radius: 8px; display: grid; place-items: center; font-size: 10px; }
.sidebar-footer { margin-top: auto; border-top: 1px solid var(--line); padding-top: 16px; }
.profile-button { width: 100%; border: 0; background: transparent; display: flex; align-items: center; gap: 10px; text-align: right; cursor: pointer; }
.profile-button > span:nth-child(2) { flex: 1; }
.profile-button strong, .profile-button small { display: block; }
.profile-button strong { font-size: 12px; }.profile-button small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: #d6c9b5; display: grid; place-items: center; font-weight: 800; }

.main-content { margin-right: 270px; min-height: 100vh; }
.topbar { height: 72px; padding: 0 42px; display: flex; align-items: center; justify-content: flex-end; border-bottom: 1px solid rgba(226,231,225,.8); background: rgba(245,247,243,.88); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 10; }
.top-actions { display: flex; align-items: center; gap: 9px; }
.icon-button { width: 37px; height: 37px; border: 1px solid var(--line); background: var(--surface); border-radius: 12px; cursor: pointer; }
.notification-button { position: relative; }.notification-button i { position: absolute; width: 7px; height: 7px; border: 2px solid var(--surface); background: var(--danger); border-radius: 50%; top: 6px; left: 6px; }
.date-chip { margin-right: 8px; color: var(--muted); font-size: 12px; }
.mobile-brand { display: none; }
.page { display: none; max-width: 1240px; margin: 0 auto; padding: 42px; animation: fade .2s ease; }
.page.active { display: block; }
@keyframes fade { from { opacity: .4; transform: translateY(4px); } }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 28px; }
.eyebrow, .section-kicker { color: var(--primary); font-size: 11px; font-weight: 800; letter-spacing: .4px; margin: 0 0 6px; }
h1 { font-size: clamp(25px, 3vw, 37px); margin: 0 0 7px; line-height: 1.3; letter-spacing: -.8px; }
h2, h3, p { margin-top: 0; }
.muted { color: var(--muted); margin-bottom: 0; font-size: 13px; }
.primary-button, .secondary-button { border: 0; border-radius: 12px; padding: 11px 17px; cursor: pointer; font-weight: 800; font-size: 12px; }
.primary-button { background: var(--primary); color: #fff; box-shadow: 0 7px 18px rgba(80,97,88,.16); }
.primary-button:hover { background: var(--primary-dark); }
.secondary-button { background: var(--surface-soft); color: var(--primary-dark); }
.primary-button.full { width: 100%; padding: 14px; }
.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.summary-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 15px; display: flex; align-items: center; gap: 12px; box-shadow: 0 3px 13px rgba(42,59,48,.025); }
.summary-icon { width: 39px; height: 39px; border-radius: 12px; display: grid; place-items: center; font-size: 18px; }.summary-icon.sage{background:var(--primary-soft)}.summary-icon.sand{background:var(--sand)}.summary-icon.blue{background:var(--blue)}
.summary-card div { flex: 1; }.summary-card strong { display: block; font-size: 20px; }.summary-card small { color: var(--muted); font-size: 10px; }.summary-card em { font-style: normal; color: var(--muted); font-size: 10px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(290px,.85fr); gap: 18px; align-items: start; }
.column-stack { display: grid; gap: 18px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 21px; box-shadow: var(--shadow); }
.panel-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; margin-bottom: 15px; }.panel-title h2 { font-size: 16px; margin: 0; }
.text-button, .icon-more { border: 0; background: transparent; color: var(--primary); font-size: 11px; cursor: pointer; }.icon-more{color:var(--muted)}
.focus-card { background: linear-gradient(135deg, #f2f6f1, #fff); }.focus-card h2 { font-size: 18px; margin: 2px 0 0; }.focus-card > p { font-size: 12px; color: var(--muted); margin-bottom: 20px; }
.progress-meta, .focus-footer { display: flex; justify-content: space-between; align-items: center; font-size: 11px; }.progress-meta strong { color: var(--primary-dark); }.focus-footer { color: var(--muted); font-size: 10px; margin-top: 8px; }
.progress { height: 7px; background: #e8ece7; border-radius: 99px; overflow: hidden; margin-top: 8px; }.progress i { height: 100%; display: block; background: var(--primary); border-radius: inherit; }
.task-list { display: grid; }
.task-row { display: flex; align-items: center; gap: 11px; padding: 13px 2px; border-bottom: 1px solid var(--line); cursor: pointer; }.task-row:last-child { border-bottom: 0; }.task-row input { display: none; }
.custom-check { width: 20px; height: 20px; border: 1.5px solid #b7c1b9; border-radius: 7px; flex: 0 0 auto; position: relative; }.task-row input:checked + .custom-check { background: var(--primary); border-color: var(--primary); }.task-row input:checked + .custom-check:after { content: '✓'; color: #fff; position: absolute; inset: 0; display:grid; place-items:center; font-size:12px; }.task-row input:checked ~ .task-copy strong { text-decoration: line-through; color: #8c958e; }
.task-copy { flex: 1; }.task-copy strong,.task-copy small { display:block; }.task-copy strong { font-size: 12px; margin-bottom: 4px; }.task-copy small { color: var(--muted); font-size: 10px; }
.tag { font-size: 9px; padding: 4px 7px; border-radius: 7px; }.tag.personal{background:#eeeae3;color:#806e56}.tag.shared{background:var(--primary-soft);color:var(--primary-dark)}
.priority-dot { width: 7px; height: 7px; background: var(--danger); border-radius: 50%; }
.add-inline { border: 0; background: transparent; color: var(--primary); padding: 12px 0 0; cursor: pointer; font-size: 11px; }
.next-card { background: #56675d; color: #fff; }.next-card .panel-title h2,.next-card .icon-more{color:#fff}.event-time { display:flex; gap:7px; align-items:baseline; margin: 8px 0 14px; }.event-time strong{font-size:29px}.event-time span{font-size:10px;opacity:.7}.next-card h3{font-size:15px;margin-bottom:7px}.next-card p{font-size:10px;line-height:1.8;opacity:.72}.people{display:flex;align-items:center}.people span{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);background:#d6c9b5;color:#453f36;display:grid;place-items:center;font-size:10px;margin-left:-6px}.people span:nth-child(2){background:#cbd8cf}.people small{margin-right:12px;opacity:.8;font-size:9px}
.shopping-preview ul { list-style:none;padding:0;margin:0; }.shopping-preview li { display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.shopping-preview li:last-child{border:0}.shopping-preview li div{flex:1}.shopping-preview strong,.shopping-preview small{display:block}.shopping-preview strong{font-size:11px}.shopping-preview small{font-size:9px;color:var(--muted);margin-top:3px}.item-dot{width:7px;height:7px;border-radius:50%;background:#bdc7bf}.item-dot.urgent{background:var(--danger)}.mini-check{border:1px solid var(--line);background:transparent;border-radius:8px;color:#a4ada6;cursor:pointer}
.ai-card { background: linear-gradient(135deg,#e7ede6,#f4eee4); border-radius: 17px; padding: 17px; display:flex;align-items:center;gap:12px;cursor:pointer; }.ai-card div:nth-child(2){flex:1}.ai-card strong{font-size:12px}.ai-card p{font-size:9px;color:var(--muted);margin:4px 0 0;line-height:1.7}.ai-spark{width:35px;height:35px;border-radius:12px;background:var(--surface);display:grid;place-items:center;color:var(--primary);box-shadow:var(--shadow)}.ai-spark.large{width:48px;height:48px;margin:0 auto 12px;font-size:20px}

.filter-tabs { display:flex;gap:7px;margin-bottom:17px;overflow:auto}.filter-tabs button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 15px;cursor:pointer;font-size:11px;white-space:nowrap}.filter-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.vision-card { background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.vision-top{display:flex;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:22px}.vision-top>div{flex:1}.vision-symbol{width:44px;height:44px;background:var(--primary-soft);border-radius:14px;display:grid;place-items:center;font-size:20px}.vision-top small{color:var(--primary);font-weight:800;font-size:9px}.vision-top h2{margin:5px 0 7px;font-size:19px}.vision-top p{color:var(--muted);font-size:11px;margin:0}.vision-top button{border:0;background:transparent}.planning-tree{padding-top:20px}.tree-item{border-right:3px solid var(--primary);padding:10px 15px;background:var(--surface-soft);border-radius:10px 0 0 10px;display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:12px}.tree-item span,.tree-item small{font-size:9px;color:var(--muted)}.tree-item strong{font-size:12px}.tree-children{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:16px 28px 0}.objective-card{border:1px solid var(--line);border-radius:15px;padding:16px}.objective-head,.objective-card footer{display:flex;justify-content:space-between}.objective-head{font-size:9px;color:var(--primary)}.objective-card h3{font-size:13px;margin:11px 0 5px}.objective-card p{font-size:9px;color:var(--muted)}.objective-card footer{font-size:9px;color:var(--muted);margin-top:12px}
.task-layout,.shopping-layout{display:grid;grid-template-columns:190px 1fr;gap:18px}.task-filters,.shopping-lists{display:grid;align-content:start;gap:5px}.task-filters button,.shopping-lists button{border:0;background:transparent;border-radius:11px;padding:11px 12px;display:flex;align-items:center;gap:10px;text-align:right;cursor:pointer;color:#68736b}.task-filters button.active,.shopping-lists button.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:800}.task-filters b{margin-right:auto;font-size:9px}.task-filters .danger{color:var(--danger)}.task-filters hr{border:0;border-top:1px solid var(--line);width:100%;margin:8px 0}.task-board .panel-title>div{display:flex;gap:5px}.date-label{font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:14px}
.shopping-lists button>span:nth-child(2){flex:1}.shopping-lists strong,.shopping-lists small{display:block}.shopping-lists strong{font-size:11px}.shopping-lists small{font-size:9px;color:var(--muted);margin-top:3px}.list-icon{width:28px;height:28px;border-radius:9px;background:#fff;display:grid;place-items:center}.shopping-lists .new-list{color:var(--primary);margin-top:5px}.shopping-header{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:17px}.shopping-header h2{font-size:17px;margin-bottom:5px}.shopping-header p{font-size:9px;color:var(--muted);margin:0}.add-shopping-form{display:grid;grid-template-columns:1fr 90px 75px;gap:8px;padding:18px 0}.add-shopping-form input,.add-shopping-form select{border:1px solid var(--line);background:var(--bg);padding:11px;border-radius:10px;outline:none}.add-shopping-form button{border:0;border-radius:10px;background:var(--primary);color:#fff;cursor:pointer}.shopping-category h3{font-size:11px;color:var(--muted);display:flex;gap:7px;align-items:center;margin:15px 0 5px}.shopping-category h3 span{background:var(--surface-soft);border-radius:7px;padding:2px 6px}.shopping-item{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.shopping-item input{width:19px;height:19px;accent-color:var(--primary)}.shopping-item>div{flex:1}.shopping-item strong,.shopping-item small{display:block}.shopping-item strong{font-size:12px}.shopping-item small{font-size:9px;color:var(--muted);margin-top:4px}.shopping-item button{border:0;background:transparent;color:var(--muted)}.purchased-section{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.purchased-section>button{border:0;background:transparent;color:var(--muted);font-size:10px;cursor:pointer}.purchased-section .shopping-item{opacity:.55}.purchased-section .shopping-item strong{text-decoration:line-through}.shopping-mode .shopping-lists,.shopping-mode .page-heading .muted{display:none}.shopping-mode .shopping-layout{grid-template-columns:1fr}.shopping-mode .shopping-item{padding:18px 4px}.shopping-mode .shopping-item strong{font-size:15px}.shopping-mode .shopping-item input{width:25px;height:25px}
.inbox-panel{padding:0 20px}.inbox-item{display:flex;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid var(--line)}.inbox-item:last-child{border:0}.inbox-item>div{flex:1}.inbox-item strong{font-size:12px}.inbox-item p{margin:5px 0 0;color:var(--muted);font-size:10px}.inbox-item>button{border:1px solid var(--line);background:transparent;border-radius:9px;padding:7px 12px;color:var(--primary);font-size:10px}.inbox-type{background:var(--primary-soft);color:var(--primary-dark);padding:5px 8px;border-radius:8px;font-size:9px}

.mobile-nav{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(31,39,34,.48);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px;z-index:100}.capture-modal{width:min(540px,100%);background:var(--surface);border-radius:25px;padding:28px;position:relative;text-align:center;box-shadow:0 30px 80px rgba(20,30,24,.28)}.modal-close{position:absolute;left:16px;top:14px;border:0;background:var(--surface-soft);width:31px;height:31px;border-radius:10px;font-size:20px;cursor:pointer}.capture-modal h2{font-size:21px;margin:0 0 7px}.capture-modal textarea{width:100%;height:120px;resize:none;border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:14px;margin:20px 0 10px;outline:none;line-height:1.9}.capture-modal textarea:focus{border-color:var(--primary)}.quick-suggestions{display:flex;gap:6px;margin-bottom:17px;overflow:auto}.quick-suggestions button{border:1px solid var(--line);background:transparent;border-radius:99px;padding:6px 10px;font-size:9px;white-space:nowrap}.ai-result{background:var(--surface-soft);border-radius:14px;padding:15px;text-align:right;margin-top:14px}.ai-result>strong{font-size:12px}.ai-result ul{padding-right:18px;font-size:10px;line-height:2}.ai-result>div{display:flex;justify-content:flex-end;gap:7px}.toast{position:fixed;bottom:25px;left:25px;background:#334139;color:#fff;border-radius:12px;padding:12px 17px;font-size:11px;box-shadow:var(--shadow);transform:translateY(90px);opacity:0;transition:.25s;z-index:200}.toast.show{transform:none;opacity:1}

body.dark{--bg:#171c19;--surface:#202722;--surface-soft:#29322b;--text:#edf2ee;--muted:#9aa69d;--line:#303a33;--primary:#9aaf9f;--primary-dark:#c1d0c4;--primary-soft:#304038;--sand:#40392f;--blue:#2c3b3e;--shadow:0 8px 28px rgba(0,0,0,.16)}body.dark .sidebar{background:#1b211d}body.dark .topbar{background:rgba(23,28,25,.9)}body.dark .focus-card{background:linear-gradient(135deg,#273229,#202722)}body.dark .next-card{background:#46574d}body.dark .list-icon{background:#2a332c}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(420px,1.1fr);background:var(--surface)}
.auth-visual{background:linear-gradient(145deg,#53665a,#768a7b);color:#fff;padding:48px clamp(35px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}.auth-visual:after{content:'';position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;bottom:-170px;left:-150px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}
.auth-brand{display:flex;align-items:center;gap:11px;position:relative;z-index:1}.auth-brand .brand-mark{background:#fff;color:var(--primary-dark)}.auth-brand strong{font:28px Georgia,serif}.auth-visual>div:nth-child(2){position:relative;z-index:1}.auth-visual .eyebrow{color:#dce6df}.auth-visual h1{font-size:clamp(37px,5vw,64px);line-height:1.45;margin-bottom:18px}.auth-visual p{max-width:480px;line-height:2;color:rgba(255,255,255,.72);font-size:14px}.auth-quote{font-size:11px;color:rgba(255,255,255,.6);position:relative;z-index:1}
.auth-panel{display:grid;place-items:center;padding:35px;background:var(--bg)}.auth-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-soft);padding:4px;border-radius:12px;margin-bottom:27px}.auth-tabs button{border:0;background:transparent;border-radius:9px;padding:9px;cursor:pointer;font-size:11px}.auth-tabs button.active{background:var(--surface);box-shadow:0 3px 10px rgba(40,55,45,.07);font-weight:800;color:var(--primary-dark)}
.auth-form{display:grid;gap:16px}.auth-form h2{margin:0 0 6px;font-size:21px}.auth-form p{margin:0;color:var(--muted);font-size:11px}.auth-form label{display:grid;gap:7px;font-size:10px;font-weight:800}.auth-form input{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:11px;padding:12px;outline:none}.auth-form input:focus{border-color:var(--primary)}.auth-error{background:#f8e5e1;color:#9a4f42;border-radius:10px;padding:10px;font-size:10px;margin:13px 0 0}.logout-button{width:100%;border:0;background:transparent;color:var(--danger);font-size:10px;padding:10px;cursor:pointer}
@media(max-width:760px){.auth-screen{grid-template-columns:1fr}.auth-visual{min-height:260px;padding:25px}.auth-visual h1{font-size:31px}.auth-visual p,.auth-quote{display:none}.auth-panel{padding:20px}.auth-card{padding:22px}}

@media (max-width: 920px){.sidebar{display:none}.main-content{margin:0}.topbar{height:64px;padding:0 20px;justify-content:space-between}.mobile-brand{display:flex;align-items:center}.mobile-brand{gap:7px}.mobile-brand .brand-mark{width:31px;height:31px;font-size:17px;border-radius:10px 3px 10px 3px}.date-chip{display:none}.page{padding:28px 22px 105px}.dashboard-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(3,1fr)}.summary-card em{display:none}.task-layout,.shopping-layout{grid-template-columns:1fr}.task-filters,.shopping-lists{display:flex;overflow:auto}.task-filters button,.shopping-lists button{white-space:nowrap}.task-filters hr{display:none}.mobile-nav{display:grid;grid-template-columns:1fr 1fr 68px 1fr 1fr;position:fixed;bottom:0;right:0;left:0;background:rgba(255,255,255,.94);backdrop-filter:blur(15px);border-top:1px solid var(--line);height:74px;z-index:50;padding:5px 10px env(safe-area-inset-bottom)}body.dark .mobile-nav{background:rgba(32,39,34,.95)}.mobile-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted)}.mobile-nav button span{font-size:19px}.mobile-nav button small{font-size:9px}.mobile-nav button.active{color:var(--primary-dark);font-weight:800}.mobile-nav .capture-fab{align-self:start}.capture-fab span{width:50px;height:50px;border-radius:17px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:27px;transform:translateY(-14px);box-shadow:0 9px 24px rgba(80,97,88,.3)}.desktop-only{display:none}}
@media(max-width:620px){.page{padding:24px 15px 100px}.page-heading{align-items:flex-start}.page-heading .primary-button{padding:10px 12px;white-space:nowrap}.summary-grid{gap:8px}.summary-card{padding:11px 9px;gap:8px}.summary-icon{width:33px;height:33px}.summary-card strong{font-size:16px}.summary-card small{font-size:8px}.panel{padding:17px;border-radius:17px}.tree-item{grid-template-columns:1fr}.tree-item small{display:none}.tree-children{grid-template-columns:1fr;margin-right:15px}.add-shopping-form{grid-template-columns:1fr 90px}.add-shopping-form button{grid-column:1/-1;padding:10px}.inbox-item{align-items:flex-start;flex-wrap:wrap}.inbox-item>div{min-width:200px}.capture-modal{padding:25px 17px}.quick-suggestions{justify-content:flex-start}.toast{left:15px;right:15px;bottom:88px;text-align:center}}
.planning-form{text-align:right;margin-top:20px}.planning-form select,.planning-form textarea{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:11px;padding:11px;outline:none}.metric-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.planning-empty{text-align:center;padding:55px 20px}.planning-empty span{font-size:34px;color:var(--primary)}.planning-empty h3{margin:12px 0 6px}.planning-empty p{color:var(--muted);font-size:11px}.real-tree{display:grid;gap:14px}.real-vision{border:1px solid var(--line);border-radius:16px;padding:17px}.real-vision h3{margin:5px 0}.real-vision small{color:var(--primary)}.real-child{margin:10px 20px 0;border-right:2px solid var(--primary-soft);padding:8px 13px}.real-child strong{font-size:12px}.real-child p{font-size:9px;color:var(--muted);margin:4px 0}


.tree-node-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tree-node-head h3,
.tree-node-head strong {
  margin: 0;
}

.tree-toggle {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border: 1px solid var(--border, #d7ddd7);
  border-radius: 9px;
  background: var(--surface, #ffffff);
  color: inherit;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.tree-toggle:hover {
  background: #eef3ee;
}

.tree-children {
  margin-top: 14px;
  padding-right: 18px;
  border-right: 2px solid #dfe7df;
}


/* Planning tree children must always be vertical */
.tree-children {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch;
  gap: 12px;
}

.tree-children > .real-vision,
.tree-children > .real-child,
.tree-children > .objective-card,
.tree-children > .key-result-row {
  width: 100%;
  box-sizing: border-box;
}


/* Scrollable project form */
#projectModal {
  overflow-y: auto;
  padding: 16px;
}

#projectModal .capture-modal {
  width: min(680px, 100%);
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: auto;
}

#projectModal .modal-close {
  position: sticky;
  top: 0;
  z-index: 2;
}


/* Tree expand and collapse behavior */
.tree-children.hidden {
  display: none !important;
}

.tree-node-toggle {
  cursor: pointer;
  user-select: none;
}

.tree-node-toggle:hover h3,
.tree-node-toggle:hover strong {
  color: var(--accent, #66806c);
}


/* Scrollable task form */
#taskModal {
  overflow-y: auto;
  padding: 16px;
}

#taskModal .capture-modal {
  width: min(680px, 100%);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: auto;
}


/* Real tasks page v5.21 */
.real-task-panel {
  display: grid;
  gap: 18px;
}

.real-task-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
}

.real-task-filters label {
  display: grid;
  gap: 6px;
  font-size: 13px;
}

.real-task-filters select,
.task-status-select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line, #d8ded8);
  border-radius: 12px;
  background: var(--surface, #fff);
  color: inherit;
  padding: 8px 10px;
}

.task-page-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.task-page-summary span,
.task-page-meta span {
  background: rgba(125, 145, 130, 0.12);
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
}

.real-task-list {
  display: grid;
  gap: 12px;
}

.task-page-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line, #d8ded8);
  border-radius: 16px;
  background: var(--surface, #fff);
}

.task-page-card.subtask-page-card {
  margin-right: 28px;
  border-right: 4px solid #9caf9f;
}

.task-page-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  align-items: start;
  gap: 14px;
}

.task-page-main h3 {
  margin: 4px 0;
}

.task-page-main p {
  margin: 6px 0 0;
}

.task-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

@media (max-width: 850px) {
  .real-task-filters {
    grid-template-columns: 1fr 1fr;
  }

  .task-page-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .real-task-filters {
    grid-template-columns: 1fr;
  }

  .task-page-card.subtask-page-card {
    margin-right: 12px;
  }
}


/* Tasks page v5.22 */
.tasks-toolbar {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.tasks-toolbar select,
.task-status-select {
  min-height: 42px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #d8ded8;
  border-radius: 12px;
  background: #fff;
  color: inherit;
}

.task-page-summary,
.task-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.task-page-summary {
  margin-bottom: 16px;
}

.task-page-summary span,
.task-page-meta span {
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(125,145,130,.12);
  font-size: 12px;
}

.real-task-list {
  display: grid;
  gap: 12px;
}

.task-page-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid #d8ded8;
  border-radius: 16px;
  background: #fff;
}

.task-page-card.subtask-page-card {
  margin-right: 28px;
  border-right: 4px solid #8ea393;
}

.task-page-main {
  display: grid;
  grid-template-columns: minmax(0,1fr) 170px;
  gap: 14px;
  align-items: start;
}

.task-page-main h3 {
  margin: 4px 0;
}

@media (max-width:900px) {
  .tasks-toolbar {
    grid-template-columns: 1fr 1fr;
  }

  .task-page-main {
    grid-template-columns: 1fr;
  }
}

@media (max-width:520px) {
  .tasks-toolbar {
    grid-template-columns: 1fr;
  }

  .task-page-card.subtask-page-card {
    margin-right: 12px;
  }
}


/* Task actions v5.23 */
.task-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.task-delete-button {
  color: #b55247;
  border-color: rgba(181,82,71,.3);
}

.task-delete-button:hover {
  background: rgba(181,82,71,.09);
}


/* Dashboard real tasks v5.27 */
.dashboard-task-overdue {
  background: rgba(181,82,71,.055);
  border-radius: 12px;
}

.dashboard-task-overdue .task-copy small {
  color: #b55247;
}

.dashboard-tasks-empty {
  padding: 18px 10px;
  min-height: auto;
}

#todayTasks .task-row {
  transition: opacity .2s ease, background .2s ease;
}

#todayTasks .task-row:has(input:checked) .task-copy strong {
  text-decoration: line-through;
  opacity: .6;
}


/* Upcoming tasks v5.30 */
#upcomingTasks {
  display: grid;
  gap: 10px;
}

.upcoming-task-item {
  width: 100%;
  display: grid;
  grid-template-columns: 78px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(125,145,130,.2);
  border-radius: 14px;
  background: transparent;
  color: inherit;
  text-align: right;
  cursor: pointer;
}

.upcoming-task-item:hover {
  background: rgba(125,145,130,.08);
}

.upcoming-task-primary {
  background: rgba(125,145,130,.1);
  border-color: rgba(125,145,130,.35);
}

.upcoming-task-time,
.upcoming-task-copy {
  display: grid;
  gap: 3px;
}

.upcoming-task-time {
  text-align: center;
}

.upcoming-task-time strong {
  font-size: 17px;
}

.upcoming-task-time small,
.upcoming-task-copy small {
  color: var(--muted, #728078);
  font-size: 11px;
}

.upcoming-task-score {
  min-width: 34px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(125,145,130,.14);
  text-align: center;
  font-size: 11px;
}

.upcoming-empty {
  min-height: auto;
  padding: 18px 8px;
}

@media (max-width:520px) {
  .upcoming-task-item {
    grid-template-columns: 64px minmax(0,1fr);
  }

  .upcoming-task-score {
    display: none;
  }
}


/* Real shopping v5.31 */
.add-shopping-form {
  flex-wrap: wrap;
}

.add-shopping-form #shoppingNotes {
  min-width: 190px;
}

.shopping-urgent-check {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.shopping-item-actions {
  margin-right: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.shopping-action-button {
  border: 0;
  border-radius: 9px;
  padding: 6px 8px;
  background: rgba(125,145,130,.12);
  color: inherit;
  cursor: pointer;
  font-size: 11px;
}

.shopping-delete-button {
  color: #b55247;
  background: rgba(181,82,71,.08);
}

.shopping-empty {
  padding: 10px;
}

.shopping-preview-empty {
  opacity: .7;
}


/* Shopping form overflow fix v5.33 */
.add-shopping-form {
  display: grid;
  grid-template-columns:
    minmax(180px, 2fr)
    minmax(110px, .8fr)
    minmax(160px, 1.4fr)
    auto
    auto;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.add-shopping-form > * {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.add-shopping-form #shoppingInput,
.add-shopping-form #shoppingNotes,
.add-shopping-form #shoppingQty {
  width: 100%;
}

.shopping-urgent-check {
  justify-content: center;
}

@media (max-width: 900px) {
  .add-shopping-form {
    grid-template-columns: 1fr 1fr;
  }

  .add-shopping-form button[type="submit"] {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .add-shopping-form {
    grid-template-columns: 1fr;
  }

  .shopping-urgent-check {
    justify-content: flex-start;
  }
}


/* Real shopping list selector */
.shopping-list-select {
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
}

.shopping-lists button {
  text-align: right;
}

.shopping-lists button small {
  display: block;
  margin-top: 3px;
}

@media (max-width: 920px) {
  .shopping-lists button {
    min-width: 170px;
  }
}

.work-share-badge {
  display: inline-flex;
  align-items: center;
  margin-inline-start: .5rem;
  padding: .16rem .55rem;
  border-radius: 999px;
  background: #eee5d7;
  color: #735f48;
  font-size: .68rem;
  font-weight: 700;
  white-space: nowrap;
  vertical-align: middle;
}


/* Unified shopping list */
.shopping-layout {
  grid-template-columns: 1fr;
}

.shopping-lists {
  display: none !important;
}

/* Multi-user share manager */
#shareManagerModal {
  z-index: 900;
}

.share-manager-modal {
  width: min(560px, calc(100vw - 32px));
}

.share-connection-form {
  display: grid;
  gap: 8px;
  margin-top: 20px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.share-connection-form > label {
  font-size: 11px;
  font-weight: 800;
}

.share-connection-form > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.share-connection-form input {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
  color: var(--text);
  padding: 11px;
  outline: none;
}

.share-connection-form input:focus {
  border-color: var(--primary);
}

.share-connection-form small {
  color: var(--muted);
  font-size: 9px;
}

.share-manager-users {
  display: grid;
  gap: 9px;
  max-height: 360px;
  margin-top: 18px;
  overflow-y: auto;
}

.share-user-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px auto;
  gap: 9px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.share-user-info {
  min-width: 0;
}

.share-user-info strong,
.share-user-info small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.share-user-info strong {
  font-size: 12px;
}

.share-user-info small {
  margin-top: 4px;
  color: var(--muted);
  direction: ltr;
  font-size: 9px;
  text-align: right;
}

.share-user-row select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
  color: var(--text);
  padding: 9px 7px;
  outline: none;
}

.share-user-action {
  min-width: 72px;
}

.share-user-action.danger {
  color: var(--danger);
}

@media (max-width: 560px) {
  .share-user-row {
    grid-template-columns: minmax(0, 1fr) 115px;
  }

  .share-user-action {
    grid-column: 1 / -1;
    width: 100%;
  }
}

.account-connections-button {
  margin: 16px 0;
}

.connection-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 9px;
  background: var(--surface-soft);
  color: var(--muted);
  padding: 7px 9px;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
}

.connection-actions {
  display: flex;
  gap: 6px;
}

.connection-actions button {
  min-width: 58px;
}

.secondary-button.danger {
  color: var(--danger);
}

#connectionsManagerModal {
  z-index: 900;
}

@media (max-width: 560px) {
  .connection-status {
    min-height: 38px;
  }

  .connection-actions {
    grid-column: 1 / -1;
  }

  .connection-actions button {
    flex: 1;
  }
}

/* Monthly Jalali date picker v5.71 */
#jalaliPickerModal {
  z-index: 1000;
}

.jalali-picker-modal {
  width: min(430px, calc(100vw - 24px));
}

.jalali-calendar-navigation {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  direction: ltr;
}

.jalali-calendar-navigation strong {
  overflow: hidden;
  color: var(--text);
  font-size: 15px;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  direction: rtl;
}

.jalali-calendar-nav-button {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface-soft);
  color: var(--text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.jalali-calendar-nav-button:hover,
.jalali-calendar-nav-button:focus-visible {
  border-color: var(--primary);
  background: var(--primary-soft);
  color: var(--primary-dark);
  outline: none;
}

.jalali-calendar-weekdays,
.jalali-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  direction: rtl;
}

.jalali-calendar-weekdays {
  gap: 4px;
  margin-top: 16px;
  padding: 0 2px 7px;
  border-bottom: 1px solid var(--line);
}

.jalali-calendar-weekdays span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  text-align: center;
}

.jalali-calendar-weekdays span:last-child {
  color: #b6534b;
}

.jalali-calendar-grid {
  gap: 5px;
  margin-top: 8px;
}

.jalali-calendar-empty {
  aspect-ratio: 1;
}

.jalali-calendar-day {
  aspect-ratio: 1;
  min-width: 0;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: var(--text);
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.jalali-calendar-day:hover {
  border-color: var(--line);
  background: var(--surface-soft);
}

.jalali-calendar-day:focus-visible {
  border-color: var(--primary);
  outline: 2px solid rgba(92, 122, 101, .16);
  outline-offset: 1px;
}

.jalali-calendar-day.is-friday {
  color: #b6534b;
}

.jalali-calendar-day.is-today {
  border-color: var(--primary);
  color: var(--primary-dark);
}

.jalali-calendar-day.is-today::after {
  display: block;
  width: 4px;
  height: 4px;
  margin: 2px auto 0;
  border-radius: 50%;
  background: var(--primary);
  content: '';
}

.jalali-calendar-day.is-selected {
  border-color: var(--primary);
  background: var(--primary);
  color: #fff;
  box-shadow: 0 5px 13px rgba(80, 97, 88, .2);
}

.jalali-calendar-day.is-selected::after {
  background: #fff;
}

.jalali-picker-time {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  direction: ltr;
  gap: 12px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.jalali-picker-time label {
  display: grid;
  direction: rtl;
  gap: 7px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.jalali-picker-time select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
  color: var(--text);
  padding: 11px 9px;
  outline: none;
  text-align: center;
}

.jalali-picker-time select:focus {
  border-color: var(--primary);
}

.jalali-picker-actions {
  display: grid;
  grid-template-columns: auto auto 1fr;
  gap: 8px;
  margin-top: 20px;
}

.jalali-picker-actions button {
  min-height: 42px;
}

#projectStartDate,
#projectDueDate,
#taskStartAt,
#taskDueAt {
  cursor: pointer;
  caret-color: transparent;
}

body.dark .jalali-calendar-day.is-selected {
  color: #fff;
}

body.dark .jalali-calendar-day.is-friday:not(.is-selected) {
  color: #e19489;
}

@media (max-width: 520px) {
  .jalali-picker-modal {
    width: min(400px, calc(100vw - 16px));
    padding-inline: 16px;
  }

  .jalali-calendar-grid {
    gap: 3px;
  }

  .jalali-calendar-day {
    border-radius: 9px;
    font-size: 11px;
  }

  .jalali-picker-actions {
    grid-template-columns: 1fr 1fr;
  }

  #jalaliPickerConfirm {
    grid-column: 1 / -1;
  }
}


/* Task scheduling preview v5.68 */
.task-schedule-warning {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(190, 137, 54, .28);
  border-radius: 10px;
  background: rgba(234, 179, 75, .12);
  color: #8a6328;
  font-size: 11px;
  line-height: 1.8;
}

#taskDueAt {
  cursor: default;
  color: var(--muted);
  background: var(--surface-soft);
}

/* Weekly task calendar v5.69 */
.task-calendar-panel {
  overflow: hidden;
}

.task-calendar-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.task-calendar-toolbar h2 {
  margin: 2px 0 4px;
}

.task-calendar-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.task-calendar-range {
  margin: 10px 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.task-week-calendar {
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  scrollbar-width: thin;
}

.task-calendar-canvas {
  min-width: 980px;
}

.task-calendar-headers,
.task-calendar-body {
  display: grid;
  grid-template-columns: 64px repeat(7, minmax(126px, 1fr));
  direction: rtl;
}

.task-calendar-headers {
  position: sticky;
  top: 0;
  z-index: 5;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.task-calendar-time-header,
.task-calendar-day-header {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 1px solid var(--line);
}

.task-calendar-time-header {
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.task-calendar-day-header {
  flex-direction: column;
  gap: 2px;
}

.task-calendar-day-header strong {
  font-size: 12px;
}

.task-calendar-day-header small {
  color: var(--muted);
  font-size: 10px;
}

.task-calendar-day-header.is-today {
  background: var(--primary-soft);
  color: var(--primary-dark);
}

.task-calendar-body {
  align-items: start;
}

.task-calendar-time-column {
  position: relative;
  border-left: 1px solid var(--line);
}

.task-calendar-time-label {
  height: 56px;
  padding: 7px 7px 0;
  color: var(--muted);
  font-size: 9px;
  text-align: center;
  border-bottom: 1px solid transparent;
  direction: ltr;
}

.task-calendar-day-column {
  position: relative;
  min-width: 0;
  border-left: 1px solid var(--line);
  background: var(--surface);
}

.task-calendar-day-column.is-today {
  background: rgba(110, 139, 119, .045);
}

.task-calendar-hour-slot {
  height: 56px;
  border-bottom: 1px solid var(--line);
  background-image:
    linear-gradient(
      to bottom,
      transparent 49%,
      rgba(125, 145, 130, .08) 50%,
      transparent 51%
    );
}

.task-calendar-block {
  position: absolute;
  z-index: 2;
  right: 4px;
  left: 4px;
  min-height: 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 5px 7px;
  border: 1px solid rgba(79, 117, 91, .28);
  border-radius: 8px;
  background: #dceadf;
  color: #355342;
  text-align: right;
  cursor: pointer;
  box-shadow: 0 3px 9px rgba(50, 72, 58, .08);
}

.task-calendar-block:hover {
  z-index: 4;
  filter: brightness(.97);
  box-shadow: 0 7px 17px rgba(50, 72, 58, .16);
}

.task-calendar-block strong {
  width: 100%;
  overflow: hidden;
  font-size: 10px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-calendar-block small {
  font-size: 8px;
  line-height: 1.4;
  opacity: .82;
  direction: rtl;
}

.task-calendar-block.status-in_progress {
  border-color: rgba(63, 105, 154, .3);
  background: #dce8f5;
  color: #375a7e;
}

.task-calendar-block.status-blocked {
  border-color: rgba(178, 92, 74, .32);
  background: #f3dfdb;
  color: #8f493e;
}

.task-calendar-block.status-done {
  border-color: rgba(112, 118, 113, .2);
  background: #e9ecea;
  color: #707a73;
  opacity: .72;
}

.task-calendar-block.has-overlap {
  right: 9px;
  border: 2px solid #c6882f;
  background-image:
    repeating-linear-gradient(
      -45deg,
      rgba(255, 255, 255, .18) 0,
      rgba(255, 255, 255, .18) 5px,
      transparent 5px,
      transparent 10px
    );
}

.task-calendar-overlap {
  max-width: 100%;
  overflow: hidden;
  padding: 1px 5px;
  border-radius: 999px;
  background: rgba(198, 136, 47, .16);
  color: #875d20;
  font-size: 7px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.dark .task-calendar-block {
  border-color: rgba(141, 180, 151, .3);
  background: #344c3b;
  color: #e1eee4;
}

body.dark .task-calendar-block.status-in_progress {
  background: #30465d;
  color: #e0ebf7;
}

body.dark .task-calendar-block.status-blocked {
  background: #593b38;
  color: #f4dfdc;
}

body.dark .task-calendar-block.status-done {
  background: #3d443f;
  color: #c3cac5;
}

@media (max-width: 720px) {
  .task-calendar-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .task-calendar-navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

  .task-calendar-navigation button {
    min-width: 0;
    padding-inline: 6px;
    font-size: 10px;
  }

  .task-calendar-canvas {
    min-width: 900px;
  }
}

.task-calendar-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 8px;
}

.task-calendar-toolbar h2 {
  margin: 2px 0 4px;
}

.task-calendar-help {
  margin: 0 0 12px;
  font-size: 11px;
}

.task-week-calendar {
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
  scrollbar-width: thin;
}

.task-calendar-time-header {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
}

.task-calendar-day-header {
  padding: 8px 5px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
}

.task-calendar-now-line {
  position: absolute;
  z-index: 3;
  right: 0;
  left: 0;
  height: 2px;
  background: #c95647;
  pointer-events: none;
}

.task-calendar-now-line::before {
  position: absolute;
  top: -4px;
  right: -1px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #c95647;
  content: '';
}

@media (max-width: 720px) {
  .task-calendar-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
}



/* Optional and all-day task scheduling v5.72 */
.task-calendar-hour-slot {
  position: relative;
  z-index: 1;
  pointer-events: none;
}

.task-calendar-all-day-layer {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  padding: 6px 4px;
  background: rgba(116, 151, 125, .12);
}

.task-calendar-all-day-task {
  position: relative;
  z-index: 1;
  width: 100%;
  display: block;
  overflow: hidden;
  margin-bottom: 4px;
  padding: 5px 6px;
  border: 1px solid rgba(79, 117, 91, .18);
  border-radius: 7px;
  background: rgba(255, 255, 255, .68);
  color: #486452;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.45;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
  pointer-events: auto;
}

.task-calendar-all-day-task:hover {
  background: rgba(255, 255, 255, .9);
}

body.dark .task-calendar-all-day-layer {
  background: rgba(112, 157, 124, .12);
}

body.dark .task-calendar-all-day-task {
  border-color: rgba(152, 190, 162, .18);
  background: rgba(42, 62, 48, .74);
  color: #dce9df;
}


/* Categorized shared shopping experience v5.75 */

.shopping-page-heading {
  align-items: flex-end;
  gap: 18px;
}

.shopping-view-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.shopping-view-tabs button {
  min-height: 40px;
}

.shopping-view-tabs button.active {
  box-shadow: 0 6px 18px rgba(62, 91, 70, .13);
}

.shopping-shared-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface);
}

.shopping-shared-header h2,
.shopping-shared-header p {
  margin: 0;
}

.shopping-shared-header p {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
}

.shopping-planning-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(290px, .75fr);
  align-items: start;
  gap: 16px;
}

.shopping-catalog-panel,
.shopping-selected-panel,
.shopping-buying-view .shopping-main,
.shopping-history-view .shopping-main {
  min-width: 0;
}

.shopping-selected-panel {
  position: sticky;
  top: 18px;
}

.shopping-selected-count {
  min-width: 34px;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}

.shopping-inline-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  margin: 14px 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
}

.shopping-catalog {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.shopping-catalog-category {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}

.shopping-catalog-category-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  border-bottom: 1px solid var(--line);
  background: rgba(111, 143, 119, .055);
}

.shopping-catalog-category-header h3 {
  margin: 0;
  font-size: 14px;
}

.shopping-catalog-category-header small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 9px;
}

.shopping-catalog-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.shopping-catalog-item {
  min-width: 0;
  padding: 11px 13px;
  background: var(--surface);
  transition:
    background .18s ease,
    box-shadow .18s ease;
}

.shopping-catalog-item.is-selected {
  position: relative;
  z-index: 1;
  background: rgba(111, 151, 121, .12);
  box-shadow: inset -3px 0 0 var(--accent);
}

.shopping-catalog-check {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
}

.shopping-catalog-check input,
.shopping-catalog-options input[type="checkbox"],
.shopping-urgent-field input,
.shopping-active-item > input {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: var(--accent);
}

.shopping-catalog-check span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shopping-catalog-options {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
  padding-right: 26px;
}

.shopping-catalog-options > input[type="text"] {
  width: min(150px, 100%);
  min-height: 34px;
  padding: 6px 9px;
  font-size: 10px;
}

.shopping-catalog-options label {
  display: flex;
  align-items: center;
  gap: 5px;
  color: var(--danger);
  font-size: 9px;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
}

.shopping-add-catalog-item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 10px 13px;
  border-top: 1px solid var(--line);
  background: var(--surface);
}

.shopping-add-catalog-item input {
  min-height: 34px;
  padding: 6px 9px;
  border-color: transparent;
  background: var(--surface-soft);
  font-size: 10px;
}

#shoppingActiveList,
#shoppingBuyingItems,
#shoppingHistory {
  display: grid;
  gap: 9px;
}

.shopping-active-item,
.shopping-history-item {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}

.shopping-active-item.is-urgent {
  border-color: rgba(184, 91, 72, .28);
  background: rgba(184, 91, 72, .055);
}

.shopping-active-item-content,
.shopping-history-item > div:first-child {
  min-width: 0;
  flex: 1;
}

.shopping-active-item strong,
.shopping-history-item strong {
  display: block;
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shopping-active-item small,
.shopping-history-item small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.7;
}

.danger-text {
  color: var(--danger);
}

.shopping-manual-entry {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.shopping-manual-entry summary {
  color: var(--muted);
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}

.shopping-manual-entry .add-shopping-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 11px;
  padding: 0;
  border: 0;
  background: transparent;
}

.shopping-manual-entry .add-shopping-form > button {
  grid-column: 1 / -1;
}

.shopping-urgent-field {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--danger);
  font-size: 10px;
  cursor: pointer;
}

.shopping-view-help {
  margin: -5px 0 15px;
  font-size: 10px;
}

.shopping-buying-view .shopping-main {
  max-width: 760px;
  margin-inline: auto;
}

.shopping-buying-view .shopping-active-item {
  min-height: 60px;
  padding: 14px 16px;
}

.shopping-buying-view .shopping-active-item strong {
  font-size: 14px;
}

.shopping-buying-view .shopping-active-item > input {
  width: 22px;
  height: 22px;
}

.shopping-history-item {
  justify-content: space-between;
}

.shopping-history-meta {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 5px;
  color: var(--muted);
  font-size: 9px;
  white-space: nowrap;
}

body.dark .shopping-catalog-item.is-selected {
  background: rgba(112, 157, 124, .16);
}

body.dark .shopping-catalog-category-header {
  background: rgba(112, 157, 124, .08);
}

body.dark .shopping-active-item.is-urgent {
  background: rgba(190, 104, 86, .08);
}

@media (max-width: 900px) {
  .shopping-planning-layout {
    grid-template-columns: 1fr;
  }

  .shopping-selected-panel {
    position: static;
  }
}

@media (max-width: 640px) {
  .shopping-page-heading {
    align-items: stretch;
  }

  .shopping-view-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
  }

  .shopping-view-tabs button {
    min-width: 0;
    padding-inline: 7px;
    font-size: 9px;
  }

  .shopping-shared-header {
    padding: 12px 13px;
  }

  .shopping-catalog-items {
    grid-template-columns: 1fr;
  }

  .shopping-catalog-options {
    align-items: stretch;
    flex-direction: column;
  }

  .shopping-catalog-options > input[type="text"] {
    width: 100%;
  }

  .shopping-manual-entry .add-shopping-form {
    grid-template-columns: 1fr;
  }

  .shopping-manual-entry .add-shopping-form > button {
    grid-column: auto;
  }

  .shopping-history-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .shopping-history-meta {
    width: 100%;
    align-items: flex-start;
  }
}
