/* ===== VARIABLES ===== */
:root {
  --bg:#0d0e14;--bg2:#13141d;--bg3:#1a1b27;--surface:#1e2030;--surface2:#252740;
  --border:#2e3150;--border2:#3a3f6e;--text:#e8eaf6;--text2:#9ba3cf;--text3:#5a6290;
  --accent:#6c63ff;--accent2:#8b84ff;--accent-glow:rgba(108,99,255,0.25);
  --green:#4ade80;--red:#f87171;--yellow:#fbbf24;--blue:#60a5fa;
  --radius:10px;--radius-lg:16px;--shadow:0 4px 24px rgba(0,0,0,.4);--shadow-lg:0 8px 40px rgba(0,0,0,.5);
  --font-head:'Syne',sans-serif;--font-body:'DM Sans',sans-serif;
  --sidebar-w:240px;--transition:.2s ease;
}
[data-theme=light]{
  --bg:#f0f2fa;--bg2:#e8ebf8;--bg3:#dde1f5;--surface:#fff;--surface2:#f4f5fc;
  --border:#dde1f5;--border2:#c5cbee;--text:#1a1d3a;--text2:#4a5280;--text3:#8890b5;
  --shadow:0 4px 24px rgba(100,110,200,.12);--shadow-lg:0 8px 40px rgba(100,110,200,.18);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:15px;}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
button{font-family:var(--font-body);cursor:pointer;border:none;outline:none;background:none;}
input,select,textarea{font-family:var(--font-body);outline:none;border:none;background:none;color:var(--text);}
input::placeholder,textarea::placeholder{color:var(--text3);}
select option{background:var(--bg2);color:var(--text);}

/* ===== AUTH ===== */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.auth-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 60% 40%,rgba(108,99,255,.18) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 20% 70%,rgba(96,165,250,.1) 0%,transparent 60%);}
.auth-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2.2rem;width:100%;max-width:420px;box-shadow:var(--shadow-lg);}
.auth-logo{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;}
.logo-mark{width:36px;height:36px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.2rem;flex-shrink:0;}
.logo-text{font-family:var(--font-head);font-weight:800;font-size:1.4rem;letter-spacing:.12em;}
.auth-lang{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;}
.lang-switcher{display:flex;align-items:center;gap:.4rem;}
.lang-btn{font-size:.78rem;font-weight:700;color:var(--text3);padding:.2rem .4rem;border-radius:4px;transition:var(--transition);}
.lang-btn.active{color:var(--accent);}
.lang-switcher span{color:var(--border2);font-size:.8rem;}
.auth-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:1.8rem;}
.auth-tab{flex:1;padding:.55rem;font-size:.88rem;font-weight:500;color:var(--text2);background:transparent;transition:var(--transition);}
.auth-tab.active{background:var(--accent);color:#fff;}
.auth-form{display:none;flex-direction:column;gap:1rem;}
.auth-form.active{display:flex;}
.auth-hint{font-size:.88rem;color:var(--text2);margin-bottom:.5rem;}
.btn-link{background:none;border:none;color:var(--accent);font-size:.85rem;cursor:pointer;padding:.4rem 0;text-align:center;}
.auth-msg{margin-top:1rem;min-height:1.2rem;font-size:.85rem;text-align:center;}
.auth-msg.error{color:var(--red);}
.auth-msg.success{color:var(--green);}

/* ===== FORMS ===== */
.form-group{display:flex;flex-direction:column;gap:.4rem;flex:1;}
.form-group label{font-size:.78rem;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;}
.form-group input,.form-group select,.form-group textarea{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .9rem;font-size:.92rem;color:var(--text);transition:border-color var(--transition);}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);}
.form-group.full{width:100%;}
.form-row{display:flex;gap:1rem;}
.form-row .form-group{flex:1;}
.form-group-check{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text2);}
.form-group-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);}
textarea{resize:vertical;min-height:80px;}

