:root{--color-bg: #f4f6f8;--color-surface: #ffffff;--color-border: #e2e6ea;--color-text: #1f2937;--color-text-muted: #6b7280;--color-text-faint: #9ca3af;--color-primary: #0f172a;--color-primary-hover: #1e293b;--color-accent: #0e7c66;--color-accent-hover: #0b6353;--color-danger: #b91c1c;--color-danger-bg: #fdecec;--color-success-bg: #eaf7f0;--color-success-text: #0b6353;--radius: 8px;--radius-sm: 5px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .06);--sidebar-width: 240px;--topbar-height: 56px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font);color:var(--color-text);background:var(--color-bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-width);background:var(--color-primary);color:#cbd5e1;transform:translate(-100%);transition:transform .2s ease;z-index:40;display:flex;flex-direction:column;overflow-y:auto}.sidebar.is-open{transform:translate(0)}.sidebar__brand{padding:16px 20px;font-size:17px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar__nav{flex:1;padding:12px 0}.sidebar__section{padding:16px 20px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.sidebar__link{display:block;padding:9px 20px;font-size:14px;color:#cbd5e1;border-left:3px solid transparent}.sidebar__link:hover{background:#ffffff0f;color:#fff}.sidebar__link.is-active{background:#ffffff14;color:#fff;border-left-color:var(--color-accent)}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#0f172a73;z-index:30}.sidebar-backdrop.is-open{display:block}.main{flex:1;min-width:0;width:100%}.topbar{height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;position:sticky;top:0;z-index:20}.topbar__left{display:flex;align-items:center;gap:12px;min-width:0}.topbar__title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hamburger{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hamburger span,.hamburger:before,.hamburger:after{content:"";display:block;width:18px;height:2px;background:var(--color-text);position:relative}.hamburger{flex-direction:column;gap:4px}.topbar__user{display:flex;align-items:center;gap:10px;font-size:13px;white-space:nowrap}.topbar__user .role-tag{color:var(--color-text-faint);font-size:12px}.content{padding:16px}@media(min-width:960px){.sidebar{position:sticky;transform:none;flex-shrink:0}.sidebar-backdrop{display:none!important}.hamburger{display:none}.content{padding:24px 28px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--color-primary);color:#fff;line-height:1.2}.btn:hover{background:var(--color-primary-hover)}.btn--accent{background:var(--color-accent)}.btn--accent:hover{background:var(--color-accent-hover)}.btn--outline{background:transparent;border-color:var(--color-border);color:var(--color-text)}.btn--outline:hover{background:var(--color-bg)}.btn--danger{background:transparent;color:var(--color-danger);padding:9px 12px}.btn--danger:hover{text-decoration:underline}.btn--block{width:100%}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:16px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(min-width:640px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stat-card__label{font-size:12px;color:var(--color-text-muted)}.stat-card__value{font-size:22px;font-weight:700;margin-top:4px}.form-max{max-width:520px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:500;margin-bottom:5px;color:var(--color-text)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field select,.field textarea{width:100%;padding:9px 11px;font-size:14px;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0f172a14}.field-row{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:480px){.field-row--2{grid-template-columns:1fr 1fr}}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-muted)}.form-actions{display:flex;align-items:center;gap:16px;margin-top:8px;flex-wrap:wrap}.alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px;border:1px solid transparent}.alert--success{background:var(--color-success-bg);color:var(--color-success-text);border-color:#bfe6d8}.alert--error{background:var(--color-danger-bg);color:var(--color-danger);border-color:#f3c6c6}.alert ul{margin:0;padding-left:18px}.table-wrap{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.data-table thead{background:var(--color-bg)}.data-table th{text-align:left;font-size:12px;font-weight:600;color:var(--color-text-muted);padding:10px 14px}.data-table td{padding:10px 14px;font-size:13.5px;border-top:1px solid var(--color-border)}.data-table tbody tr:hover{background:#fafbfc}.data-table .text-muted{color:var(--color-text-muted)}.data-table .text-right{text-align:right}.empty-row td{text-align:center;padding:32px 14px;color:var(--color-text-faint)}@media(max-width:639px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:10px 14px;border-top:1px solid var(--color-border)}.data-table tr:first-child{border-top:none}.data-table td{border-top:none;padding:4px 0;display:flex;justify-content:space-between;gap:12px}.data-table td:before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--color-text-faint);text-transform:uppercase;flex-shrink:0}.data-table td.text-right{justify-content:space-between}}.toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}@media(min-width:640px){.toolbar{flex-direction:row;align-items:center;justify-content:space-between}}.search-form{display:flex;gap:8px;width:100%}@media(min-width:640px){.search-form{width:auto}.search-form input{width:280px}}.search-form input{flex:1}.pagination-wrap{margin-top:16px;font-size:13px}.pagination-wrap nav{display:flex;justify-content:center}.tabs__list{display:flex;overflow-x:auto;border-bottom:1px solid var(--color-border)}.tabs__btn{background:none;border:none;border-bottom:2px solid transparent;padding:12px 16px;font-size:13.5px;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.tabs__btn.is-active{color:var(--color-text);border-bottom-color:var(--color-primary)}.tabs__panel{display:none;padding:20px;font-size:13.5px;color:var(--color-text-muted)}.tabs__panel.is-active{display:block}.profile-header{display:flex;flex-direction:column;gap:12px;justify-content:space-between}@media(min-width:640px){.profile-header{flex-direction:row;align-items:flex-start}}.profile-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px;font-size:13.5px}@media(min-width:640px){.profile-meta-grid{grid-template-columns:repeat(4,1fr)}}.profile-meta-grid .label{color:var(--color-text-faint);font-size:11px;text-transform:uppercase}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--color-bg)}.auth-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 28px;width:100%;max-width:380px}.auth-card h1{font-size:19px}.auth-card p.sub{color:var(--color-text-muted);font-size:13px;margin:4px 0 20px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.text-sm{font-size:13px}.text-muted{color:var(--color-text-muted)}
