/* Data Admin styles — builds on styles.css design tokens */
.admin-wrap{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:20px 12px;max-width:1700px;margin:0 auto;min-height:calc(100vh - 80px)}

/* Sidebar table list */
.admin-side{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;height:fit-content;position:sticky;top:16px}
.admin-side h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:12px}
.table-list{list-style:none;display:flex;flex-direction:column;gap:4px}
.table-list li{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:.86rem;font-weight:500;color:var(--text);transition:all var(--tr);display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid transparent}
.table-list li:hover{background:var(--bg);border-color:var(--border)}
.table-list li.active{background:var(--accent-light);border-color:var(--accent);color:var(--primary);font-weight:600}
.table-list li .count{font-size:.7rem;color:var(--muted);font-family:var(--mono);background:var(--bg);padding:1px 7px;border-radius:10px}
.table-list li.active .count{background:#fff}
.table-list li .ro{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--warn);font-weight:700}
.side-note{margin-top:16px;font-size:.72rem;color:var(--light);line-height:1.5}
.side-note code{font-family:var(--mono);font-size:.68rem;color:var(--muted)}

/* Main area */
.admin-main{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#f8fafc)}
.tb-title h2{font-size:1.05rem;font-weight:700}
.tb-title .muted{font-size:.76rem;color:var(--muted)}
.admin-actions{display:flex;align-items:center;gap:8px}
.filter-box{width:200px;padding:7px 12px!important;font-size:.82rem!important}

/* Status bar */
.status-bar{margin:14px 22px 0;padding:12px 16px;border-radius:var(--radius-sm);font-size:.83rem;font-weight:500}
.status-bar.ok{background:var(--success-bg);color:var(--success);border:1px solid #6ee7b7}
.status-bar.err{background:var(--error-bg);color:var(--error);border:1px solid #f87171}
.status-bar.info{background:var(--accent-light);color:var(--primary);border:1px solid #93c5fd}
.status-bar ul{margin:6px 0 0 18px}
.status-bar li{font-weight:400}

/* Grid */
.grid-scroll{overflow:auto;flex:1;padding:6px 22px 22px;position:relative}
.data-grid{border-collapse:collapse;width:100%;font-size:.82rem}
.data-grid th{position:sticky;top:0;background:var(--bg);color:var(--muted);text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;font-weight:700;padding:9px 8px;border-bottom:2px solid var(--border);white-space:nowrap;z-index:2}
.data-grid td{padding:3px 5px;border-bottom:1px solid var(--border);vertical-align:middle}
.data-grid tr:hover td{background:#fbfdff}
.data-grid input,.data-grid select{padding:6px 8px;font-size:.8rem;border:1.5px solid transparent;background:transparent;border-radius:6px;width:100%;min-width:60px;font-family:var(--font)}
.data-grid input:hover,.data-grid select:hover{border-color:var(--border)}
.data-grid input:focus,.data-grid select:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.12);outline:none}
.data-grid input.num{font-family:var(--mono);text-align:right;max-width:90px}
.data-grid select.yn{max-width:64px;font-family:var(--mono);font-weight:600}
.data-grid td.rownum{color:var(--light);font-family:var(--mono);font-size:.7rem;text-align:right;padding-right:10px}
.data-grid .del-btn{background:none;border:none;color:var(--light);cursor:pointer;font-size:1rem;padding:5px 8px;border-radius:6px}
.data-grid .del-btn:hover{color:var(--error);background:var(--error-bg)}
.data-grid.readonly input{pointer-events:none;color:var(--muted)}
tr.dirty td.rownum::after{content:'●';color:var(--accent);margin-left:4px}
tr.newrow td{background:#f0fdf4}

.empty-hint{padding:60px 20px;text-align:center;color:var(--light);font-size:.9rem}
.hidden{display:none!important}