/* ===== BUTTONS ===== */
.btn-primary{background:var(--accent);color:#fff;padding:.65rem 1.4rem;border-radius:var(--radius);font-weight:600;font-size:.9rem;transition:opacity var(--transition),transform var(--transition);}
.btn-primary:hover{opacity:.88;transform:translateY(-1px);}
.btn-primary.full{width:100%;padding:.75rem;}
.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border);padding:.65rem 1.4rem;border-radius:var(--radius);font-weight:500;font-size:.9rem;transition:var(--transition);}
.btn-secondary:hover{border-color:var(--border2);}
.btn-danger{background:rgba(248,113,113,.15);color:var(--red);border:1px solid rgba(248,113,113,.3);padding:.65rem 1.4rem;border-radius:var(--radius);font-weight:600;font-size:.9rem;transition:var(--transition);}
.btn-danger:hover{background:rgba(248,113,113,.25);}
.btn-icon{background:var(--surface2);border:1px solid var(--border);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:.95rem;transition:var(--transition);}
.btn-icon:hover{border-color:var(--accent);}
.btn-export{background:var(--surface2);color:var(--text2);border:1px solid var(--border);padding:.45rem .9rem;border-radius:8px;font-size:.8rem;font-weight:500;transition:var(--transition);}
.btn-export:hover{color:var(--text);border-color:var(--accent);}
.btn-new-record{background:var(--accent);color:#fff;padding:.5rem 1.1rem;border-radius:8px;font-size:.85rem;font-weight:600;white-space:nowrap;transition:opacity var(--transition);}
.btn-new-record:hover{opacity:.85;}
.btn-approve{background:rgba(74,222,128,.15);color:var(--green);border:1px solid rgba(74,222,128,.3);padding:.35rem .8rem;border-radius:6px;font-size:.78rem;font-weight:600;}
.btn-reject{background:rgba(248,113,113,.15);color:var(--red);border:1px solid rgba(248,113,113,.3);padding:.35rem .8rem;border-radius:6px;font-size:.78rem;font-weight:600;}

/* ===== APP LAYOUT ===== */
.app{display:flex;height:100vh;overflow:hidden;}
.hidden{display:none !important;}

/* ===== SIDEBAR ===== */
.sidebar{width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;flex-shrink:0;transition:transform var(--transition);}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.2rem 1rem;}
.sidebar-logo{display:flex;align-items:center;gap:.6rem;}
.sidebar-close{display:none;color:var(--text2);font-size:1rem;padding:4px;}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .7rem;}
.nav-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:8px;color:var(--text2);font-size:.88rem;font-weight:500;cursor:pointer;transition:var(--transition);}
.nav-item:hover{background:var(--surface);color:var(--text);}
.nav-item.active{background:var(--accent-glow);color:var(--accent);}
.nav-icon{font-size:.75rem;}
.sidebar-section-title{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;padding:1.2rem 1.5rem .5rem;}
.sidebar-cats{display:flex;flex-direction:column;gap:2px;padding:0 .7rem;}
.cat-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .8rem;border-radius:8px;color:var(--text2);font-size:.85rem;cursor:pointer;transition:var(--transition);}
.cat-item:hover{background:var(--surface);color:var(--text);}
.cat-item.active{background:var(--surface);color:var(--text);}
.cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.cat-name{flex:1;margin-left:.5rem;}
.cat-count{font-size:.75rem;color:var(--text3);}
.cat-actions{display:none;gap:4px;}
.cat-item:hover .cat-actions{display:flex;}
.cat-action-btn{font-size:.75rem;color:var(--text3);padding:2px 5px;border-radius:4px;background:var(--surface2);}
.cat-action-btn:hover{color:var(--red);}
.btn-sidebar-add{margin:.6rem 1.2rem;padding:.5rem;border:1px dashed var(--border2);border-radius:8px;color:var(--text3);font-size:.82rem;width:calc(100% - 2.4rem);text-align:center;transition:var(--transition);}
.btn-sidebar-add:hover{border-color:var(--accent);color:var(--accent);}
.sidebar-footer{margin-top:auto;padding:1rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--border);}
.btn-theme{color:var(--text2);font-size:.82rem;padding:.45rem;text-align:center;border:1px solid var(--border);border-radius:8px;transition:var(--transition);}
.btn-theme:hover{color:var(--accent);border-color:var(--accent);}
.btn-logout{color:var(--text3);font-size:.82rem;padding:.45rem;text-align:center;transition:var(--transition);}
.btn-logout:hover{color:var(--red);}

