/* Sanctuary 2.8 — Refined Ink + Aurora Brush identity. */
:root{--brand-ink:#0b1026;--brand-cyan:#66e5e1;--brand-violet:#b69bff;--surface-border:color-mix(in srgb,var(--muted) 18%,transparent)}
body{line-height:1.5;-webkit-font-smoothing:antialiased}
main{padding-top:calc(18px + env(safe-area-inset-top))}
header.app-header{gap:12px;padding:4px 0 18px;border-bottom:1px solid var(--surface-border)}
.brand-heading{min-width:0;flex:1}
.brand-lockup{display:flex;align-items:center;gap:10px}
.brand-icon{display:block;flex:none;border-radius:12px;object-fit:cover;box-shadow:0 4px 14px #0003;border:1px solid #ffffff1a}
.brand-title{min-width:0;width:min(100%,282px);line-height:1;margin:0;letter-spacing:0}
.brand-wordmark{display:block;width:100%;height:auto;object-fit:contain}
.brand-heading #today{display:block;margin:9px 0 0 1px;font-size:11px;letter-spacing:.15px}
.appearance-button{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:10px!important;border-radius:14px!important}
button.secondary{background:color-mix(in srgb,var(--card) 83%,var(--accent) 17%);color:var(--fg);border:1px solid var(--surface-border)}
input,textarea,select{background:color-mix(in srgb,var(--bg) 82%,var(--card));border-color:color-mix(in srgb,var(--muted) 34%,transparent);color:var(--fg);accent-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
input[type=checkbox]{accent-color:var(--accent)}
.notice{background:color-mix(in srgb,var(--card) 88%,var(--accent) 12%);color:var(--fg);border:1px solid var(--surface-border)}
.app-notices:empty{display:none}
.app-notices .floating-notice{position:relative;inset:auto;transform:none;width:100%;margin:14px 0 0;z-index:auto;box-shadow:0 5px 20px #0003;align-items:center;flex-wrap:wrap;font-size:12px;line-height:1.6}
.app-notices .floating-notice>.buttons{margin:0;gap:7px}
.app-notices .floating-notice button{font-size:12px;min-height:44px}
.card{border:1px solid var(--surface-border);box-shadow:0 5px 20px #0002}
.nav{background:color-mix(in srgb,var(--bg) 94%,transparent);border-color:var(--surface-border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.nav button{color:var(--muted);min-width:54px;min-height:52px;line-height:1.4}
.nav button.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.nav b{margin-bottom:3px}
.brand-home{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;margin:22px 0 17px;padding:22px;background:radial-gradient(ellipse at 100% 0%,#8a66d32b,transparent 60%),radial-gradient(ellipse at 0% 80%,#34bcb823,transparent 62%),var(--brand-ink);border:1px solid #a4b8ed28;color:#f3f5ff;box-shadow:0 18px 50px #0004;animation:brandReveal var(--motion-slow) ease both}
.brand-home-top{display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand-home-copy{min-width:0;max-width:65%}
.brand-home .welcome-kicker{font-size:9px;letter-spacing:1.8px;line-height:1.6;color:#b9c8ed}
.brand-home .welcome-kicker:before{display:none}
.brand-home h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(28px,7.8vw,38px);line-height:1.1;letter-spacing:-1px;margin:10px 0;text-shadow:none}
.brand-home p{font-size:12px;line-height:1.7;color:#b8c2df;margin:0}
.brand-home-art{display:block;width:104px;height:104px;flex-shrink:0;object-fit:cover;border-radius:23px;border:1px solid #b3caff30;box-shadow:0 8px 30px #0005;animation:brandReveal var(--motion-slow) ease both}
.brand-home .hero-stats{margin-top:21px;padding-top:17px;border-top:1px solid #d2dcff16;gap:8px}
.brand-home .hero-stat{background:#ffffff05;border-color:#c9d8ff14;padding:9px 3px;backdrop-filter:none}
.brand-home .hero-stat b{font-weight:450;font-size:23px;color:#e9eeff;font-variant-numeric:tabular-nums}
.brand-home .hero-stat span{color:#b8c2df;font-size:9px;letter-spacing:.2px}
.quick-create{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 24px}
.quick-create button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:9px 6px;font-size:12px}
.quick-create svg{flex:none}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 11px}
.section-heading h2{margin:0;font-size:18px;font-weight:600;letter-spacing:-.4px}
.section-heading>span{font-size:10px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted)}
.empty-home{display:flex;align-items:center;gap:13px;padding:18px;margin:0}
.empty-home-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:13px}
.empty-home b{display:block;font-size:13px;font-weight:600}
.empty-home p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.spaces-grid{gap:10px}
.spaces-grid button{text-align:left;padding:17px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:120px}
.spaces-grid .space-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.spaces-grid strong{font-size:13px;font-weight:600;line-height:1.3}
.spaces-grid small{font-size:10px;font-weight:400;margin-top:-7px;line-height:1.5}
.brand-welcome{position:relative;isolation:isolate;text-align:center;overflow:hidden;border-radius:24px;padding:24px 20px 23px;background:radial-gradient(ellipse at 20% 0%,#40d9d42b,transparent 58%),radial-gradient(ellipse at 100% 95%,#9672e431,transparent 63%),var(--brand-ink);border:1px solid #acb8e32b;box-shadow:0 18px 45px #0004;animation:brandReveal var(--motion-slow) ease both}
.brand-welcome-icon{display:block;width:124px;height:124px;object-fit:cover;border-radius:27px;margin:0 auto 20px;border:1px solid #b5c7ff36;box-shadow:0 12px 35px #0005}
.brand-welcome .brand-wordmark{width:min(100%,345px);margin:0 auto 17px}
.brand-welcome>p{font-size:10px;letter-spacing:1.5px;color:#bbc8e7;margin:0;line-height:1.65}
.welcome-theme-mark{display:block;object-fit:cover;width:26px;height:26px;border-radius:7px;background:none;box-shadow:none;flex-shrink:0}
.welcome-theme-brand .welcome-theme-wordmark{display:block;width:134px;height:auto;object-fit:contain}
.welcome-ready-mark{padding:0;overflow:hidden;background:var(--brand-ink);border-color:#a9beed40}
.welcome-ready-mark img{display:block;width:100%;height:100%;object-fit:cover}
.brand-studio{padding:19px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 0%,#715ac82b,transparent 75%),var(--brand-ink);color:#f3f5ff}
.brand-studio>.brand-wordmark{max-width:330px;margin:2px auto 20px}
.brand-studio-icon{width:114px;height:114px;display:block;object-fit:cover;border-radius:26px;margin:0 auto 14px;border:1px solid #ffffff20}
.brand-studio>p{font-size:12px;color:#b8c2df;margin:9px auto 14px;max-width:34ch;line-height:1.7}
.brand-studio h3{font-size:15px;font-weight:550;margin:0 0 7px}
.brand-studio button{background:linear-gradient(110deg,#83e0df,#bca6f3);color:#10152b;font-size:12px}
.brand-studio .brand-install-note{font-size:10px;margin-bottom:0;color:#b8c2df}
.brand-splash{background:var(--brand-ink)!important}
.brand-splash .brand-welcome-icon{width:min(42vw,174px);height:auto;margin-bottom:28px}
.brand-splash .brand-wordmark{margin:0 auto}
.clock{width:min(270px,78vw);height:auto;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--card));background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--card) 75%,var(--bg)),var(--bg));box-shadow:0 18px 42px #0003,inset 0 0 0 7px color-mix(in srgb,var(--accent) 4%,transparent),0 0 30px color-mix(in srgb,var(--accent) 9%,transparent);font-variant-numeric:tabular-nums}
.clock:before{content:none}
.clock-number{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);font-size:14px;line-height:1;font-weight:500;color:var(--muted);pointer-events:none}
.clock-number.major{font-size:17px;color:var(--fg);font-weight:650}
.clock-tick{position:absolute;left:var(--x);top:var(--y);width:1px;height:2.2%;background:var(--muted);opacity:.4;transform:translate(-50%,-50%) rotate(var(--tick));pointer-events:none}
.clock-tick.major{height:3.1%;width:2px;background:var(--accent);opacity:.75}
.clock .hand{z-index:2}.clock .hour{height:24%;background:var(--fg)}.clock .minute{height:33%}.clock .second{height:38%;background:var(--brand-violet)}.clock .pin{z-index:3;box-shadow:0 0 0 4px var(--bg)}
.time{font-weight:350;font-size:39px;letter-spacing:-1px;margin-top:10px}
.clock-date{text-align:center;font-size:12px;color:var(--muted);margin:2px 0 22px}
@keyframes brandReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:359px){.brand-lockup{gap:8px}.brand-icon{width:36px;height:36px}.brand-heading #today{font-size:10px}.brand-home{padding:18px}.brand-home-art{width:88px;height:88px;border-radius:20px}.brand-home-top{gap:12px}.brand-home .welcome-kicker{font-size:8px;letter-spacing:1.2px}.brand-home h2{font-size:28px}.brand-home p{font-size:11px}.quick-create button{font-size:11px}.brand-welcome{padding:22px 15px}.brand-welcome-icon{width:112px;height:112px}}
@media(prefers-reduced-motion:reduce){.brand-home,.brand-home-art,.brand-welcome{animation:none!important}}
.motion-off .brand-home,.motion-off .brand-home-art,.motion-off .brand-welcome{animation:none!important}

/* Practical controls keep the adopted identity while making small screens easier to use. */
.app-updates{min-width:0;margin:16px 0 22px;padding:18px;border:1px solid var(--surface-border);border-radius:20px;background:var(--card)}
.update-card-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px 12px}
.update-card-heading h2,.update-card-heading h3{margin:0;font-size:17px;line-height:1.4}
.update-version{display:inline-block;max-width:100%;padding:4px 9px;border-radius:99px;border:1px solid var(--surface-border);background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--fg);font-size:11px;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.update-state{min-height:1.6em;margin:10px 0;color:var(--muted);font-size:13px;line-height:1.65;overflow-wrap:anywhere}
.update-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.update-actions button{flex:1 1 130px;min-width:0;max-width:100%;min-height:44px;font-size:13px;white-space:normal;overflow-wrap:anywhere}
.list-toolbar{display:grid;gap:11px;min-width:0;margin:12px 0 17px}
.search-field{display:flex;align-items:center;gap:8px;min-width:0;margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.search-field input{flex:1;width:100%;min-width:0;min-height:46px;margin:0;font-size:16px}
.search-field button{flex:none;min-height:46px;margin:0;padding:10px 12px;font-size:12px}
.search-field button[hidden],.update-actions button[hidden]{display:none!important}
.list-sort{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.list-sort select{flex:1;min-width:0;max-width:220px;min-height:44px;margin:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--muted) 34%,transparent);border-radius:12px;font-size:16px;line-height:1.5}
.list-filters{display:flex;flex-wrap:wrap;gap:7px}
.list-filters button{flex:1 1 80px;min-width:0;min-height:44px;padding:9px 12px;border:1px solid var(--surface-border);background:var(--card);color:var(--fg);font-size:12px;line-height:1.5;white-space:normal}
.list-filters button[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--card));color:var(--fg)}
.list-summary{min-height:1.6em;margin:0;color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.entry-card{min-width:0}
.entry-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.entry-heading>div{flex:1;min-width:0}
.entry-title{display:block;margin:0;font-size:16px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}
.entry-heading small{display:block;margin-top:4px;line-height:1.6;overflow-wrap:anywhere}
.entry-details{max-width:100%;margin:14px 0 0;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.entry-card .buttons{gap:8px}
.entry-card .buttons button{min-height:44px;white-space:normal;overflow-wrap:anywhere}
.task-done .entry-title{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:var(--muted);color:var(--muted)}
.task-check{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;margin:0;padding:10px;border:1px solid var(--surface-border);border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--card));cursor:pointer}
.task-check input{appearance:auto;display:block;flex:none;width:20px!important;height:20px;margin:0!important;padding:0;accent-color:var(--accent);cursor:pointer}
.task-check:has(input:disabled){cursor:wait;opacity:.65}
.task-check:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}
.list-empty{padding:25px 18px;text-align:center;overflow-wrap:anywhere}
.list-empty h3{margin:0 0 8px;font-size:16px;line-height:1.45}
.list-empty p{margin:7px 0;color:var(--muted);font-size:13px;line-height:1.7}
.list-empty p:last-child{margin-bottom:0}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 5px var(--bg)}
.entry-card,.app-updates,.list-toolbar,.list-empty{overflow-wrap:anywhere}
main{padding-bottom:calc(115px + env(safe-area-inset-bottom))}
.nav{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}
@media(max-width:600px){main input:not([type=checkbox]):not([type=range]),main textarea,main select{font-size:16px}}
@media(max-width:359px){.app-updates{padding:16px}.update-actions button{flex-basis:100%}.list-filters{gap:6px}.list-filters button{padding:9px 8px}.entry-heading{gap:8px}}
