*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;background:#f5f5f5;color:#333}
a{text-decoration:none}

/* nav */
.admin-nav{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:#1a1a2e;color:#fff;position:sticky;top:0;z-index:100}
.nav-brand{font-size:16px;font-weight:700}
.nav-links{display:flex;gap:4px}
.nav-link{color:rgba(255,255,255,.7);padding:8px 14px;border-radius:8px;font-size:14px;transition:all .2s}
.nav-link:hover,.nav-link.active{color:#fff;background:rgba(255,255,255,.1)}
.nav-logout{color:rgba(255,255,255,.5)}

.admin-content{max-width:1200px;margin:0 auto;padding:24px}
h1{font-size:22px;margin-bottom:20px}
h2{font-size:17px;margin-bottom:12px}

/* stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.stat-card{background:#fff;border-radius:12px;padding:24px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.stat-value{font-size:36px;font-weight:800;color:#1a1a2e}
.stat-label{font-size:13px;color:#999;margin-top:4px}

/* tables */
.data-table{width:100%;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.data-table th,.data-table td{padding:12px 16px;text-align:left;font-size:14px;border-bottom:1px solid #f0f0f0}
.data-table th{background:#fafafa;font-weight:600;color:#666;font-size:13px}
.data-table tr:last-child td{border-bottom:none}
.row-deleted{opacity:.4;text-decoration:line-through}
.row-disabled{opacity:.6}
.deleted-tag{font-size:12px;color:#999}

/* forms */
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#555}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.form-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.06);max-width:600px}
.input{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border .2s}
.input:focus{border-color:#1a1a2e}
.hint{font-size:12px;color:#999;display:block;margin-top:4px}

/* buttons */
.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s;font-weight:500}
.btn:disabled{opacity:.5;cursor:default}
.btn-primary{background:#1a1a2e;color:#fff}
.btn-primary:hover{background:#333}
.btn-outline{background:transparent;border:1px solid #ddd;color:#555}
.btn-outline:hover{background:#f5f5f5}
.btn-danger{background:#fff;color:#e74c3c;border:1px solid #e74c3c}
.btn-danger:hover{background:#e74c3c;color:#fff}
.btn-warning{background:#fff;color:#f39c12;border:1px solid #f39c12}
.btn-warning:hover{background:#f39c12;color:#fff}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:6px}
.btn-block{width:100%;display:block}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar .input{width:auto}

/* modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:200}
.modal{background:#fff;border-radius:16px;padding:28px;width:90%;max-width:560px;max-height:90vh;overflow-y:auto}
.modal h2{font-size:18px;margin-bottom:20px}

/* login */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#1a1a2e}
.login-card{background:#fff;border-radius:16px;padding:40px;width:360px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.login-card h2{font-size:24px;margin-bottom:4px}
.login-card .sub{color:#999;font-size:13px;margin-bottom:24px}
.login-card .form-group{text-align:left}

/* misc */
.loading{text-align:center;padding:40px;color:#999}
.error{text-align:center;padding:40px;color:#e74c3c}
.error-msg{color:#e74c3c;font-size:13px;margin:8px 0}
.empty{text-align:center;color:#999;font-size:14px}
