:root{--bg: #eef1f6;--surface: #ffffff;--ink: #1b2a4a;--muted: #5f6b85;--line: #d6dce8;--line-soft: #e6eaf2;--hl: #ffd84d;--hl-1: #fff4c2;--hl-2: #ffe680;--hl-3: #ffd84d;--hl-4: #f5b300;--danger: #c63d3d;--ok: #2f8a5b;--focus: #3a6df0;--radius-lg: 18px;--radius: 12px;--radius-sm: 8px;--font-display: "Bricolage Grotesque", "Onest", system-ui, sans-serif;--font-body: "Onest", system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #111726;--surface: #1a2236;--ink: #e8ecf5;--muted: #9aa5bf;--line: #2d3852;--line-soft: #232c43;--hl-1: #3b3720;--hl-2: #6b5c1c;--hl-3: #b8901a;--hl-4: #ffd84d;--danger: #ef7a7a;--ok: #6ccf98;--focus: #8aa8ff;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3{margin:0;font-family:var(--font-display);letter-spacing:-.01em}p{margin:0}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger)}.stack{display:grid;gap:12px}.stack-lg{display:grid;gap:24px}.shell{max-width:1080px;margin:0 auto;padding:0 16px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;flex-wrap:wrap}.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:800 1.25rem/1 var(--font-display)}.brand-mark{width:22px;height:22px;border-radius:6px;background:var(--ink);position:relative}.brand-mark:after{content:"";position:absolute;left:3px;right:3px;top:9px;height:7px;background:var(--hl);border-radius:2px;transform:rotate(-5deg)}.page{padding-top:8px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.head-actions{display:flex;gap:8px;flex-wrap:wrap}.title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;line-height:1.1;margin-bottom:4px}.section-title{font-size:1.15rem;font-weight:700}.sub-title{font-size:1rem;font-weight:700;margin-top:16px;margin-bottom:8px}.back{display:inline-block;text-decoration:none;color:var(--muted);margin-bottom:6px}.back:before{content:"‹ "}.back:hover{color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid transparent;font-weight:700;cursor:pointer;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--ink);color:var(--bg)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 88%,var(--hl))}.btn.ghost{background:transparent;border-color:var(--line)}.btn.ghost:hover:not(:disabled){background:var(--surface);border-color:var(--muted)}.btn.small{min-height:36px;padding:0 14px;font-size:.9rem}.btn.danger{color:var(--danger)}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:1.3rem;line-height:1;display:inline-grid;place-items:center;transition:transform .1s,border-color .15s}.icon-btn:hover:not(:disabled){border-color:var(--muted)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.35;cursor:default}.field{display:grid;gap:6px}.field>span{font-weight:700;font-size:.95rem}input,select{min-height:46px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:20px}.empty{padding:40px 20px;text-align:center;display:grid;gap:8px;justify-items:center;border:1.5px dashed var(--line);border-radius:var(--radius-lg)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 8px;border-radius:999px;background:color-mix(in srgb,var(--c) 14%,var(--surface));font-weight:700;font-size:.9rem;white-space:nowrap}.chip-dot{width:10px;height:10px;border-radius:50%;background:var(--c)}.chip.faded{background:transparent;border:1px dashed var(--line);color:var(--muted)}.chip.faded .chip-dot{opacity:.5}.dots{display:inline-flex;align-items:center}.dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);margin-left:-4px}.dot:first-child{margin-left:0}.dots-more{font-size:.75rem;color:var(--muted);margin-left:4px;font-weight:700}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:44px;height:26px;border-radius:999px;background:var(--line);position:relative;transition:background-color .2s}.switch-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #141e3c40;transition:transform .22s cubic-bezier(.3,1.4,.5,1)}.switch input:checked+.switch-track{background:var(--hl-4)}.switch input:checked+.switch-track .switch-thumb{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}.switch-label{font-weight:700;font-size:.9rem}.login{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.login-card{width:100%;max-width:400px;display:grid;gap:20px}.login-title{font-size:clamp(2.6rem,11vw,3.6rem);line-height:1;font-weight:800}.hl{background:linear-gradient(transparent 55%,var(--hl) 55%,var(--hl) 92%,transparent 92%);padding:0 .1em;margin:0 -.1em;box-decoration-break:clone;-webkit-box-decoration-break:clone}@media(prefers-color-scheme:dark){.hl{color:var(--ink);background:linear-gradient(transparent 55%,#8a6d10 55%,#8a6d10 92%,transparent 92%)}}.event-list{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line-soft)}.event-list:empty{display:none}.event-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name who" "meta who";gap:2px 16px;padding:16px 20px;background:var(--surface);text-decoration:none;transition:background-color .15s}.event-row:hover{background:color-mix(in srgb,var(--hl) 10%,var(--surface))}.event-name{grid-area:name;font:700 1.15rem/1.3 var(--font-display)}.event-meta{grid-area:meta;font-size:.9rem}.event-who{grid-area:who;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px}.tabs{display:inline-flex;gap:4px;padding:4px;background:var(--line-soft);border-radius:999px;justify-self:start}.tab{border:0;background:transparent;padding:0 16px;min-height:38px;border-radius:999px;cursor:pointer;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:8px;transition:background-color .15s,color .15s}.tab[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #141e3c1f}.tab-count{font-size:.75rem;background:var(--hl);color:#1b2a4a;border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}.cal{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:14px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-title{font-size:1.1rem;font-weight:700}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-wd{text-align:center;font-size:.8rem;color:var(--muted);font-weight:700;padding-bottom:4px}.cal-cell{position:relative;min-height:76px;border:1px solid var(--line-soft);border-radius:10px;background:transparent;padding:6px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .1s,background-color .15s}.cal-cell:not(:disabled):hover{border-color:var(--muted)}.cal-cell:not(:disabled):active{transform:scale(.96)}.cal-cell.empty{border:0;cursor:default}.cal-cell.out{opacity:.35;cursor:default;border-style:dashed}.cal-num{font-weight:700;font-variant-numeric:tabular-nums;font-size:.95rem;position:relative;z-index:1}.cal-cell.today .cal-num{text-decoration:underline 2px;text-underline-offset:3px}.cal-cell.selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.mark{font-size:.72rem;line-height:1.2;font-weight:700;border-radius:4px;padding:1px 4px;max-width:100%;overflow-wrap:anywhere;position:relative;z-index:1}.mark-all{background:color-mix(in srgb,var(--me) 85%,transparent);color:#fff}.mark-range{background:color-mix(in srgb,var(--me) 18%,var(--surface));color:var(--ink);box-shadow:inset 2px 0 0 var(--me)}.cal-cell.marked{background:color-mix(in srgb,var(--me) 6%,transparent)}.heat-swipe{position:absolute;inset:30% 4px 22%;border-radius:3px;transform:rotate(-2.5deg);background:var(--hl-1);z-index:0}.lvl-0 .heat-swipe{display:none}.lvl-2 .heat-swipe{background:var(--hl-2)}.lvl-3 .heat-swipe{background:var(--hl-3)}.lvl-4 .heat-swipe{background:var(--hl-4)}.heat-count{position:relative;z-index:1;font-weight:700;font-size:.85rem;font-variant-numeric:tabular-nums}.lvl-0 .heat-count{color:var(--muted);font-weight:400}.cal-cell .dots{position:relative;z-index:1;margin-top:auto}.lvl-4 .heat-count,.lvl-3 .heat-count{color:#1b2a4a}@media(prefers-color-scheme:dark){.lvl-2 .heat-count{color:var(--ink)}}.legend{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:10px}.legend-swatch{width:22px;height:10px;border-radius:2px;transform:rotate(-3deg);background:var(--hl-1)}.legend-swatch.lvl-2{background:var(--hl-2)}.legend-swatch.lvl-3{background:var(--hl-3)}.legend-swatch.lvl-4{background:var(--hl-4)}.mine{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;align-items:start}.mine-cal{display:grid;gap:10px}.mine-editor{position:sticky;top:16px}.mine-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:28px}.hint{font-size:.95rem}.save{font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:6px}.save:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.save-saving{color:var(--muted)}.save-saving:before{animation:pulse 1s ease-in-out infinite}.save-saved{color:var(--ok)}.save-error{color:var(--danger)}@keyframes pulse{50%{opacity:.3}}.always-note{display:grid;gap:10px;justify-items:start;max-width:560px}.editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.editor-title{font-size:1.05rem;font-weight:700;line-height:1.3}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;background:var(--line-soft);border-radius:var(--radius)}.seg-btn{border:0;background:transparent;min-height:42px;border-radius:9px;font-weight:700;cursor:pointer;color:var(--muted);transition:background-color .15s,color .15s,transform .1s}.seg-btn:active{transform:scale(.97)}.seg-btn[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #141e3c24}.range-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.time{flex:1;min-width:96px;font-variant-numeric:tabular-nums}.range-err{flex-basis:100%}.add-range{justify-self:start}.board{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;align-items:start}.heat{grid-column:1;grid-row:1 / span 2;display:grid;gap:10px}.best{grid-column:2;grid-row:1}.who{grid-column:2;grid-row:2;align-self:start}.detail{grid-column:1 / -1;grid-row:3;display:grid;gap:14px}.heat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.filter{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem}.filter select{min-height:38px}.best{display:grid;gap:10px}.best-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.best-item{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);cursor:pointer;text-align:left;transition:border-color .15s,transform .1s}.best-item:hover{border-color:var(--muted)}.best-item:active{transform:scale(.98)}.best-list li:first-child .best-item{border-color:var(--hl-4);box-shadow:inset 4px 0 0 var(--hl-4)}.best-count{font:800 1.5rem/1 var(--font-display);font-variant-numeric:tabular-nums}.best-count small{font-size:.85rem;color:var(--muted);font-weight:700}.best-when{display:grid;line-height:1.3}.who{display:grid;gap:10px}.timeline{display:grid;gap:6px}.tl-scale{position:relative;height:18px;margin-left:108px;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.tl-scale span{position:absolute;transform:translate(-50%)}.tl-scale span:first-child{transform:none}.tl-scale span:last-child{transform:translate(-100%)}.tl-row{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center}.tl-name{font-weight:700;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-track{position:relative;height:22px;border-radius:6px;background:repeating-linear-gradient(90deg,var(--line-soft) 0 1px,transparent 1px 12.5%),var(--bg)}.tl-bar{position:absolute;top:3px;bottom:3px;border-radius:4px}.tl-none{position:absolute;left:8px;top:50%;transform:translateY(-50%)}.win-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.win{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-soft)}.win-time{display:grid;font-variant-numeric:tabular-nums}@media(max-width:820px){.mine,.board{grid-template-columns:1fr}.heat,.best,.who,.detail{grid-column:auto;grid-row:auto}.board .best{order:-1}.board .detail{order:1}.board .who{order:2}.mine-editor{position:sticky;top:auto;bottom:0;z-index:5;padding-bottom:env(safe-area-inset-bottom)}.mine-editor .panel{max-height:62dvh;overflow:auto;box-shadow:0 -8px 24px #141e3c1f}.mine-editor .panel.muted{box-shadow:none}}@media(max-width:560px){.cal{padding:10px 6px}.cal-grid{gap:3px}.cal-cell{min-height:58px;padding:4px;border-radius:8px}.mark{font-size:.62rem;padding:0 2px}.cal-cell .dots{display:none}.heat-count{font-size:.75rem}.row-2{grid-template-columns:1fr}.win{grid-template-columns:1fr;gap:6px}.tl-row{grid-template-columns:70px 1fr}.tl-scale{margin-left:78px}.event-row{grid-template-columns:1fr;grid-template-areas:"name" "meta" "who"}.event-who{flex-direction:row;justify-content:flex-start;align-items:center;margin-top:6px}.switch-label{font-size:.85rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
