.eo-roster-shell{--eo-ink:#13231f;--eo-green:#1f6b54;--eo-mint:#dff2e8;--eo-line:#dce5e1;max-width:1180px;margin:0 auto;padding:48px 24px 80px;color:var(--eo-ink)}.eo-roster-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.eo-roster-head h1{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.045em;margin:5px 0 0}.eo-roster-head nav{display:flex;gap:8px}.eo-roster-head nav a,.eo-period-nav a,.eo-roster-batch a{padding:9px 13px;border-radius:10px;background:#f1f5f3;color:var(--eo-ink);text-decoration:none;font-weight:700}.eo-roster-head nav a.is-active{background:var(--eo-green);color:#fff}.eo-period-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px 0}.eo-roster-alert,.eo-roster-success{margin-top:20px;padding:14px;border-radius:12px}.eo-roster-alert{background:#fde9e6;color:#8b251b}.eo-roster-success{background:var(--eo-mint);color:var(--eo-green)}.eo-shift-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.eo-shift-card{padding:20px;border:1px solid var(--eo-line);border-radius:17px;background:#fff}.eo-shift-card header{display:flex;justify-content:space-between;gap:15px}.eo-shift-card time{color:#64716c;font-size:.84rem}.eo-shift-card h3{margin:4px 0}.eo-shift-card header a{font-weight:700}.eo-shift-status{height:max-content;padding:4px 8px;background:#f0f4f2;border-radius:999px;font-size:.72rem;font-weight:700}.eo-duty-list{display:grid;gap:7px;padding:0;list-style:none}.eo-duty-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;background:#f6f8f7;border-radius:9px}.eo-duty-list li.is-done{text-decoration:line-through;opacity:.6}.eo-duty-list a,.eo-edit-shift{font-size:.82rem;font-weight:700}.eo-roster-admin{margin-top:28px;padding:24px;border:1px solid var(--eo-line);border-radius:18px;background:#f6f8f7}.eo-roster-admin form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.eo-roster-admin label{display:grid;gap:5px;font-weight:700}.eo-roster-admin input,.eo-roster-admin select,.eo-roster-admin textarea{width:100%;padding:10px;border:1px solid var(--eo-line);border-radius:9px;background:#fff}.eo-roster-admin .eo-button{border:0;justify-self:start;align-self:end}.eo-roster-batch{display:flex;gap:10px;margin-top:18px}@media(max-width:760px){.eo-roster-shell{padding:30px 16px 60px}.eo-roster-head{display:block}.eo-roster-head nav{margin-top:16px}.eo-shift-list,.eo-roster-admin form{grid-template-columns:1fr}.eo-roster-batch{display:grid}}
