:root{color-scheme:light;--green: #3B5226;--green-hover: #4a6730;--green-press: #2a3b1b;--page: #f7f7f7;--surface: #ffffff;--surface-off: #fafafa;--surface-2: #f0f0f0;--line: #d9d9d9;--line2: #cccccc;--row: #eeeeee;--text: #333333;--muted: #666666;--on-accent: #ffffff;--input-bg: #ffffff;--sec-bg: #e0e0e0;--sec-bg-hover: #d0d0d0;--sec-text: #333333;--shadow: rgba(0,0,0,.2);--note-bg: #fff8e1;--note-border: #ffe0a3;--note-text: #8a6d1a;--ok-bg: #e8f8f0;--ok-border: #bfe6cf;--ok-text: #2e7d4f;--danger-bg: #fff5f5;--brand-fill: var(--green)}:root[data-theme=standard]{color-scheme:dark;--green: #3d7bfd;--green-hover: #5a92ff;--green-press: #2f63d6;--page: #0a1630;--surface: #14244d;--surface-off: #101d3f;--surface-2: #21356a;--line: #294067;--line2: #33507f;--row: #1b2e57;--text: #e9edf7;--muted: #98a6c5;--on-accent: #ffffff;--input-bg: #0e1c3d;--sec-bg: #26386a;--sec-bg-hover: #2f4680;--sec-text: #e9edf7;--shadow: rgba(0,0,0,.55);--note-bg: #3a3012;--note-border: #6a571d;--note-text: #e7cf86;--ok-bg: #123726;--ok-border: #1f5a3a;--ok-text: #6bd39b;--danger-bg: #3a1c1c}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--page);font-family:Segoe UI,Helvetica,Arial,sans-serif;font-size:13px}h2{margin:0 0 14px;font-size:18px}h3{margin:18px 0 8px;font-size:14px}button{font-family:inherit}.btn{background:var(--green);color:var(--on-accent);border:none;padding:8px 16px;border-radius:4px;font-weight:700;cursor:pointer}.btn:hover{background:var(--green-hover)}.btn:active{background:var(--green-press)}.btn.sec{background:var(--sec-bg);color:var(--sec-text)}.btn.sec:hover{background:var(--sec-bg-hover)}.btn.danger{background:#b23b3b;color:#fff}.btn.danger:hover{background:#9e3333}.btn:disabled{opacity:.5;cursor:default}.btn.sm{padding:4px 10px;font-size:12px}.input,select{border:1px solid var(--line2);border-radius:4px;padding:6px 8px;background:var(--input-bg);color:var(--text);min-height:32px;font-size:inherit;width:100%}.input:focus,select:focus{outline:none;border-color:var(--green)}.field{display:grid;gap:4px;margin-bottom:10px}.field label{font-size:11px;font-weight:700;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.muted{color:var(--muted)}.err{color:#e06666;font-size:12px;margin-top:6px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:4px}.shell{display:flex;height:100vh}.side{width:210px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{padding:16px;font-weight:700;font-size:16px;color:var(--green);border-bottom:1px solid var(--line)}:root[data-theme=standard] .brand{background:linear-gradient(90deg,#4d9bff,#8b5cf6,#34d399);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.nav{flex:1;padding:8px;overflow-y:auto}.navgroup{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:12px 12px 4px}.navitem{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:none;border-radius:4px;cursor:pointer;color:var(--text);font-size:13px;margin-bottom:2px}.navitem:hover{background:var(--surface-2)}.navitem.active{background:var(--green);color:var(--on-accent);font-weight:700}.sidefoot{border-top:1px solid var(--line);padding:12px;font-size:12px;display:grid;gap:8px}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line)}.content{flex:1;overflow:auto;padding:20px}.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--row);cursor:pointer}.list li:hover{background:var(--surface-2)}.swatch{width:16px;height:16px;border:1px solid var(--line2);border-radius:2px;flex:none}.row{display:flex;gap:8px;align-items:center}.spacer{flex:1}.tag{font-size:11px;color:var(--muted);border:1px solid var(--line2);border-radius:10px;padding:1px 8px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--surface);border-radius:6px;min-width:440px;max-width:92vw;max-height:90vh;overflow:auto;box-shadow:0 10px 40px var(--shadow)}.mhead{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:700}.mbody{padding:18px}.mfoot{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.placeholder-note{background:var(--note-bg);border:1px solid var(--note-border);color:var(--note-text);padding:6px 10px;border-radius:4px;font-size:12px;margin:14px 0 10px}.avail{display:flex;gap:6px;flex-wrap:wrap}.avail label{display:flex;align-items:center;gap:5px;border:1px solid var(--line2);border-radius:4px;padding:6px 9px;font-size:12px;cursor:pointer}.menuitem{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text)}.menuitem:hover{background:var(--surface-2)}.iconbtn{position:relative;background:none;border:none;cursor:pointer;font-size:18px;line-height:1;padding:6px 8px;border-radius:4px;color:var(--text)}.iconbtn:hover{background:var(--surface-2)}.badge{position:absolute;top:-1px;right:-1px;background:#c0392b;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.avatarbtn{width:30px;height:30px;border-radius:50%;background:var(--green);color:var(--on-accent);border:none;cursor:pointer;font-weight:700;font-size:13px}.popover{position:absolute;top:100%;margin-top:6px;background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 28px var(--shadow);z-index:60;overflow:hidden;max-width:calc(100vw - 24px)}.alert{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-left-width:4px;border-radius:4px;margin-bottom:8px;background:var(--surface)}.alert.warn{border-left-color:#e67e22}.alert.info{border-left-color:#2a82da}.alert.err{border-left-color:#c0392b}.auth{max-width:320px;margin:12vh auto;display:grid;gap:10px}.auth .card{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:22px}.staff{max-width:560px;margin:0 auto;min-height:100vh;background:var(--page)}.staff-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--green);color:var(--on-accent)}.staff-tabs{display:flex;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:1}.staff-tab{flex:1;padding:12px;border:none;background:none;font:inherit;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.staff-tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:700}.staff-body{padding:16px}.staff-shift{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-bottom:6px}.staff-you{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:var(--on-accent);background:var(--green);border-radius:8px;padding:0 6px;vertical-align:middle}.staff-avail{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:6px;cursor:pointer;font:inherit;background:var(--surface);color:var(--text)}.staff-link{background:none;border:none;padding:0;font:inherit;font-size:13px;cursor:pointer;color:var(--green);text-decoration:underline;text-align:left}.roster-body{display:flex;gap:12px;flex:1;min-height:0}.roster-entities{width:210px;flex:none;overflow:auto}.roster-cal{flex:1;min-width:0;overflow:auto}.backdrop{display:none}@media(max-width:768px){.side{position:fixed;top:0;left:0;bottom:0;z-index:70;box-shadow:4px 0 24px var(--shadow)}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:65}.topbar{padding:0 12px}.content{padding:12px}.grid2{grid-template-columns:1fr}.row{flex-wrap:wrap}.modal{min-width:0;width:94vw}.roster-body{flex-direction:column}.roster-entities{width:auto;max-height:30vh}}
