:root{--bg:#FFFFFF;--ink:#000000;--body:#555555;--muted:#999999;--line:#E0E0E0;--ph:#F0F0F0;--mark:#CCCCCC}*{box-sizing:border-box;margin:0;padding:0}body{background:#f2f2f2;color:var(--body);font-family:Source Han Sans SC,Noto Sans SC,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif}.topwrap{position:sticky;top:0;z-index:40;background:#fff}header{background:#fff;border-bottom:1px solid var(--line);padding:14px 32px;display:flex;align-items:center;gap:24px}.logo{font-size:14px;font-weight:500;color:var(--ink)}.platname{font-size:13px;color:var(--ink);flex:1;text-align:center}.acct{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.acct a{color:var(--body);cursor:pointer}.acct a:hover{color:var(--ink)}nav{background:#000;display:flex;padding:0 24px;position:relative}.fi{position:relative}.fi-t{padding:12px 18px;font-size:13px;color:#fff;cursor:pointer;white-space:nowrap}.fi-t:hover,.fi-t.on{background:#1f1f1f}.fi-t .dot{display:inline-block;width:5px;height:5px;background:#fff;border-radius:50%;margin-left:6px;vertical-align:2px}.pop-wrap{position:absolute;left:0;top:100%;z-index:50;background:#fff;border:1px solid var(--line)}.reg{width:430px;padding:16px;display:flex;gap:8px;align-items:center}.reg select{flex:1;border:1px solid var(--line);padding:8px 6px;font-size:12px;color:#000;background:#fff;font-family:inherit;outline:none;min-width:0}.reg select:focus{border-color:#000}.reg .rclr{font-size:11px;color:var(--muted);cursor:pointer;flex:none}.reg .rclr:hover{color:#000}.cal{width:306px;padding:16px}.cal-head{display:flex;justify-content:space-between;align-items:center}.cal-title{font-size:13px;color:var(--ink)}.cal-nav{display:flex;gap:2px}.cal-nav span{padding:2px 10px;font-size:14px;color:var(--body);cursor:pointer;-webkit-user-select:none;user-select:none}.cal-nav span:hover{background:#f2f2f2;color:#000}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:12px}.cal-wd{font-size:11px;color:var(--muted);text-align:center;padding:4px 0}.cal-d{font-size:12px;text-align:center;padding:7px 0;cursor:pointer;color:var(--body)}.cal-d:hover{background:#f2f2f2}.cal-d.in{background:#ededed}.cal-d.edge{background:#000;color:#fff}.cal-d.dim{color:#c8c8c8;pointer-events:none}.cal-foot{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;display:flex;align-items:center;gap:8px;min-height:34px}.cal-txt{font-size:11px;color:var(--body)}.cal-txt b{color:var(--ink);font-weight:500}.cal-clear{font-size:11px;color:var(--muted);cursor:pointer;margin-left:auto}.cal-clear:hover{color:#000}.multi{min-width:180px;max-height:300px;overflow:auto;padding:4px 0}.multi label{display:flex;align-items:center;gap:9px;padding:8px 16px;font-size:12px;color:var(--body);cursor:pointer}.multi label:hover{background:#f6f6f6}.multi label.on{color:var(--ink)}.multi .cbx{width:12px;height:12px;border:1px solid #000;flex:none;position:relative}.multi label.on .cbx{background:#000}.multi label.on .cbx:after{content:"";position:absolute;left:2.5px;top:-1px;width:5px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(42deg)}.multi .foot{border-top:1px solid var(--line);margin-top:4px;padding:7px 16px;font-size:11px;color:var(--muted);cursor:pointer}.multi .foot:hover{color:#000}.opbar{background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 32px}.o-left{display:flex;align-items:baseline;gap:14px;min-width:0}.o-left .c{font-size:13px;color:var(--ink);white-space:nowrap}.o-left .s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw}.o-right{display:flex;align-items:center;gap:14px;flex:none}.o-right .s{font-size:12px;color:var(--muted);white-space:nowrap}.o-right .s b{color:var(--ink);font-weight:500}.btn{border:1px solid #000;background:#fff;color:#000;font-size:12px;padding:8px 18px;cursor:pointer;font-family:inherit}.btn:hover{background:#f2f2f2}.btn.dark{background:#000;color:#fff}.btn.dark:hover{background:#1f1f1f}.btn:disabled{opacity:.35;cursor:default}.btn:disabled:hover{background:#000}main{max-width:1500px;margin:0 auto;padding:16px 32px 70px}.card{background:#fff;border:1px solid var(--line);padding:18px 18px 20px;margin-bottom:18px}.card.sel{border-color:#000}.card.sel .chead .cb{background:#000}.chead{display:flex;align-items:center;gap:10px;margin-bottom:14px;cursor:pointer}.cb{width:13px;height:13px;border:1px solid #000;flex:none;position:relative}.card.sel .cb:after{content:"";position:absolute;left:3px;top:0;width:5px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(42deg)}.cname{font-size:13px;color:var(--ink)}.cavail{font-size:12px;color:var(--muted);margin-left:auto}.slide{position:relative;width:100%;aspect-ratio:16/9;background:#fff;border:1px solid var(--line);container-type:size;margin-bottom:12px}.slide:last-child{margin-bottom:0}.el{position:absolute}.state{padding:60px 0;text-align:center;font-size:13px;color:var(--muted)}.err{padding:60px 0;text-align:center;font-size:13px;color:var(--ink)}.err a{color:var(--body);cursor:pointer;text-decoration:underline}#toast{position:fixed;left:50%;bottom:36px;transform:translate(-50%) translateY(12px);background:#000;color:#fff;font-size:12px;padding:12px 22px;opacity:0;max-width:80vw;transition:opacity .18s,transform .18s;pointer-events:none;z-index:99}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f2f2f2}.login-box{width:340px;background:#fff;border:1px solid var(--line);padding:36px 32px 28px}.login-brand{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px}.login-title{font-size:13px;color:var(--body);margin-bottom:18px}.login-rule{height:1px;background:var(--line);margin-bottom:24px}.login-label{display:block;font-size:9.5px;color:var(--muted);margin-bottom:6px}.login-input{width:100%;border:1px solid var(--line);padding:9px 10px;font-size:13px;font-family:inherit;color:#000;background:#fff;outline:none;margin-bottom:16px}.login-input:focus{border-color:#000}.login-err{font-size:12px;color:var(--ink);margin-bottom:14px}.login-btn{width:100%;background:#000;color:#fff;border:none;padding:11px 0;font-size:13px;font-family:inherit;cursor:pointer;margin-top:4px}.login-btn:hover{background:#1f1f1f}.login-btn:disabled{opacity:.5;cursor:default}.login-note{font-size:11px;color:var(--muted);text-align:center;margin-top:18px}
