:root{
  --surface:#f3f7f8;--surface-2:#e6eef0;--card:#fff;--ink:#173039;--muted:#60747b;
  --primary:#137180;--primary-deep:#0d5865;--soft-blue:#dceef2;--mint:#bfe5d7;
  --amber:#f0ae55;--amber-soft:#fff0d8;--line:rgba(24,56,66,.14);
  --shadow:0 22px 65px rgba(34,75,84,.11);--font-scale:1.08;--radius:24px;
}
:root[data-theme="dark"]{
  --surface:#0d191d;--surface-2:#13242a;--card:#172a30;--ink:#f1f8f8;--muted:#b1c1c5;
  --primary:#50b7c3;--primary-deep:#70cad3;--soft-blue:#1e3b43;--mint:#37695e;
  --amber:#ffc16d;--amber-soft:#40321e;--line:rgba(255,255,255,.12);--shadow:0 22px 65px rgba(0,0,0,.3);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface);color:var(--ink);font:calc(17px * var(--font-scale))/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;transition:background .2s,color .2s}
button,textarea{font:inherit}
button,a,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:2px}
.app-page{min-height:100vh;padding-bottom:108px}
.shell,.app-header{width:min(1060px,calc(100% - 38px));margin-inline:auto}
.app-header{height:76px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:1.08rem;font-weight:800;letter-spacing:-.03em}
.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;color:#fff;background:var(--primary);font-size:1.05rem}
.desktop-nav{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.desktop-nav a{padding:9px 14px;border-radius:10px;color:var(--muted);text-decoration:none;font-size:.83rem;font-weight:700}
.desktop-nav a.active{color:var(--primary-deep);background:var(--soft-blue)}
.bottom-nav{position:fixed;z-index:50;left:50%;bottom:17px;transform:translateX(-50%);width:min(520px,calc(100% - 24px));min-height:72px;padding:7px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--card) 91%,transparent);box-shadow:0 18px 50px rgba(22,55,63,.2);backdrop-filter:blur(18px)}
.bottom-nav a{border-radius:15px;color:var(--muted);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.71rem;font-weight:700}
.bottom-nav a b{font-size:1.18rem;line-height:1}
.bottom-nav a.active{color:var(--primary-deep);background:var(--soft-blue)}
.home-hero{min-height:440px;padding:58px 0 70px;display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center}
.eyebrow{display:flex;align-items:center;gap:8px;color:var(--primary);font-size:.83rem;font-weight:780}
.capitalize{text-transform:capitalize}
.home-copy h1{margin:18px 0;font-size:clamp(3rem,6.2vw,5.1rem);line-height:.94;letter-spacing:-.065em;font-weight:820}
.home-copy p{max-width:530px;margin:0;color:var(--muted);font-size:1.09rem;line-height:1.65}
.primary-action{width:fit-content;margin-top:28px;padding:14px 18px;display:flex;align-items:center;gap:9px;border-radius:14px;color:#fff;background:var(--primary);text-decoration:none;font-size:.95rem;font-weight:760;box-shadow:0 13px 30px rgba(19,113,128,.22)}
.ring-card{min-height:330px;padding:35px;display:grid;place-items:center;text-align:center;border:1px solid var(--line);border-radius:32px;background:var(--card);box-shadow:var(--shadow)}
.ring-card p{margin:0;color:var(--muted);font-size:.86rem}.ring-card p strong{display:block;color:var(--ink);font-size:1rem}
.progress-ring{--progress:0deg;width:210px;aspect-ratio:1;flex:none;padding:18px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--amber) var(--progress),var(--surface-2) 0)}
.progress-ring.small{width:118px;padding:10px}
.progress-ring>div{width:100%;height:100%;border-radius:50%;display:grid;place-content:center;text-align:center;background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}
.progress-ring strong{font-size:2.75rem;letter-spacing:-.06em;line-height:1}.progress-ring.small strong{font-size:1.45rem}
.progress-ring span{margin-top:5px;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.route-card{min-height:170px;padding:27px;display:grid;grid-template-columns:50px 1fr 22px;gap:18px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--card);text-decoration:none;box-shadow:var(--shadow)}
.route-icon,.purpose-badge,.screen-icon,.setting-icon{display:grid;place-items:center;border-radius:15px}
.route-icon{width:50px;height:50px;color:var(--primary-deep);background:var(--mint);font-size:1.2rem}.route-card.calendar .route-icon{color:#7b541e;background:var(--amber-soft)}
.route-card small,.purpose-home small,.screen-heading small,.day-summary small{color:var(--primary);font-size:.73rem;font-weight:820;letter-spacing:.1em}
.route-card h2{margin:4px 0;font-size:1.38rem;letter-spacing:-.03em}.route-card p{margin:0;color:var(--muted);font-size:.9rem}.route-card>i{color:var(--muted);font-style:normal}
.purpose-home{margin-top:16px;padding:28px;display:grid;grid-template-columns:54px 1fr;gap:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.purpose-badge{width:54px;height:54px;color:#7b541e;background:var(--amber-soft);font-size:1.2rem}.purpose-home h2{margin:5px 0 14px;font-size:1.2rem}
.purpose-home textarea{width:100%;padding:15px;border:1px solid var(--line);border-radius:14px;resize:vertical;outline:none;color:var(--ink);background:var(--surface);font-size:1rem}.purpose-home em{display:block;margin-top:7px;color:var(--muted);font-size:.74rem;font-style:normal;text-align:right}
.screen-shell{width:min(1060px,calc(100% - 38px));margin:auto;padding:55px 0 40px}
.screen-heading{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:center;margin-bottom:30px}.screen-heading.simple{grid-template-columns:56px 1fr}
.screen-icon{width:56px;height:56px;color:var(--primary-deep);background:var(--mint);font-size:1.25rem}
.screen-heading h1{margin:3px 0;font-size:clamp(2.5rem,5vw,4rem);line-height:1;letter-spacing:-.055em}.screen-heading p{margin:0;color:var(--muted);font-size:.92rem}
.reset-button{display:flex;align-items:center;gap:7px;padding:10px;border:0;color:var(--muted);background:transparent;cursor:pointer;font-size:.84rem}.reset-button:disabled{opacity:.35}
.frequency-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:14px;padding:7px;border:1px solid var(--line);border-radius:17px;background:var(--surface-2)}
.frequency-tabs button{min-height:54px;padding:7px 4px;border:0;border-radius:12px;color:var(--muted);background:transparent;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-size:.85rem}
.frequency-tabs button small{min-width:23px;padding:3px 6px;border-radius:20px;background:color-mix(in srgb,var(--primary) 10%,transparent);font-size:.65rem}.frequency-tabs button.active{color:#fff;background:var(--primary);box-shadow:0 8px 22px rgba(19,113,128,.2)}.frequency-tabs button.active small{background:rgba(255,255,255,.16)}
.norm-card,.calendar-panel,.day-summary,.day-detail,.settings-card,.privacy-note{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.norm-card{overflow:hidden}.norm-card-head{padding:19px 25px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--soft-blue),transparent)}.norm-card-head>strong{font-size:.98rem}
.norm-card-actions{display:flex;align-items:center;gap:8px}.count{padding:5px 9px;border-radius:99px;color:var(--primary-deep);background:var(--mint);font-size:.75rem;font-weight:800}.order-toggle{min-height:33px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;color:var(--muted);background:var(--card);cursor:pointer;font-size:.76rem;font-weight:720}.order-toggle.active{color:#fff;border-color:var(--primary);background:var(--primary)}
.practice-list{padding:7px 18px 12px}.practice-row{display:grid;grid-template-columns:36px 1fr;gap:13px;align-items:start;padding:16px 10px;border-bottom:1px solid var(--line)}.practice-row:last-child{border-bottom:0}.practice-row.ordering{grid-template-columns:68px 1fr}
.check-button{width:31px;height:31px;border:1.5px solid var(--line);border-radius:9px;color:#fff;background:var(--surface-2);display:grid;place-items:center;cursor:pointer}.practice-row.checked .check-button{border-color:var(--primary);background:var(--primary)}
.practice-row.checked summary>span{color:var(--muted);text-decoration:line-through}.practice-row details summary{min-height:31px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font-size:.98rem;font-weight:690}.practice-row summary::-webkit-details-marker{display:none}.practice-row details p{max-width:760px;margin:8px 28px 0 0;color:var(--muted);font-size:.87rem;line-height:1.6}
.order-controls{display:grid;grid-template-columns:repeat(2,31px);gap:5px}.order-controls button{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;color:var(--primary-deep);background:var(--soft-blue);cursor:pointer}.order-controls button:disabled{opacity:.25}
.calendar-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.calendar-panel{padding:23px}.native-calendar>header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;margin-bottom:16px}.native-calendar>header strong{text-align:center;font-size:.96rem}.native-calendar>header button{width:40px;height:40px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:var(--surface);cursor:pointer}.native-calendar>header button:disabled{opacity:.25}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays span{padding:6px 0;color:var(--muted);text-align:center;font-size:.7rem;font-weight:760}.calendar-grid button{position:relative;aspect-ratio:1;border:0;border-radius:12px;color:var(--ink);background:transparent;cursor:pointer;font-size:.84rem}.calendar-grid button:hover:not(:disabled){background:var(--surface-2)}.calendar-grid button.outside{color:color-mix(in srgb,var(--muted) 45%,transparent)}.calendar-grid button:disabled{opacity:.22}.calendar-grid button.partial:after{content:"";position:absolute;bottom:5px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--amber);transform:translateX(-50%)}.calendar-grid button.complete{color:#fff;background:var(--primary)}.calendar-grid button.selected{color:#fff;background:var(--amber);box-shadow:0 7px 16px color-mix(in srgb,var(--amber) 28%,transparent)}.calendar-grid button.selected:after{background:#fff}
.calendar-key{margin-top:18px;padding-top:16px;display:flex;gap:15px;flex-wrap:wrap;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem}.calendar-key span{display:flex;align-items:center;gap:6px}.calendar-key i{width:9px;height:9px;border-radius:3px;background:var(--surface-2)}.calendar-key i.partial{background:var(--amber)}.calendar-key i.complete{background:var(--primary)}
.day-summary{padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.day-summary h2{margin:7px 0 6px;font-size:1.4rem;line-height:1.2;letter-spacing:-.03em}.day-summary p{margin:0;color:var(--muted);font-size:.84rem}.day-summary .progress-ring{margin-bottom:22px}.day-detail{margin-top:16px;padding:20px}.status-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.status-columns>section{padding:20px;border:1px solid var(--line);border-radius:19px;background:var(--surface)}.status-columns header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.status-dot{width:31px;height:31px;display:grid;place-items:center;border-radius:10px}.status-dot.done{color:#fff;background:var(--primary)}.status-dot.pending{color:#7b541e;background:var(--amber-soft)}.status-columns h3{margin:0;font-size:.98rem}.status-columns header p{margin:2px 0 0;color:var(--muted);font-size:.76rem}.status-list{display:grid;gap:7px}.status-list button{min-height:46px;padding:9px 11px;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--card);cursor:pointer;font-size:.86rem}.status-list button>span{width:23px;height:23px;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px}.status-list button.done span{color:#fff;border-color:var(--primary);background:var(--primary)}.empty-state{margin:0;padding:18px;color:var(--muted);text-align:center;font-size:.82rem}
.settings-screen{max-width:780px}.settings-card{padding:0 27px}.setting-row,.setting-block{padding:25px 0}.setting-row{display:grid;grid-template-columns:50px 1fr auto;gap:15px;align-items:center;border-bottom:1px solid var(--line)}.setting-icon{width:50px;height:50px;color:var(--primary-deep);background:var(--soft-blue);font-size:1.2rem}.setting-row strong,.setting-label strong{font-size:.98rem}.setting-row p,.setting-label p{margin:4px 0 0;color:var(--muted);font-size:.86rem}.setting-label{display:grid;grid-template-columns:50px 1fr;gap:15px;align-items:center}.theme-switch{width:52px;height:31px;padding:3px;border:0;border-radius:99px;background:var(--surface-2);cursor:pointer}.theme-switch span{width:25px;height:25px;display:block;border-radius:50%;background:var(--card);box-shadow:0 2px 7px rgba(0,0,0,.17);transition:transform .2s}.theme-switch.active{background:var(--primary)}.theme-switch.active span{transform:translateX(21px)}.font-options{margin-top:18px;padding:5px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;border-radius:14px;background:var(--surface-2)}.font-options button{min-height:46px;border:0;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer;font-size:.86rem}.font-options button.active{color:#fff;background:var(--primary)}.privacy-note{margin-top:14px;padding:20px 24px;box-shadow:none}.privacy-note strong{font-size:.92rem}.privacy-note p{margin:4px 0 0;color:var(--muted);font-size:.84rem}
@media(max-width:760px){
  .desktop-nav{display:none}.app-header{height:68px}.home-hero{min-height:auto;padding:40px 0 50px;grid-template-columns:1fr;gap:38px}.home-copy h1{font-size:clamp(2.7rem,12vw,3.8rem);line-height:.98}.ring-card{min-height:285px}.progress-ring{width:192px}.home-grid{grid-template-columns:1fr}.route-card{min-height:148px}.purpose-home{grid-template-columns:1fr}.screen-shell{padding-top:40px}.screen-heading{grid-template-columns:50px 1fr auto}.screen-heading.simple{grid-template-columns:50px 1fr}.screen-icon{width:50px;height:50px}.reset-button{font-size:0}.frequency-tabs{gap:4px;padding:5px}.frequency-tabs button{min-width:0;min-height:53px;padding:6px 2px;flex-direction:column;gap:2px;font-size:.66rem;line-height:1.05}.frequency-tabs button small{min-width:20px;padding:2px 5px;font-size:.58rem}.norm-card-head{padding:16px 14px}.norm-card-actions{gap:5px}.order-toggle{padding:6px;font-size:.68rem}.practice-list{padding-inline:8px}.calendar-layout{grid-template-columns:1fr}.day-summary{flex-direction:row;gap:20px;text-align:left}.day-summary .progress-ring{margin:0}.status-columns{grid-template-columns:1fr}.calendar-panel{padding:17px 12px}.settings-card{padding-inline:20px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
