:root{--bg:#f3f7fc;--ink:#0f2b46;--ink-soft:#4f6980;--line:#cddaea;--font:"Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 8% 0%, #fab4584d, transparent 28%), radial-gradient(circle at 85% 4%, #1c7ed633, transparent 30%), var(--bg);min-height:100vh;margin:0}h1{margin:8px 0;font-size:clamp(28px,4vw,40px)}h2{margin:0;font-size:20px}p{margin:0}.page-shell{min-height:100vh;padding:32px}.gate-shell{place-items:center;display:grid}.gate-card{border:1px solid var(--line);background:#ffffffe6;border-radius:16px;width:min(560px,100%);padding:24px;box-shadow:0 14px 30px #0b61b71a}.gate-card h1{margin:10px 0}.cooldown-text{color:#b02a37;margin:6px 0;font-weight:600}.hero{border:1px solid var(--line);background:radial-gradient(circle at 10% -20%,#fab4582e,#0000 45%),radial-gradient(circle at 95% 0,#1c7ed626,#0000 35%),linear-gradient(#fffffff5 0%,#f6faffd1 100%);border-radius:18px;justify-content:space-between;gap:24px;padding:26px;display:flex}.badge{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);background:#fffc;border-radius:999px;padding:4px 12px;font-size:12px;display:inline-flex}.subtitle{color:var(--ink-soft);max-width:680px}.status-box{border:1px solid var(--line);background:#ffffffe0;border-radius:14px;flex-shrink:0;width:220px;padding:14px}.status-box p{color:var(--ink-soft);text-transform:uppercase;margin:0;font-size:12px}.status-box strong{color:var(--ink);margin-top:6px;font-size:22px;display:block}.status-box span{color:var(--ink-soft);margin-top:6px;font-size:13px;display:block}.clock-label{margin-top:12px}.clock-value{background:linear-gradient(#1c7ed629 0%,#0b61b714 100%);border:1px solid #0b61b759;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:16px;line-height:1.2}.layout{grid-template-columns:1.15fr 1fr;gap:18px;margin-top:18px;display:grid}.panel{border:1px solid var(--line);background:#ffffffd9;border-radius:16px;padding:20px}.panel h2{margin:0 0 12px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}input,button{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:14px}input{min-width:180px;color:var(--ink);background:#fffffff2}input:focus{border-color:#1c7ed680;outline:2px solid #1c7ed633}button{cursor:pointer;color:#fff;background:linear-gradient(#1c7ed6 0%,#0b61b7 100%);border-color:#0b61b7;transition:transform .16s,box-shadow .16s}button:hover:enabled{transform:translateY(-1px);box-shadow:0 6px 14px #0b61b740}button:disabled{cursor:not-allowed;opacity:.55}.hint{color:var(--ink-soft);margin-top:10px;font-size:13px}.mode-tabs{gap:10px;margin-bottom:12px;display:flex}.mode-tabs button{color:var(--ink-soft);border-color:var(--line);background:#fff}.mode-tabs button.active{color:#fff;background:linear-gradient(#1c7ed6 0%,#0b61b7 100%);border-color:#0b61b7}.mode-body{gap:12px;display:grid}.continuous-grid{grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;display:grid}.field-group{border:1px solid var(--line);background:#ffffffb8;border-radius:12px;gap:6px;padding:10px;display:grid}.field-label{color:var(--ink);font-size:13px;font-weight:600}.field-help{color:var(--ink-soft);font-size:12px;line-height:1.5}.mode-note{color:var(--ink-soft);margin:0;font-size:13px}.check-row label{color:var(--ink-soft);align-items:center;gap:8px;display:inline-flex}.course-list{gap:8px;display:grid}.course-item{border:1px solid var(--line);background:#ffffffbf;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.course-title{color:var(--ink);font-weight:600}.course-time{color:var(--ink-soft);font-size:13px}.logs-panel{grid-column:span 2}.logs{border:1px solid var(--line);background:#fcfdfff2;border-radius:12px;max-height:320px;padding:8px;overflow:auto}.log-item{border-radius:8px;grid-template-columns:72px 1fr;align-items:baseline;gap:10px;padding:8px;display:grid}.log-item+.log-item{margin-top:4px}.log-item span{color:var(--ink-soft);font-size:12px}.log-item p{color:var(--ink);margin:0}.log-item.info{background:#1c7ed614}.log-item.success{background:#2ea0431c}.log-item.error{background:#d930251f}@media (width<=960px){.page-shell{padding:14px}.hero{flex-direction:column}.status-box{width:100%}.layout{grid-template-columns:1fr}.logs-panel{grid-column:span 1}.continuous-grid{grid-template-columns:1fr}.course-item{grid-template-columns:auto 1fr}.course-time{grid-column:2}}
