:root{--bg:#f7f6f2;--surface:#fff;--ink:#233b36;--muted:#72817b;--line:#e2e6df;--accent:#236d58;--tint:#e8f1e6;--peach:#f9e3cf;--danger:#aa4943;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c59c54;outline-offset:3px}[hidden]{display:none!important}a{color:var(--accent);text-underline-offset:3px}button{border:0;background:transparent}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(34px,5vw,52px);line-height:1.07;letter-spacing:-2px;margin-bottom:12px;font-weight:650}h2{font-size:21px;letter-spacing:-.6px;margin-bottom:8px}h3{font-size:19px}p{line-height:1.55}.app{max-width:1050px;margin:auto;padding:0 30px;padding-top:var(--tg-content-safe-area-inset-top,0px)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;font-weight:750;font-size:24px;letter-spacing:-.8px}.brand-caption{display:block;font-size:11px;font-weight:500;letter-spacing:.8px;color:var(--muted);margin-top:2px}.mascot{background:var(--accent);color:#fff;display:grid;place-items:center;width:43px;height:43px;border-radius:15px 15px 19px 19px;font-size:29px;transform:rotate(-7deg);font-family:Georgia,serif}.icon-button{font-size:24px;min-width:42px;min-height:42px;border-radius:50%}.icon-button:hover{background:var(--tint)}.intro{display:flex;justify-content:space-between;align-items:center;padding:42px 0 26px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--accent);display:block;margin-bottom:14px}.intro p{color:var(--muted);font-size:14px;margin:0}.profile{background:var(--peach);padding:10px 16px;border-radius:24px;font-size:13px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:24px}.scope button{padding:12px 18px;font-size:14px;border-bottom:3px solid transparent}.scope button.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}.toolbar{display:flex;gap:12px;margin-bottom:16px}.search{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 15px;flex:1;min-width:0}.search span{font-size:25px;color:var(--muted)}input,select{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:11px;min-width:0;width:100%;font-size:14px}.search input{border:0;outline-offset:-2px;padding:14px 0;background:transparent}.outline{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 15px;font-size:13px}.filters{background:var(--surface);border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px;margin-bottom:20px}.filters label{font-size:12px;color:var(--muted);display:grid;gap:7px}.plain{font-size:13px;color:var(--accent);padding:10px}.catalog-head{display:flex;align-items:center;justify-content:space-between;margin:30px 0 18px;gap:10px}.catalog-head p{font-size:12px;color:var(--muted);margin:0}.view-switch{display:flex;background:#ebece6;padding:4px;border-radius:10px;flex-shrink:0}.view-switch button{padding:8px 12px;font-size:12px;border-radius:7px}.view-switch .active{background:var(--surface);box-shadow:0 1px 4px #00000009}.event-list{display:grid;gap:12px}.event-card{display:grid;grid-template-columns:62px 1fr auto;align-items:start;gap:20px;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:23px;transition:transform .15s,border-color .15s}.event-card:hover{border-color:#91b39d;transform:translateY(-1px)}.date-tile{text-align:center;border-radius:11px;background:var(--tint);padding:11px 5px;display:grid;gap:4px;color:var(--accent);width:60px}.date-tile strong{font-size:25px;font-weight:650;line-height:1}.date-tile span{font-size:10px;text-transform:uppercase;letter-spacing:1px}.event-title{display:block;font-size:18px;letter-spacing:-.4px;line-height:1.25;font-weight:650;margin:9px 0}.event-meta{display:block;font-size:12px;color:var(--muted);line-height:1.7}.tags{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.tag{font-size:10px;padding:4px 8px;border-radius:5px;background:var(--bg);letter-spacing:.15px}.tag.high{background:var(--peach);color:#855326}.decision{font-size:11px;white-space:nowrap;padding:7px 10px;border-radius:20px;background:var(--bg)}.decision.approved{background:var(--tint);color:var(--accent)}.decision.rejected{color:var(--muted)}.going{font-size:11px;color:var(--accent);margin-top:10px;display:block}.cancelled{color:var(--danger)}.empty{padding:40px 20px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted);font-size:14px}footer{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted);padding:34px 0 25px;border-top:1px solid var(--line);margin-top:38px;letter-spacing:.3px}#undated{margin-top:28px}#notice{padding:14px;border-radius:10px;background:var(--peach);margin-bottom:15px;font-size:13px}.month-bar{display:flex;align-items:center;gap:10px;margin-bottom:15px}.month-bar h2{margin:0;flex:1;text-transform:capitalize}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{text-align:center;color:var(--muted);font-size:11px;padding:10px}.month-grid{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:116px;padding:8px;min-width:0;text-align:left}.day:nth-child(7n){border-right:0}.day.other{opacity:.4}.day.selected{background:var(--tint)}.day.today .day-number{background:var(--accent);color:#fff;border-radius:50%}.day-number{display:inline-grid;place-items:center;min-width:24px;height:24px;font-size:12px}.day-event{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;padding:5px;margin-top:3px;border-radius:4px;background:var(--bg)}.day-event.approved{color:var(--accent);background:var(--tint)}.day-event.rejected{opacity:.5}.legend{display:flex;gap:18px;font-size:11px;color:var(--muted);padding:13px 0 25px}.legend span:first-child{color:var(--accent)}dialog{width:min(680px,calc(100% - 24px));max-height:90dvh;border:1px solid var(--line);border-radius:22px;padding:25px;background:var(--surface);color:var(--ink)}dialog::backdrop{background:#18342b80;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-top .eyebrow{margin:0}dialog h2{font-size:28px;line-height:1.2;margin:15px 0 20px;overflow-wrap:anywhere}.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}.fact-label{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}.fact-value{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.section{padding:19px 0;border-top:1px solid var(--line)}.section h3{font-size:14px;margin:0 0 10px}.section p,.program{font-size:13px;line-height:1.65;overflow-wrap:anywhere}.program h2,.program h3,.program h4{font-size:16px;margin:16px 0 7px}.program ul{padding-left:20px}.program a{word-break:break-word}.source{display:block;margin:10px 0;font-size:12px;overflow-wrap:anywhere}.source small{display:block;color:var(--muted);margin-top:3px}.button,.primary,.secondary{display:inline-block;padding:12px 18px;border-radius:10px;font-size:13px;text-decoration:none;text-align:center}.primary{background:var(--accent);color:#fff}.secondary{border:1px solid var(--line);background:var(--surface)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.actions button{flex:1}.confirmation{padding:18px;border-radius:12px;background:var(--tint);margin-top:20px}.confirmation p{margin-bottom:10px;font-size:14px}.copy-note{font-size:11px;color:var(--muted);margin-bottom:10px}.gate{padding:70px 0;max-width:500px}.gate p{color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90%;background:var(--ink);color:var(--surface);border-radius:12px;padding:14px 20px;font-size:13px;z-index:5;box-shadow:0 8px 30px #0002}
@media(max-width:600px){.app{padding-left:18px;padding-right:18px}.topbar{padding:18px 0}.brand{font-size:21px}.intro{padding:30px 0 20px}.intro p{font-size:12px;max-width:245px}.profile{font-size:11px;max-width:90px;padding:8px 10px}.scope{gap:0;margin-bottom:18px}.scope button{font-size:12px;padding:12px 11px;flex:1}.toolbar{gap:8px}.outline{padding:10px;font-size:12px}.filters{grid-template-columns:1fr 1fr;padding:14px;gap:12px}.catalog-head{margin-top:24px}.catalog-head h2{font-size:18px}.view-switch button{font-size:11px;padding:8px}.event-card{padding:16px;grid-template-columns:46px 1fr;gap:13px;position:relative}.date-tile{width:45px;padding:10px 2px}.date-tile strong{font-size:23px}.event-title{font-size:16px}.event-card>.decision{grid-column:2;justify-self:start;padding:4px 8px;margin-top:-5px}.event-meta{font-size:11px}.tag{font-size:9px}.day{min-height:67px;padding:3px}.day-event{font-size:0;width:5px;height:5px;display:inline-block;padding:0;margin:2px;background:var(--muted)}.day-event.approved{background:var(--accent)}.day-event.rejected{background:var(--danger)}.day-number{font-size:11px;width:23px;height:23px}.month-bar{gap:3px}.month-bar h2{font-size:17px}.month-bar .icon-button{min-width:34px}.facts{gap:15px}dialog{padding:20px 18px}dialog h2{font-size:24px}footer{flex-direction:column;gap:8px}h1{letter-spacing:-1.5px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}:root[data-theme=dark]{--bg:#192722;--surface:#22332d;--ink:#e8eee8;--muted:#a0b1a5;--line:#36473e;--accent:#9bcaae;--tint:#304c3d;--peach:#504333}.dark .primary{color:#192722}:root[data-theme=dark] .primary{color:#192722}:root[data-theme=dark] .view-switch{background:#17231e}:root[data-theme=dark] .tag.high{color:#efcea3}

.search>span{font-size:0;display:block;width:17px;height:17px;position:relative;flex-shrink:0}.search>span::before{content:"";display:block;width:10px;height:10px;border:1.5px solid var(--muted);border-radius:50%}.search>span::after{content:"";position:absolute;width:6px;height:1.5px;background:var(--muted);transform:rotate(45deg);left:10px;top:12px}

/* Meetupuzik: milk, graphite, apricot and mint. */
:root{color-scheme:light;--bg:#f8f5ef;--surface:#fffdf9;--ink:#303034;--muted:#74716e;--line:#e7e1d8;--accent:#306b55;--tint:#e5f0e8;--peach:#ffead4;--danger:#aa4943;--apricot:#f2ad70;--soft:#f0ece5;--shadow:0 16px 60px #40311c12}
:root[data-theme=dark]{color-scheme:dark;--bg:#202124;--surface:#292a2e;--ink:#f4eee6;--muted:#b3aea6;--line:#3c3d41;--accent:#a2d7ba;--tint:#2e463d;--peach:#49382e;--danger:#efa29c;--apricot:#f3b47e;--soft:#25262a;--shadow:0 16px 60px #0003}
body{background:var(--bg);min-height:100dvh}
.app{max-width:1040px;padding-bottom:env(safe-area-inset-bottom)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{padding:18px 0;gap:12px}
.brand{gap:10px;font-size:25px;letter-spacing:-1px}
.brand-caption{font-size:10px;letter-spacing:.5px;margin-top:4px}
.mascot{display:block;width:64px;height:64px;object-fit:contain;image-rendering:pixelated;background:none;transform:none;border-radius:0;filter:drop-shadow(0 3px 0 #00000008)}
.brand:hover .mascot{animation:pet-hop .6s ease}
@keyframes pet-hop{0%,100%{transform:translateY(0)}45%{transform:translateY(-5px) rotate(-5deg)}}
.header-actions{display:flex;align-items:center;gap:8px}
.theme-control select{width:auto;max-width:160px;background:var(--soft);font-size:12px;border:1px solid var(--line);padding:10px;border-radius:10px}
.icon-button{border:1px solid var(--line);font-size:22px;min-width:40px;min-height:40px;border-radius:12px;background:var(--surface)}
.intro{padding:32px 0 27px}
h1{font-size:clamp(34px,5vw,46px);font-weight:730;letter-spacing:-1.8px;margin-bottom:10px}
.eyebrow{color:var(--muted);letter-spacing:1.8px;font-size:10px;margin-bottom:10px}
.profile{background:var(--surface);border:1px solid var(--line);padding:9px 14px}
.profile::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--apricot);margin-right:8px;vertical-align:middle}
.scope{border:0;padding:5px;background:var(--soft);border-radius:14px;gap:4px;margin-bottom:20px;width:max-content;max-width:100%}
.scope button{border:0;border-radius:10px;padding:11px 21px}
.scope button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 5px #00000008}
.toolbar{margin-bottom:0;gap:10px}
.search,.outline{border-radius:13px}
.search input{padding:14px 0}
.outline{font-weight:600}
#filter-count:not(:empty){display:inline-grid;place-items:center;border-radius:6px;background:var(--peach);min-width:21px;height:21px;margin-left:5px;color:var(--ink)}
.active-filters{display:flex;flex-wrap:wrap;gap:7px}
.active-filters:not(:empty){margin-top:12px}
.filter-chip{border:1px solid var(--line);background:var(--peach);color:var(--ink);padding:7px 10px;font-size:12px;border-radius:8px;overflow-wrap:anywhere;max-width:100%;text-align:left}
.catalog-head{margin:26px 0 17px}
.catalog-head h2{font-size:20px;font-weight:650}
.view-switch,:root[data-theme=dark] .view-switch{background:var(--soft);border:1px solid var(--line)}
.event-list{gap:11px}
.event-card{border-radius:17px;padding:21px;gap:18px;box-shadow:0 2px 0 #00000002}
.event-card:hover{border-color:var(--apricot);transform:translateY(-2px)}
.event-card>span:nth-child(2){min-width:0}
.event-title{font-size:18px;line-height:1.35;overflow-wrap:anywhere;margin:8px 0}
.date-tile{background:var(--soft);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--apricot);border-radius:10px;padding:10px 4px}
.date-tile span{color:var(--muted)}
.tag{background:var(--soft);border-radius:6px;padding:4px 7px}
.tag.high,:root[data-theme=dark] .tag.high{background:var(--peach);color:var(--ink)}
.decision{background:var(--soft);border:1px solid var(--line);font-size:11px}
.decision.approved{border-color:transparent}
.going{font-size:12px}
.empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px 20px;background:var(--surface);border:1px dashed var(--line)}
.empty p{margin:0;max-width:300px}
.empty-pet{object-fit:contain;image-rendering:pixelated}
.month-grid{border-radius:15px}
.day{transition:background .15s}
.day:hover{background:var(--soft)}
.day.selected{background:var(--peach)}
.day.today .day-number{background:var(--apricot);color:#33251e}
.day.other{opacity:.55}
.day-event{background:var(--soft)}
.day-event.approved{background:var(--tint)}
dialog{box-shadow:var(--shadow);border-radius:22px;background:var(--surface)}
dialog::backdrop{background:#13141799;backdrop-filter:blur(5px)}
.dialog-top{position:sticky;top:-25px;z-index:2;background:var(--surface);padding:8px 0}
#detail{padding-bottom:0}
#decision-panel{position:sticky;bottom:0;background:var(--surface);padding:16px 0 20px;border-top:1px solid var(--line);margin-top:12px}
#decision-panel>p{font-size:12px;color:var(--muted);margin:0}
#decision-panel .actions{margin-top:10px}
.primary,:root[data-theme=dark] .primary{background:var(--tint);color:var(--accent);font-weight:700;border:1px solid var(--accent)}
.secondary{background:var(--soft);border-radius:10px}
.confirmation{margin-top:0}
#filter-dialog{width:min(560px,calc(100% - 24px));padding:24px}
#filter-title{margin:4px 0 0;font-size:26px}
.filters{border:0;background:none;padding:0;margin:0;grid-template-columns:1fr 1fr;gap:20px 14px;border-radius:0}
.filters label{font-size:12px;color:var(--muted)}
.filters input,.filters select{background:var(--soft);border-radius:10px;min-height:46px}
.filter-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:4px}
.filter-actions .primary{background:var(--apricot);color:#33251e;border-color:transparent}
.gate{padding-top:45px}
footer{font-size:11px;margin-top:30px}
@media(max-width:600px){
.app{padding-left:16px;padding-right:16px}
.topbar{padding:12px 0}
.brand{font-size:21px;gap:5px}
.mascot{width:49px;height:49px}
.brand-caption{font-size:9px;letter-spacing:0}
.header-actions{gap:5px}
.theme-control select{max-width:112px;font-size:10px;padding:9px 5px}
.header-actions .icon-button{min-width:33px;min-height:35px;font-size:20px}
.intro{padding:26px 0 23px}
.intro p{max-width:230px;font-size:12px}
.profile{max-width:90px;font-size:11px;padding:7px 9px}
.scope{width:100%;padding:4px;gap:2px}
.scope button{font-size:12px;padding:10px 6px;white-space:nowrap}
.catalog-head h2{font-size:18px}
.event-card{padding:15px;gap:12px;grid-template-columns:45px minmax(0,1fr)}
.event-title{font-size:16px}
.event-meta{font-size:11px}
.date-tile{width:45px}
.event-card>.decision{margin-top:-4px}
#filter-dialog{width:100%;max-width:100%;margin:auto 0 0;border-radius:23px 23px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));max-height:90dvh}
.filters{gap:17px 12px}
#detail{width:100%;max-width:100%;max-height:94dvh;margin:auto 0 0;border-radius:23px 23px 0 0;padding:18px 18px 0}
.dialog-top{top:-18px}
#decision-panel{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
.month-bar h2{font-size:16px}
}
@media(max-width:355px){.brand-caption{display:none}.brand{font-size:18px}.mascot{width:39px;height:39px}.theme-control select{max-width:100px}.intro p{max-width:195px}.catalog-head{align-items:flex-start}.view-switch button{padding:8px 6px}.filters{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.theme-toggle{display:grid;place-items:center}
.theme-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .sun-icon{display:none}
:root[data-theme=dark] .theme-toggle .sun-icon{display:block}
:root[data-theme=dark] .theme-toggle .moon-icon{display:none}
.select-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;color:var(--muted)}
.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:12px;color:var(--ink);font-size:14px;min-height:46px;line-height:1.4;width:100%}
.select-trigger::after{content:"";width:7px;height:7px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);flex-shrink:0;margin:0 3px 4px}
.select-trigger[aria-expanded=true]{border-color:var(--apricot)}
.select-trigger[aria-expanded=true]::after{transform:rotate(225deg);margin-top:5px}
.select-menu{border:1px solid var(--line);padding:5px;border-radius:12px;background:var(--bg);display:grid;gap:3px}
.select-option{position:relative;text-align:left;color:var(--ink);padding:11px 27px 11px 10px;font-size:13px;line-height:1.4;border-radius:7px;min-height:40px}
.select-option:hover,.select-option:focus-visible{background:var(--soft)}
.select-option[aria-selected=true]{background:var(--peach)}
.select-option[aria-selected=true]::after{content:"✓";position:absolute;right:9px;top:50%;transform:translateY(-50%)}