/* ===== MAIN ===== */
.main-wrap{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.topbar{display:flex;align-items:center;gap:1rem;padding:.8rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg2);flex-shrink:0;}
.hamburger{display:none;color:var(--text2);font-size:1.3rem;padding:4px;}
.topbar-search{flex:1;max-width:480px;}
.topbar-search input{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.55rem 1rem;width:100%;font-size:.88rem;transition:border-color var(--transition);}
.topbar-search input:focus{border-color:var(--accent);}
.topbar-right{display:flex;align-items:center;gap:1rem;margin-left:auto;}
.user-badge{font-size:.82rem;color:var(--text2);font-weight:500;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.content{flex:1;overflow-y:auto;padding:1.8rem;}
.view{display:none;}
.view.active{display:block;}
.page-header{margin-bottom:1.8rem;display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.page-header h1{font-family:var(--font-head);font-size:1.6rem;font-weight:700;}
.view-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}
.filters-row{display:flex;gap:.5rem;flex-wrap:wrap;}
.filters-row select{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.45rem .8rem;font-size:.82rem;color:var(--text);cursor:pointer;}
.view-toggle{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.toggle-btn{padding:.45rem .9rem;font-size:.82rem;color:var(--text2);background:transparent;transition:var(--transition);}
.toggle-btn.active{background:var(--surface2);color:var(--text);}
.export-actions{display:flex;gap:.4rem;flex-wrap:wrap;}

/* ===== STATS ===== */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.4rem;}
.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:.6rem;}
.stat-value{font-family:var(--font-head);font-size:2rem;font-weight:800;line-height:1;}
.stat-sub{font-size:.78rem;color:var(--text3);margin-top:.3rem;}
.dash-bottom{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.dash-section h2{font-family:var(--font-head);font-size:1rem;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1rem;}
.cats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.cat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;display:flex;align-items:center;gap:.7rem;cursor:pointer;transition:var(--transition);}
.cat-card:hover{border-color:var(--border2);transform:translateY(-1px);}
.cat-card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.cat-card-name{font-size:.88rem;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cat-card-count{font-size:.8rem;color:var(--text3);font-weight:600;}

/* ===== TABLE ===== */
.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;}
thead{background:var(--surface2);}
th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);border-bottom:1px solid var(--border);white-space:nowrap;}
td{padding:.8rem 1rem;border-bottom:1px solid var(--border);font-size:.88rem;color:var(--text);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tbody tr{background:var(--surface);transition:background var(--transition);}
tbody tr:hover{background:var(--surface2);}
.td-name{font-weight:500;}
.td-actions{display:flex;gap:.4rem;justify-content:flex-end;}
.td-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:.3rem .6rem;font-size:.75rem;color:var(--text2);transition:var(--transition);}
.td-btn:hover{border-color:var(--accent);color:var(--accent);}
.td-btn.del:hover{border-color:var(--red);color:var(--red);}

/* ===== CARDS ===== */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.record-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;transition:var(--transition);cursor:pointer;}
.record-card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:var(--shadow);}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.8rem;gap:.5rem;}
.card-name{font-family:var(--font-head);font-size:1rem;font-weight:700;flex:1;}
.card-fav{color:var(--yellow);font-size:.9rem;}
.card-body{font-size:.84rem;color:var(--text2);display:flex;flex-direction:column;gap:.3rem;}
.card-row{display:flex;gap:.4rem;}
.card-label{color:var(--text3);flex-shrink:0;}
.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--border);}
.card-cat-badge{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;padding:.2rem .6rem;border-radius:50px;}
.card-actions{display:flex;gap:.3rem;}

