:root{--accent: #1d4ed8;--accent-soft: #dbeafe;--ink: #1f2937;--ink-2: #4b5563;--ink-3: #9ca3af;--line: #e5e7eb;--bg: #f7f7f5;--card: #ffffff;--temp: #d92d20;--precip: #2563eb;--danger: #b91c1c;--radius: 10px;--side-w: 340px;--font-main: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--font-main);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}button{font:inherit}.spacer{flex:1}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.toolbar{flex:none;height:56px;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--card);border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{font-weight:700;font-size:17px;letter-spacing:.02em;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand small{font-weight:400;color:var(--ink-3);font-size:12px}.legend{display:flex;gap:14px;color:var(--ink-2);font-size:13px;align-items:center;white-space:nowrap}.legend i{display:inline-block;width:18px;height:3px;background:var(--temp);border-radius:2px;vertical-align:middle;margin-right:6px}.legend b{display:inline-block;width:10px;height:12px;background:var(--precip);border-radius:2px 2px 0 0;vertical-align:middle;margin-right:6px}.btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--card);font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;white-space:nowrap}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.4;cursor:default}.btn svg{width:16px;height:16px}.btn.info{width:40px;justify-content:center;padding:0;border-radius:20px;font-family:Georgia,serif;font-weight:700;color:var(--ink-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.popover-anchor{position:relative}.popover{position:absolute;right:0;top:calc(100% + 8px);width:320px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #0000001a;padding:12px 14px;font-size:13px;color:var(--ink-2)}.popover p{margin:0 0 8px}.popover p:last-child{margin-bottom:0}.popover a{color:var(--accent)}.popover input{display:block;width:100%;margin-top:6px;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:6px;font:inherit}.print-popover{width:260px;display:flex;flex-direction:column;gap:10px}.print-popover .check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--ink);cursor:pointer}.print-popover .check input{width:20px;height:20px}.print-popover .btn{justify-content:center}.landscape-notice{display:none;margin:0;padding:6px 16px;font-size:13px;background:var(--accent-soft);color:var(--accent)}.main{flex:1;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:0}.side{background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;position:relative;z-index:10}.side-head{padding:12px 14px 8px;border-bottom:1px solid var(--line)}.search-box{position:relative}.search{width:100%;height:40px;padding:0 12px 0 36px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:14px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") 12px center no-repeat}.search-results{position:absolute;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #0000001a;z-index:30}.search-results li{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 8px;border-radius:8px;cursor:pointer}.search-results li.active{background:var(--accent-soft)}.search-results li.added{color:var(--ink-3);cursor:default}.kana{color:var(--ink-3);font-size:12px;margin-left:6px}.pref-note{color:var(--ink-3);font-size:11px;margin-left:8px}.add{color:var(--accent);font-weight:700;font-size:20px}.added .add{color:var(--ink-3);font-size:13px;font-weight:500}.full{margin:6px 0 0;color:var(--danger);font-size:13px;font-weight:500}.map{flex:1;padding:12px;min-height:0;display:flex;flex-direction:column}.map-canvas{flex:1;min-height:0}.map-note{font-size:12px;color:var(--ink-3);margin:6px 2px 0}.presets{padding:10px 14px 12px;border-top:1px solid var(--line)}.presets h4{margin:0 0 8px;font-size:12px;color:var(--ink-3);font-weight:500;letter-spacing:.04em}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:32px;padding:0 12px;border-radius:16px;border:1px solid var(--line);background:#fff;font-size:13px;cursor:pointer;color:var(--ink)}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.picker{position:absolute;left:calc(100% + 12px);top:12px;width:300px;max-height:calc(100% - 24px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #0000001a;padding:12px}.picker h3{margin:0 0 8px;font-size:15px;display:flex;align-items:center;justify-content:space-between}.picker h3 span:focus{outline:none}.picker-close{width:32px;height:32px;border:0;border-radius:16px;background:transparent;color:var(--ink-3);font-size:18px;cursor:pointer}.picker .full{margin:0 0 8px}.picker-list{overflow-y:auto;min-height:0}.picker ul{list-style:none;margin:0;padding:0}.picker-group{position:sticky;top:0;margin:0;padding:8px 8px 4px;background:var(--card);border-bottom:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.04em}.picker-row{display:flex;width:100%;align-items:center;justify-content:space-between;height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.picker-row:hover:not(:disabled){background:var(--bg)}.picker-row.added{color:var(--ink-3);cursor:default}.compare{padding:16px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.compare-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.compare-head h2{margin:0;font-size:16px;font-weight:700}.compare-head .count{color:var(--ink-3);font-size:13px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:12px;flex:1;min-height:0}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.single{grid-auto-rows:auto;align-content:start}.grid.cols-1{grid-template-columns:minmax(0,640px);justify-content:center}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 10px 8px;position:relative;display:flex;flex-direction:column;min-height:0}.card.tappable{cursor:pointer}.card.revealed{outline:2px solid var(--accent)}.card .chart-wrap{flex:1;min-height:0;margin-top:18px}.grid.single .card .chart-wrap{flex:none;aspect-ratio:320 / 250}.card svg.chart{display:block}.card-tags{position:absolute;left:10px;top:8px;display:flex;gap:6px;align-items:center}.card .tag{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-weight:500}.card .slot{font-size:13px;font-weight:700;color:var(--ink-2)}.card .del{position:absolute;right:8px;top:6px;width:28px;height:28px;border-radius:14px;border:0;background:transparent;color:var(--ink-3);font-size:18px;cursor:pointer;line-height:1}.card .del:hover{background:var(--bg);color:var(--ink)}.card .caption{text-align:center;margin-top:4px}.card .caption .name{font-weight:700;font-size:15px}.card .caption .pref,.print-card .caption .pref{font-weight:400;font-size:12px;color:var(--ink-3);margin-right:6px}.card .caption .stats{font-size:12px;color:var(--ink-2)}.card.masked .caption .name{color:var(--ink-3)}.empty{border:2px dashed var(--line);border-radius:var(--radius);padding:48px 24px;text-align:center;color:var(--ink-2)}.empty strong{display:block;font-size:17px;color:var(--ink);margin-bottom:6px}.toast-region{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:50}.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;box-shadow:0 8px 24px #0003}.japan-map{display:block;width:100%;height:100%;touch-action:manipulation}.japan-map .pref{fill:#d1d5db;stroke:#fff;stroke-width:1px;outline:none}.japan-map .pref *,.japan-map .pref-outline *{vector-effect:non-scaling-stroke}.japan-map .pref.on{fill:var(--accent)}.japan-map .pref-outline{fill:none;stroke:var(--accent);stroke-width:2px;pointer-events:none}.japan-map .boundary-line{stroke:var(--line);stroke-width:6}@media(max-width:1180px){:root{--side-w: 300px}.picker{inset:auto 12px 12px;width:auto;max-height:60%}}@media(max-width:640px){.app{height:auto;min-height:100vh}.toolbar{flex-wrap:wrap;height:auto;padding:8px 12px}.landscape-notice{display:block}.main{grid-template-columns:minmax(0,1fr)}.side{border-right:0;border-bottom:1px solid var(--line)}.map-canvas{height:300px;flex:none}.compare{overflow:visible}.grid,.grid.cols-2,.grid.cols-1{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}.grid .card .chart-wrap{flex:none;aspect-ratio:320 / 250}}@page{size:A4 landscape;margin:10mm}@media screen{.print-sheet{display:none}}@media print{html,body,#root{height:auto;background:#fff}.app,.toast-region{display:none!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-sheet{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:3mm;width:100%;height:100vh;padding:5mm;overflow:hidden;color:#1f2937;page-break-after:avoid;break-after:avoid}.print-sheet.trim{padding:10mm}.sheet-head{display:flex;align-items:flex-end;gap:8mm;border-bottom:1.5px solid #1f2937;padding-bottom:2mm;white-space:nowrap}.sheet-head h1{margin:0;font-size:18pt;font-weight:700;line-height:1.2}.sheet-head .sub{font-size:9pt;color:#4b5563}.sheet-head .legend{margin-left:4mm;font-size:9pt}.sheet-head .fields{margin-left:auto;font-size:11pt;display:flex;align-items:flex-end;gap:2mm;white-space:nowrap}.sheet-head .blank{display:inline-block;min-width:14mm;height:6mm;border-bottom:1px solid #1f2937}.sheet-head .blank.name{min-width:50mm}.print-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:3mm;min-height:0}.print-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.print-grid.one{grid-template-columns:1fr 4fr 1fr}.print-grid.one .print-card{grid-column:2}.print-card{border:1px solid #9ca3af;border-radius:2mm;padding:2mm 2mm 1mm;position:relative;display:flex;flex-direction:column;min-height:0}.print-card .chart-wrap{flex:1;min-height:0;margin-top:5mm}.print-card svg.chart{display:block}.print-card .card-tags{position:absolute;left:2mm;top:1.5mm;display:flex;gap:2mm;align-items:center}.print-card .tag{font-size:8pt;padding:0 2mm;border-radius:3mm;border:1px solid #1d4ed8;color:#1d4ed8;background:transparent}.print-card .slot{font-size:11pt;font-weight:700}.print-card .caption{text-align:center;line-height:1.3}.print-card .caption .name{font-size:11pt;font-weight:700}.print-card .caption .pref{font-size:8pt;font-weight:400;color:#6b7280;margin-right:2mm}.print-card .caption .stats{font-size:8pt;color:#4b5563}.notes{border:1px solid #1f2937;border-radius:2mm;padding:2mm 3mm;height:32mm}.notes h3{margin:0 0 1mm;font-size:10pt;font-weight:700}.notes .lines{height:22mm;background:repeating-linear-gradient(to bottom,transparent 0,transparent 6.5mm,#9ca3af 6.5mm,#9ca3af calc(6.5mm + 1px))}.credit{font-size:7.5pt;color:#4b5563;display:flex;justify-content:space-between;gap:4mm}}
