@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#28324c;--muted:#7d8291;--navy:#303b60;--gold:#d0ad69;--bg:#f6f6f3;--line:#e9e9e5;--white:#fff;--soft:#f8f0df;--green:#619281;font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c7ac72;outline-offset:3px}button{color:inherit;border:0;background:none}h1,h2,h3,p{margin:0}h1{font-size:34px;letter-spacing:-1.3px;font-weight:800}h2{font-size:18px;letter-spacing:-.4px}h3{font-size:15px}p{line-height:1.65}.shell{display:flex;min-height:100vh}.rail{width:240px;background:#fff;border-right:1px solid var(--line);padding:36px 26px;display:flex;flex-direction:column;position:fixed;height:100vh}.brand{font-size:23px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:9px}.brand-icon{display:grid;place-items:center;background:var(--navy);color:#e2c791;width:30px;height:32px;border-radius:9px;font-size:22px}.brand-dot{font-size:11px;align-self:flex-start;margin-top:3px;margin-left:-6px}.rail-caption{font-size:9px;letter-spacing:1.8px;color:#9a9dab;margin:46px 12px 16px}.nav-item{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;font-size:13px;font-weight:600;margin:5px 0;color:#777f91}.nav-item.active{background:var(--navy);color:white}.nav-icon{width:20px;height:20px;display:inline-flex}.nav-icon svg{width:100%;height:100%}.rail-foot{margin-top:auto;font-size:10px;line-height:2;color:var(--muted)}.rail-foot small{margin-left:13px;font-size:10px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7d9c88;margin-right:4px}.workspace{margin-left:240px;width:calc(100% - 240px)}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.45)}.header-label{font-size:10px;letter-spacing:1.4px;font-weight:800}.header-label span{font-weight:500;color:#9398a6;margin-left:7px}.avatar{width:34px;height:34px;background:#ebe7dd;border-radius:50%;font-weight:700;font-size:12px}main{max-width:1150px;margin:auto;padding:38px 48px 60px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.8px;color:var(--gold);margin-bottom:10px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:18px}.subtitle{font-size:12px;color:var(--muted);margin-top:8px}.primary{background:var(--navy);color:white;padding:13px 18px;border-radius:10px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.secondary{border:1px solid var(--line);background:white;padding:11px 15px;border-radius:9px;font-size:12px;font-weight:600}.text-btn{font-size:11px;color:var(--muted);padding:10px}.danger{color:#b34848}.card{background:white;border:1px solid var(--line);border-radius:17px;padding:24px;margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-tag{font-size:9px;font-weight:700;letter-spacing:1.1px;color:var(--muted)}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);gap:22px}.goal-card{background:var(--navy);color:white;position:relative;overflow:hidden}.goal-card:after{content:'';position:absolute;right:-35px;bottom:-60px;width:190px;height:190px;border:1px solid #ffffff13;border-radius:50%;pointer-events:none}.goal-card .section-tag{color:#dbc492}.goal-text{font-size:20px;font-weight:600;line-height:1.5;margin:12px 0 18px;max-width:90%}.goal-card .text-btn{color:#d7dae4;padding-left:0}.goal-card .check-label{color:#d7dae4}.goal-card .check-label input{accent-color:#d3b378}.goal-card .empty-goal{color:#bfc6d8}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.stat{padding:16px;background:#fff;border:1px solid var(--line);border-radius:13px}.stat strong{display:block;font-size:25px;letter-spacing:-.8px}.stat span{font-size:10px;color:var(--muted)}.stat .gold{color:#b28d49}.days{display:flex;gap:8px;margin-bottom:22px}.day{flex:1;min-width:0;padding:12px 5px;border:1px solid var(--line);background:white;border-radius:12px;text-align:center}.day span{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.day strong{font-size:16px}.day.selected{background:var(--navy);border-color:var(--navy);color:white}.day.selected span{color:#c6cbda}.day.today:not(.selected){border-color:#cbae76}.day .day-dot{display:block;width:4px;height:4px;background:var(--gold);border-radius:50%;margin:6px auto -4px}.task-list{display:flex;flex-direction:column}.task{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #f1f1ee}.task:last-child{border-bottom:0}.task-check{flex-shrink:0;width:22px;height:22px;margin-top:1px;border:1.5px solid #d8dce3;border-radius:7px;display:grid;place-items:center;color:white;font-size:13px}.task-check.done{background:var(--green);border-color:var(--green)}.task-content{flex:1;min-width:0;text-align:left;padding:0}.task-title{font-size:13px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.task.done .task-title{text-decoration:line-through;color:#9ba0ac}.task-meta{display:flex;gap:8px;align-items:center;margin-top:5px;flex-wrap:wrap}.tag{font-size:9px;padding:3px 7px;border-radius:5px;background:#f4f4f6;color:var(--muted)}.tag.category{background:color-mix(in srgb,var(--cat) 12%,white);color:var(--cat)}.tag.priority{color:#b48943;background:#faf3e7}.overdue{color:#ba5353;font-size:10px}.task-edit{color:#a1a5b0;font-size:17px;padding:0 3px;min-height:30px}.focus{background:#fffcf6}.focus .card-head h2{display:flex;align-items:center;gap:9px}.star{color:#c4a05b}.count{font-size:10px;color:var(--muted);font-weight:500}.empty{text-align:center;padding:27px 12px;color:var(--muted);font-size:12px;line-height:1.8}.empty-icon{font-size:26px;color:#c7cdd6;margin-bottom:8px}.add-line{display:block;text-align:left;font-size:11px;color:#8b91a0;padding:14px 0 0}.progress-track{height:5px;background:#f0f0ed;border-radius:10px;overflow:hidden;margin-top:14px}.progress-fill{height:100%;background:var(--gold);border-radius:10px}.progress-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:10px}.week-picker{display:flex;align-items:center;gap:8px}.week-picker button{width:34px;height:34px;border:1px solid var(--line);background:white;border-radius:9px;font-size:18px}.week-picker strong{font-size:12px;min-width:136px;text-align:center}.note{font-size:11px;color:var(--muted);line-height:1.8}.section-space{margin-top:24px}.filters{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.chip{font-size:11px;border:1px solid var(--line);background:white;border-radius:20px;padding:9px 14px}.chip.active{background:var(--navy);color:white;border-color:var(--navy)}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.metric-grid .stat{padding:20px}.category-row{display:grid;grid-template-columns:90px 1fr 45px;gap:12px;align-items:center;font-size:11px;padding:10px 0}.category-row .progress-track{margin:0}.bar-chart{display:flex;gap:12px;height:140px;align-items:flex-end;margin:24px 0 8px}.bar-item{flex:1;display:flex;align-items:center;flex-direction:column;justify-content:flex-end;height:100%;gap:8px;min-width:0}.bar{width:100%;max-width:44px;border-radius:5px 5px 2px 2px;background:#d7dce8;min-height:2px}.bar-item:last-child .bar{background:var(--navy)}.bar-item span{font-size:9px;color:var(--muted)}.compare{width:100%;border-collapse:collapse;font-size:11px}.compare td,.compare th{padding:13px 0;border-bottom:1px solid var(--line);text-align:right;font-weight:500}.compare td:first-child,.compare th:first-child{text-align:left}.compare th{font-size:9px;color:var(--muted)}.field{display:block;margin-bottom:17px;font-size:11px;font-weight:700}.field input,.field textarea,.field select{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #dddfe4;border-radius:9px;background:white;color:var(--ink);font-weight:400;font-size:13px}.field textarea{resize:vertical;min-height:85px}.field-row{display:flex;gap:12px}.field-row>*{flex:1;min-width:0}.check-label{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.6}.check-label input{width:17px;height:17px;accent-color:var(--navy)}.settings-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.settings-row input[type=text]{min-width:0;flex:1;border:1px solid var(--line);border-radius:8px;padding:11px;font-size:12px}.settings-row input[type=color]{border:0;width:30px;height:30px;padding:0;background:none}.settings-row select{padding:8px;border:1px solid var(--line);border-radius:7px;background:white;font-size:11px}.settings-row .remove{color:#a49ba0;font-size:20px;width:30px}.rating{display:flex;gap:10px;margin:12px 0 22px}.rating button{width:43px;height:43px;border:1px solid var(--line);border-radius:10px;background:white}.rating button.active{background:var(--navy);color:white}.archive-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;gap:10px}.archive-row span{color:var(--muted);font-size:10px}.callout{padding:16px;border-radius:12px;background:#f6f2e9;font-size:11px;line-height:1.8;margin-bottom:20px}.transfer-item{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.transfer-item input{accent-color:var(--navy)}footer{font-size:10px;color:#a2a5ae;text-align:center;padding:0 20px 30px}dialog{border:0;border-radius:20px;padding:26px;width:460px;max-width:calc(100vw - 24px);max-height:88vh;color:var(--ink);box-shadow:0 25px 100px #18213633}dialog::backdrop{background:#1c254d66;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-head button{font-size:24px;line-height:1;padding:5px}.modal-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.modal-actions .primary{margin-left:auto}.error{font-size:11px;color:#b34f4f;margin-top:12px;line-height:1.6}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:var(--navy);color:white;padding:12px 20px;border-radius:10px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:50;max-width:90vw}#toast.visible{opacity:1;transform:translate(-50%,0)}#storage-warning{background:#fff1d4;color:#754c12;padding:12px;position:fixed;top:0;left:0;right:0;font-size:12px;z-index:100}.mobile-brand,#mobile-nav,.fab{display:none}.save-state{font-size:10px;color:var(--green);margin-left:12px}.carry-note{color:var(--muted);font-size:9px;margin-top:4px}.scroll-weeks{max-height:260px;overflow:auto}input[type=file]{max-width:100%}.muted{color:var(--muted)}
@media(min-width:1450px){main{padding-top:50px}}@media(max-width:1100px){.rail{width:200px;padding:32px 18px}.workspace{margin-left:200px;width:calc(100% - 200px)}header{padding:0 28px}main{padding:30px 28px 55px}.grid{gap:16px;grid-template-columns:minmax(0,1.4fr) minmax(230px,1fr)}.card{padding:20px}h1{font-size:30px}}
@media(max-width:760px){.rail{display:none}.workspace{margin:0;width:100%}header{height:66px;padding:0 22px}.header-label{display:none}.mobile-brand{display:block;font-weight:800;letter-spacing:-.7px;font-size:20px}.mobile-brand span{font-size:11px;color:#959bab;letter-spacing:0;font-weight:500}.avatar{height:30px;width:30px;font-size:10px}main{padding:26px 18px 95px}.page-head{margin-bottom:22px}.page-head>.primary{display:none}.eyebrow{font-size:9px}h1{font-size:29px}.subtitle{font-size:11px}.grid{grid-template-columns:1fr;gap:0}.card{padding:20px;border-radius:15px;margin-bottom:16px}.goal-card{padding:22px}.goal-text{font-size:19px}.stats{margin-bottom:16px}.stat{padding:14px}.stat strong{font-size:23px}.days{gap:5px;margin-bottom:18px}.day{padding:12px 3px}.day span{font-size:9px}.day strong{font-size:15px}.task{padding:14px 0}.task-title{font-size:13px}.task-check{width:24px;height:24px}.task-edit{min-width:30px}.week-picker{gap:3px}.week-picker strong{min-width:100px;font-size:10px}.week-picker button{width:30px;height:30px}.metric-grid{gap:7px}.metric-grid .stat{padding:15px 10px}.metric-grid .stat span{font-size:9px}.metric-grid .stat strong{font-size:22px}#mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#ffffffef;backdrop-filter:blur(15px);border-top:1px solid var(--line);z-index:20;padding:8px 7px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.nav-item{flex-direction:column;gap:5px;padding:5px 7px;margin:0;border-radius:9px;font-size:9px;min-width:52px;color:#9298a7}.nav-item.active{background:transparent;color:var(--navy)}.nav-item.active .nav-icon{color:#b99755}.nav-icon{width:21px;height:21px}.fab{display:block;position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));right:20px;width:52px;height:52px;border-radius:17px;background:var(--navy);color:white;font-size:31px;box-shadow:0 6px 25px #303b6033;z-index:15}#toast{bottom:150px}footer{display:none}.field-row{gap:8px}.settings-row{gap:6px}.settings-row input[type=text]{padding:10px;font-size:11px}.settings-row select{padding:6px;font-size:10px}dialog{padding:22px}.task-meta{gap:5px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Official Growmark mark, supplied by the owner. */
.brand-logo{width:34px;height:34px;object-fit:contain;flex-shrink:0}.brand{letter-spacing:-.7px}.mobile-brand .brand-logo{width:30px;height:30px}.mobile-brand .brand-name{color:var(--ink);font-size:19px;font-weight:800;letter-spacing:-.6px}
@media(max-width:760px){.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-brand>span:last-child{margin-left:0}}

.motivation-card{background:#fdfbf6;border-color:#e9dfca}.level-badge{font-size:10px;border:1px solid #dfc99b;border-radius:20px;padding:5px 10px;color:#997336}.xp-total{font-size:30px;font-weight:800;margin-top:14px;letter-spacing:-.7px}.xp-total span{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:0}.motivation-card .section-space{margin-top:12px}.xp-rules p{display:flex;justify-content:space-between;font-size:12px;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}#toast{line-height:1.6;max-width:min(550px,90vw);width:max-content;text-align:center}

/* Keep separation when the planner columns stack on phones. */
@media(max-width:760px){.planner-grid{row-gap:16px}}

/* Task editor: a dedicated phone screen, sized to the visible area above the keyboard. */
.task-details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.task-details summary{cursor:pointer;font-size:12px;font-weight:600;padding:4px 0 16px}.task-main{margin:8px 0 12px}.task-editor textarea[name=title]{min-height:80px}.task-scroll{min-width:0}
@media(max-width:760px){
 dialog input,dialog select,dialog textarea,.field input,.field select,.field textarea{font-size:16px;min-width:0;max-width:100%}
 dialog.task-editor{position:fixed;inset:auto;top:var(--editor-top,0px);left:0;right:0;bottom:auto;margin:0;width:100%;max-width:100%;height:var(--editor-height,100dvh);max-height:none;border-radius:0;padding:0;overflow:hidden;box-shadow:none;background:var(--bg)}
 .task-editor #modal-body{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
 .task-editor .modal-head{flex:none;margin:0;padding:16px 20px;border-bottom:1px solid var(--line);background:white;gap:12px}
 .task-editor .modal-head h2{font-size:19px}.task-editor .modal-head button{width:44px;height:44px;flex:none;font-size:28px}
 .task-editor #task-form{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
 .task-editor .task-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:24px 20px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding:20px}
 .task-editor .field{font-size:12px;margin-bottom:22px}.task-editor .field input,.task-editor .field select,.task-editor .field textarea{width:100%;padding:14px;background:white;font-size:16px;scroll-margin:24px}
 .task-editor textarea[name=title]{min-height:100px;resize:none}.task-editor .check-label{font-size:13px;align-items:flex-start}.task-editor .check-label input{width:20px;height:20px;flex:none}
 .task-editor .task-details summary{font-size:13px;padding-bottom:18px}
 .task-editor .task-actions{flex:none;margin:0;padding:14px 20px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:white;gap:12px}
 .task-editor .task-actions .primary{flex:1;min-height:50px;font-size:15px}.task-editor .task-actions .text-btn{font-size:13px}
}

#cloud-status{font-size:11px;line-height:1.7;padding:10px 24px;text-align:center;background:#eeeee9;color:#626d80}#cloud-gate[hidden]{display:none}#cloud-gate{position:fixed;inset:0;background:var(--bg);z-index:100;display:grid;place-items:center;padding:24px}#cloud-gate>div{max-width:420px;text-align:center}#cloud-gate p{font-size:13px;color:var(--muted);margin:18px 0 24px}#cloud-gate button[hidden]{display:none}

#cloud-status[hidden]{display:none}

#cloud-status{display:none}
