:root{--bg:#0e1116;--pn:#161b22;--bd:#2a313c;--tx:#e6edf3;--mu:#9aa4af;--ac:#7c9cff;--hv:#1f2630;--on:#22305a;--in:#0d1117;--tg:#21262d;--tgt:#c9d1d9;--fit:#c9d1d9;--u7b:#4a1515;--u7t:#ffb4ae;--u30b:#4a3410;--u30t:#ffd58a;--ulb:#103a1f;--ult:#8ff0a8;--urb:#10304a;--urt:#9ccfff;color-scheme:dark}html.light{--bg:#f6f8fa;--pn:#ffffff;--bd:#d0d7de;--tx:#1f2328;--mu:#59636e;--ac:#3b5bdb;--hv:#eef1f4;--on:#dde5ff;--in:#ffffff;--tg:#eaeef2;--tgt:#32383f;--fit:#32383f;--u7b:#ffe1df;--u7t:#a40e26;--u30b:#fff1cc;--u30t:#7a4b00;--ulb:#dcf5e3;--ult:#116329;--urb:#ddf0ff;--urt:#0a4a87;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx)}.hdr{padding:22px 20px 8px;max-width:1300px;margin:auto;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.hdr h1{margin:0;font-size:1.6rem}.hdr p{margin:4px 0;color:var(--mu)}.wrap{max-width:1300px;margin:auto;padding:0 20px 40px;display:grid;grid-template-columns:270px 1fr;gap:20px}main{min-width:0}aside{position:sticky;top:10px;align-self:start;background:var(--pn);border:1px solid var(--bd);border-radius:12px;padding:14px;max-height:calc(100vh - 20px);overflow:auto}aside h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mu);margin:16px 0 6px}.drawer-foot,.drawer-head{display:none}.chip{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:1px solid transparent;color:var(--tx);padding:6px 9px;border-radius:8px;cursor:pointer;font:inherit;font-size:.94rem;text-align:left;gap:8px}.chip:hover{background:var(--hv)}.chip.on{background:var(--on);border-color:var(--ac)}.chip .n{color:var(--mu);font-size:.85rem;font-variant-numeric:tabular-nums}.chip.zero{opacity:.45}.btn,input,select{font:inherit;background:var(--in);color:var(--tx);border:1px solid var(--bd);border-radius:8px;padding:8px 10px}.btn{cursor:pointer}.btn:hover{border-color:var(--ac)}.btn:disabled{opacity:.5;cursor:default;border-color:var(--bd)}.btn.full{width:100%}.btn.primary{background:var(--ac);color:#000;border-color:var(--ac);font-weight:600}input{width:100%}.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.bar .sp{flex:1}.tabs{display:flex}.tabs button{background:none;border:1px solid var(--bd);color:var(--tx);padding:8px 13px;cursor:pointer;font:inherit}.tabs button+button{border-left:none}.tabs button:first-child{border-radius:8px 0 0 8px}.tabs button:last-child{border-radius:0 8px 8px 0}.tabs button.on{border-color:var(--ac)}.pill,.tabs button.on{background:var(--ac);color:#000}.pill{margin-left:6px;border-radius:99px;padding:0 7px;font-size:.85rem;font-weight:600}.active{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 14px}.achip{background:var(--on);color:var(--tx);border:1px solid var(--ac);border-radius:99px;padding:3px 11px}.achip,.link{font:inherit;font-size:.88rem;cursor:pointer}.link{background:none;border:none;color:var(--mu);text-decoration:underline}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.card{background:var(--pn);border:1px solid var(--bd);border-radius:12px;padding:14px;flex-direction:column}.card,.card-top{display:flex;gap:8px}.card-top{justify-content:space-between;align-items:flex-start}.card h4{margin:0;font-size:1.06rem;line-height:1.35}.card a{color:var(--tx);text-decoration:none}.card a:hover{color:var(--ac)}.meta{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:.8rem;padding:2px 9px;border-radius:99px;background:var(--tg);color:var(--tgt)}.fit{color:var(--fit);font-size:.94rem}.note{color:var(--mu);font-size:.88rem}.badge{font-weight:600;font-size:.82rem;padding:3px 9px;border-radius:99px;white-space:nowrap}.u7{background:var(--u7b);color:var(--u7t)}.u30{background:var(--u30b);color:var(--u30t)}.ul{background:var(--ulb);color:var(--ult)}.ur{background:var(--urb);color:var(--urt)}.tw{overflow-x:auto}.tw,table{border-radius:12px}table{width:100%;border-collapse:collapse;background:var(--pn);overflow:hidden}td,th{padding:9px 10px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top;font-size:.92rem}th{color:var(--mu);font-weight:600}th.sortable{cursor:pointer}th.sortable:hover{color:var(--tx)}td a{color:var(--ac);text-decoration:none}td a:hover{text-decoration:underline}.nw{white-space:nowrap}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .h{color:var(--mu);font-size:.82rem;text-align:center}.day{min-height:92px;background:var(--pn);border:1px solid var(--bd);border-radius:8px;padding:4px;font-size:.8rem;overflow:hidden}.day.x{opacity:.3}.day.t{border-color:var(--ac)}.day .d{color:var(--mu)}.ev{display:block;margin-top:3px;padding:2px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;font-size:.76rem}.calnav{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}.calnav b{min-width:150px;text-align:center;text-transform:capitalize}.agenda{display:none}.agenda h3{text-transform:capitalize;margin:18px 0 8px;font-size:1.05rem}.arow{display:flex;gap:12px;margin-bottom:10px}.adate{width:42px;flex-shrink:0;text-align:center;padding-top:6px}.adate b{display:block;font-size:1.3rem;line-height:1}.adate span{color:var(--mu);font-size:.82rem}.aitems{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.aitem{flex-direction:row;justify-content:space-between;align-items:center;padding:10px 12px}.aitem .at{font-weight:600}.empty{padding:40px;text-align:center}.cnt,.empty{color:var(--mu)}#ftoggle,.scrim{display:none}@media(max-width:1023px){.wrap{grid-template-columns:1fr}#ftoggle{display:inline-block}aside{position:fixed;inset:auto 0 0 0;top:auto;max-height:85dvh;z-index:50;border-radius:16px 16px 0 0;transform:translateY(105%);transition:transform .25s;padding:0 16px 16px;visibility:hidden}aside.open{transform:none;visibility:visible}.drawer-head{display:flex;justify-content:space-between;align-items:center;top:0;padding:14px 0 10px;z-index:1}.drawer-foot,.drawer-head{position:sticky;background:var(--pn)}.drawer-foot{display:block;bottom:0;margin:0;padding:10px 0 0}.chip{padding:9px 10px}.scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40}}@media(max-width:767px){.hdr,.wrap{padding-left:14px;padding-right:14px}.grid{grid-template-columns:1fr}.calwrap{display:none}.agenda{display:block}.bar .sp{display:none}.bar select{flex:1}}