:root { --green:#176b49; --green-soft:#e6f2ec; --background:#f2f2f7; --surface:#fff; --text:#1c1c1e; --muted:#6e6e73; --separator:#d1d1d6; --red:#c44747; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif; color:var(--text); background:var(--background); }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:var(--background); }
body { padding-bottom:calc(74px + env(safe-area-inset-bottom)); }
button,select,input { font:inherit; }
button { touch-action:manipulation; }
.hidden { display:none!important; }
.demo-header { position:sticky; z-index:10; top:0; display:flex; justify-content:space-between; align-items:flex-end; gap:16px; min-height:92px; padding:calc(14px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-left)) 12px max(18px,env(safe-area-inset-right)); border-bottom:.5px solid var(--separator); background:rgba(242,242,247,.92); backdrop-filter:blur(20px); }
.demo-header p { margin:0 0 3px; color:var(--green); font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.demo-header h1 { margin:0; font-size:30px; line-height:1.08; }
.active-group { max-width:45%; overflow:hidden; padding:6px 9px; border-radius:999px; color:var(--green); background:var(--green-soft); font-size:13px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
main { width:min(760px,100%); margin:0 auto; }
.demo-screen { padding:20px 16px 32px; }
.schedule-content { display:grid; gap:18px; }
.day-heading { margin:0; font-size:22px; }
.day-subtitle { margin:4px 0 0; color:var(--muted); font-size:14px; }
.event-list,.comment-list { overflow:hidden; border:.5px solid var(--separator); border-radius:16px; background:var(--surface); }
.event-card { position:relative; display:grid; grid-template-columns:4px minmax(0,1fr) auto; gap:13px; min-height:76px; padding:14px; }
.event-card + .event-card::before { content:""; position:absolute; top:0; left:31px; right:0; border-top:.5px solid var(--separator); }
.event-accent { border-radius:4px; background:var(--green); }
.event-info { display:grid; align-content:center; gap:3px; min-width:0; }
.event-info strong { font-size:17px; }
.event-info small { overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }
.event-info em { color:var(--green); font-size:12px; font-style:normal; font-weight:650; }
.event-info .event-status { width:max-content; padding:2px 7px; border-radius:999px; color:white; background:var(--green); }
.event-info .event-status.ended { color:#636366; background:#e5e5ea; }
.event-card.live .event-accent { box-shadow:0 0 0 4px var(--green-soft); }
.event-card.ended { color:#8e8e93; background:#f7f7f8; }
.event-card.ended .event-accent { background:#aeaeb2; }
.event-card.ended .event-info small,.event-card.ended .event-time { color:#8e8e93; }
.event-time { align-self:center; color:var(--text); font-size:15px; font-weight:650; white-space:nowrap; }
.calendar-gap { margin:-9px 0; text-align:center; }
.calendar-gap span { display:inline-block; padding:3px 9px; border-radius:999px; color:var(--muted); background:#e5e5ea; font-size:11px; }
.comment-card { padding:13px 14px; color:#7a4b00; background:#fff8e8; }
.comment-card + .comment-card { border-top:.5px solid #ead8b1; }
.comment-card small { display:block; margin-top:3px; opacity:.75; }
.empty,.loading,.error { margin:24px 0; padding:28px 18px; border-radius:16px; color:var(--muted); background:var(--surface); text-align:center; }
.empty.compact { margin:0; padding:20px 16px; }
.error { color:var(--red); }
.today-status { margin:0; padding:15px 16px; border-radius:14px; color:var(--muted); background:var(--surface); font-weight:650; text-align:center; }
.tomorrow-section { display:grid; gap:14px; padding-top:6px; }
.calendar-picker { position:sticky; z-index:5; top:92px; margin:-20px -16px 20px; padding:12px 16px 10px; border-bottom:.5px solid var(--separator); background:rgba(242,242,247,.94); backdrop-filter:blur(18px); }
.week-controls { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; margin-bottom:9px; }
.week-controls button { min-height:44px; border:0; color:var(--green); background:transparent; font-weight:650; }
.week-controls button:first-child,.week-controls button:last-child { font-size:28px; }
.week-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.week-day { display:grid; place-items:center; gap:2px; min-width:0; min-height:58px; padding:5px 1px; border:0; border-radius:12px; color:var(--text); background:transparent; }
.week-day span { color:var(--muted); font-size:11px; text-transform:uppercase; }
.week-day strong { font-size:16px; }
.week-day i { width:4px; height:4px; border-radius:50%; background:transparent; }
.week-day.has-events i { background:var(--green); }
.week-day.selected { color:white; background:var(--green); }
.week-day.selected span { color:#d8eee4; }
.week-day.selected i { background:white; }
.settings-screen { display:grid; gap:18px; }
.settings-intro { display:flex; align-items:center; gap:13px; padding:4px 2px 2px; }
.settings-intro > span { display:grid; place-items:center; width:54px; height:54px; border-radius:14px; background:var(--green-soft); font-size:28px; }
.settings-intro strong { font-size:20px; }
.settings-intro p { margin:4px 0 0; color:var(--muted); line-height:1.35; }
.settings-group { overflow:hidden; border:.5px solid var(--separator); border-radius:14px; background:var(--surface); }
.settings-select { display:grid; gap:7px; padding:13px 14px; }
.settings-select span { color:var(--muted); font-size:13px; }
.settings-select select { width:100%; min-height:44px; border:0; color:var(--text); background:transparent; font-size:17px; }
.settings-options label { position:relative; display:flex; justify-content:space-between; align-items:center; gap:15px; min-height:64px; padding:11px 14px; }
.settings-options label + label::before { content:""; position:absolute; top:0; left:14px; right:0; border-top:.5px solid var(--separator); }
.settings-options label > span { display:grid; gap:3px; }
.settings-options small { color:var(--muted); }
.settings-options input { width:24px; height:24px; accent-color:var(--green); }
.settings-message { margin:0; color:var(--muted); font-size:14px; line-height:1.4; text-align:center; }
.demo-tabbar { position:fixed; z-index:20; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(3,1fr); min-height:calc(64px + env(safe-area-inset-bottom)); padding:5px max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left)); border-top:.5px solid var(--separator); background:rgba(249,249,249,.94); backdrop-filter:blur(22px); }
.demo-tabbar button { display:grid; place-items:center; align-content:center; gap:2px; min-height:54px; border:0; color:#737378; background:transparent; font-size:11px; }
.demo-tabbar svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.demo-tabbar button.active { color:var(--green); font-weight:650; }
#toast { position:fixed; z-index:40; left:50%; bottom:calc(82px + env(safe-area-inset-bottom)); max-width:calc(100% - 32px); padding:10px 14px; border-radius:999px; color:white; background:rgba(28,28,30,.9); opacity:0; pointer-events:none; transform:translate(-50%,12px); transition:.2s; }
#toast.show { opacity:1; transform:translate(-50%,0); }
@media (min-width:700px) { .demo-header { padding-left:max(calc((100% - 728px)/2),24px); padding-right:max(calc((100% - 728px)/2),24px); }.demo-tabbar { left:50%; width:760px; transform:translateX(-50%); border:.5px solid var(--separator); border-bottom:0; border-radius:18px 18px 0 0; } }