/* ===== BADGES ===== */
.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:50px;font-size:.73rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;}
.badge-activo,.badge-active{background:rgba(74,222,128,.15);color:var(--green);}
.badge-inactivo,.badge-inactive{background:rgba(148,163,184,.15);color:#94a3b8;}
.badge-pendiente,.badge-pending{background:rgba(251,191,36,.15);color:var(--yellow);}
.badge-completado,.badge-completed{background:rgba(96,165,250,.15);color:var(--blue);}
.tags{display:flex;gap:.3rem;flex-wrap:wrap;}
.tag{background:var(--surface2);border:1px solid var(--border);color:var(--text2);padding:.15rem .5rem;border-radius:50px;font-size:.72rem;}

/* ===== RECORDS LIST ===== */
.records-list{display:flex;flex-direction:column;gap:.5rem;}
.record-row-mini{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.7rem 1rem;cursor:pointer;transition:var(--transition);}
.record-row-mini:hover{border-color:var(--border2);}
.record-mini-name{font-weight:500;font-size:.88rem;flex:1;}
.record-mini-cat{font-size:.75rem;color:var(--text3);}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;}
.modal-sm{max-width:420px;}
.modal-view{max-width:560px;}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:1;}
.modal-header h2{font-family:var(--font-head);font-size:1.1rem;font-weight:700;flex:1;}
.modal-header>button{color:var(--text2);font-size:1.1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:var(--transition);}
.modal-header>button:hover{background:var(--surface2);color:var(--text);}
.modal-header-actions{display:flex;align-items:center;gap:.4rem;}
.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;}
.modal-footer{display:flex;justify-content:flex-end;gap:.7rem;padding:1rem 1.5rem;border-top:1px solid var(--border);}
.confirm-text{color:var(--text2);line-height:1.6;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.detail-item{display:flex;flex-direction:column;gap:.25rem;}
.detail-item.full{grid-column:1/-1;}
.detail-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);}
.detail-value{font-size:.9rem;color:var(--text);word-break:break-word;}
.detail-value a{color:var(--accent);}
.copy-btn{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.75rem;margin-left:.3rem;}
.copy-btn:hover{color:var(--accent);}

/* ===== COLOR PICKER ===== */
.color-picker{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem;}
.color-swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform var(--transition);}
.color-swatch:hover{transform:scale(1.2);}
.color-swatch.selected{border-color:var(--text);}

/* ===== EXPORT COLS ===== */
.cols-checks{display:flex;flex-wrap:wrap;gap:.5rem;}
.col-check{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text2);}
.col-check input{accent-color:var(--accent);}

/* ===== IMPORT ===== */
.import-tabs{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:.5rem;}
.import-tab{flex:1;padding:.5rem;font-size:.83rem;font-weight:500;color:var(--text2);background:transparent;transition:var(--transition);}
.import-tab.active{background:var(--surface2);color:var(--text);}
.import-tab-content{display:none;}
.import-tab-content.active{display:block;}
.import-section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);padding:.8rem 0 .4rem;border-top:1px solid var(--border);margin-top:.5rem;}
.mapping-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;font-size:.85rem;}
.mapping-row select{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.45rem .7rem;font-size:.83rem;color:var(--text);}
.mapping-col-name{color:var(--text2);min-width:120px;font-size:.82rem;}
.preview-mini-table{width:100%;border-collapse:collapse;font-size:.78rem;}
.preview-mini-table th{background:var(--surface2);color:var(--text3);padding:.4rem .6rem;text-align:left;border-bottom:1px solid var(--border);}
.preview-mini-table td{padding:.4rem .6rem;border-bottom:1px solid var(--border);color:var(--text2);}

