*{box-sizing:border-box}:root{--text:#222;--muted:#666;--line:#cfd4da;--bg:#f7f7f7;--panel:#fff;--head:#eef2f6;--link:#1655a5;--red:#c62828;--blue:#2368b5;--today:#f4a300}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;font-size:14px;line-height:1.65}a{color:var(--link)}button,input,textarea{font:inherit}.jp-shell{width:min(1120px,calc(100% - 28px));margin:auto}.jp-skip{position:absolute;left:-9999px}.jp-skip:focus{left:10px;top:10px;z-index:999;background:#fff;padding:8px}
.jp-header{background:#fff;border-bottom:1px solid #bfc5cc}.jp-header__row{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:20px}.jp-logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:#222}.jp-logo__mark{width:36px;height:36px;border:1px solid #777;display:grid;place-items:center;font-family:serif;font-size:21px}.jp-logo span:last-child{display:grid;line-height:1.25}.jp-logo b{font-size:17px}.jp-logo small{font-size:10px;color:#777;font-weight:400}.jp-global{display:flex;align-items:center}.jp-global>a,.jp-year-menu>summary{display:block;padding:8px 11px;border-left:1px solid #e0e3e6;text-decoration:none;color:#333;font-size:13px;cursor:pointer}.jp-global>a:hover,.jp-year-menu>summary:hover{background:#f1f3f5}.jp-year-menu{position:relative}.jp-year-menu>summary{list-style:none;display:flex;align-items:center;gap:7px}.jp-year-menu>summary::-webkit-details-marker{display:none}.jp-year-menu>summary span{width:6px;height:6px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg) translateY(-2px)}.jp-year-menu[open]>summary span{transform:rotate(225deg) translate(-2px,-2px)}.jp-year-menu__panel{position:absolute;right:0;top:38px;background:#fff;border:1px solid #aaa;min-width:150px;z-index:50;padding:4px}.jp-year-menu__panel a{display:block;padding:7px 9px;text-decoration:none;color:#333}.jp-year-menu__panel a:hover{background:#eef2f6}
.jp-breadcrumbline{padding:10px 0 6px;color:#777;font-size:11px}.jp-intro{padding:14px 0 18px}.jp-intro h1{font-size:30px;margin:0 0 4px}.jp-intro p{margin:0;color:#555;font-size:13px}.jp-dashboard{padding-bottom:38px}.jp-dashboard__grid,.jp-pagegrid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.jp-main{min-width:0}.jp-side{display:grid;gap:14px;position:sticky;top:12px}.jp-block,.jp-todaybox,.jp-sidebox{background:#fff;border:1px solid #bfc5cc;margin-bottom:14px}.jp-titlebar{min-height:36px;padding:7px 10px;background:#eef2f6;border-bottom:1px solid #c9cfd5;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:12px}.jp-titlebar a{font-size:12px;font-weight:400}
.jp-todaybox__body{display:flex;align-items:center;padding:15px 18px}.jp-bigdate{font-size:60px;line-height:.9;font-weight:700;margin-right:18px;min-width:64px;text-align:center}.jp-dateinfo{display:grid;line-height:1.45}.jp-dateinfo strong{font-size:18px}.jp-dateinfo span{font-size:12px;color:#666}.jp-dateinfo b{font-size:14px}
.jp-cal__title{display:flex;align-items:baseline;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #aaa}.jp-cal__title h3{margin:0;font-size:18px}.jp-cal__title span{color:#666;font-size:12px}.jp-cal__week,.jp-cal__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.jp-cal__week{border-bottom:1px solid #aaa;background:#fafafa}.jp-cal__week span{padding:6px 2px;text-align:center;font-weight:700;font-size:12px;border-right:1px solid #e3e3e3}.jp-cal__week .sun{color:var(--red)}.jp-cal__week .sat{color:var(--blue)}.jp-cal__days>span,.jp-cal__days>button{min-height:76px;border:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;background:#fff;padding:6px;text-align:left}.jp-cal__days>button{cursor:pointer}.jp-cal__days .empty{background:#fafafa}.jp-cal__days button:hover{background:#fffce8}.jp-cal__days button.today{outline:2px solid var(--today);outline-offset:-2px}.jp-cal__days button.holiday{background:#fff4f4}.jp-cal__days button.sun b{color:var(--red)}.jp-cal__days button.sat b{color:var(--blue)}.jp-cal__days b{font-size:14px}.jp-cal__days small{display:block;margin-top:7px;color:var(--red);font-size:10px;line-height:1.35}.jp-legend{padding:8px 10px;border-top:1px solid #ddd;background:#fafafa;font-size:11px;color:#555}.jp-legend .red{color:var(--red)}.jp-legend .blue{color:var(--blue)}.jp-legend .todaymark{display:inline-block;width:11px;height:11px;border:2px solid var(--today);vertical-align:-2px}
.jp-sidebox{margin:0}.jp-sidebox dl{margin:0}.jp-sidebox dl div{display:grid;grid-template-columns:78px 1fr;border-bottom:1px solid #e3e5e7}.jp-sidebox dt,.jp-sidebox dd{margin:0;padding:7px 8px;font-size:12px}.jp-sidebox dt{background:#fafafa;color:#666}.jp-sidebox dd{font-weight:600}.jp-yearlinks,.jp-sidelinks{display:grid}.jp-yearlinks a,.jp-sidelinks a{padding:7px 9px;border-bottom:1px solid #e4e6e8;text-decoration:none}.jp-yearlinks a:hover,.jp-sidelinks a:hover{background:#f8fafc;text-decoration:underline}
.jp-holiday-list article{display:grid;grid-template-columns:120px 1fr 150px;gap:12px;padding:8px 10px;border-bottom:1px solid #e5e7e9;align-items:center}.jp-holiday-list time{font-weight:700;color:var(--red)}.jp-holiday-list b{font-size:13px}.jp-holiday-list span{font-size:11px;color:#777}.jp-prose__body{padding:14px 16px}.jp-prose__body h2{font-size:18px;margin:1.8em 0 .45em;padding:6px 8px;background:#f5f6f7;border-left:4px solid #7e8b99}.jp-prose__body h2:first-child{margin-top:0}.jp-prose__body h3{font-size:15px;border-bottom:1px solid #ccc;padding-bottom:4px}.jp-prose__body table{width:100%;border-collapse:collapse}.jp-prose__body th,.jp-prose__body td{border:1px solid #ccd1d6;padding:7px;text-align:left}.jp-prose__body th{background:#f0f2f4}.jp-faq details{border-bottom:1px solid #e3e5e7}.jp-faq summary{cursor:pointer;padding:9px 11px;font-weight:700}.jp-faq p{margin:0;padding:0 11px 11px;color:#555}
.jp-pagehead{padding:12px 0 18px}.jp-pagehead h1{font-size:27px;margin:0 0 6px}.jp-pagelead{color:#555}.jp-yeargrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.jp-yeargrid .jp-cal{border:1px solid #bbb}.jp-yeargrid .jp-cal__days>span,.jp-yeargrid .jp-cal__days>button{min-height:47px;padding:4px}.jp-yeargrid .jp-cal__days small{display:none}.jp-yeargrid.single{grid-template-columns:minmax(0,760px)}.jp-print{border:1px solid #999;background:#fff;padding:4px 10px;cursor:pointer}.jp-holiday-table>div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid #ddd;padding:7px 10px}.jp-holiday-table time{color:var(--red);font-weight:700}.jp-contact{display:grid;gap:10px}.jp-contact label{display:grid;gap:4px;font-weight:700}.jp-contact input,.jp-contact textarea{border:1px solid #aaa;padding:8px}.jp-contact button{width:max-content;border:1px solid #666;background:#f2f2f2;padding:7px 18px}.hp-field{position:absolute;left:-9999px}.jp-alert{padding:8px 10px;margin-bottom:10px;border:1px solid}.jp-alert.ok{background:#f3fff5}.jp-alert.error{background:#fff3f3}
.jp-datepop{position:fixed;right:16px;bottom:16px;width:min(330px,calc(100vw - 32px));background:#fff;border:1px solid #777;padding:12px;box-shadow:0 5px 18px rgba(0,0,0,.18);z-index:120}.jp-datepop button{float:right;border:1px solid #aaa;background:#f5f5f5;padding:3px 7px}.jp-datepop strong{display:block;font-size:17px}.jp-datepop span{display:block;color:#666;font-size:12px}.jp-datepop p{margin:7px 0 0;color:var(--red);font-weight:700}.jp-footer{margin-top:20px;background:#eceff2;border-top:1px solid #c5cbd1;color:#555}.jp-footer__links{padding:18px 0;display:flex;justify-content:space-between;gap:20px}.jp-footer nav{display:flex;flex-wrap:wrap;gap:6px 16px}.jp-footer__copy{padding:8px 0;border-top:1px solid #d0d4d8;font-size:11px;color:#777}
@media(max-width:820px){.jp-dashboard__grid,.jp-pagegrid{grid-template-columns:1fr}.jp-side{position:static;grid-template-columns:1fr 1fr}.jp-yeargrid{grid-template-columns:1fr 1fr}.jp-global>a{display:none}}@media(max-width:560px){body{font-size:13px}.jp-shell{width:calc(100% - 16px)}.jp-logo small{display:none}.jp-intro h1{font-size:25px}.jp-side{grid-template-columns:1fr}.jp-cal__days>span,.jp-cal__days>button{min-height:56px;padding:4px}.jp-cal__days small{display:none}.jp-bigdate{font-size:48px}.jp-holiday-list article{grid-template-columns:100px 1fr}.jp-holiday-list span{display:none}.jp-yeargrid{grid-template-columns:1fr}.jp-footer__links{display:block}.jp-footer nav{margin-top:8px}}@media print{.jp-header,.jp-side,.jp-footer,.jp-print,.jp-datepop{display:none!important}.jp-pagegrid{display:block}.jp-shell{width:100%}.jp-yeargrid{grid-template-columns:repeat(3,1fr)}}

/* Phase 1: Japanese koyomi layers */
.jp-cal__days button{position:relative}.jp-rokuyo{position:absolute;right:5px;top:5px;font-size:9px;color:#43803d;font-weight:600}.jp-event{display:block;margin-top:3px;font-size:10px;line-height:1.25}.jp-event.holiday-name{color:var(--red);font-weight:700}.jp-event.solar-term{color:#3c7b36}.jp-event.seasonal-day{color:#8a5a13}.jp-legend .term{color:#3c7b36}.jp-koyomi-table>div{display:grid;grid-template-columns:90px 90px 1fr 70px;gap:8px;border-bottom:1px solid #ddd;padding:7px 10px;align-items:center}.jp-koyomi-table time{font-weight:700}.jp-koyomi-table span{font-size:11px;color:#666}.jp-koyomi-table em{font-style:normal;color:#777;font-size:11px;text-align:right}
.jp-yeargrid .jp-rokuyo{font-size:8px;right:3px;top:2px}.jp-yeargrid .jp-event{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jp-yeargrid .jp-cal__days>button{min-height:54px}
@media(max-width:560px){.jp-rokuyo{font-size:8px}.jp-event{font-size:8px}.jp-koyomi-table>div{grid-template-columns:70px 70px 1fr}.jp-koyomi-table em{display:none}}
