:root{--bg: #f6f7fb;--panel: rgba(255, 255, 255, .9);--panel-solid: #fff;--text: #182033;--muted: #667085;--line: #e5e7ef;--line-strong: #d3d8e7;--accent: #4f63d8;--accent-2: #14a0a8;--land: #7a5bd8;--sea: #0e8aa8;--good: #12845f;--warn: #b26a00;--bad: #b42318;--closed: #6b7280;--shadow: 0 18px 60px rgba(28, 38, 78, .12);--lab-header-height: 67px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--lab-header-height) + 18px)}body{margin:0;min-height:100vh;padding-top:var(--lab-header-height);color:var(--text);background:radial-gradient(circle at 8% -10%,rgba(79,99,216,.16),transparent 30%),radial-gradient(circle at 92% 4%,rgba(20,160,168,.15),transparent 28%),linear-gradient(180deg,#fbfcff 0%,var(--bg) 36%,#eef2f8 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,Hiragino Sans,Yu Gothic,sans-serif}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.lab-site-header{position:fixed;top:0;right:0;left:0;z-index:120;border-bottom:1px solid rgba(31,41,51,.12);background:#f7f3ead1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.lab-header-inner{position:relative;display:flex;width:min(1120px,calc(100% - 32px));min-height:var(--lab-header-height);align-items:center;justify-content:space-between;gap:18px;margin:0 auto}.lab-brand{display:inline-flex;align-items:center;gap:10px;color:#1f2933;font-weight:900;text-decoration:none;white-space:nowrap}.lab-brand img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(31,41,51,.14))}.lab-nav{display:flex;align-items:center;gap:16px;color:#667085;font-size:14px;font-weight:850}.lab-nav a{color:inherit;text-decoration:none}.lab-nav a:hover{color:#d84b39}.lab-menu-toggle{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;flex:0 0 auto;gap:4px;border:1px solid rgba(31,41,51,.12);border-radius:999px;background:#ffffffdb;color:#1f3a5f}.lab-menu-toggle span,.lab-menu-toggle:before,.lab-menu-toggle:after{content:"";display:block;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.lab-menu-toggle[aria-expanded=true] span{opacity:0}.lab-menu-toggle[aria-expanded=true]:before{transform:translateY(6px) rotate(45deg)}.lab-menu-toggle[aria-expanded=true]:after{transform:translateY(-6px) rotate(-45deg)}.shell{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:28px 0 90px}.hero,.toolbar,.action-dashboard,.stat,.card,.insight,.timeline-section,.footer-note{border:1px solid rgba(255,255,255,.75);background:var(--panel);box-shadow:var(--shadow)}.hero{position:relative;overflow:hidden;border-radius:22px;padding:22px 24px}.hero:after{content:"";position:absolute;right:-80px;bottom:-120px;width:360px;height:360px;border-radius:999px;background:linear-gradient(145deg,#4f63d838,#14a0a829)}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,.75fr);gap:20px;align-items:center}.kicker,.check-pill,.badge,.park-badge,.chip,.status,.state-chip{display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:800}.kicker{padding:8px 12px;border:1px solid var(--line);color:var(--muted);background:#ffffffb8;font-size:13px}.dot{width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2))}h1{margin:0 0 8px;font-size:clamp(28px,3vw,42px);line-height:1.12}h2,h3,p{margin-top:0}.lead{max-width:560px;color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:0}.date-cards,.crowd-options,.dashboard-grid,.stats,.insights{display:grid;gap:12px}.date-cards{grid-template-columns:1fr 1fr}.date-card,.crowd-card,.dashboard-panel{border:1px solid var(--line);border-radius:18px;background:#ffffffc7;padding:16px}.date-card b,.crowd-card b{display:block;margin-bottom:4px;font-size:20px}.date-card span,.crowd-card span,.crowd-card small,.dashboard-panel small,.timeline-item small,.timeline-item span{color:var(--muted);font-size:13px;line-height:1.45}.crowd-card{display:grid;gap:10px}.crowd-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#ffffffd1;padding:12px 14px}.crowd-status b{display:block;font-size:18px;margin-bottom:2px}.crowd-status span{color:var(--muted);font-size:12px;line-height:1.35}.crowd-status strong{border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--text);font-size:12px;padding:7px 10px;white-space:nowrap}.crowd-meter{display:grid;grid-template-columns:repeat(5,8px);gap:4px;align-items:end;height:24px}.crowd-meter span{width:8px;border-radius:999px;background:#828da440}.crowd-meter span:nth-child(1){height:8px}.crowd-meter span:nth-child(2){height:12px}.crowd-meter span:nth-child(3){height:16px}.crowd-meter span:nth-child(4){height:20px}.crowd-meter span:nth-child(5){height:24px}.crowd-veryLow .crowd-meter span:nth-child(-n+1),.crowd-low .crowd-meter span:nth-child(-n+2),.crowd-normal .crowd-meter span:nth-child(-n+3),.crowd-high .crowd-meter span:nth-child(-n+4),.crowd-veryHigh .crowd-meter span:nth-child(-n+5){background:linear-gradient(180deg,#23a77d,#148c96)}.crowd-high .crowd-meter span:nth-child(-n+4){background:linear-gradient(180deg,#f2ad2e,#d9822b)}.crowd-veryHigh .crowd-meter span:nth-child(-n+5){background:linear-gradient(180deg,#e35d5b,#c23862)}.crowd-status.fallback{opacity:.84}.crowd-options{grid-template-columns:repeat(5,minmax(0,1fr))}.crowd-options button{min-height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font-weight:900;padding:0 10px;text-align:center}.crowd-options button.active{border-color:#4f63d86b;background:#eef1ff;color:var(--accent)}.action-dashboard,.toolbar,.stats,.content-head,.cards,.insights,.timeline-section,.footer-note{margin-top:18px}.action-dashboard{border-radius:24px;padding:20px}.dashboard-head,.content-head,.card-top,.mini-row,.insight-row,.timeline-item{display:flex;justify-content:space-between;gap:16px}.dashboard-head{align-items:center;margin-bottom:16px}.dashboard-head p,.section-head p,.content-head p{color:var(--muted);margin-bottom:0}.segmented,.view-actions{display:inline-flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:#f8f9fc}.location-select{display:grid;min-width:220px;gap:5px}.location-select span{color:var(--muted);font-size:11px;font-weight:900}.location-select select{min-height:38px}.segmented button,.view-actions button,.card-actions button,.quick,.mobile-bottom-bar button{border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:800;min-height:38px;padding:0 12px}.segmented button.active,.view-actions button.active,.mobile-bottom-bar button.active{background:#fff;color:var(--accent);box-shadow:0 4px 16px #1c264e1a}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(240px,.75fr)}.panel-label{display:block;margin-bottom:10px;color:var(--muted);font-size:12px;font-weight:900}.panel-context{display:block;margin:-4px 0 6px}.mini-filter{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 8px}.mini-filter button{min-height:30px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:900;padding:0 10px}.mini-filter button.active{border-color:#4f63d85c;background:#eef1ff;color:var(--accent)}.mini-row,.insight-row{align-items:center;padding:10px 0;border-top:1px solid var(--line)}.mini-row.time-warning b{color:var(--warn)}.mini-row.current-plan{border-radius:12px;background:#eef1ff;padding-right:10px;padding-left:10px}.mini-row.current-plan b{color:var(--accent)}.mini-row:first-of-type,.insight-row:first-of-type{border-top:0}.mini-row b,.insight-row b{display:block}.mini-row-actions{display:grid;flex:0 0 auto;gap:6px;justify-items:end}.mini-row-actions button{min-height:30px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--accent);font-size:12px;font-weight:900;padding:0 10px}.progress-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.progress-metrics div{min-width:0;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 8px;text-align:center}.progress-metrics strong{display:block;font-size:32px;line-height:1}.progress-metrics small{display:block;margin-top:6px;font-weight:800}.toolbar{position:fixed;top:calc(var(--lab-header-height) + max(14px,env(safe-area-inset-top)));right:14px;z-index:20;width:min(960px,calc(100% - 28px));max-height:calc(100dvh - var(--lab-header-height) - 28px - env(safe-area-inset-top));overflow:auto;border-radius:24px;padding:12px 16px 16px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar.filter-closed{width:auto;max-height:none;border:0;background:transparent;box-shadow:none;overflow:visible;padding:0}.toolbar.filter-closed .filter-title,.toolbar.filter-closed .active-summary{display:none}.toolbar.filter-closed .filter-head{display:block}.toolbar.filter-closed .filter-collapse{width:48px;height:48px;min-height:48px;border-color:#d3d8e7b8;border-radius:999px;background:#ffffffc2;box-shadow:0 10px 28px #1c264e29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--accent);padding:0}.toolbar.filter-closed .filter-collapse-label{display:none}.toolbar.filter-closed .filter-collapse-icon{position:relative;display:block;width:20px;height:16px}.toolbar.filter-closed .filter-collapse-icon:before,.toolbar.filter-closed .filter-collapse-icon:after{content:"";position:absolute;left:2px;right:2px;border-radius:999px;background:currentColor}.toolbar.filter-closed .filter-collapse-icon:before{top:3px;height:3px;box-shadow:0 5px 0 currentColor}.toolbar.filter-closed .filter-collapse-icon:after{bottom:0;left:6px;right:6px;height:3px}.filter-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center}.filter-title{display:flex;gap:10px;align-items:center;min-width:170px;font-weight:900}.filter-title b{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#eef1ff;color:var(--accent);padding:0 10px;font-size:12px}.filter-collapse{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--accent);font-weight:900;padding:0 14px}.filter-collapse-icon{display:none}.active-summary{color:var(--muted);font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-open .active-summary{margin-bottom:0}.filter-body{margin-top:12px}.filter-scroll{min-height:0}.filter-bottom-collapse{display:none}.filter-grid,.filters-extra{display:grid;gap:10px}.filter-grid{grid-template-columns:1.45fr repeat(6,minmax(124px,1fr))}.filters-extra{grid-template-columns:repeat(6,minmax(132px,1fr));margin-top:10px}.field{min-width:0;position:relative}.field-label{display:block;margin:0 0 5px 3px;color:var(--muted);font-size:11px;font-weight:900}input[type=search],input[type=text],input[type=date],input[type=time],select,.multi-button{min-width:0;width:100%;min-height:42px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);outline:none;padding:0 12px}input[type=search]:focus,input[type=text]:focus,input[type=date]:focus,input[type=time]:focus,select:focus,.multi-button:focus-visible{border-color:#4f63d894;box-shadow:0 0 0 4px #4f63d81a}.multi-select{position:relative}.multi-button{display:flex;align-items:center;justify-content:space-between;text-align:left}.multi-button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.multi-button.has-value{border-color:#4f63d861;background:linear-gradient(180deg,#fff,#f8f9ff);color:#24316a;font-weight:800}.multi-menu{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:30;max-height:280px;overflow:auto;border:1px solid var(--line-strong);border-radius:14px;background:#fff;box-shadow:0 18px 40px #1c264e29;padding:8px}.multi-option{display:flex;gap:9px;align-items:center;border-radius:10px;padding:9px 8px;font-size:14px}.multi-option:hover{background:#f5f7ff}.checks{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.check-pill,.quick{min-height:38px;border:1px solid var(--line);background:#fff;padding:0 12px;color:var(--text)}.stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px}.stat{border-radius:18px;padding:12px 14px}.stat .label{display:block;color:var(--muted);font-size:12px;font-weight:900}.stat .value{display:flex;gap:4px;align-items:baseline;margin-top:4px;font-size:28px;font-weight:900}.stat small{color:var(--muted);font-size:13px}.content-head{align-items:end}.legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.badge,.park-badge,.status,.state-chip{min-height:26px;padding:0 10px;font-size:12px}.badge.s{background:#fff3cc;color:#8a5a00}.badge.a{background:#ffe4e0;color:#9b2c21}.badge.b{background:#e9f8ef;color:#12663f}.badge.c{background:#e9eefb;color:#34499b}.badge.closed,.status.closed{background:#eef0f3;color:var(--closed)}.park-badge.land{background:#7a5bd81f;color:var(--land)}.park-badge.sea{background:#0e8aa81f;color:var(--sea)}.status.open{background:#12845f1f;color:var(--good)}.state-chip.want{background:#eef1ff;color:var(--accent)}.state-chip.done{background:#e9f8ef;color:var(--good)}.state-chip.later{background:#fff3cc;color:#8a5a00}.state-chip.skip{background:#f3f4f6;color:var(--closed)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{border-radius:20px;padding:18px}.card.closed-card,.card.state-skip{opacity:.72}.card.state-done{border-color:#12845f4d}.card h3{margin:14px 0 6px;font-size:20px;line-height:1.35}.card-badges,.chips{display:flex;flex-wrap:wrap;gap:7px}.subline,.summary,.memo{color:var(--muted);line-height:1.65}.summary{min-height:52px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.metric{min-width:0;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.metric small{display:block;color:var(--muted);font-size:11px;font-weight:900}.metric b{display:block;margin-top:3px}.waitbar{height:7px;overflow:hidden;border-radius:999px;background:#edf0f7;margin-top:7px}.waitbar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.pop-stars{color:#d08a00;font-size:11px}.chip{min-height:28px;border:1px solid var(--line);background:#fff;color:#344054;padding:0 9px;font-size:12px}.chip.dpa{border-color:#7a5bd847;background:#7a5bd81a;color:var(--land)}.chip.pp{border-color:#0e8aa847;background:#0e8aa81a;color:var(--sea)}.show-times{margin:14px 0;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.show-times small{display:block;color:var(--muted);font-size:11px;font-weight:900;margin-bottom:8px}.show-times-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.show-times-head small{margin-bottom:0}.show-risk-legend{display:flex;gap:5px;font-size:11px;font-weight:900}.show-risk-legend span{border-radius:999px;padding:3px 6px}.show-times div{display:flex;flex-wrap:wrap;gap:6px}.show-times span{border-radius:999px;background:#eef1ff;color:var(--accent);font-size:12px;font-weight:900;padding:5px 8px}.risk-likely,.show-times span.risk-likely{background:#effaf4;color:var(--good)}.risk-watch,.show-times span.risk-watch{background:#fff8e8;color:var(--warn)}.risk-high,.show-times span.risk-high{background:#fff1f1;color:var(--bad)}.prediction-box{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;border:1px solid rgba(79,99,216,.18);border-radius:14px;background:#f8f9ff;padding:10px}.prediction-box small{display:block;color:var(--muted);font-size:11px;font-weight:900}.prediction-box b{display:block;margin-top:3px;color:var(--text)}.prediction-box p{grid-column:1 / -1;color:var(--muted);font-size:12px;line-height:1.45;margin:0}.prediction-collecting,.risk-collecting{background:#fafafa;border-color:var(--line)}.prediction-closed,.risk-high{background:#fff1f1;border-color:#c2386238}.risk-medium{background:#fff8e8;border-color:#d08a003d}.risk-low{background:#effaf4;border-color:#12845f2e}.rain-強い{color:var(--good)}.rain-注意,.rain-弱い{color:var(--warn)}.rain-休止{color:var(--bad)}.card-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.card-actions button{border:1px solid var(--line);background:#fff}.card-actions button.selected{border-color:#4f63d85c;background:#eef1ff;color:var(--accent)}.memo{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.source-link{display:inline-flex;margin-top:10px;color:var(--accent);font-size:13px;font-weight:900}.table-panel{margin-top:18px;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;min-width:1180px;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top;font-size:13px}th{position:sticky;top:0;z-index:1;background:#f8f9fc;color:var(--muted);font-size:12px}.name-cell{min-width:260px;font-weight:900}.name-cell span,.memo-cell{color:var(--muted);font-weight:700}.empty{margin-top:18px;border:1px dashed var(--line-strong);border-radius:18px;background:#ffffffbf;padding:28px;text-align:center;color:var(--muted);font-weight:800}.insights{grid-template-columns:1fr 1fr}.insight,.timeline-section,.footer-note{border-radius:20px;padding:18px}.timeline{display:grid;gap:10px}.plan-form{display:grid;grid-template-columns:1.05fr .8fr .7fr .8fr minmax(180px,1.4fr) minmax(150px,1fr) minmax(180px,1.4fr) auto;gap:10px;align-items:end;margin:16px 0;border:1px solid var(--line);border-radius:16px;background:#ffffffb8;padding:12px}.plan-submit,.timeline-item button{min-height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--accent);font-weight:900;padding:0 14px}.timeline-item{align-items:flex-start;justify-content:space-between;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.timeline-item.completed{opacity:.64}.timeline-item.completed b{text-decoration:line-through}.timeline-item time{min-width:54px;color:var(--accent);font-weight:900}.timeline-item>div{flex:1}.timeline-item b,.timeline-item span,.timeline-item small{display:block}.timeline-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.timeline-empty{border:1px dashed var(--line-strong);border-radius:14px;background:#ffffffb8;color:var(--muted);font-weight:800;padding:16px}.footer-note{color:var(--muted);line-height:1.7}.mobile-bottom-bar,.plan-fab,.weather-fab{display:none}.plan-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#1820335c;padding:18px}.plan-modal,.recommendation-modal{width:min(760px,100%);max-height:min(680px,calc(100dvh - 36px));overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--panel-solid);box-shadow:0 24px 80px #121c3a47;padding:18px}.recommendation-modal{width:min(480px,100%)}.plan-modal-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.plan-modal-head h2{margin-bottom:6px}.plan-modal-head p{color:var(--muted);margin-bottom:0}.plan-modal-head button{flex:0 0 auto;width:38px;height:38px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--accent);font-weight:900}.plan-modal .plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-modal .plan-title-field,.plan-modal .plan-note-field,.plan-modal .plan-submit,.plan-modal .plan-form-note,.plan-form-note{grid-column:1 / -1}.weather-modal{width:min(860px,100%)}.weather-current{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center;margin-top:16px;border:1px solid var(--line);border-radius:16px;background:#f8fbff;padding:14px}.weather-current small,.weather-main small,.weather-alert small{display:block;color:var(--muted);font-weight:800}.weather-current b{display:block;font-size:22px}.weather-current span{display:block;color:var(--muted);line-height:1.5}.weather-icon,.weather-time svg,.weather-fab svg{display:block}.weather-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#eef6ff;color:var(--accent)}.weather-icon svg,.weather-time svg,.weather-fab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.weather-alerts{display:grid;gap:8px;margin-top:14px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px}.weather-alerts>b{font-size:14px}.weather-alerts.calm p{margin:0;color:var(--muted);font-weight:700}.weather-alert{display:grid;grid-template-columns:48px minmax(0,1fr);gap:4px 10px;border:1px solid var(--line);border-radius:12px;padding:9px}.weather-alert span{grid-row:span 2;color:var(--accent);font-weight:900}.weather-alert p{margin:0;font-weight:900}.weather-alert small em{font-style:normal}.weather-alert-reasons{display:grid;gap:2px}.weather-alert-reasons span{display:flex;flex-wrap:wrap;gap:7px}.danger,.weather-values span.danger,.weather-alert small em.danger{color:var(--bad)}.weather-hourly{display:grid;gap:8px;margin-top:14px}.weather-row{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.weather-time{display:flex;gap:8px;align-items:center;color:var(--accent);font-weight:900}.weather-main b{display:block}.weather-main{grid-column:2;grid-row:1}.weather-values{display:grid;grid-column:2;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.weather-values span{border-radius:999px;background:#f4f6fb;color:#344054;font-size:12px;font-weight:900;padding:6px 8px;text-align:center}.weather-medium{border-color:#b26a0042;background:#fff9ec}.weather-high{border-color:#b4231842;background:#fff2f1}.weather-empty{margin-top:14px;border:1px dashed var(--line-strong);border-radius:14px;color:var(--muted);font-weight:800;padding:14px}.plan-form-note{color:var(--muted);font-weight:800}.plan-form-note.warning{color:var(--warn)}.plan-submit:disabled{cursor:not-allowed;opacity:.55}.recommendation-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.recommendation-options>button{min-height:58px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font-weight:900;text-align:left;padding:8px 10px}.recommendation-options>button.active{border-color:#4f63d86b;background:#eef1ff;color:var(--accent)}.recommendation-options small{display:block;margin-top:4px;color:var(--muted)}.recommendation-options .field{grid-column:1 / -1}.recommendation-warning{margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#f8f9fc;color:var(--muted);padding:10px 12px;font-weight:800}.recommendation-warning.show{border-color:#b26a0047;background:#fff8e6;color:var(--warn)}.recommendation-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.recommendation-actions button{min-height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-weight:900;padding:0 14px}.recommendation-actions button:last-child{border-color:#4f63d861;background:#eef1ff;color:var(--accent)}@media(max-width:1180px){.filter-grid,.filters-extra,.plan-form,.dashboard-grid{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){.lab-header-inner{width:min(100% - 22px,1120px)}.lab-menu-toggle{display:inline-flex}.lab-nav{position:absolute;top:calc(100% + 10px);right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:8px;border:1px solid rgba(31,41,51,.12);border-radius:20px;background:#fffffff7;box-shadow:0 18px 44px #1f293324}.lab-nav.is-open{display:flex}.lab-nav a{padding:12px 14px;border-radius:14px}.lab-nav a:hover{background:#2348a912}.shell{width:min(100% - 20px,720px);padding-top:12px;padding-bottom:calc(96px + env(safe-area-inset-bottom))}.hero{border-radius:22px;padding:22px}.hero-grid,.date-cards,.dashboard-grid,.filter-grid,.filters-extra,.plan-form,.stats,.cards,.insights{grid-template-columns:1fr}.crowd-status{grid-template-columns:auto minmax(0,1fr);padding:10px 12px}.crowd-status strong{grid-column:2;width:max-content}.plan-form{width:100%;min-width:0;overflow:clip}.plan-form .field,.plan-form input,.plan-form select,.plan-submit{box-sizing:border-box;min-width:0;max-width:100%}.plan-form input[type=date],.plan-form input[type=time]{display:block;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}.plan-submit{width:100%}.dashboard-head,.content-head{align-items:stretch;flex-direction:column}.toolbar{position:fixed;top:calc(var(--lab-header-height) + max(10px,env(safe-area-inset-top)));right:10px;width:min(100% - 20px,720px);max-height:calc(66dvh - var(--lab-header-height));overflow:hidden;padding:12px}.toolbar.filter-open{display:flex;flex-direction:column}.filter-body{display:flex;min-height:0;flex:1;flex-direction:column}.filter-scroll{min-height:0;overflow:auto;padding-bottom:8px}.filter-bottom-collapse{position:sticky;bottom:0;display:block;width:100%;min-height:38px;margin-top:8px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--accent);font-weight:900}.filter-head{grid-template-columns:1fr auto;gap:8px}.filter-title{min-width:0}.filter-head .active-summary{grid-column:1 / -1;grid-row:2}.toolbar.filter-closed{position:fixed;top:calc(var(--lab-header-height) + max(10px,env(safe-area-inset-top)));right:10px;width:auto;max-height:none;border:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:hidden;padding:0}.toolbar.filter-closed .filter-head{display:block}.toolbar.filter-closed .filter-title,.toolbar.filter-closed .active-summary{display:none}.toolbar.filter-closed .filter-collapse{width:48px;height:48px;min-height:48px;border-color:#d3d8e7b8;border-radius:999px;background:#ffffffb8;box-shadow:0 10px 28px #1c264e29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--accent);opacity:.86;padding:0}.toolbar.filter-closed .filter-collapse-label{display:none}.toolbar.filter-closed .filter-collapse-icon{position:relative;display:block;width:20px;height:16px}.toolbar.filter-closed .filter-collapse-icon:before,.toolbar.filter-closed .filter-collapse-icon:after{content:"";position:absolute;left:2px;right:2px;border-radius:999px;background:currentColor}.toolbar.filter-closed .filter-collapse-icon:before{top:3px;height:3px;box-shadow:0 5px 0 currentColor}.toolbar.filter-closed .filter-collapse-icon:after{bottom:0;left:6px;right:6px;height:3px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.metrics{grid-template-columns:1fr 1fr}.summary{min-height:0}.card-actions{grid-template-columns:1fr 1fr}.legend{justify-content:flex-start}.mobile-bottom-bar{position:fixed;right:10px;bottom:max(10px,env(safe-area-inset-bottom));left:10px;z-index:50;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border:1px solid rgba(229,231,239,.92);border-radius:18px;background:#ffffffeb;box-shadow:0 12px 40px #1c264e2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:8px}.plan-fab{position:fixed;right:18px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:60;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(211,216,231,.78);border-radius:999px;background:#4f63d8e6;box-shadow:0 14px 34px #1c264e38;color:#fff;font-size:30px;font-weight:900;line-height:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.weather-fab{position:fixed;left:18px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:60;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(211,216,231,.78);border-radius:999px;background:#14a0a8eb;box-shadow:0 14px 34px #1c264e38;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.plan-modal-backdrop{align-items:end;padding:12px 10px calc(88px + env(safe-area-inset-bottom))}.plan-modal,.recommendation-modal{max-height:calc(100dvh - 116px - env(safe-area-inset-bottom));border-radius:18px;padding:14px}.weather-modal{max-height:calc(100dvh - 116px - env(safe-area-inset-bottom))}.weather-row{grid-template-columns:66px minmax(0,1fr);gap:6px 10px;align-items:center;padding:9px}.weather-values{grid-column:2;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr))}.weather-time{grid-row:span 2}.weather-main{grid-column:2;grid-row:1;min-width:0}.plan-modal .plan-form{grid-template-columns:1fr}.timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr)}.timeline-actions{grid-column:1 / -1;justify-content:flex-start}}@media(max-width:420px){h1{font-size:31px}.stat .value{font-size:28px}.card{padding:15px}}