/* ===== PROFILE FORM ===== */
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.profile-grid .full{grid-column:1/-1;}
.profile-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.2rem;}
.profile-section-title{font-family:var(--font-head);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:1.2rem;}
.avatar-section{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.2rem;}
.avatar-big{width:80px;height:80px;border-radius:50%;background:var(--bg2);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:2rem;overflow:hidden;flex-shrink:0;}
.avatar-big img{width:100%;height:100%;object-fit:cover;}
.custom-links-list{display:flex;flex-direction:column;gap:.6rem;}
.custom-link-row{display:flex;gap:.5rem;align-items:center;}
.custom-link-row input{flex:1;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;font-size:.85rem;color:var(--text);}
.custom-link-row button{color:var(--red);font-size:.9rem;padding:.3rem .5rem;}
.card-url-wrap{display:flex;align-items:center;gap:.6rem;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;margin-top:.5rem;}
.card-url-wrap span{flex:1;font-size:.82rem;color:var(--text2);word-break:break-all;}

/* ===== ADMIN PANEL ===== */
.admin-requests{display:flex;flex-direction:column;gap:.8rem;}
.request-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem;}
.request-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;}
.request-name{font-weight:600;font-size:.92rem;}
.request-email{font-size:.82rem;color:var(--text2);}
.request-date{font-size:.75rem;color:var(--text3);}
.request-actions{display:flex;gap:.5rem;}
.req-badge{font-size:.72rem;font-weight:700;padding:.18rem .55rem;border-radius:50px;text-transform:uppercase;letter-spacing:.06em;}
.req-badge-pending{background:rgba(251,191,36,.15);color:var(--yellow);}
.req-badge-approved{background:rgba(74,222,128,.15);color:var(--green);}
.req-badge-rejected{background:rgba(248,113,113,.15);color:var(--red);}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.8rem 1.2rem;font-size:.88rem;color:var(--text);box-shadow:var(--shadow);z-index:9999;transition:opacity .3s;max-width:300px;}
.toast.success{border-color:var(--green);color:var(--green);}
.toast.error{border-color:var(--red);color:var(--red);}

/* ===== EMPTY ===== */
.empty{text-align:center;padding:4rem 2rem;color:var(--text3);}
.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.4;}
.empty p{font-size:.92rem;}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .sidebar{position:fixed;left:0;top:0;height:100%;z-index:200;transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-lg);}
  .sidebar-close{display:flex;}
  .hamburger{display:flex;}
  .dash-bottom{grid-template-columns:1fr;}
  .form-row{flex-direction:column;}
  .detail-grid{grid-template-columns:1fr;}
  .profile-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .content{padding:1rem;}
  .topbar{padding:.7rem 1rem;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .view-actions{flex-direction:column;align-items:flex-start;}
  .page-header{flex-direction:column;}
  .cats-grid{grid-template-columns:1fr;}
  .modal{max-height:95vh;}
  .export-actions{flex-wrap:wrap;}
}

/* ===== PRINT ===== */
@media print{
  .auth-screen,.sidebar,.topbar,.view-actions,.td-actions,.modal-overlay,.toast,#app>*:not(.main-wrap){display:none!important;}
  body{background:#fff;color:#000;}
  .print-only{display:block!important;}
  .content{padding:0;overflow:visible;}
  table{border:1px solid #ccc;}
  th{background:#f5f5f5!important;color:#333!important;}
  td{border-bottom:1px solid #eee!important;}
  .print-header{font-size:1.4rem;font-weight:bold;margin-bottom:.5rem;}
  .print-meta{font-size:.85rem;color:#666;margin-bottom:1.5rem;}
  .print-record-detail table{border:1px solid #ddd;}
  .print-record-detail td{padding:8px;border:1px solid #ddd;}
}
.print-only{display:none;}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text3);}
.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ===== TOUCH IMPROVEMENTS ===== */
@media(hover:none){
  .btn-primary,.btn-secondary,.btn-danger,.btn-export,.btn-new-record{min-height:44px;}
  .td-btn{min-height:36px;min-width:44px;}
  .nav-item{min-height:44px;}
  input,select,textarea{font-size:16px!important;} /* prevent iOS zoom */
}
