/* Shared tactile shell: cream ceramic / charcoal, with the existing purple brand. */
:root{--paper:#191d25;--surface:#292f39;--ink:#f8f5ef;--muted:#b8bdc9;--line:#464e5b;--face:linear-gradient(155deg,#353c48,#272d37 75%);--edge:#11161e;--shine:#ffffff26;--lift:0 6px 0 var(--edge),0 12px 22px #0002;--lavender:#d7b8fa;--green:#a7decb;--panel:#212630;background:var(--paper)}
:root[data-theme=light]{--paper:#f3f0e9;--surface:#fffcf6;--ink:#283630;--muted:#62665f;--line:#d9d7cc;--face:linear-gradient(155deg,#fffefa,#eee9df 90%);--edge:#d0cfc3;--shine:#ffffff;--lift:0 6px 0 var(--edge),0 12px 22px #4543330a;--lavender:#775795;--green:#316a56;--panel:#eae5f0;background:var(--paper);color:var(--ink)}
html body,html[data-theme=light] body,html .shell,html[data-theme=light] .shell{background:var(--paper);color:var(--ink)}
.shell{max-width:660px;padding:0 20px;border:0;min-height:100dvh}main{padding-bottom:110px}
html header.reader-header,html[data-theme=light] header.reader-header{background:var(--paper);height:100px;min-height:100px;padding:10px 0;border:0}
.header-stage{bottom:7px}.reader-header .brand-app-icon{width:72px;height:72px}.header-actions{gap:9px}
html .theme-toggle,html #refresh.refresh-control,html[data-theme=light] .theme-toggle,html[data-theme=light] #refresh.refresh-control{background:var(--face);border:1px solid var(--line);box-shadow:inset 0 2px var(--shine),0 4px 0 var(--edge);color:var(--ink);border-radius:16px!important;min-height:48px!important}
html .refresh-arrow,html .refresh-label,html[data-theme=light] .refresh-arrow,html[data-theme=light] .refresh-label{color:var(--ink)}
.edition-bar{margin:4px 1px 12px}.edition-bar span{font-size:11px!important;color:var(--muted)!important}
.feed-period{display:flex;gap:4px;padding:5px;margin:0 0 18px;border:1px solid var(--line);border-radius:19px;background:var(--panel);box-shadow:inset 0 2px 3px #0002}
html .feed-period button,html[data-theme=light] .feed-period button{flex:1;border:0;border-radius:14px;min-height:44px;color:var(--muted);background:transparent;font-weight:700;font-size:12px}
html .feed-period button[aria-pressed=true],html[data-theme=light] .feed-period button[aria-pressed=true]{background:var(--face);color:var(--ink);box-shadow:inset 0 2px var(--shine),0 3px 0 var(--edge)}
.list-heading{margin:8px 2px 12px}.list-heading>b{font-size:20px;letter-spacing:-.7px}
html .journey-status,html[data-theme=light] .journey-status{padding:18px 18px 18px 60px;border:1px solid #736286;border-radius:24px;background:linear-gradient(145deg,#494057,#302d3e);box-shadow:inset 0 2px #ffffff20,0 6px #24212f;margin-bottom:23px}
html[data-theme=light] .journey-status{background:linear-gradient(140deg,#f1e5ff,#e7dcef);border-color:#d4c1e2;box-shadow:inset 0 2px #fff9,0 6px #d7c8df}
.journey-status:before{content:'⚡';position:absolute;left:17px;top:20px;font-size:28px;filter:drop-shadow(0 3px 1px #0003)}
body[data-view=topics] .journey-status:before{content:'🗂️'}body[data-view=saved] .journey-status:before{content:'🔖'}body[data-view=after] .journey-status:before{content:'📈'}
html .journey-status b{font-size:14px;color:#f7efff;line-height:1.5}html .journey-status span{font-size:11px;color:#d6ccdf;line-height:1.65;margin-top:5px}
html[data-theme=light] .journey-status b{color:#483454}html[data-theme=light] .journey-status span{color:#67576f}
html #feed .compact-story,html[data-theme=light] #feed .compact-story{padding:16px 16px 12px;border:1px solid var(--line);border-top:2px solid var(--shine);border-radius:25px;background:var(--face);box-shadow:var(--lift);margin-bottom:17px;min-height:0;overflow:hidden;color:var(--ink)}
html #feed .compact-story>.number{position:absolute;left:14px;top:15px;min-width:26px;width:26px;margin:0;font-size:22px;line-height:28px;letter-spacing:-1px;font-weight:850;text-align:center}
#feed .rank-emblem{display:none}.compact-copy{margin-left:34px!important}
html #feed .compact-story h2{font-size:16px;line-height:1.45;margin:8px 0 5px;-webkit-line-clamp:2;max-height:none}
html #feed .compact-story h2 .headline{font-weight:800;color:var(--ink)}
html #feed .compact-story p{font-size:12px;line-height:1.5;margin:0 0 7px;color:var(--muted);-webkit-line-clamp:1;max-height:1.5em}
html #feed .compact-story .category{font-size:11px;color:var(--muted);font-weight:750}
html #feed .compact-story .past-label,html #feed .compact-story .read-label{font-size:10px;color:var(--muted)}
html #feed .compact-story.is-read .compact-copy h2,html #feed .compact-story.is-read .compact-copy p,html #feed .compact-story.is-read .reaction-counts{opacity:1}
html #feed .compact-story.is-read .read-label{border:1px solid var(--line);padding:1px 5px;border-radius:6px}
.movement-preview{display:block;width:100%;text-align:left;margin:10px 0 6px;padding:11px 13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:inset 0 2px 3px #0001;color:var(--ink)}
.movement-preview-label{display:block;font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.movement-preview-values{display:flex;flex-wrap:wrap;gap:5px 14px;margin:6px 0;font-size:12px;line-height:1.6}
.movement-preview-values b{font-size:16px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}.movement-preview-values .up{color:#a5e4bd}.movement-preview-values .down{color:#ffb7b7}
html[data-theme=light] .movement-preview-values .up{color:#236244}html[data-theme=light] .movement-preview-values .down{color:#a03341}
.movement-preview-more{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted)}.movement-preview-more b{font-size:20px;line-height:12px}
.compact-bottom{gap:5px;align-items:center}.compact-story .reaction-counts{gap:12px;flex-wrap:wrap}
.compact-story .reaction-counts>div{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
html .compact-story .reaction-counts strong{font-size:18px;line-height:1.3;color:var(--ink)}
.metric-label{font-size:10px;color:var(--muted)}.compact-story .reaction-icon{display:none}
html #feed .compact-story .bookmark,html #feed .compact-story .compact-interest,html[data-theme=light] #feed .compact-story .bookmark,html[data-theme=light] #feed .compact-story .compact-interest{width:44px;height:44px;min-height:44px;border:1px solid var(--line);border-radius:14px;background:var(--face);box-shadow:inset 0 2px var(--shine),0 3px var(--edge);color:var(--lavender)}
html #feed .compact-story button[aria-pressed=true]{background:#d6bce9;color:#332440}
.compact-actions{gap:7px}html #feed .compact-story .compact-source{color:var(--muted);font-size:10px;margin-top:6px;white-space:normal;line-height:1.6}
.topic-grid{gap:18px 14px;margin:3px 0 20px}
html .topic-grid button,html[data-theme=light] .topic-grid button{position:relative;background:var(--face);border:1px solid var(--line);border-top:2px solid var(--shine);border-radius:25px;box-shadow:var(--lift);min-height:155px;padding:18px;gap:8px;color:var(--ink)}
.topic-emoji{display:grid;place-items:center;font-style:normal;width:43px;height:43px;font-size:29px;background:var(--face);border-radius:14px;border:1px solid var(--shine);box-shadow:0 3px 6px #0002;margin-bottom:3px}
.topic-grid button b{font-size:17px}.topic-grid button span{font-size:11px;color:var(--muted)}.topic-grid button:not(:disabled):after{content:'↗';position:absolute;right:16px;bottom:16px;font-size:20px;color:var(--lavender)}.topic-grid button:disabled{opacity:.65}
html .bottom-nav,html[data-theme=light] .bottom-nav{width:min(650px,calc(100% - 16px));bottom:max(8px,env(safe-area-inset-bottom));border:1px solid var(--line);border-top:2px solid var(--shine);border-radius:26px;background:var(--face);box-shadow:0 6px 0 var(--edge),0 -6px 24px #0002;padding:8px 5px;gap:2px}
html .bottom-nav button{min-height:61px;padding:2px;border-radius:18px;color:var(--muted)}
html .bottom-nav button>.nav-icon,html .bottom-nav .nav-signature .nav-icon{height:35px;width:40px;border:0;margin:0;box-shadow:none;background:none;color:inherit;display:grid;place-items:center}
.nav-emoji{font-size:25px;line-height:32px;filter:drop-shadow(0 2px 1px #0003)}
html .bottom-nav button>.nav-label{font-size:10px;margin:0;color:var(--muted)}
html .bottom-nav button[aria-pressed=true],html[data-theme=light] .bottom-nav button[aria-pressed=true]{background:var(--panel);box-shadow:inset 0 2px 3px #0002}
html .bottom-nav button[aria-pressed=true] .nav-icon,html[data-theme=light] .bottom-nav button[aria-pressed=true] .nav-icon{background:none;box-shadow:none}
html .bottom-nav button[aria-pressed=true] .nav-label,html[data-theme=light] .bottom-nav button[aria-pressed=true] .nav-label{color:var(--ink)}
.pagination{margin:23px 0 18px;border:0;padding:0}.page-controls{border:1px solid var(--line);background:var(--face);padding:10px;border-radius:21px;box-shadow:var(--lift)}
html .page-controls button,html[data-theme=light] .page-controls button{background:var(--panel);border:1px solid var(--line);box-shadow:inset 0 1px var(--shine),0 3px var(--edge);color:var(--ink);padding:8px 14px;font-size:12px}
.page-numbers{display:none}.single-page .page-controls{justify-content:center;padding:12px;box-shadow:none;background:transparent;border:0}.single-page .page-controls>button{display:none}.page-controls>span{font-size:13px}.page-controls small{font-size:10px}
html .empty{padding:28px 22px;border:1px solid var(--line);border-radius:25px;background:var(--face);box-shadow:var(--lift);font-size:14px;color:var(--muted)}
html .browse-past{background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:0 3px var(--edge);color:var(--lavender);min-height:48px;margin-top:18px;font-weight:750}
html .reading-card,html .daily-policy,html .refresh-settings,html[data-theme=light] .reading-card,html[data-theme=light] .daily-policy,html[data-theme=light] .refresh-settings{background:var(--face);border:1px solid var(--line);border-top:2px solid var(--shine);border-radius:25px;box-shadow:var(--lift);padding:23px;margin-bottom:20px;color:var(--ink)}
html dialog,html[data-theme=light] dialog{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--shine);border-radius:28px;padding:24px;box-shadow:0 12px 45px #0006;overscroll-behavior:contain;color:var(--ink)}
html dialog p,html dialog li{color:var(--muted)}html .close,html[data-theme=light] .close{background:var(--face);color:var(--ink);box-shadow:0 3px var(--edge);border:1px solid var(--line)}
button{touch-action:manipulation;transition:transform .12s,box-shadow .12s}button:not(:disabled):active{transform:translateY(2px)}.headline:active{transform:none}
button:focus-visible,a:focus-visible{outline:3px solid var(--lavender);outline-offset:3px}
@media(max-width:400px){.shell{padding:0 12px}html #feed .compact-story{padding:13px 12px 11px}.compact-copy{margin-left:27px!important}html #feed .compact-story>.number{left:9px;width:23px;font-size:20px}.compact-story .reaction-counts{gap:7px}html .compact-story .reaction-counts strong{font-size:16px}.metric-label{font-size:9px}.compact-actions{gap:5px}html #feed .compact-story h2{font-size:15px}.topic-grid{gap:15px 12px}}
@media(max-width:600px){dialog{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:26px 26px 0 0!important;padding:20px 18px calc(24px + env(safe-area-inset-bottom))!important}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

html .compact-story .reaction-counts .metric-label{color:var(--muted);font-size:10px}
html .issue-evidence p,html .issue-evidence small{color:#c9cbd5}

/* The main destination rises from the dock like the user's other app launch controls. */
html .bottom-nav{overflow:visible;align-items:end;grid-template-columns:1fr 1fr 1.25fr 1fr 1fr}
html .bottom-nav button.nav-signature,html[data-theme=light] .bottom-nav button.nav-signature{position:relative;min-height:92px;margin-top:-28px;padding:7px 3px 6px;border:2px solid #7d698f;border-top-color:#dbc7ee;border-radius:28px;background:var(--face);box-shadow:inset 0 2px var(--shine),0 5px 0 var(--edge),0 -5px 14px #0002;gap:3px;transform:translateY(0)}
html .bottom-nav .nav-signature>.nav-icon,html .bottom-nav .nav-signature[aria-pressed=true]>.nav-icon{width:56px;height:56px;display:grid;place-items:center;margin:0;background:transparent;box-shadow:none;border-radius:16px}
.nav-main-art{display:block;width:52px;height:52px;object-fit:contain;border-radius:15px;filter:drop-shadow(0 3px 3px #0004)}
html .bottom-nav .nav-signature>.nav-label{font-size:12px;font-weight:800;color:var(--ink);line-height:17px}
html .bottom-nav .nav-signature[aria-pressed=true],html[data-theme=light] .bottom-nav .nav-signature[aria-pressed=true]{border:3px solid #c7a6e5;padding:6px 2px 5px;box-shadow:inset 0 2px var(--shine),0 5px 0 var(--edge),0 0 0 3px #c7a6e520}
html[data-theme=light] .bottom-nav .nav-signature{border-color:#b79ccb;border-top-color:#e5d5ef}
html[data-theme=light] .bottom-nav .nav-signature[aria-pressed=true]{border-color:#9772b6}
html .bottom-nav button.nav-signature:active{transform:translateY(3px);box-shadow:inset 0 1px var(--shine),0 2px 0 var(--edge)}
main{padding-bottom:137px}
@media(max-width:360px){html .bottom-nav button.nav-signature{border-radius:24px}.nav-main-art{width:46px;height:46px}html .bottom-nav .nav-signature>.nav-icon{width:50px;height:52px}}

.receive-settings h2{font-size:21px;margin:0 0 12px}.delivery-controls{padding-top:17px;margin-top:18px;border-top:1px solid var(--line)}.delivery-controls b{font-size:14px}.delivery-controls button{min-height:48px;padding:12px 17px;border:1px solid var(--line);border-radius:15px;background:var(--face);box-shadow:inset 0 2px var(--shine),0 4px var(--edge);color:var(--ink);font-weight:750;margin:7px 0 12px}.delivery-controls small{margin:8px 0}#interval{min-width:120px}#interval-label{font-size:12px;color:var(--lavender)}

.list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.refresh-inline{flex-shrink:0;min-height:44px;padding:9px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;box-shadow:0 3px 0 rgba(0,0,0,.14);cursor:pointer}.refresh-inline:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.14)}.refresh-inline:disabled{opacity:.6;cursor:wait}.refresh-control .refresh-label{font-size:11px;white-space:nowrap}.receive-settings>.refresh-inline{margin:0 0 12px}

html #refresh.refresh-control{width:76px!important}

.journey-status[hidden]{display:none!important}.supply-inline{margin:12px 0 20px;padding:12px 15px;border-left:3px solid var(--lavender);font-size:14px;color:var(--ink);line-height:1.6}.supply-inline span{display:block;color:var(--muted);font-size:12px}.archive-preview>header{padding:8px 0 14px}.archive-preview h2{font-size:19px;margin:0 0 7px}.archive-preview>header p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.archive-source-date{font-size:12px;color:var(--muted);margin:16px 3px 8px}.archive-preview .browse-past{width:100%;margin-top:14px}

/* Dock surface reaches the screen edge; controls stay above gesture/navigation areas. */
html .bottom-nav,html[data-theme=light] .bottom-nav{width:100%;max-width:none;bottom:0;border-radius:24px 24px 0 0;border-bottom:0;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -6px 24px #0002}
html .bottom-nav button{min-width:0}
main{padding-bottom:calc(125px + env(safe-area-inset-bottom))}

.policy-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.policy-actions button{min-height:44px;max-width:100%;white-space:normal}

/* Light/dark sliding switch; checked means dark, matching the saved theme. */
html .theme-toggle,html[data-theme=light] .theme-toggle{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;flex:none;width:112px;height:48px;padding:4px;gap:0;border-radius:26px!important;background:var(--panel);box-shadow:inset 0 2px 4px #0002,0 3px 0 var(--edge);overflow:hidden;touch-action:manipulation}
html .theme-toggle .theme-thumb{position:absolute;z-index:-1;left:4px;top:4px;bottom:4px;width:calc(50% - 4px);border-radius:22px;background:var(--face);border:1px solid var(--line);box-shadow:inset 0 2px var(--shine),0 2px 4px #0003;transform:translateX(0);transition:transform .2s ease}
html .theme-toggle[aria-checked=true] .theme-thumb{transform:translateX(100%)}
html .theme-toggle .theme-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1;color:var(--muted);font-size:11px;font-weight:650}
html .theme-toggle .theme-option i{font-style:normal;font-size:19px;line-height:20px}html .theme-toggle .theme-option b{font-size:10px;line-height:12px;font-weight:650}
html .theme-toggle[aria-checked=true] .theme-dark,html .theme-toggle[aria-checked=false] .theme-light{color:var(--ink)}
html .theme-toggle:focus-visible{outline:3px solid var(--lavender);outline-offset:3px}
@media(prefers-reduced-motion:reduce){html .theme-toggle .theme-thumb{transition:none}}
