body{margin:0;background:#000}
[hidden]{display:none!important}
.frame{position:relative;height:100vh;height:100dvh;box-sizing:border-box;background:#000;color:#fff;display:flex;flex-direction:column;font-family:ui-monospace,'SF Mono',Menlo,Consolas,'DejaVu Sans Mono',monospace;font-size:16px;line-height:1.4}
.scroll{flex:1;min-height:0;overflow-y:auto;padding:16px 16px 8px;display:flex;flex-direction:column}
.screen{flex:1;display:flex;flex-direction:column}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0}
.row>.k{flex-shrink:0}.row>.v{text-align:right;min-width:0;overflow-wrap:anywhere}
.row.nowrap{white-space:nowrap}
.rule{white-space:nowrap;overflow:hidden;padding:10px 0 6px}
.rule-foot{padding:0 12px}
.rule-named{display:flex;gap:8px;white-space:nowrap;overflow:hidden;padding:10px 0 6px}.rule-named>span:last-child{overflow:hidden}
.title{font-weight:700;padding:6px 0 2px}
.title-top{font-weight:700;padding:0 0 4px}
.note{padding:6px 0}.note-small{padding:6px 0;font-size:14px}
.foot{display:flex;font-size:12px;padding:0 4px calc(20px + env(safe-area-inset-bottom))}
.foot button{display:flex;align-items:center;justify-content:center;min-height:56px;color:#fff;background:#000;border:0;border-left:2px dotted #fff;font:inherit;font-size:12px;text-decoration:none;box-sizing:content-box;flex:1 0 auto;padding:0;white-space:nowrap}
.foot button:first-child{border-left:0}.foot button.on{font-weight:700}
.banner{background:#fff;color:#000;text-align:center;padding:8px;font-weight:700}
.btn{min-height:44px;padding:0;background:#000;color:#fff;border:0;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}
.btn-small{min-height:44px;padding:0 4px;background:#000;color:#fff;border:0;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer}
.full{position:absolute;inset:0;z-index:20;background:#000;display:flex;flex-direction:column;padding:12px 12px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;padding-top:calc(12px + env(safe-area-inset-top))}
.mapbox{flex:1;position:relative;overflow:hidden;min-height:360px}
.mapbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.screen-map{margin:-16px -16px -8px}
.navrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 16px}
.fsrow{display:flex;justify-content:flex-end;padding:0 16px}
.rule-map{padding:0 16px}
.simbox{padding:6px 16px;display:flex;flex-direction:column;gap:2px}
.simlabel{display:flex;justify-content:space-between}
#sim-km{width:100%;height:44px;accent-color:#fff;color:#fff}
.simends{display:flex;justify-content:space-between;font-size:14px}
.fullhead{display:flex;justify-content:space-between;align-items:center}
.mapwrap{flex:1;display:flex;flex-direction:column}
.mapwrap.fs{position:fixed;inset:0;z-index:20;background:#000;padding:12px 12px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;padding-top:calc(12px + env(safe-area-inset-top))}
.mapwrap.fs .mapbox{border:1px dotted #fff;margin-top:6px}
.b{font-weight:700}
.ithead{display:flex;justify-content:space-between;padding:0 0 4px}
.day{border-top:3px dotted #fff;margin-top:22px;padding-top:16px}
.dayhead{display:flex;justify-content:space-between;gap:12px;padding:6px 8px;margin:0 -8px 4px;font-weight:700}
.dayhead.today{background:#fff;color:#000}
.listhead{padding:8px 0 2px}
.tree{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0}
.tat{flex-shrink:0;text-align:right}
.tsub{padding:0 0 3px;white-space:nowrap}.tpre{display:inline-block;width:3ch;white-space:pre;vertical-align:top}.ttext{display:inline-block;width:calc(100% - 3ch);white-space:normal;overflow-wrap:anywhere;vertical-align:top}
.alert{font-weight:800}
a{color:#fff}a:hover{color:#fff}
.note a,.row .v>a{display:inline-block;padding:11px 0;margin:-11px 0}
.row.ctl{align-items:center;gap:12px}
.date{min-height:44px;background:#000;color:#fff;border:1px dotted #fff;padding:0 8px;font-size:16px;font-family:inherit;text-align:right;color-scheme:dark}
.togs{display:flex;gap:12px}
.tog{min-height:44px;min-width:44px;padding:0;border:0;background:#000;color:#fff;font-size:16px;font-family:inherit;cursor:pointer}.tog.sel{font-weight:800}
.wxmap{position:relative;height:340px;margin:6px 0 8px;border:1px dotted #fff;flex-shrink:0}
.wxcmbox{position:absolute;inset:0}
.wxcm{position:absolute;inset:0}
.wxmapctl{position:absolute;left:4px;top:4px;z-index:2;display:flex;gap:4px}
.wxmapctl .btn-small{min-width:44px}
.cmsvg{--k:1;width:100%;height:100%;display:block;background:#000;touch-action:none;cursor:grab}
.cmsvg.panning{cursor:grabbing}
.cmsvg .cell{cursor:pointer}
.cmsvg .cell polygon{fill:none;stroke:none;pointer-events:all}
.cmsvg .cell.sel polygon{fill:#fff}
.cmsvg .cedge{fill:none;stroke:#fff;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;pointer-events:none}
.cmsvg .selclip{fill:#000;stroke:none}
.cmsvg .cnum{fill:#fff;font-size:calc(17px * var(--k));font-weight:700;paint-order:stroke;stroke:#000;stroke-width:calc(3px * var(--k));stroke-linejoin:round;pointer-events:none}
.cmsvg .cnum.sel{fill:#000;stroke:#fff}
.cmsvg .croute,.cmsvg .croute-sel{fill:none;stroke:#fff;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}
.cmsvg .croute-sel{stroke:#000}
.cmsvg .cnode{fill:#fff;stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}
.cmsvg .clabel{fill:#fff;font-size:calc(13px * var(--k));paint-order:stroke;stroke:#000;stroke-width:calc(3px * var(--k));stroke-linejoin:round;pointer-events:none}
.cmsvg .clabel.hid{display:none}
.cmsvg .cnorth{pointer-events:none}
.cmsvg .cnorth line{stroke:#fff;stroke-width:1.5}
.cmsvg .cnorth polygon{fill:#fff;stroke:none}
.cmsvg .cnorth text{fill:#fff;font-size:12px;font-weight:600}
.wxfull{position:absolute;right:4px;bottom:4px}
.wxmap.fs{position:fixed;inset:0;z-index:20;height:auto;margin:0;border:0;background:#000;display:flex;flex-direction:column;padding:12px 12px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;padding-top:calc(12px + env(safe-area-inset-top))}
.wxmap.fs .wxcmbox{position:relative;flex:1;border:1px dotted #fff;margin:6px 0}
.fullsel{display:flex;justify-content:space-between;white-space:nowrap}
.period{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pbtn{min-height:44px;border:0;background:#000;color:#fff;font-size:16px;font-family:inherit;cursor:pointer}.pbtn.sel{font-weight:800}
.left{text-align:left}.right{text-align:right}
.wxbox{overflow:auto;max-height:260px;font-size:15px;flex-shrink:0}
.wxhead,.wxrow{display:grid;grid-template-columns:76px repeat(7,72px)}
.wxhead{position:sticky;top:0;background:#000;z-index:2}
.wxrow{border-top:1px dotted #fff}
.wxcell{padding:6px 4px;text-align:right}
.wxfirst{position:sticky;left:0;background:#000;text-align:left}
