:root{color:#243447;background:#f5f8fb;font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.62}.app-shell{max-width:1440px;margin:0 auto;padding:32px}.topbar{border-bottom:1px solid #dce5ee;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:24px;display:flex}h1,h2,p{margin:0}h1{color:#172535;margin-top:6px;font-size:clamp(1.45rem,2.4vw,1.9rem);line-height:1.2}h2{color:#243447;margin-top:5px;font-size:1.28rem;line-height:1.3}.date-title{color:#2f6fb3;margin-top:0;font-size:1.5rem}.eyebrow{color:#2f6fb3;letter-spacing:.02em;font-size:.875rem;font-weight:750}.product-title{font-size:clamp(1.45rem,2.4vw,1.9rem)}.page-title{margin-top:7px;font-size:clamp(1.08rem,1.8vw,1.32rem);font-weight:700}.timeline-title{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.timeline-eyebrow{font-size:1.4rem}.timeline-title h2{margin-top:0;font-size:1.45rem}.muted,.footnote{color:#52657a;margin-top:8px;line-height:1.6}.refresh-button,.date-option{border:1px solid #b8ddee;border-radius:9px;font-weight:700;transition:background .16s,border-color .16s,color .16s}.refresh-button{color:#2f6fb3;background:#fff;padding:10px 15px}.refresh-button:hover:not(:disabled){background:#e8f5fc;border-color:#91c8e3}.date-panel,.timeline-panel,.status-card{background:#fff;border:1px solid #dce5ee;border-radius:16px;padding:24px;box-shadow:0 4px 15px #1720330c}.date-panel-heading,.timeline-panel-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.legend{color:#405268;flex-wrap:wrap;align-items:center;gap:16px;padding-top:6px;font-size:.9rem;font-weight:700;display:flex}.timeline-legend{border-top:1px solid #edf3f7;margin-top:18px;padding-top:16px}.legend span{align-items:center;gap:7px;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.free{background:#4f917e}.legend-dot.occupied{background:#d1964e}.legend-dot.standard-interest{background:#6da2cf}.legend-dot.multi-project{background:#d59045}.legend-dot.priority-interest{background:#a05f9b}.legend-dot.priority-competition{background:#c95454}.date-options{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.date-option{color:#405268;background:#f8fafc;padding:11px 15px}.date-option:hover{color:#1e476f;background:#e8f5fc;border-color:#91c8e3}.date-option.is-selected{color:#fff;background:#2f6fb3;border-color:#2f6fb3}.timeline-panel{margin-top:24px}.timeline-summary{color:#405268;background:#edf3f7;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:700}.timeline-scroll{margin-top:22px;padding-bottom:8px;overflow-x:auto}.availability-timeline{grid-template-rows:28px 68px 68px;grid-template-columns:10rem repeat(32,minmax(28px,1fr));min-width:1060px;display:grid;position:relative}.timeline-corner,.timeline-hour{color:#6c7f92;border-bottom:1px solid #dce5ee;align-items:center;font-size:.75rem;font-weight:700;display:flex}.timeline-corner{padding-left:12px}.timeline-hour{border-left:1px solid #edf3f7;padding-left:6px}.timeline-label{color:#405268;background:#f8fafc;border:1px solid #dce5ee;border-right:0;border-radius:10px 0 0;grid-area:2/1;justify-content:center;align-items:center;font-size:.9rem;font-weight:750;display:flex}.attention-label{background:#f7f9fb;border-top:0;border-radius:0 0 0 10px}.timeline-cell{background:#fff;border-top:1px solid #dce5ee;border-bottom:1px solid #dce5ee;border-left:1px solid #edf3f7;grid-row:2;min-height:68px}.timeline-cell:last-of-type{border-right:1px solid #dce5ee;border-radius:0 10px 10px 0}.attention-cell{background:#fbfcfd;border-top:0}.timeline-segment{z-index:1;border-radius:7px;grid-row:2;justify-content:center;align-items:center;min-width:0;margin:8px 2px;font-size:.82rem;font-weight:800;display:flex;position:relative}.timeline-segment.is-free{color:#336656;background:#e9f4f0}.timeline-segment.is-occupied{color:#563817;background:#fae593}.attention-segment.is-none{color:#0000;background:0 0}.attention-segment.is-standard-interest{color:#315f85;background:#e7f1f9}.attention-segment.is-multi-project{color:#7b4b16;background:#f8e4c3}.attention-segment.is-priority-interest{color:#693c66;background:#efe0ed}.attention-segment.is-priority-competition{color:#7e3030;background:#f5dada}.notice{color:#25598f;background:#e8f5fc;border:1px solid #b8ddee;border-radius:10px;margin:20px 0 0;padding:12px 14px;line-height:1.5}.notice.error{color:#7e3136;background:#fbedee;border-color:#efbcc0}.footnote{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:24px 4px 0;font-size:.84rem;display:flex}.status-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.status-card{width:100%;max-width:500px}.status-card p:last-child{color:#52657a;margin-top:14px;line-height:1.6}@media (width<=720px){.app-shell{padding:18px}.topbar,.date-panel-heading,.timeline-panel-heading{flex-direction:column;align-items:stretch}.refresh-button{align-self:flex-start}.date-panel,.timeline-panel{padding:18px}.legend{padding-top:0}.footnote{flex-direction:column;align-items:flex-start}}
