:root{--ink:#15344a;--muted:#647786;--sky:#9edcf3;--sky-soft:#dff3fb;--sun:#f4a51c;--cream:#f7f5ef;--paper:#fffefb;--line:#15344a21;--shadow:0 18px 45px #16455f1a;--font-sans-jp:"Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", system-ui, sans-serif;--font-mincho:"Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--sky);color:var(--ink);font-family:var(--font-sans-jp), sans-serif;overflow:hidden auto}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #1f719e47}.app-frame{background:var(--sky);grid-template-rows:60px minmax(0,1fr);height:100dvh;display:grid}.app-frame.has-results{grid-template-rows:60px minmax(0,1fr) 38px}.site-header{padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));background:var(--sky);border-bottom:1px solid #ffffff94;align-items:center;display:flex}.brand{color:var(--ink);letter-spacing:.04em;justify-self:start;align-items:center;gap:10px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--sun);border-radius:50%;width:23px;height:23px;position:relative;box-shadow:inset -5px -5px #d2741221}.brand-mark span,.brand-mark:before,.brand-mark:after{content:"";background:var(--sun);border-radius:5px;width:3px;height:6px;position:absolute;left:10px}.brand-mark span{top:-5px}.brand-mark:before{bottom:-5px}.brand-mark:after{box-shadow:28px 0 0 var(--sun);top:8px;left:-5px;transform:rotate(90deg)}.workspace{grid-template-columns:minmax(360px,30vw) minmax(0,1fr);min-height:0;display:grid}.workspace-empty{background:var(--sky);grid-template-columns:1fr}.workspace-empty .control-panel{border-right:0;justify-self:center;width:min(100%,570px)}.control-panel{background:var(--sky);border-right:1px solid #15344a14;min-height:0;padding:clamp(24px,3vh,36px) clamp(22px,2.8vw,42px);overflow:auto}.compact-intro{margin-bottom:clamp(18px,2.6vh,28px)}.eyebrow{letter-spacing:.18em;margin:0 0 9px;font-size:10px;font-weight:800;line-height:1}.compact-intro h1{font-family:var(--font-mincho), serif;letter-spacing:-.055em;margin:0;font-size:clamp(34px,3.2vw,46px);line-height:1.22}.compact-intro h1 em{color:#fff;text-shadow:0 1px #15344a1a;font-style:normal}.planner-card{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffefbeb;border:1px solid #fffc;border-radius:22px;gap:14px;padding:clamp(16px,2.3vh,22px);display:grid;position:relative}.field-group{flex-direction:column;gap:7px;min-width:0;display:flex}.field-group label,.field-label{letter-spacing:.04em;font-size:12px;font-weight:800}input,select{border:1px solid var(--line);width:100%;min-width:0;height:46px;color:var(--ink);background:#fffffff5;border-radius:12px;outline:0;padding:0 12px;font-size:14px}input:focus,select:focus{border-color:#277ca8;box-shadow:0 0 0 4px #277ca81c}.location-field{position:relative}.location-field>span{z-index:1;color:#337aa0;pointer-events:none;font-size:17px;font-weight:800;position:absolute;top:11px;left:13px}.location-field input,.location-field select{padding-left:38px;font-weight:700}.mode-switch{border:1px solid var(--line);background:#e6eff3bd;border-radius:14px;grid-template-columns:1fr 1fr;height:44px;padding:4px;display:grid}.mode-switch button,.weather-switch button,.weekday-switch button{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:13px;font-weight:800}.mode-switch button{white-space:nowrap}.mode-switch button.active,.weather-switch button.active,.weekday-switch button.active{background:var(--ink);color:#fff;box-shadow:0 4px 12px #15344a2e}.weather-switch{border:1px solid var(--line);background:#e6eff3bd;border-radius:14px;grid-template-columns:repeat(3,1fr);height:44px;padding:4px;display:grid}.range-fields{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:end;gap:8px;width:100%;min-width:0;display:grid}.date-input-shell{border:1px solid var(--line);background:#fffffff5;border-radius:12px;width:100%;min-width:0;height:46px;padding:0 12px;overflow:hidden}.date-input-shell:focus-within{border-color:#277ca8;box-shadow:0 0 0 4px #277ca81c}.range-fields .date-input-shell input[type=date]{width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%;height:100%;box-shadow:none;text-align:center;background:0 0;border:0;border-radius:0;outline:0;padding:0;font-size:16px;line-height:1}.range-fields .date-input-shell input[type=date]::-webkit-date-and-time-value{text-align:center;justify-content:center;align-items:center;width:100%;height:100%;min-height:44px;margin:0;padding:0;line-height:44px;display:flex}.range-fields .date-input-shell input[type=date]::-webkit-datetime-edit{padding:0}.range-fields>span{color:#718694;text-align:center;align-self:end;margin-bottom:13px;font-size:13px}.weekday-fields{gap:12px;display:grid}.year-month-fields{grid-template-columns:1fr .7fr;gap:9px;display:grid}.weekday-switch{border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:repeat(7,1fr);min-height:46px;padding:4px;display:grid}.search-button{background:var(--ink);color:#fff;cursor:pointer;letter-spacing:.03em;border:0;border-radius:14px;justify-content:space-between;align-items:center;height:50px;padding:0 18px;font-size:14px;font-weight:800;transition:transform .18s,background .18s;display:flex;box-shadow:0 10px 24px #15344a33}.search-button:hover{background:#234d69;transform:translateY(-1px)}.search-button:active{transform:translateY(1px)}.search-button:disabled{cursor:wait;opacity:.72;transform:none}.search-button span:last-child{color:var(--sun);font-size:20px}.error-message{color:#713d32;background:#faece7;border-left:4px solid #bd5b43;border-radius:8px;margin:0;padding:10px 12px;font-size:12px;font-weight:700;line-height:1.5}.result-panel{background:radial-gradient(circle at 85% 0%, #fffc, transparent 34%), var(--cream);min-height:0;padding:clamp(24px,3.5vh,38px) clamp(28px,4.2vw,62px);overflow:auto}.panel-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:15px;display:flex}.panel-heading .eyebrow{color:#758995}.panel-heading h2{font-family:var(--font-mincho), serif;letter-spacing:-.045em;margin:0;font-size:clamp(28px,3vw,38px);line-height:1.15}.panel-heading>p{text-align:right;flex-direction:column;align-items:flex-end;gap:4px;margin:0;display:flex}.panel-heading>p strong{font-size:14px}.panel-heading>p span{color:var(--muted);font-size:11px}.definition{color:#58707e;background:#e7f1f3;border-radius:10px;margin-bottom:12px;padding:10px 13px;font-size:12px;line-height:1.5}.definition strong{color:var(--ink)}.compact-ranking{gap:9px;display:grid}.compact-ranking article{border:1px solid var(--line);background:#ffffffa8;border-radius:17px;min-height:0;overflow:hidden}.compact-ranking article.winner{background:#fffffff0;border-color:#f4a51c80;box-shadow:0 12px 32px #15344a14}.compact-ranking article.candidate-selected{border-color:#277ca89e;box-shadow:0 10px 28px #277ca81a}.result-summary{width:100%;min-height:78px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:34px minmax(90px,118px) 78px minmax(80px,1fr) minmax(78px,92px) 34px;align-items:center;gap:clamp(8px,1vw,15px);padding:10px 13px;display:grid}.result-summary:hover{background:#ffffff73}.result-summary:focus-visible{outline-offset:-4px}.rank-number{color:#8ca0ad;font-family:var(--font-mincho), serif;font-size:13px;font-weight:700}.rank-date{grid-template-columns:54px 25px;align-items:center;gap:7px;display:grid}.rank-date strong{font-family:var(--font-mincho), serif;text-align:right;white-space:nowrap;font-size:21px}.rank-date>span{background:#dbeaf0;border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;font-weight:800;display:grid}.rank-date small{color:#a7690b;letter-spacing:.12em;grid-column:1/-1;font-size:10px;font-weight:800}.primary-score{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.primary-score strong{font-family:var(--font-mincho), serif;font-size:30px;line-height:1}.primary-score strong small{margin-left:2px;font-size:12px}.score-bar{background:#e0eaee;border-radius:999px;min-width:0;height:7px;display:block;overflow:hidden;box-shadow:inset 0 1px 2px #15344a14}.score-bar>span{border-radius:inherit;background:linear-gradient(90deg,#65c6dd,var(--sun));height:100%;display:block}.result-record{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.result-record small{color:var(--muted);font-size:10px;font-weight:700}.result-record strong{font-family:var(--font-mincho), serif;white-space:nowrap;font-size:16px}.result-toggle{width:30px;height:30px;color:var(--ink);background:#e4eff3;border-radius:50%;justify-self:end;place-items:center;font-size:18px;font-weight:700;line-height:1;display:grid}.expanded .result-toggle{background:var(--ink);color:#fff}.result-actions{justify-content:flex-end;align-items:center;min-height:38px;padding:0 13px 9px;display:flex}.candidate-button{min-height:29px;color:var(--ink);cursor:pointer;background:#ffffffb8;border:1px solid #15344a29;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 11px;font-size:11px;font-weight:800;display:inline-flex}.candidate-button:hover{background:#fff;border-color:#277ca87a}.candidate-button span{font-size:14px;line-height:1}.candidate-button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}.result-details{border-top:1px solid var(--line);background:#e7f1f37a;padding:10px 13px 12px}.result-details dl{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.result-details dl>div{border-left:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:0 12px;display:flex}.result-details dl>div:first-child{border-left:0}.result-details dt{color:var(--muted);font-size:11px;font-weight:800}.result-details dt small{margin-top:2px;font-size:10px;font-weight:600;display:block}.result-details dd{font-family:var(--font-mincho), serif;white-space:nowrap;margin:0;font-size:18px;font-weight:700}.more-button{border:1px solid var(--line);min-height:42px;color:var(--ink);cursor:pointer;background:#ffffffa6;border-radius:999px;margin:12px auto 0;padding:0 18px;font-size:12px;font-weight:800;display:block}.comparison-dock{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffefbf0;border:1px solid #15344a26;border-radius:16px;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;padding:10px 11px;display:flex;position:sticky;bottom:9px;box-shadow:0 14px 34px #15344a29}.dock-summary{gap:4px;min-width:0;display:grid}.dock-selection{align-items:center;gap:9px;min-width:0;display:flex}.dock-count{color:var(--muted);flex:none;font-size:11px;font-weight:800}.dock-count strong{color:var(--ink);font-size:14px}.candidate-chips{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.candidate-chips button{background:var(--sky-soft);min-height:28px;color:var(--ink);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:4px;padding:0 7px;font-size:11px;font-weight:800;display:inline-flex}.candidate-chips button small{background:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:9px;display:grid}.candidate-chips button span:last-child{color:var(--muted);font-size:13px}.dock-note{color:var(--muted);margin:0;font-size:10px;line-height:1.3}.compare-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:12px;flex:none;justify-content:space-between;align-items:center;gap:13px;min-width:116px;min-height:42px;padding:0 13px;font-size:12px;font-weight:800;display:flex}.compare-button span{color:var(--sun);font-size:17px}.compare-button:disabled{cursor:default;opacity:.42}.comparison-panel{border:1px solid var(--line);background:var(--paper);border-radius:18px;margin-top:12px;padding:17px;scroll-margin-top:12px;box-shadow:0 16px 38px #15344a17}.comparison-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.comparison-heading .eyebrow{color:#758995;margin-bottom:4px}.comparison-heading h3{font-family:var(--font-mincho), serif;margin:0;font-size:25px;line-height:1.2}.comparison-heading>button{border:1px solid var(--line);min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 11px;font-size:10px;font-weight:800}.comparison-context{color:var(--muted);align-items:center;gap:8px;margin:10px 0;font-size:11px;display:flex}.comparison-context strong{color:var(--ink)}.comparison-context span:before{content:"・";margin-right:8px}.comparison-table-wrap{border:1px solid var(--line);border-radius:13px;width:100%;overflow:hidden}.comparison-table{table-layout:fixed;border-collapse:collapse;width:100%}.comparison-table th,.comparison-table td{border-top:1px solid var(--line);border-left:1px solid var(--line);text-align:center;vertical-align:middle;padding:10px 8px;font-size:12px}.comparison-table tr:first-child th{border-top:0}.comparison-table th:first-child,.comparison-table td:first-child{text-align:left;border-left:0;width:110px}.comparison-table thead th{color:var(--muted);background:#edf6f8;font-size:10px}.comparison-table thead th:not(:first-child){position:relative}.comparison-table thead th small{margin-bottom:2px;font-size:9px;font-weight:700;display:block}.comparison-table thead th strong{color:var(--ink);font-family:var(--font-mincho), serif;font-size:19px}.comparison-table thead th span{width:21px;height:21px;color:var(--ink);vertical-align:2px;background:#fff;border-radius:50%;place-items:center;margin-left:5px;font-size:9px;font-weight:800;display:inline-grid}.comparison-table tbody th{color:var(--muted);font-size:10px;font-weight:800}.comparison-table tbody th small{margin-top:2px;font-size:9px;font-weight:600;display:block}.comparison-table tbody td{color:var(--ink);font-weight:700}.comparison-score-row td strong{font-family:var(--font-mincho), serif;font-size:28px;line-height:1}.comparison-score-row td small{margin-left:2px;font-size:10px}.comparison-share{align-items:center;gap:12px;margin-top:12px;display:flex}.share-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;min-width:150px;min-height:42px;padding:0 13px;font-size:12px;font-weight:800;display:flex}.share-button span:last-child{color:var(--sun);font-size:17px}.comparison-share p{color:var(--muted);margin:0;font-size:10px;line-height:1.45}.compact-footer{padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));color:#a9bac5;background:#112537;grid-template-columns:1fr auto;align-items:center;gap:20px;font-size:10px;display:grid}.compact-footer details{position:relative}.compact-footer summary{cursor:pointer;color:#fff;font-weight:700}.compact-footer details p{z-index:6;color:#d0dce3;background:#183148;border-radius:12px;width:min(440px,86vw);margin:0;padding:14px;font-size:12px;line-height:1.7;position:absolute;bottom:24px;left:0;box-shadow:0 12px 30px #0000003d}.compact-footer>p{margin:0}.compact-footer a{color:#c2e4f3}@media (max-width:760px){.app-frame{grid-template-rows:52px minmax(0,1fr)}.app-frame.has-results{grid-template-rows:52px auto 34px;height:auto;min-height:100dvh}.site-header{padding-inline:max(15px, env(safe-area-inset-left)) max(15px, env(safe-area-inset-right))}.brand{font-size:17px}.workspace{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.workspace-results{grid-template-rows:auto auto}.workspace-empty{grid-template-rows:1fr}.workspace-empty .control-panel{width:100%}.control-panel{border-bottom:1px solid #15344a14;border-right:0;padding:12px 14px 14px;overflow:visible}.compact-intro{margin-bottom:10px}.compact-intro h1{font-size:25px;line-height:1.15}.planner-card{border-radius:17px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:9px;padding:11px;box-shadow:0 9px 24px #15344a1a}.planner-card>.field-group:first-child{grid-column:1}.mode-switch{grid-column:2;align-self:end;height:44px}.mode-switch button{padding:0 5px;font-size:12px}.weather-field,.range-fields,.weekday-fields,.search-button,.error-message{grid-column:1/3}.weather-switch{height:42px}.weather-switch button{font-size:12px}.weekday-fields{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:end;gap:9px}.year-month-fields{grid-template-columns:1.1fr .75fr}.weekday-switch{min-height:46px}.weekday-switch button{min-height:36px;font-size:12px}.field-group{gap:5px}.field-group label,.field-label{font-size:12px}input,select,.date-input-shell{height:44px;font-size:13px}.location-field>span{top:10px}.range-fields{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);gap:5px}.range-fields>span{margin-bottom:12px}.search-button{height:48px;font-size:14px}.result-panel{padding:13px 14px 12px;overflow:visible}.panel-heading{align-items:center;margin-bottom:9px}.panel-heading .eyebrow{display:none}.panel-heading h2{font-size:24px}.panel-heading>p{gap:2px}.panel-heading>p strong{text-overflow:ellipsis;white-space:nowrap;max-width:145px;font-size:13px;overflow:hidden}.panel-heading>p span{font-size:11px}.definition{margin-bottom:8px;padding:8px 10px;font-size:11px}.compact-ranking{gap:7px}.compact-ranking article{border-radius:14px}.result-summary{grid-template-columns:24px 82px 58px minmax(42px,1fr) 60px 30px;gap:5px;min-height:68px;padding:8px 9px}.rank-number{font-size:11px}.rank-date{grid-template-columns:54px 23px;gap:5px}.rank-date strong{font-size:18px}.rank-date>span{width:23px;height:23px;font-size:11px}.rank-date small{display:none}.primary-score strong{font-size:26px}.primary-score strong small{font-size:11px}.result-record strong{font-size:13px}.result-toggle{width:28px;height:28px;font-size:17px}.result-actions{min-height:34px;padding:0 9px 7px}.candidate-button{min-height:27px;padding-inline:9px;font-size:10px}.result-details{padding:9px 7px 10px}.result-details dl>div{padding:0 8px}.result-details dd{font-size:16px}.more-button{min-height:44px;margin-top:9px;font-size:12px}.comparison-dock{margin-top:9px;padding:9px;bottom:8px}.compare-button{min-width:108px;min-height:40px}.comparison-panel{margin-top:10px;padding:14px}.comparison-heading h3{font-size:22px}.comparison-table th,.comparison-table td{padding:9px 6px}.comparison-table th:first-child,.comparison-table td:first-child{width:90px}.comparison-score-row td strong{font-size:25px}.compact-footer{padding-inline:max(14px, env(safe-area-inset-left)) max(14px, env(safe-area-inset-right));gap:8px;font-size:11px}.compact-footer>p{text-overflow:ellipsis;white-space:nowrap;max-width:235px;overflow:hidden}}@media (max-width:430px){.planner-card{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}.mode-switch button{font-size:11px}.range-fields{grid-template-columns:minmax(0,1fr);gap:8px}.range-fields>span{display:none}.weekday-fields{grid-template-columns:1fr;gap:8px}.year-month-fields{grid-template-columns:1fr 1fr}.panel-heading{gap:8px}.panel-heading h2{font-size:21px}.result-summary{grid-template-columns:18px 82px 48px minmax(20px,1fr) 52px 26px;gap:2px;padding-inline:7px}.result-details dl>div{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding-inline:6px}.result-details dd{font-size:15px}.comparison-dock{grid-template-columns:minmax(0,1fr) 102px;gap:8px;display:grid}.dock-selection{gap:4px;display:grid}.candidate-chips{flex-wrap:wrap;gap:3px}.candidate-chips button{gap:3px;min-height:26px;padding-inline:5px;font-size:10px}.candidate-chips button small{width:17px;height:17px}.dock-note{font-size:9px}.compare-button{gap:6px;width:102px;min-width:0;padding-inline:10px;font-size:11px}.comparison-panel{border-radius:15px;padding:12px 8px}.comparison-context{margin-block:8px;font-size:10px}.comparison-table th,.comparison-table td{padding:8px 3px;font-size:10px}.comparison-table th:first-child,.comparison-table td:first-child{width:68px;padding-left:6px}.comparison-table thead th strong{font-size:16px}.comparison-table thead th span{width:19px;height:19px;margin-left:3px}.comparison-table tbody th{font-size:9px}.comparison-table tbody th small{font-size:8px}.comparison-score-row td strong{font-size:23px}.comparison-share{flex-direction:column;align-items:stretch;gap:7px}.share-button{width:100%}.comparison-share p{text-align:center}}@media (max-height:700px) and (min-width:761px){.control-panel,.result-panel{padding-top:18px;padding-bottom:18px}.compact-intro{margin-bottom:14px}.compact-intro h1{font-size:32px}.planner-card{gap:10px;padding:15px}.compact-ranking article{min-height:82px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
