:root{--charcoal: #16140f;--charcoal-soft: #211e18;--bronze: #b08060;--bronze-dark: #8a624a;--cream: #faf7f2;--line: #e6ded2;--ink: #221f1a;--muted: #736a5c;--danger: #b0483f;--ok: #5c7a5a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--cream);color:var(--ink)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}.app-header{position:sticky;top:0;z-index:100;background:var(--charcoal);color:var(--cream)}.app-header .topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px}.app-header .brand{font-weight:700;letter-spacing:.02em;font-size:16px}.app-header .brand small{display:block;font-weight:400;color:var(--bronze);font-size:12px}.app-header .tabbar{display:flex;gap:2px;background:var(--charcoal-soft);padding:0 12px;overflow-x:auto}.app-header .tab{border:none;background:transparent;color:var(--cream);opacity:.65;padding:10px 16px;font-size:13px;font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}.app-header .tab.active{opacity:1;border-bottom-color:var(--bronze)}.app-header .logout{background:transparent;border:1px solid var(--bronze);color:var(--cream);border-radius:6px;padding:6px 12px;font-size:13px}.page{padding:20px;max-width:1400px;margin:0 auto}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.btn{border-radius:6px;border:1px solid var(--bronze);background:var(--bronze);color:#fff;padding:8px 14px;font-size:13px;font-weight:600}.btn:hover{background:var(--bronze-dark);border-color:var(--bronze-dark)}.btn.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn.secondary:hover{background:var(--cream)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar .spacer{flex:1}input[type=text],input[type=password],input[type=date],input[type=time],input[type=number],select{border:1px solid var(--line);border-radius:6px;padding:8px 10px}.board-grid{display:grid;border:1px solid var(--line);border-radius:10px}.board-grid .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;min-height:56px;background:#fff}.board-grid .cell.head{background:var(--charcoal-soft);color:var(--cream);font-weight:700;font-size:12px;padding:10px 8px;min-height:unset}.board-grid .room-label{background:var(--cream);font-weight:700;font-size:13px;display:flex;align-items:center}.shift-chip{display:block;border-radius:6px;padding:4px 6px;margin-bottom:4px;font-size:12px;color:#fff;line-height:1.35;cursor:pointer}.shift-chip .time{opacity:.85;font-size:11px}.shift-chip .linked{opacity:.85;font-size:11px;font-style:italic}.category-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#16140f80;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:#fff;border-radius:10px;padding:20px;width:420px;max-width:92vw;max-height:90vh;overflow-y:auto}.modal h3{margin-top:0}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:12px;color:var(--muted);font-weight:600}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--charcoal)}.login-card{background:#fff;border-radius:12px;padding:32px;width:340px;text-align:center}.login-card h1{font-size:18px;margin-bottom:4px}.login-card p{color:var(--muted);font-size:13px;margin-top:0}.login-card input{width:100%;text-align:center;font-size:22px;letter-spacing:.3em;padding:12px;margin:16px 0}.error-text{color:var(--danger);font-size:13px;margin-top:8px}table.data-table{width:100%;border-collapse:collapse;font-size:13px}table.data-table th,table.data-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}table.data-table th{color:var(--muted);font-weight:600;font-size:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#fff}.holiday-strip{background:#fdf2ee;border:1px solid #f0d3c8;color:var(--danger);border-radius:6px;padding:6px 10px;font-size:12px;margin-bottom:10px}
