:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f6f7;--card:#fff;--ink:#1d2529;--ink-soft:#3d4a51;--muted:#6b7880;--line:#d5dce0;--accent:#1b6f6a;--accent-ink:#fff;--accent-tint:#e2f0ee;--ok:#2f6b3f;--ok-tint:#e3efe5;--behind:#9a6a12;--behind-tint:#f7eddb;--danger:#9a3f34;--danger-tint:#f6e6e3;--lv1:#cfe6e3;--lv2:#8fc7c0;--lv3:#1b6f6a;--tab-h:60px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#151b1e;--card:#1d2529;--ink:#eef2f3;--ink-soft:#c7d0d4;--muted:#8f9ca3;--line:#33404a;--accent:#6fc7bf;--accent-ink:#0f1f1e;--accent-tint:#1c3532;--ok:#8ccf9c;--ok-tint:#203527;--behind:#e2b45c;--behind-tint:#3a2f17;--danger:#e08c80;--danger-tint:#3c2622;--lv1:#234642;--lv2:#2f7a72;--lv3:#6fc7bf}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;font-size:16px;line-height:1.6}#root,.app{min-height:100dvh}.screen{max-width:560px;padding:16px 16px calc(var(--tab-h) + env(safe-area-inset-bottom) + 24px);margin:0 auto}.screen.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60dvh;display:flex}h1{margin:0 0 8px;font-size:1.35rem;line-height:1.3}h2{margin:0 0 8px;font-size:1rem}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-variant-numeric:tabular-nums}.right{text-align:right}.danger{color:var(--danger)}.w3{text-align:right;min-width:3.5em}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.card.warn{background:var(--behind-tint);border-color:#0000}.label{color:var(--muted);margin-bottom:4px;font-size:.85rem;display:block}.radio{align-items:center;gap:8px;display:flex}input,select,textarea{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;width:100%;min-width:0;padding:10px 12px}input[type=range]{background:0 0;border:0;flex:1;padding:0}input[type=radio]{width:auto}select{flex:1}textarea{resize:vertical}.btn{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;border-radius:10px;padding:10px 14px}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn.big{width:100%;margin-top:8px;padding:16px;font-size:1.15rem}.btn.small{padding:6px 10px;font-size:.9rem}.btn.link{color:var(--accent);text-align:left;background:0 0;border-color:#0000;padding-left:4px;padding-right:4px}.btn.link.danger{color:var(--danger)}.btn.danger:not(.link){background:var(--danger-tint);color:var(--danger);border-color:#0000}.btn.back{align-self:flex-start}.tabbar{height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.8rem;display:flex}.tabbar button.on{color:var(--accent);font-weight:600}.tab-icon{font-size:1.1rem;line-height:1}.timer-card{text-align:center}.piece-title{margin:0;font-size:1.25rem;font-weight:600}.elapsed{font-variant-numeric:tabular-nums;letter-spacing:.02em;margin:12px 0;font-size:3rem;font-weight:300}.advice{border-left:4px solid var(--muted)}.advice.ok{border-left-color:var(--ok);background:var(--ok-tint)}.advice.behind{border-left-color:var(--behind);background:var(--behind-tint)}.advice h2{font-size:1.05rem}.list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.list-item{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;display:flex}.list-item.card{border-bottom:1px solid var(--line);padding:12px 16px}.list-item.column{cursor:default;flex-direction:column;align-items:stretch;gap:4px}.list-item .num{background:var(--accent);width:1.6em;height:1.6em;color:var(--accent-ink);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:8px;font-size:.85rem;display:inline-flex}ol.list li{justify-content:flex-start}.calendar{margin-bottom:8px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal-title{flex-direction:column;align-items:center;line-height:1.25;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-w{text-align:center}.cal-day{font:inherit;color:var(--ink);aspect-ratio:1;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:0;line-height:1.1;display:flex}.cal-day small{opacity:.85;font-size:.65rem}.cal-day.lv1{background:var(--lv1)}.cal-day.lv2{background:var(--lv2)}.cal-day.lv3{background:var(--lv3);color:var(--accent-ink)}.cal-day.today{border-color:var(--accent)}.cal-day.sel{outline:2px solid var(--ink);outline-offset:-2px}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-thumb{border:1px solid var(--line);aspect-ratio:3/4;background:var(--bg);cursor:pointer;border-radius:8px;padding:0;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.badge{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:1px 7px;font-size:.75rem;position:absolute;top:4px;right:4px}.photo-wrap{background:var(--card);border:1px solid var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;position:relative;overflow:hidden}.photo-wrap img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.marker{background:var(--danger);color:#fff;cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font:600 .8rem/1 inherit;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0006}.marker.on{outline:3px solid var(--behind)}.marker.pending{background:var(--behind);animation:1s infinite alternate pulse}@keyframes pulse{0%{transform:translate(-50%,-50%)scale(.9)}to{transform:translate(-50%,-50%)scale(1.15)}}.prose h2{margin-top:12px}.prose ul{padding-left:1.2em}
