:root{--bg: #f4efe4;--card: #fffdf8;--ink: #2a2723;--sub: #6b655a;--line: #ddd4c3;--line-strong: #b9ad97;--accent: #2b4a6f;--accent-deep: #1f3752;--accent-soft: #eef2f7;--notice-bg: #f8f4ea;--vermilion: #a4563c;--vermilion-deep: #874631;--serif: "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;--sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Meiryo", system-ui, sans-serif}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.8;-webkit-font-smoothing:antialiased}.app{max-width:30rem;margin:0 auto;padding:1rem 1rem 2.5rem}.app-header{display:flex;flex-wrap:wrap;align-items:center;column-gap:.5rem;row-gap:.5rem;padding:.25rem 0 .9rem;border-bottom:1px solid var(--line-strong);margin-bottom:1.1rem}.app-header-body{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:.6rem;row-gap:.15rem}.app-header-body h1{flex:1 1 100%}.app:not(.admin) .app-header-body h1{text-align:center}.app-title-button{display:inline;padding:0;border:none;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-align:left;cursor:pointer}.app-title-button:hover{color:var(--accent)}.app-meta{order:2;flex-basis:100%;margin:0;color:var(--sub);font-size:.78rem;letter-spacing:.02em}.header-links{order:3;flex:none;margin-left:auto;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:.25rem}.header-links a{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 .45rem;font-size:.72rem;line-height:1.35;color:var(--accent);text-decoration:none;border:1px solid var(--line-strong);border-radius:4px;background:var(--card)}.header-links a:hover{border-color:var(--accent);text-decoration:underline}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem 1.6rem}.footer-links a{display:inline-flex;align-items:center;gap:.25em;min-height:44px;padding:0 .25rem;font-size:.82rem;color:var(--accent);background:none;border:none;border-radius:0;box-shadow:none;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em}.footer-links a:hover{text-decoration-color:currentColor}.ext-mark{font-size:.9em;line-height:1}.app-mark{flex:none;width:40px;height:40px;color:var(--accent)}.app:not(.admin) .app-mark{width:32px;height:32px}.app-header h1{font-family:var(--serif);font-weight:600;font-size:1.45rem;letter-spacing:.06em;margin:0;line-height:1.3}@media(max-width:400px){.app-header h1{font-size:1.3rem}.app:not(.admin) .app-header h1{font-size:1.1rem}.app:not(.admin) .app-mark{width:24px;height:24px}}@media(max-width:374px){.app:not(.admin) .header-links{flex-basis:100%;flex-direction:row;gap:.4rem}.app:not(.admin) .app-header-body h1{text-align:left}}.app-header-note{order:4;flex-basis:100%;margin:.6rem 0 0}.app.admin .app-header{align-items:flex-start}.badge{display:inline-block;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 .45rem;font-size:.72rem;line-height:1.5;letter-spacing:.08em;background:transparent}.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.1rem 1.1rem 1.2rem;margin-bottom:1.1rem;box-shadow:0 1px #2a27230a}h2{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:.04em;margin:.15rem 0 .75rem;line-height:1.4}h3{font-size:1rem;font-weight:700;letter-spacing:.02em;margin:1.4rem 0 .4rem;padding:0 0 .3rem 1rem;border-bottom:1px solid var(--line);position:relative}h3:before{content:"";position:absolute;left:0;top:.62em;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent)}h3.is-caution:before{background:var(--vermilion)}ul{margin:.35rem 0;padding-left:1.3rem}li{margin:.15rem 0}p{margin:.5rem 0}.notice{background:var(--notice-bg);border-left:2px solid var(--line-strong);border-radius:0 4px 4px 0;padding:.6rem .9rem;font-size:.84rem;color:var(--sub)}.profile-fallback{margin:0 0 1.1rem}.privacy-note,.note{font-size:.8rem;color:var(--sub)}.error{background:var(--accent-soft);border-left:2px solid var(--accent);border-radius:0 4px 4px 0;padding:.6rem .9rem;font-weight:600}.loading-note{color:var(--sub);text-align:center;padding:2rem 0}.date-fields{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0}.date-fields .field{flex:1 1 4rem;min-width:0}.date-fields select{width:100%;min-width:0;padding-left:.35rem;padding-right:.2rem}.field{display:flex;flex-direction:column;flex:1}.field label{font-size:.82rem;color:var(--sub);margin-bottom:.25rem}select,input[type=date],input[type=text],input[type=number],textarea{font-size:1rem;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:4px}select,input[type=date],input[type=text],input[type=number]{min-height:46px;padding:.4rem .6rem}input[type=date]{flex:1;min-width:10rem}button.primary{display:block;width:100%;min-height:48px;margin-top:1rem;font-size:1rem;font-family:inherit;font-weight:700;letter-spacing:.06em;color:#fff;background:var(--accent);border:1px solid var(--accent-deep);border-radius:4px;cursor:pointer;box-shadow:0 1px #1f375240}button.primary:hover{background:var(--accent-deep)}button.secondary{min-height:44px;padding:.4rem 1rem;font-size:.95rem;font-family:inherit;font-weight:600;letter-spacing:.04em;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:4px;cursor:pointer}button.secondary:hover{background:var(--accent-soft)}button.secondary.wide{display:block;width:100%}button:disabled,button.primary:disabled,button.secondary:disabled{opacity:.5;cursor:default;box-shadow:none}button.linklike{background:none;border:none;color:var(--accent);text-decoration:underline;text-underline-offset:.2em;font-size:.95rem;font-family:inherit;min-height:44px;padding:0 .5rem;cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.result-date{margin:0;color:var(--sub);font-size:.85rem;letter-spacing:.04em;display:flex;align-items:center;gap:.5rem}.date-tag{display:inline-block;border:1px solid var(--line-strong);border-radius:3px;padding:0 .4rem;font-size:.72rem;line-height:1.5;color:var(--sub)}.target-date{margin:.75rem 0 .25rem}.target-date label{display:block;font-size:.82rem;color:var(--sub);margin-bottom:.25rem}.target-date-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.target-date .error{margin:.5rem 0 0}.score-block{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ring label" "ring tier" "ring body";column-gap:1rem;align-items:center;padding:.9rem .25rem;margin:.9rem 0 .25rem;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}.score-label{grid-area:label;margin:0;font-size:.82rem;color:var(--sub);letter-spacing:.06em}.score-ring-wrap{grid-area:ring;position:relative;width:96px;height:96px}.score-ring{width:100%;height:100%;display:block}.score-ring .ring-track{fill:none;stroke:var(--line);stroke-width:3}.score-ring .ring-value{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}.score{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;display:flex;align-items:center;justify-content:center;gap:.1rem}.score-number{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--ink);line-height:1}.score-unit{font-size:.78rem;color:var(--sub);margin-top:.7rem}.tier-label{grid-area:tier;margin:0;font-family:var(--serif);font-size:1.35rem;font-weight:600;letter-spacing:.06em;color:var(--accent-deep);line-height:1.3}.tier-body{grid-area:body;margin:.15rem 0 0;font-size:.95rem}.relation-note{background:transparent;border:1px solid var(--line);border-radius:4px;padding:.55rem .9rem;font-size:.9rem}details{border:1px solid var(--line);border-radius:4px;margin:1rem 0;background:var(--card)}details summary{cursor:pointer;padding:.7rem 2rem .7rem .9rem;min-height:46px;font-weight:600;color:var(--accent-deep);list-style:none;position:relative}details summary::-webkit-details-marker{display:none}details summary:after{content:"";position:absolute;right:.9rem;top:50%;width:.45rem;height:.45rem;border-right:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);transform:translateY(-70%) rotate(45deg)}details[open] summary:after{transform:translateY(-20%) rotate(225deg)}.basis-body,.about-body{padding:0 .9rem .9rem;font-size:.9rem}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.84rem}th,td{border-bottom:1px solid var(--line);padding:.4rem .5rem;text-align:left;white-space:nowrap}thead th{background:transparent;color:var(--sub);font-weight:600;border-bottom:1px solid var(--line-strong)}.about summary{font-weight:600}.app-footer{color:var(--sub);font-size:.8rem;border-top:1px solid var(--line-strong);padding-top:.75rem;margin-top:.5rem}.star-profile{border:1px solid var(--line);background:var(--notice-bg);border-radius:4px;padding:.9rem 1rem;margin:.9rem 0}.star-profile h3{margin:0 0 .4rem;padding:0 0 0 1rem;border-bottom:none;font-size:.84rem;font-weight:600;color:var(--sub);letter-spacing:.06em}.star-profile-main{margin:0;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.star-profile-name{font-family:var(--serif);font-size:1.35rem;font-weight:600;letter-spacing:.08em}.star-profile-element{color:var(--sub);font-size:.88rem}.keyword-list{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0 .25rem;padding:0}.keyword{color:var(--accent-deep);border:1px solid var(--line-strong);background:var(--card);border-radius:3px;padding:.05rem .6rem;font-size:.82rem;margin:0}.star-profile-overview{margin:.5rem 0 .7rem;font-size:.95rem}.star-profile-toggle{display:block;width:100%;min-height:44px;font-size:.92rem;font-family:inherit;font-weight:600;letter-spacing:.04em;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:4px;cursor:pointer}.star-profile-toggle:hover{background:var(--accent-soft)}.star-profile-details h4{font-size:.9rem;margin:.9rem 0 .2rem;color:var(--accent-deep)}.star-profile-details p{margin:.2rem 0;font-size:.95rem}.star-profile-disclaimer{margin:.6rem 0 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.today-directions{margin-top:.6rem}.cal-count-guide{margin:.6rem 0 .8rem;padding:.65rem .85rem;background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 4px 4px 0}.cal-count-main{margin:0;font-size:1.05rem;font-weight:700;line-height:1.65;color:var(--accent-deep)}.cal-count-example{display:flex;align-items:center;gap:.4rem;margin:.45rem 0 0;font-size:.85rem;color:var(--sub)}.cal-badge-sample{flex:none}.month-card-note{margin:.1rem 0 0;font-size:.72rem}.top-intro{margin:.2rem 0 1rem;color:var(--sub);font-size:.92rem;line-height:1.85}.birth-group{margin-top:.4rem}.birth-group-label{margin:0;font-size:.88rem;font-weight:600;color:var(--ink)}.birth-save-hint{margin:.1rem 0 0}.top-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}.top-actions button.primary{margin-top:0}.top-actions button.today-directions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:48px;padding:.45rem .9rem;background:var(--card)}.top-actions button.today-directions .btn-main{font-size:.95rem;font-weight:600;letter-spacing:.04em}.top-actions button.today-directions .btn-sub{font-size:.74rem;font-weight:400;letter-spacing:.02em;color:var(--sub);line-height:1.4}.birth-storage{margin:1.1rem 0 0;border-top:1px solid var(--line)}.birth-storage>summary{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.6rem 0 .5rem;font-size:.85rem;color:var(--sub)}.birth-storage-title{font-weight:600}.birth-storage-badge{border:1px solid var(--line-strong);border-radius:10px;padding:0 .5rem;font-size:.72rem;font-weight:400;line-height:1.6;color:var(--sub);background:var(--notice-bg)}.birth-storage-body{padding:.1rem 0 .6rem;font-size:.8rem;color:var(--sub)}.birth-storage-body p{margin:.3rem 0}.birth-clear{margin-top:.1rem;padding-left:0;font-size:.85rem}.top-star-card{display:flex;align-items:center;gap:.75rem;width:100%;margin:0 0 1.1rem;padding:.9rem 1rem;text-align:left;font-family:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;cursor:pointer}.top-star-card:hover{border-color:var(--accent);background:var(--accent-soft)}.top-star-body{display:flex;flex-direction:column;gap:.1rem;flex:1 1 auto;min-width:0}.top-star-lead{font-size:.74rem;color:var(--sub);letter-spacing:.04em}.top-star-main{font-family:var(--serif);font-size:1.05rem;font-weight:600;letter-spacing:.04em;color:var(--accent);line-height:1.5}.top-star-sub{font-size:.78rem;color:var(--sub);line-height:1.6}.top-star-arrow{flex:none;font-size:1.2rem;color:var(--accent);line-height:1}.about.card{padding:.15rem 1rem;box-shadow:none}.nav-block{margin-top:1.4rem;display:flex;flex-direction:column;gap:.5rem}.star-summary-nobirth{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem}.star-list{list-style:none;padding:0;margin:.5rem 0 1rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.star-chip{width:100%;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.35rem .25rem;background:var(--card);border:1px solid var(--line-strong);border-radius:4px;color:var(--ink);font-family:inherit;cursor:pointer}.star-chip[aria-current=true]{border:2px solid var(--accent);background:var(--accent-soft);font-weight:700}.star-chip-name{font-family:var(--serif);font-size:.98rem;letter-spacing:.04em}.star-chip-element{font-size:.75rem;color:var(--sub)}.star-chip-own{font-size:.7rem;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 .4rem;line-height:1.4}.star-summary-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.directions-guide p{margin:.25rem 0 .5rem}.rule-notice{background:var(--notice-bg);border-left:2px solid var(--line-strong);border-radius:0 4px 4px 0;padding:.5rem .8rem;font-size:.85rem;color:var(--sub);margin:.5rem 0 .75rem}.verdict-saidai{--verdict-fill: #eee0b9;--verdict-ink: #70521b}.verdict-good{--verdict-fill: #e0e9f2;--verdict-ink: #2b4a6f}.verdict-avoid{--verdict-fill: #f0e0d7;--verdict-ink: #974929}.verdict-none{--verdict-fill: #eae6de;--verdict-ink: #625c51}.verdict-undetermined{--verdict-fill: #ebe8e1;--verdict-ink: #6b655a}.dir-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem .6rem;margin:.5rem 0 0;padding:0;list-style:none;font-size:.78rem}.dir-legend li{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:3px;background:var(--verdict-fill, #eae6de);color:var(--verdict-ink, var(--sub))}.dir-legend .verdict-symbol{min-width:1em}.verdict-tag{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;color:var(--verdict-ink, var(--ink))}.verdict-symbol{display:inline-block;min-width:1.2em;text-align:center}.rule-badge{display:inline-block;margin-left:.4rem;padding:0 .4rem;border:1px solid var(--accent);border-radius:3px;font-size:.72rem;font-weight:500;line-height:1.6;letter-spacing:.04em;color:var(--accent);background:transparent;white-space:nowrap}.rule-badge-tendo{border-color:var(--line-strong);color:#6b5b3e}.getsumeisei-note{margin:.35rem 0 0;font-size:.9rem;color:var(--sub)}.getsumeisei-star{font-family:var(--serif);font-size:1rem;color:var(--ink);margin-right:.4rem}.getsumeisei-element{font-size:.85rem}.tendo-note{margin:.35rem 0;padding:.4rem .7rem;border-left:2px solid var(--line-strong);background:var(--notice-bg);border-radius:0 4px 4px 0;font-size:.85rem;color:var(--sub)}.tendo-note p{margin:0}.tendo-note>*+*{margin-top:.3rem}.tendo-note-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.tendo-source{color:var(--sub)}.tendo-details>summary{padding:.35rem 1.6rem .35rem 0;min-height:0;font-size:.85rem;font-weight:600}.tendo-details>summary:after{right:.5rem}.tendo-details-body>p{margin:.3rem 0 0}.tendo-label{display:inline-block;padding:0 .4rem;border:1px solid var(--line-strong);border-radius:3px;font-size:.72rem;line-height:1.6;color:#6b5b3e}.tendo-direction{font-family:var(--serif);font-size:1rem;color:var(--ink);margin:0 .3rem}.hour-picker{margin:.5rem 0 .75rem}.hour-clock{position:relative;width:min(100%,20rem);aspect-ratio:1 / 1;margin:.75rem auto .25rem}.hour-segment{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;border:0;background:#e9e2d4;color:#514b40;font:inherit;cursor:pointer;touch-action:manipulation}.hour-segment span{position:absolute;transform:translate(-50%,-50%);font-size:.8rem;line-height:1.3;white-space:nowrap}.hour-segment small{display:block;font-size:.68rem}.hour-segment:hover{background:#d6dce2;color:var(--accent)}.hour-segment[aria-pressed=true]{background:var(--accent);color:var(--card)}.hour-segment[aria-pressed=true]:hover{background:var(--accent-deep);color:var(--card)}.hour-segment:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.hour-tick{position:absolute;transform:translate(-50%,-50%);font-size:.68rem;color:var(--sub);pointer-events:none}.hour-clock-center{position:absolute;top:28%;right:28%;bottom:28%;left:28%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;text-align:center;pointer-events:none}.hour-clock-state{font-size:.7rem;color:var(--sub)}.hour-clock-range{font-family:var(--serif);font-size:1.35rem;color:var(--accent);line-height:1.2}.hour-clock-branch{font-size:.78rem;color:var(--ink)}.hour-picker-period{margin:.25rem 0 0;text-align:center;font-size:.85rem;color:var(--sub);min-height:1.6em}.hour-picker-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;align-items:center;margin-top:.5rem}.hour-picker-alert{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 4px 4px 0;padding:.6rem .9rem;margin:.6rem 0}.hour-picker-alert p{margin:0 0 .5rem;font-size:.86rem;color:var(--accent-deep);line-height:1.75}.hour-picker-alert button{margin:0}.hour-picker-note{margin:.35rem 0 0;font-size:.82rem;color:var(--sub)}.cal-birth{margin:.25rem 0;font-size:.9rem;color:var(--sub)}.cal-nav{display:flex;gap:.4rem;align-items:center;margin:.5rem 0 .35rem}.cal-nav-arrow{flex:none;min-width:44px;padding:0 .5rem;font-size:1.15rem;line-height:1}.cal-month-select{flex:1;min-width:0;text-align:center;text-align-last:center;font-family:var(--serif);font-size:1.12rem;font-weight:600;letter-spacing:.04em;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:4px}.cal-tap-hint{margin:0 0 .45rem}.cal-month-heading{margin:.25rem 0 .5rem;font-family:var(--serif);font-weight:600;letter-spacing:.04em;text-align:center}table.cal{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:2px;font-size:.85rem}table.cal th,table.cal td{border:none;padding:0;text-align:center;white-space:normal}table.cal thead th{background:none;color:var(--sub);font-weight:600;padding:.2rem 0}.cal-day{width:100%;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;padding:.28rem .1rem;background:var(--card);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-family:inherit;cursor:pointer}.cal-day:disabled{color:#b3ab9d;background:#f7f3ea;cursor:default}.cal-cell.is-today .cal-day{border:2px solid var(--accent);font-weight:700}.cal-day-number{font-size:.95rem;line-height:1.2}.cal-badge{display:inline-block;min-width:1.5rem;padding:0 .3rem;border-radius:3px;background:#e2eaf3;color:#2b4a6f;font-size:.82rem;font-weight:700;line-height:1.5}.cal-badge.is-zero{background:var(--notice-bg);color:var(--sub);font-weight:500}.cal-badge.is-undetermined{background:#ebe8e1;color:var(--sub);border:1px dashed #b3ab9d}.cal-legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;list-style:none;margin:.55rem 0 .7rem;padding:0;font-size:.8rem;color:var(--sub)}.cal-legend li{display:flex;align-items:center;gap:.3rem;margin:0}.cal-legend-text{line-height:1.5}.day-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.day-nav .secondary{flex:1;min-width:6rem}.day-summary-text{margin:.5rem 0;font-weight:600}.dir-circle{position:relative;width:min(100%,22rem);margin:.75rem auto;aspect-ratio:1 / 1}.dir-circle-svg{width:100%;height:100%;display:block}.dir-sector path{fill:var(--verdict-fill, #f1ede4);stroke:var(--card);stroke-width:2}.dir-sector.verdict-undetermined path{stroke:#b3ab9d;stroke-dasharray:4 3}.dir-selected-arc{fill:none;stroke:var(--accent);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linecap:round}.dir-sector-name{font-size:13px;font-weight:700;fill:var(--verdict-ink, var(--ink))}.dir-sector-symbol{font-size:14px;fill:var(--verdict-ink, var(--ink))}.dir-circle-center{position:absolute;left:50%;top:50%;width:38%;transform:translate(-50%,-50%);text-align:center;font-size:.75rem;color:var(--sub);line-height:1.35}.dir-circle-center p{margin:0}.dir-center-date{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:.85rem}.dir-center-part{display:inline-block;white-space:nowrap}.dir-hotspot{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);background:transparent;border:none;border-radius:50%;cursor:pointer}.dir-hotspot:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.dir-detail{border:1px solid var(--line);border-left:3px solid var(--verdict-ink, var(--accent));border-radius:0 4px 4px 0;padding:.8rem .9rem;margin:.75rem 0;background:var(--card)}.dir-detail h3{margin:0 0 .4rem;border:none;padding:0;display:flex;align-items:center;gap:.5rem;font-family:var(--serif);font-size:1.1rem;letter-spacing:.04em}.dir-detail h3:before{display:none}.dir-detail h4{margin:.8rem 0 .15rem;font-size:.9rem;color:var(--sub)}.dir-detail h5{margin:.6rem 0 .15rem;font-size:.9rem}.dir-detail-verdict{margin:.2rem 0 .5rem;font-size:1.05rem;color:var(--verdict-ink, var(--ink))}.dir-list{list-style:none;padding:0;margin:.5rem 0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--card)}.dir-row{border-bottom:1px solid var(--line);border-left:3px solid var(--verdict-ink, var(--line))}.dir-row:last-child{border-bottom:0}.dir-row.is-selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.dir-row-button{display:flex;align-items:center;gap:.5rem;width:100%;min-height:48px;padding:.4rem .6rem;background:transparent;border:0;border-radius:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.dir-row-button:focus-visible{outline-offset:-3px}.dir-row-name{flex:0 0 auto;min-width:3.2em;font-weight:700}.dir-row-button .verdict-tag{flex:0 0 auto}.dir-row-badges{display:flex;flex:1 1 auto;flex-wrap:wrap;gap:.25rem;min-width:0}.dir-row-badges .rule-badge{margin-left:0}.dir-row-chevron{flex:0 0 auto;margin-left:auto;padding-left:.2rem;color:var(--sub);font-size:1.15rem;line-height:1}.directions-summary{margin:.25rem 0 .5rem;font-weight:600}.board-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.board-tab{flex:1 1 auto;min-width:4.5rem;min-height:44px;padding:.4rem .6rem;border:1px solid var(--line-strong);border-radius:4px;background:var(--card);color:var(--ink);font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer}.board-tab[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff}.board-tab:disabled{background:var(--notice-bg);border-style:dashed;color:#8f897f;cursor:default;opacity:1}.board-tabs-note{margin:0 0 .5rem}.board-tab:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.view-period{margin:.5rem 0 .2rem;font-size:.95rem}.hour-span-part{white-space:nowrap}.hour-span-paren{display:inline-block}.view-note{margin:0 0 .5rem}.dir-detail-scope{margin:0 0 .3rem;font-size:.85rem;color:var(--sub)}.dir-compare{list-style:none;padding:0;margin:.2rem 0 .4rem}.dir-compare li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;padding:.2rem 0;font-size:.9rem;border-bottom:1px dotted var(--line)}.dir-compare-label{min-width:5.5rem;color:var(--sub)}.dir-compare-rules{color:var(--sub)}.dir-compare-mark{font-size:.8rem;color:var(--vermilion-deep)}.cal-setsu-details{border:1px solid var(--line);border-radius:4px;background:var(--notice-bg);margin:0 0 .8rem}.cal-setsu-details>summary{cursor:pointer;padding:.5rem .75rem;font-size:.88rem;font-weight:600;color:var(--accent)}.cal-setsu-details[open]>summary{border-bottom:1px solid var(--line)}.cal-setsu-body{padding:.5rem .75rem .7rem;font-size:.85rem;color:var(--sub)}.cal-setsu-body>.note{margin:.2rem 0}.cal-setsu-list{margin:.35rem 0;padding-left:1.1rem}.cal-board-links{margin:.9rem 0 .5rem}.cal-board-links-title{margin:0 0 .35rem;padding:0;border-bottom:none;font-size:.85rem;font-weight:600;color:var(--sub)}.cal-board-links-title:before{content:none}.cal-board-links-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.cal-board-link{flex:1 1 11rem;min-width:0;font-size:.85rem;font-weight:400;padding:0 .6rem;min-height:40px}.cal-back{margin:.9rem 0 .2rem}.cal-back-link{font-size:.9rem;padding-left:0}.cal-setsu-mark{display:inline-block;margin-left:.15rem;padding:0 .25rem;border-radius:3px;border:1px solid var(--line-strong);color:var(--sub);font-size:.65rem;font-weight:700;line-height:1.4;vertical-align:.15em}.cal-day:disabled .cal-setsu-mark{opacity:.5}.year-nav-wrap{margin:.5rem 0}.month-grid{list-style:none;padding:0;margin:.5rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem}.month-card{border:1px solid var(--line);border-radius:4px;padding:.5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;background:var(--card)}.month-card.is-selected{background:var(--accent-soft);border-color:var(--accent)}.month-card-title{margin:0;padding:0;border:none;font-size:1rem}.month-card-title:before{display:none}.month-card-sub{margin-left:.2rem;font-size:.8rem;font-weight:400;color:var(--sub)}.month-card-period{margin:0;font-size:.8rem;color:var(--sub)}.month-card-summary{margin:0;font-size:.85rem;font-weight:600}.month-card-error{margin:.5rem 0}.month-card .secondary{width:100%;margin-top:.25rem}.dir-circle-compact{width:7.5rem;margin:.25rem auto}.dir-circle-compact .dir-sector-symbol{font-size:26px}.dir-circle-compact .dir-circle-center{width:42%;font-size:.7rem}.dir-circle-compact .dir-center-date{font-size:.72rem;font-weight:600}.month-detail{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--line)}.month-detail h4{margin:.8rem 0 .15rem}.board-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.board-links .secondary{flex:1;min-width:10rem}.app.admin{max-width:52rem}.admin-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.75rem 0}.admin-tab{flex:1 1 auto;min-height:44px;padding:.5rem .9rem;border:1px solid var(--line-strong);border-radius:4px;background:var(--card);color:var(--ink);font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer}.admin-tab[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:#fff}.admin-tab:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.admin-bar{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:0 0 .75rem;padding:.6rem .9rem;background:var(--card);border:1px solid var(--line);border-radius:4px;box-shadow:0 2px 6px #2a272314}.admin-status{margin:0;font-size:.95rem}.admin-status.is-dirty{font-weight:600}.admin-status.is-dirty:before{content:"●";margin-right:.35rem;color:var(--vermilion)}.admin-bar-actions,.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-bar-actions button,.admin-actions button{min-height:44px;margin-top:0;width:auto;display:inline-block}.admin-errors,.admin-notice{margin:0 0 .75rem;padding:.6rem .9rem;border-radius:0 4px 4px 0;border:1px solid var(--line);border-left:2px solid var(--line-strong);background:var(--notice-bg)}.admin-notice.tone-error,.admin-errors{border-left-color:var(--vermilion);background:#f9f1ec}.admin-notice p{margin:0 0 .35rem}.error-list{margin:.25rem 0 0;padding-left:1.25rem;font-size:.9rem}.admin-confirm{margin:0 0 .75rem;padding:.9rem 1rem;border:2px solid var(--accent);border-radius:4px;background:var(--accent-soft)}.admin-confirm h3{margin-top:0}.admin-dl{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:.25rem 0 .75rem}.admin-dl dt{color:var(--sub)}.admin-dl dd{margin:0}.weights-row{display:grid;grid-template-columns:4rem 1fr;align-items:center;gap:.5rem 1rem;margin:.5rem 0}.weights-inputs{display:flex;align-items:center;gap:.5rem}.weights-inputs input[type=number]{width:5.5rem}.weights-inputs input[type=range]{flex:1;min-width:8rem;min-height:44px;accent-color:var(--accent)}.weights-total{font-weight:600;margin:.75rem 0}.weights-total.is-ng{color:var(--vermilion-deep)}.admin-category{margin:.75rem 0;border:1px solid var(--line);border-radius:4px;padding:.25rem .9rem}.admin-category>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.5rem;font-weight:600;padding-left:0}.admin-count{font-weight:400;color:var(--sub);font-size:.9rem}.admin-group{padding:.5rem 0 .25rem;border-top:1px solid var(--line)}.admin-group h3{display:flex;align-items:center;gap:.5rem;font-size:1rem;margin:.5rem 0}.admin-part{margin:.5rem 0 .9rem;padding-left:.6rem;border-left:3px solid transparent}.admin-part.is-changed{border-left-color:var(--accent)}.admin-part.has-problem{border-left-color:var(--vermilion)}.admin-part-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem}.admin-part-head label{font-weight:600}.badge-changed{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent)}.admin-part input[type=text],.admin-part textarea{width:100%;padding:.5rem .6rem}.admin-part textarea,textarea{padding:.5rem .6rem;resize:vertical;min-height:5.5rem;line-height:1.7}.admin-part-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.25rem;font-size:.85rem;color:var(--sub)}.field-counter.is-over{color:var(--vermilion-deep);font-weight:600}.field-hint{color:var(--sub)}.field-problem{margin:.25rem 0 0;font-size:.9rem}.preview-source{border:1px solid var(--line);border-radius:4px;padding:.5rem .9rem;margin:.5rem 0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.preview-source legend{font-weight:600;padding:0 .25rem}.preview-source label{display:inline-flex;align-items:center;gap:.4rem;min-height:44px}.preview-inputs{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:.5rem 0 .75rem}.preview-frame{border:1px dashed var(--line-strong);border-radius:6px;padding:.75rem;background:var(--bg)}.preview-frame>.card{max-width:30rem;margin:0 auto}.diff-table th,.diff-table td{text-align:left;padding:.3rem .6rem}.diff-list{list-style:none;padding:0;margin:.5rem 0}.diff-list li{border-top:1px solid var(--line);padding:.5rem 0}.diff-part{margin:0 0 .25rem;font-weight:600}.diff-before,.diff-after{margin:.15rem 0;white-space:pre-wrap}.diff-before{color:var(--sub)}.diff-tag{display:inline-block;min-width:4.5rem;margin-right:.5rem;font-size:.8rem;color:var(--sub)}.publish-note{margin:.75rem 0}.publish-note input[type=text]{width:100%}.history-toggle{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;margin-bottom:.25rem}.history-table th,.history-table td{text-align:left;vertical-align:top;padding:.4rem .6rem}.history-table tr.is-current th,.history-table tr.is-current td{background:var(--accent-soft)}.history-sub{display:block;font-size:.85rem;color:var(--sub)}.history-detail-row td{background:var(--notice-bg);white-space:normal}.version-detail h4{margin:.5rem 0 .25rem}.version-detail h5{margin:.75rem 0 .25rem}.version-texts{margin:.5rem 0}.version-dl{margin:.25rem 0}.version-dl-row{display:grid;grid-template-columns:minmax(8rem,16rem) 1fr;gap:.25rem 1rem;padding:.2rem 0;border-top:1px dotted var(--line)}.version-dl-row dt{color:var(--sub);font-size:.9rem}.version-dl-row dd{margin:0;white-space:pre-wrap}@media(max-width:480px){.weights-row,.admin-dl,.version-dl-row{grid-template-columns:1fr}.admin-bar{position:static}.admin-bar-actions{width:100%}.admin-bar-actions button{flex:1 1 auto}.admin-actions button{flex:1 1 100%}.admin-tab{flex:1 1 30%;padding:.5rem .4rem;font-size:.95rem}}
