    :root{--ink:#ece9e2;--muted:#a7a2a9;--bg:#111015;--panel:#19171e;--panel2:#22202a;--button:#292630;--line:#5b5564;--gold:#d9b77b;--wine:#925c63;--blue:#687f9b;--green:#688778;--ui-font:"Yu Gothic UI","Hiragino Kaku Gothic ProN",system-ui,sans-serif;font-family:var(--ui-font);color-scheme:var(--color-scheme,dark)}
    *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh;font-size:16px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
    .app{max-width:1500px;margin:auto;padding:24px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.brand{display:grid;gap:7px;min-width:min(360px,100%)}.brand h1{font-size:1.35rem;font-weight:600;letter-spacing:.08em;margin:0}.brand p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filter-select{width:auto;min-width:190px;max-width:260px}.calendar-switcher{display:flex;align-items:center;gap:7px}.calendar-switcher label{font-size:.76rem;color:var(--muted);white-space:nowrap}.calendar-switcher select{min-width:180px;padding:8px}.calendar-switcher .btn{min-height:38px;padding:7px 10px}.calendar-manager{display:grid;gap:14px}.calendar-manager-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calendar-manager-actions .danger{grid-column:1/-1}
    .btn,.iconbtn{border:1px solid var(--line);background:var(--button);border-radius:8px;padding:9px 12px;min-height:42px}.btn:hover,.iconbtn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--button) 82%,var(--accent))}.btn.primary{background:var(--gold);border-color:var(--gold);color:var(--accent-text);font-weight:700}.btn.danger{color:#d95f68}.iconbtn{width:42px;padding:0;font-size:1.3rem}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}
    .calendar,.side{background:var(--panel);border:1px solid var(--line)}.calendar{min-width:0;border:4px solid var(--line)}.calhead{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;padding:18px;border-bottom:2px solid var(--line)}.period{text-align:center}.period h2{font-family:var(--ui-font);font-size:clamp(1.3rem,3vw,2rem);font-weight:600;line-height:1.25;margin:0}.period small{color:var(--muted);letter-spacing:.14em}.week,.grid{display:grid;grid-template-columns:repeat(var(--weekday-count),minmax(72px,1fr))}.week{border-bottom:2px solid var(--line);background:var(--panel2);overflow:auto}.week div{padding:11px;text-align:center;color:var(--muted);font-size:.82rem;min-width:72px;border-right:1px solid var(--line)}.week div:last-child{border-right:0}.grid{overflow:auto;gap:3px;padding:3px;background:var(--line);grid-auto-rows:minmax(126px,auto)}.day{position:relative;min-height:126px;padding:10px;border:1px solid var(--line);background:var(--panel);text-align:left;align-self:stretch;z-index:1}.day:hover{filter:brightness(1.15)}.day.adjacent{background:var(--panel2);opacity:.5}.day.adjacent:hover{opacity:.72}.num{position:absolute;top:8px;left:9px;font:600 1rem var(--ui-font);color:var(--ink)}.eventbar{z-index:3;align-self:start;height:21px;margin:calc(42px + var(--lane) * 24px) -3px 0;border:0;border-radius:0;background:var(--event-color);color:var(--bar-text);padding:2px 8px;text-align:left;font-size:.78rem;font-weight:600;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eventbar.startcap{border-radius:5px 0 0 5px;margin-left:4px}.eventbar.endcap{border-radius:0 5px 5px 0;margin-right:4px}.eventbar.startcap.endcap{border-radius:5px}.eventbar.adjacentbar{opacity:.55}.eventbar:hover{filter:brightness(1.13)}.yeargrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;padding:12px;background:var(--panel)}.yearmonth{border:1px solid var(--line);background:var(--panel2);padding:10px}.yearmonth.selected{outline:3px solid var(--gold)}.yearmonth-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 8px}.yearmonth-name{font-weight:700}.month-jump{border:1px solid var(--line);background:var(--button);color:var(--ink);border-radius:5px;padding:4px 8px;font-size:.72rem}.minical{display:grid;grid-template-columns:repeat(var(--weekday-count),1fr);gap:2px;cursor:pointer}.minical:hover{filter:brightness(1.12)}.miniweek,.miniday{min-width:0;text-align:center;font-size:.68rem;padding:3px 1px}.miniweek{color:var(--muted)}.miniday{position:relative;min-height:24px;border:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.miniday.empty{border-color:transparent}.minidots{display:flex;justify-content:center;gap:2px;margin-top:2px}.minidot{width:4px;height:4px;border-radius:50%;background:var(--dot)}.keyjump{width:auto;min-width:160px;max-width:240px}.intervalrow{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.intervalunit{color:var(--muted);white-space:nowrap}
    .side{padding:18px;align-self:start}.side h3{font-size:1.05rem;font-weight:600;margin:0 0 14px}.counter-summary,.event-detail{display:grid;gap:10px;margin:0 0 16px;padding:12px;border:1px solid var(--line);background:var(--panel2);border-radius:7px}.counter-summary-title{font-size:.82rem;color:var(--muted)}.event-detail-title{font-weight:700}.event-detail-date{font-size:.75rem;color:var(--muted)}.event-detail-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.86rem;line-height:1.65}.event-detail-link{display:inline-flex;width:max-content;max-width:100%;color:var(--gold);font-size:.82rem;overflow-wrap:anywhere}.counter-total{display:grid;grid-template-columns:minmax(0,1fr) auto 92px;gap:10px;align-items:center}.counter-total strong{font-size:1.15rem;color:var(--gold);text-align:right}.counter-total input{padding:7px;text-align:right}.counter-before{grid-column:2/-1;color:var(--muted);font-size:.78rem;text-align:right}.day-tags{display:grid;gap:7px;padding-top:10px;margin-top:2px;border-top:1px solid var(--line)}.day-tag{display:flex;align-items:center;gap:8px;font-size:.86rem}.day-tag input{width:auto}.tag-dot{width:10px;height:10px;border-radius:50%;background:var(--tag-color);flex:none}.day-dots{position:absolute;top:11px;right:9px;display:flex;gap:4px;max-width:calc(100% - 42px);flex-wrap:wrap;justify-content:flex-end}.day-dot{width:7px;height:7px;border-radius:50%;background:var(--tag-color);box-shadow:0 0 0 1px color-mix(in srgb,var(--panel) 70%,transparent)}.upcoming{display:grid;gap:9px}.upitem{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:10px;border:1px solid var(--line);background:var(--panel2);border-radius:7px}.update{color:var(--gold);text-align:center}.uptitle{font-size:.9rem}.upmeta{font-size:.74rem;color:var(--muted);margin-top:3px}.empty{padding:34px 12px;text-align:center;color:var(--muted);font-size:.9rem}.sidefoot{border-top:1px solid var(--line);margin-top:18px;padding-top:14px;color:var(--muted);font-size:.75rem;line-height:1.6}
    dialog{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:0;width:min(680px,calc(100% - 24px))}dialog::backdrop{background:#08070bb8;backdrop-filter:blur(3px)}.modalhead{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modalhead h2{margin:0;font-size:1.25rem;font-weight:600}.modalbody{padding:20px;max-height:70vh;overflow:auto}.modalfoot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.8rem;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:10px}input[type=color]{padding:3px;min-height:44px}.color-control{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px}.color-control .hex-color{text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}textarea{min-height:90px;resize:vertical}.share-url{min-height:132px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;resize:none;word-break:break-all}.share-summary{padding:12px;border:1px solid var(--line);background:var(--panel2);border-radius:7px;line-height:1.6}.dategroup{display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:8px}.weekdaychecks{display:flex;flex-wrap:wrap;gap:7px}.weekdaycheck{display:flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:6px;padding:7px 9px;color:var(--ink)!important}.weekdaycheck input{width:auto}.swatches{display:flex;flex-wrap:wrap;gap:9px}.swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;background:var(--swatch);padding:0}.swatch[aria-checked=true]{border-color:var(--ink);outline:2px solid var(--swatch);outline-offset:1px}.monthrows,.counterrows,.adjustmentrows{display:grid;gap:8px}.monthlabels,.monthrow{display:grid;grid-template-columns:minmax(0,1fr) 100px 100px 42px;gap:8px}.monthlabels{font-size:.72rem;color:var(--muted);align-items:end}.monthrow{align-items:center}.counterrow{display:grid;grid-template-columns:minmax(130px,1fr) minmax(230px,1.6fr) 100px 42px;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:7px}.counterrow label,.adjustmentrow label{display:grid;gap:5px;font-size:.72rem;color:var(--muted)}.counterrow .dategroup{grid-template-columns:1fr 1.15fr .75fr}.adjustmentrow{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;align-items:center}.adjustmentrow label{display:block;font-size:.86rem;color:var(--ink)}.remove-month,.remove-counter{width:42px;padding:0;color:#efa2a2}.section-title{grid-column:1/-1;margin:8px 0 -2px;padding-top:10px;border-top:1px solid var(--line);font-weight:700}.hint{color:var(--muted);font-size:.78rem;line-height:1.5}.hidden{display:none!important}.notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);padding:10px 16px;background:var(--gold);color:var(--bg);border-radius:7px;font-weight:700;z-index:20}
    .settings-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line)}.settings-tab{border:1px solid transparent;border-bottom:0;background:transparent;color:var(--muted);padding:10px 16px}.settings-tab.active{background:var(--panel2);border-color:var(--line);color:var(--ink)}.gregorian-manual-setting{align-content:start}.tagrows{display:grid;gap:8px}.tagrow{display:grid;grid-template-columns:32px minmax(0,1fr) 72px 42px;gap:8px;align-items:center}.tagrow.dragging{opacity:.4}.taghandle{display:grid;place-items:center;min-height:42px;border:1px solid var(--line);border-radius:6px;color:var(--muted);cursor:grab;user-select:none}.tagrow .tagcolor{min-height:42px}.remove-tag{width:42px;padding:0;color:#efa2a2}.eventbar{cursor:grab}.eventbar:active{cursor:grabbing}.event-edit{position:absolute;right:3px;top:2px;display:grid;place-items:center;width:18px;height:17px;border-radius:3px;background:#0005;color:#fff;font-size:.7rem}.upitem{position:relative;padding-right:40px;cursor:pointer}.list-edit{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:28px;min-height:28px;padding:0;border:1px solid var(--line);border-radius:5px;background:var(--button);color:var(--ink)}.day.drag-target,.day.selected-date{outline:3px solid var(--gold);outline-offset:-4px}.day.filter-miss,.miniday.filter-miss{opacity:.18}
    @media(max-width:900px){.app{padding:12px}.top{align-items:stretch}.layout{grid-template-columns:1fr}.side{order:2}.day{min-height:100px}.actions .btn span{display:none}.counterrow{grid-template-columns:1fr 1fr 100px 42px}}@media(max-width:620px){.top{display:grid}.actions{justify-content:flex-start}.calendar-switcher{align-items:stretch}.calendar-switcher label{align-self:center}.calendar-switcher select{min-width:0;flex:1}.week,.grid{min-width:560px}.calendar{overflow:auto}.calhead{position:sticky;left:0;min-width:calc(100vw - 26px)}.fields{grid-template-columns:1fr}.field.full{grid-column:auto}.counterrow{grid-template-columns:1fr}.remove-counter{width:100%}}
    .calendar{height:clamp(320px,calc(100dvh - 110px),1000px);display:flex;flex-direction:column;overflow:hidden}.calhead,.week{flex:none}.grid,.yeargrid{flex:1;min-height:0;overflow:auto}.grid{grid-auto-rows:minmax(126px,1fr)}
    @media(max-width:900px){.calendar{height:clamp(340px,calc(100dvh - 145px),850px)}}@media(max-width:620px){.calendar{overflow:hidden}.week,.grid{flex:none}.grid,.yeargrid{flex:1;overflow:auto}}
    .site-footer{max-width:1500px;margin:0 auto;padding:4px 24px 24px}.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;padding-top:14px;border-top:1px solid var(--line)}.footer-links a{color:var(--muted);font-size:.78rem;text-decoration:none}.footer-links a:hover,.footer-links a:focus-visible{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
    @media(max-width:900px){.site-footer{padding:4px 12px 20px}}@media print{body{background:#fff;color:#111}.app{max-width:none;padding:0}.top .actions,.side,.site-footer{display:none}.layout{display:block}.calendar{height:auto;max-height:none;overflow:visible;box-shadow:none;border-color:#999}.grid,.yeargrid{overflow:visible}.day,.week,.calendar{background:#fff!important;color:#111}.day{min-height:90px;border-color:#bbb}.event{color:#111}.brand p{color:#555}}
    .eventbar{position:relative}
