:root{--bg:#F5F5F7;--side:#ECECF0;--card:#fff;--text:#1D1D1F;--sub:#86868B;--line:#E5E5EA;--fill:#F2F2F5;--accent:#0071E3;--sel:#DCDCE2;--done:#1D1D1F;--todo:#D2D2D7;--late:#D70015;--warn:#B25000;--ok:#248A3D}
@media (prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#0B0B0C;--side:#1A1A1C;--card:#1C1C1E;--text:#F5F5F7;--sub:#8E8E93;--line:#2C2C2E;--fill:#262628;--accent:#2997FF;--sel:#333336;--done:#F5F5F7;--todo:#3A3A3C;--late:#FF453A;--warn:#FF9F0A;--ok:#30D158}}
*{box-sizing:border-box}
html{overscroll-behavior:none}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Sans","Noto Sans JP",sans-serif;padding:24px 16px calc(60px + env(safe-area-inset-bottom,0px));font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
p,h1,h2{margin:0}h1,h2{letter-spacing:-.015em}button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button[disabled]{opacity:.55;cursor:default}[hidden]{display:none!important}
.app{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);background:var(--card);border-radius:14px;border:1px solid var(--line);overflow:hidden;min-height:760px}
.side{background:var(--side);border-right:1px solid var(--line);padding:20px 12px;display:flex;flex-direction:column;gap:4px}.brand{font-size:20px;font-weight:700;padding:0 10px 14px}
.nav{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:8px;font-size:16px;text-align:left;width:100%}.nav:hover{background:var(--sel)}.nav[aria-selected=true]{background:var(--accent);color:#fff}.nav .cnt{min-width:22px;height:22px;border-radius:11px;background:var(--late);color:#fff;font-size:16px;font-weight:700;display:grid;place-items:center;padding:0 6px}.nav[aria-selected=true] .cnt{background:#fff;color:var(--accent)}
.jobs{margin-top:auto;padding:14px 12px 4px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:16px}.jobs .h{font-weight:600;color:var(--sub)}.jobs .l{display:flex;gap:8px;align-items:baseline}.jobs .l i{width:8px;height:8px;border-radius:50%;flex:none;transform:translateY(-1px)}
.main{padding:28px 36px 40px;min-width:0}.view{display:flex;flex-direction:column;gap:32px}.head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.head h1{font-size:30px;font-weight:700}.head .d{color:var(--sub)}section.blk{display:flex;flex-direction:column;gap:12px}.blk>h2{font-size:19px;font-weight:700}.panel{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.todo{display:flex;align-items:center;gap:20px;padding:16px 20px;border-top:1px solid var(--line)}.todo:first-child{border-top:0}.todo .w{flex:1;min-width:0}.todo .t{font-size:17px;font-weight:600}.todo .m{color:var(--sub)}.todo .m.late{color:var(--late)}.btn{background:var(--accent);color:#fff;border-radius:980px;padding:9px 20px;font-size:16px;font-weight:600;white-space:nowrap}.btn.q{background:var(--fill);color:var(--accent)}.error{color:var(--late)}.empty{padding:20px;color:var(--sub)}.retry{margin-left:12px}.inline-error{display:block;color:var(--late);margin-top:6px}
.notice{padding:12px 16px;border-radius:10px;background:var(--fill);color:var(--text)}
.tag-warnings{padding:0 4px;color:var(--warn)}.tag-warnings p+p{margin-top:6px}
.ready-by{display:block;font-weight:400;white-space:nowrap}
.days{width:100%;border-collapse:collapse}.days th{font-size:16px;font-weight:600;color:var(--sub);text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.days td{padding:16px 12px;border-top:1px solid var(--line);vertical-align:middle}.days tr:first-child td{border-top:0}.days .date{font-size:18px;font-weight:700;white-space:nowrap}.days .date small{font-size:16px;font-weight:400;color:var(--sub);margin-left:6px}.days .num{white-space:nowrap}.days .num b{font-size:18px}.days .num span{color:var(--sub);display:block}.days .state{display:block;font-weight:600;font-size:16px;margin-top:4px}.days .state .ready-by{display:block;font-weight:400}.state.now{color:var(--accent)}.state.ok{color:var(--text)}.state.wait{color:var(--sub)}.tablewrap{overflow-x:auto}
.track{display:grid;grid-template-columns:repeat(5,minmax(104px,1fr));position:relative;min-width:520px}.track::before{content:"";position:absolute;left:10%;right:10%;top:6px;height:2px;background:var(--todo)}.track .bar{position:absolute;left:10%;top:6px;height:2px;background:var(--done)}.st{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.st i{width:14px;height:14px;border-radius:50%;background:var(--card);border:2px solid var(--todo)}.st.done i{background:var(--done);border-color:var(--done)}.st.cur i{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.st span{font-size:16px;color:var(--sub);white-space:nowrap}.st.done span{color:var(--text)}.st.cur span{color:var(--accent);font-weight:600}
.raf{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.raf>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border-top:1px solid var(--line)}.raf .big{font-size:30px;font-weight:700;line-height:1;letter-spacing:-.02em;white-space:nowrap}.raf .big small{font-size:16px;font-weight:500;color:var(--sub);margin-left:3px}.sub{color:var(--sub)}
@media(max-width:720px){.app{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}.main{padding:20px 16px}.todo{align-items:flex-start;flex-direction:column;gap:12px}.jobs{margin-top:16px}}
