#rs-root {
max-width: 850px;
margin: 0 auto;
font-family: 'Segoe UI','Apple SD Gothic Neo',Arial,sans-serif;
} .rs-banner {
font-weight: 700;
font-size: 1.16em;
margin: 14px 0 12px;
text-align: center;
letter-spacing: .5px;
} .rs-tabs { display:flex; border-bottom:2px solid #ddd; margin-bottom:10px; gap:2px; }
.rs-tab {
background:none; border:none; border-bottom:3px solid transparent;
padding:10px 24px; cursor:pointer; font-weight:700; color:#444;
transition:border-bottom .2s, color .2s; font-size:1rem;
}
.rs-tab.active { border-bottom:3px solid #0073aa; color:#0073aa; background:#f7fafd; } .rs-toolbar { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.rs-primary { background:#0073aa; color:#fff; }
.rs-primary:disabled, button:disabled { opacity:.65; cursor:not-allowed; }
.rs-ghost { background:#eee; color:#333; }
#rs-eraser.active { background:#c53030; color:#fff; } .rs-weekblock { display:flex; flex-direction:column; align-items:center; min-width:140px; }
.rs-weekline1 { font-weight:700; line-height:1; }
.rs-weekline2 { color:#666; line-height:1; margin-top:2px; } .rs-color-grid { display:grid; grid-template-columns:repeat(5,22px); grid-auto-rows:22px; gap:6px 8px; align-items:center; margin:0 8px; }
.rs-color-btn { width:22px; height:22px; border-radius:50%; border:1px solid #fff; box-shadow:0 0 2px #aaa; cursor:pointer; }
.rs-color-selected { outline:2px solid #111; } .rs-gridwrap { width:100%; } .rs-head {
display: grid;
grid-template-columns: 88px repeat(7, 1fr);
gap: 6px;
align-items: stretch;
}
.rs-time-head { height: 36px; }
.rs-day-head {
background: #f7fafd;
border-radius: 6px;
text-align: center;
font-weight: 600;
height: 36px;
line-height: 36px;
} .rs-body {
display: grid;
grid-template-columns: 88px repeat(7, 1fr);
gap: 6px;
} .rs-time-col {
border: none;
border-radius: 6px;
background: #fff;
overflow: hidden;
} .rs-time-hour {
position: relative;
display: flex;
align-items: flex-start;
justify-content: flex-end;
padding-right: 6px;
height: 60px; }
.rs-time-hour span {
position: relative;
top: -8px;
font-size: .9rem;
color: #333;
} .rs-time-hour-end { height: 0; }
.rs-time-hour-end span {
position: relative;
top: -8px;
font-size: .9rem;
color: #333;
} .rs-day-col {
position: relative;
background: #fff;
border-radius: 6px;
overflow: hidden;
} .rs-day-col .rs-lines { position:absolute; inset:0; pointer-events:none; }
.rs-line.solid  { position:absolute; left:0; right:0; border-top:1px solid #999; }
.rs-line.dotted { position:absolute; left:0; right:0; border-top:1px dashed #cfcfcf; } .rs-day-col > .rs-slot,
.rs-day-col .rs-slot { height: 30px; }
.rs-slot {
box-sizing: content-box; height: 30px;
line-height: 30px; padding: 0 6px; border: 0 none; position: relative;
display: block; font-size: .92rem;
user-select: none;
cursor: pointer;
}
.rs-slot:hover { background:#eaf2ff; }
.rs-slot.selected { outline:2px solid #333; background:#e1eefc !important; }
.rs-slot.filled .rs-slot-text { color:#111; text-shadow:0 1px 0 #ffffff55; } #rs-popup { position:fixed; inset:0; z-index:10000; }
.rs-popup-bg { position:absolute; inset:0; background:rgba(0,0,0,.25); }
.rs-popup-panel {
position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
background:#fff; min-width:280px; padding:32px 30px 18px; border-radius:10px;
box-shadow:0 8px 32px #8883; z-index:10;
}
.rs-popup-title { font-weight:600; margin-bottom:10px; font-size:1.09em; }
.rs-popup-desc { color:#555; margin-bottom:6px; font-size:.98em; }
#rs-popup-name { width:98%; margin-bottom:13px; padding:6px 7px; font-size:1em; border-radius:5px; border:1px solid #ccc; background:#fcfcfe; }
.rs-popup-colortitle { margin-bottom:6px; font-size:.97em; }
.rs-popup-btns { margin-top:14px; display:flex; justify-content:flex-end; gap:10px; }
.rs-popup-btns button { padding:7px 16px; border-radius:4px; border:none; font-size:1em; background:#eee; color:#333; cursor:pointer; }
.rs-popup-btns button:last-child { background:#0073aa; color:#fff; }
.rs-popup-btns button:hover { filter:brightness(.99); } @media (max-width: 900px){
.rs-head, .rs-body { grid-template-columns:70px repeat(7,1fr); }
.rs-time-hour { height:60px; } }
@media (max-width: 600px){
#rs-root { font-size:12px; }
.rs-tab { padding:7px 10px; font-size:.96rem; }
.rs-color-btn { width:22px; height:22px; }
}