:root{--font-base:15px;--font-table:13px;--font-button:14px;--font-title:22px;--font-menu:15px}
html[data-theme="dark"]{--bg:#0f172a;--panel:#111c33;--panel2:#17233c;--text:#e5edf8;--muted:#9fb0c7;--accent:#39d98a;--accent2:#60a5fa;--danger:#ff6b6b;--border:#2b3b5f;--btnText:#06121f}
html[data-theme="light"], body.login-body{--bg:#eef4fb;--panel:#ffffff;--panel2:#f8fbff;--text:#172033;--muted:#596579;--accent:#0066cc;--accent2:#0f9f6e;--danger:#c62828;--border:#d8e1ee;--btnText:#ffffff}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Malgun Gothic,sans-serif;font-size:var(--font-base)} a{color:inherit;text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:230px;background:var(--panel);border-right:1px solid var(--border);padding:22px;position:sticky;top:0;height:100vh}.brand{font-size:28px;font-weight:900;color:var(--accent);line-height:1}.brand span{font-size:13px;color:var(--muted)}nav{display:flex;flex-direction:column;gap:8px;margin-top:30px}nav a{font-size:var(--font-menu);padding:12px;border-radius:12px;background:var(--panel2);border:1px solid transparent}nav a:hover{border-color:var(--accent);color:var(--accent)}.userbox{position:absolute;bottom:20px;color:var(--muted)}.main{flex:1;padding:22px;overflow:auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.topbar h1{font-size:var(--font-title);margin:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 12px 30px rgba(0,0,0,.12)}h2{font-size:calc(var(--font-title) - 4px);margin:0 0 14px}.filters,.settings-grid{display:flex;gap:12px;flex-wrap:wrap;align-items:end}label{display:flex;flex-direction:column;gap:6px;color:var(--muted)}input,select{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:10px;font-size:var(--font-base)}button,.btn{background:var(--accent);color:var(--btnText);border:0;border-radius:10px;padding:10px 14px;font-size:var(--font-button);font-weight:700;cursor:pointer;display:inline-block}button:disabled{opacity:.4;cursor:not-allowed}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-bottom:18px}.stat{background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:18px;padding:18px}.stat b{display:block;font-size:26px;color:var(--accent)}.stat span{color:var(--muted)}.grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:var(--font-table)}th,td{padding:10px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:left}th{color:var(--accent);background:var(--panel2);position:sticky;top:0}td[contenteditable]{outline:none;border-radius:6px}td[contenteditable]:focus{box-shadow:inset 0 0 0 2px var(--accent2);background:var(--panel2)}.pagination{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.pagination a{padding:8px 12px;border:1px solid var(--border);border-radius:8px}.pagination .active{background:var(--accent);color:var(--btnText)}.alert{background:rgba(255,107,107,.15);border:1px solid var(--danger);color:var(--danger);padding:12px;border-radius:12px;margin:10px 0}.success{background:rgba(57,217,138,.15);border:1px solid var(--accent);color:var(--accent);padding:12px;border-radius:12px;margin:10px 0}.muted{color:var(--muted)}.upload-box{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.bulk{display:flex;gap:8px;margin-bottom:10px}.login-body{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.login-card h1{margin:0 0 8px;color:var(--accent)}.login-card label{margin:14px 0}.login-card button{width:100%;margin-top:8px}.mobile{padding:12px}.mobile header{display:flex;justify-content:space-between;align-items:center}.mobile-grid{grid-template-columns:repeat(2,1fr)}.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--panel);border-top:1px solid var(--border);margin:0}.mobile-nav a{text-align:center;padding:14px 4px;background:transparent;border-radius:0}@media(max-width:900px){.app{display:block}.sidebar{position:relative;width:auto;height:auto}.userbox{position:static;margin-top:20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.main{padding:14px}.filters label{width:100%}}

/* admin/users.php 보강: CSS 경로가 정상 로드되면 사용자 관리 화면을 카드형 레이아웃으로 정렬 */
.user-create-form label{min-width:150px}.user-create-form .check-label{min-width:90px;align-items:flex-start}.check-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.user-table input,.user-table select{width:100%;min-width:110px}.user-table td.center{text-align:center}.user-table td.center input{width:20px;height:20px}.top-actions{display:flex;gap:8px;align-items:center}.btn.danger,button.danger{background:var(--danger);color:#fff}.card form{margin:0}@media(max-width:900px){.user-create-form label{width:100%}.user-table input,.user-table select{min-width:140px}}

.device-link{color:var(--accent2);font-weight:800;text-decoration:underline;text-underline-offset:3px}.device-link:hover{color:var(--accent)}
.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.mini-actions{display:flex;gap:8px;flex-wrap:wrap}

.chart-box{width:100%;min-width:0;overflow:hidden}.chart-box canvas{display:block;width:100%;height:300px}.chart-box canvas.chart-large{height:360px}@media(max-width:900px){.chart-box canvas,.chart-box canvas.chart-large{height:280px}}
.dashboard-stats{grid-template-columns:repeat(2,minmax(160px,1fr))}.table-help{margin:-6px 0 12px}.btn.small{padding:6px 10px;font-size:calc(var(--font-button) - 1px)}.period-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.period-tabs .btn{background:var(--panel2);color:var(--text);border:1px solid var(--border)}.period-tabs .btn.active,.period-tabs .btn:hover{background:var(--accent);color:var(--btnText);border-color:var(--accent)}.records-chart canvas.chart-large{height:380px}@media(max-width:900px){.dashboard-stats{grid-template-columns:1fr}.records-chart canvas.chart-large{height:300px}}

.pagination .disabled{opacity:.45;pointer-events:none}.pagination .page-ellipsis{padding:8px 4px;color:var(--muted)}.pagination .page-edge{font-weight:800}
.language-switch{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:13px}.language-switch a{padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:var(--panel2);color:var(--text);font-weight:700}.language-switch a.active,.language-switch a:hover{background:var(--accent);border-color:var(--accent);color:var(--btnText)}.login-lang{display:flex;justify-content:flex-end;margin-bottom:12px}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mobile header .top-actions{justify-content:flex-end}.mobile header{gap:10px}.mobile header h1{margin:0}
