/* ═══ SantiyePro Desktop — Style v57 — Sidebar Light Theme ═══ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#f0f2f5;--bg2:#ffffff;--text:#1a1d2b;--text2:#64748b;--text3:#94a3b8;
  --border:#e2e8f0;--blue:#3b82f6;--green:#16a34a;--red:#ef4444;--amber:#f59e0b;--purple:#8b5cf6;
  --shadow:0 1px 3px rgba(0,0,0,0.06);--shadow2:0 4px 12px rgba(0,0,0,0.08);
  --radius:10px;--mono:'SF Mono','Consolas',monospace;
}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
a{color:var(--blue);text-decoration:none}
code{font-family:var(--mono);font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px}

/* ═══ SHELL LAYOUT ═══ */
.shell{display:flex;height:100vh;overflow:hidden}
.sidebar{width:260px;min-width:260px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.content{flex:1;overflow-y:auto;padding:24px 32px}

/* ═══ SIDEBAR ═══ */
.sb-header{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}
.sb-logo{width:36px;height:36px;border-radius:10px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px}
.sb-title{font-size:16px;font-weight:600;color:var(--text)} .sb-title b{color:var(--blue)}

.sb-site{padding:10px 12px;border-bottom:1px solid var(--border)}
.sb-site-select{width:100%;padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg);color:var(--text);cursor:pointer}
.sb-site-select:focus{outline:none;border-color:var(--blue)}

.sb-nav{flex:1;overflow-y:auto;padding:8px 0}
.sb-item{display:flex;align-items:center;gap:8px;padding:8px 18px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s}
.sb-item:hover{background:#f1f5f9;color:var(--text)}
.sb-item.active{background:#eff6ff;color:var(--blue);font-weight:600}
.sb-item.sub{padding-left:36px;font-size:12.5px}
.sb-icon{font-size:16px;width:20px;text-align:center}
.sb-count{margin-left:auto;font-size:11px;color:var(--text3);background:var(--bg);padding:1px 6px;border-radius:8px;min-width:18px;text-align:center}
.sb-sep{height:1px;background:var(--border);margin:6px 12px}

.sb-group-hdr{display:flex;align-items:center;gap:8px;padding:6px 18px;cursor:pointer;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;user-select:none}
.sb-group-hdr:hover{color:var(--text2)}
.sb-arrow{margin-left:auto;font-size:10px;transition:transform .2s}
.sb-group:not(.collapsed) .sb-arrow{transform:rotate(90deg)}
.sb-group.collapsed .sb-group-items{display:none}

.sb-footer{border-top:1px solid var(--border);padding:12px 16px}
.sb-lic{font-size:12px;font-weight:600;margin-bottom:6px}
.sb-conn{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:6px;margin-bottom:8px}
.conn-dot{width:8px;height:8px;border-radius:50%}
.conn-dot.green{background:var(--green)}.conn-dot.amber{background:var(--amber)}.conn-dot.red{background:var(--red)}
.sb-disconnect{width:100%;padding:6px;border:1px solid var(--border);border-radius:8px;background:none;font-size:12px;color:var(--text2);cursor:pointer}
.sb-disconnect:hover{border-color:var(--red);color:var(--red);background:#fef2f2}

/* ═══ PAGE HEADER ═══ */
.page-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.page-header h1{font-size:22px;font-weight:800;color:var(--text)}
.hdr-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.hdr-stat{font-size:12px;color:var(--text3);background:var(--bg2);padding:4px 10px;border-radius:6px;border:1px solid var(--border)}
.ro-badge{font-size:11px;font-weight:700;color:var(--amber);background:#fef3c7;padding:4px 10px;border-radius:6px}

/* ═══ BUTTONS ═══ */
.btn-pri{background:var(--blue);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}
.btn-pri:hover{background:#2563eb}
.btn-sec{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:8px 16px;border-radius:8px;font-size:13px;cursor:pointer}
.btn-sec:hover{background:#f1f5f9}
.btn-danger{background:var(--red);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}
.btn-danger:hover{background:#dc2626}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-back{background:none;border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;color:var(--text2)}
.btn-back:hover{background:var(--bg)}

/* ═══ STAT CARDS ═══ */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}
.stat-icon{font-size:28px}
.stat-val{font-size:22px;font-weight:800;color:var(--text)}
.stat-label{font-size:12px;color:var(--text3);font-weight:500}

.cash-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.cash-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;text-align:center;box-shadow:var(--shadow)}
.cash-label{font-size:12px;color:var(--text3);margin-bottom:4px}
.cash-val{font-size:20px;font-weight:800}
.cash-val.green{color:var(--green)}.cash-val.red{color:var(--red)}

/* ═══ DASHBOARD MODULES ═══ */
.dash-group{margin-bottom:16px}
.dash-group-title{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.dash-mod{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .15s;display:flex;justify-content:space-between;align-items:center}
.dash-mod:hover{border-color:var(--blue);background:#f8faff;box-shadow:var(--shadow)}
.dash-mod-name{font-size:12px;font-weight:600;color:var(--text)}
.dash-mod-count{font-size:11px;color:var(--text3);background:var(--bg);padding:2px 7px;border-radius:6px}

/* ═══ SEARCH ═══ */
.search-wrap{margin-bottom:16px}
.search-input{width:100%;max-width:400px;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg2);color:var(--text)}
.search-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,0.1)}

/* ═══ TABLE ═══ */
.tbl-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{background:#f8fafc;padding:10px 12px;font-size:12px;font-weight:700;color:var(--text2);text-align:left;border-bottom:1px solid var(--border);cursor:pointer;user-select:none;white-space:nowrap}
.tbl th:hover{background:#f1f5f9}
.tbl td{padding:10px 12px;font-size:13px;border-bottom:1px solid #f1f5f9;color:var(--text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl tbody tr:hover{background:#f8faff}
.tbl.mini{font-size:12px}.tbl.mini th,.tbl.mini td{padding:6px 10px}
.tbl-empty{padding:40px;text-align:center;color:var(--text3);font-size:13px}
.cell-empty{color:var(--text3)}
.act-cell{white-space:nowrap}
.act-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:4px}
.act-btn:hover{background:#f1f5f9}
.act-btn.act-danger:hover{background:#fef2f2}
.tbl-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-size:12px;color:var(--text3);border-top:1px solid var(--border)}
.pagi{display:flex;gap:4px}
.pg-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:none;font-size:12px;cursor:pointer;color:var(--text2)}
.pg-btn:hover{background:var(--bg)}.pg-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* ═══ BADGES ═══ */
.badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}
.b-green{background:#dcfce7;color:#166534}.b-red{background:#fee2e2;color:#991b1b}
.b-amber{background:#fef3c7;color:#92400e}.b-blue{background:#dbeafe;color:#1e40af}
.b-purple{background:#ede9fe;color:#5b21b6}

/* ═══ DETAIL ═══ */
.detail-cards{display:flex;flex-direction:column;gap:16px}
.det-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.det-card-hdr{padding:12px 16px;font-size:13px;font-weight:700;background:#f8fafc;border-bottom:1px solid var(--border);color:var(--text)}
.det-row{display:flex;padding:10px 16px;border-bottom:1px solid #f8fafc}
.det-label{width:180px;min-width:180px;font-size:12px;font-weight:600;color:var(--text3)}
.det-value{font-size:13px;color:var(--text);word-break:break-word}

/* ═══ MEMBER/ENTRY/RECORD LISTS ═══ */
.list-section{margin-top:16px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.list-title{padding:12px 16px;font-size:13px;font-weight:700;background:#f8fafc;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.list-badge{font-size:11px;background:var(--blue);color:#fff;padding:2px 8px;border-radius:10px}
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;padding:12px}
.member-card{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg);border-radius:8px}
.member-avatar{width:32px;height:32px;border-radius:50%;background:#dbeafe;color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px}
.member-info{flex:1}
.member-name{font-size:13px;font-weight:600;color:var(--text)}
.member-role{font-size:11px;color:var(--text3)}

/* ═══ MODAL ═══ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:1000;display:flex;align-items:center;justify-content:center}
.modal-box{background:var(--bg2);border-radius:14px;width:90%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow2)}
.modal-box.small{max-width:400px}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:16px}
.modal-x{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text3);padding:4px 8px;border-radius:6px}
.modal-x:hover{background:#f1f5f9}
.modal-body{padding:20px;overflow-y:auto;flex:1}
.modal-ft{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}

/* ═══ FORM ═══ */
.fg{margin-bottom:14px}
.fl{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:4px}
.fi{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg2);color:var(--text)}
.fi:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,0.1)}
.ta{min-height:70px;resize:vertical}
.sel{cursor:pointer;appearance:auto}

/* ═══ TOAST ═══ */
#toast-container{position:fixed;top:16px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px}
.toast{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;box-shadow:var(--shadow2);animation:slideIn .3s ease}
.t-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.t-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.t-info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}
.toast-exit{opacity:0;transform:translateX(40px);transition:all .3s ease}
@keyframes slideIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}

/* ═══ QR / SYNC SCREENS ═══ */
.center-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}
.qr-box{background:var(--bg2);border-radius:16px;padding:40px;text-align:center;box-shadow:var(--shadow2);max-width:420px}
.qr-logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}
.qr-logo-icon{width:40px;height:40px;border-radius:12px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px}
.qr-logo-text{font-size:18px;font-weight:600}.qr-logo-text b{color:var(--blue)}
.qr-canvas{margin:16px auto;display:inline-block;background:#fff;padding:8px;border-radius:8px;border:2px solid var(--border)}
.qr-steps{text-align:left;margin:16px 0}
.qr-step{padding:6px 0;font-size:13px;color:var(--text2)}.qr-step b{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;align-items:center;justify-content:center;font-size:11px;margin-right:8px}
.qr-code-text{font-family:var(--mono);font-size:10px;color:var(--text3);word-break:break-all;cursor:pointer;padding:8px;background:var(--bg);border-radius:6px;margin-top:12px}
.qr-code-text:hover{background:#f1f5f9}
.qr-status{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;font-size:12px;color:var(--text3)}
.qr-status-dot{width:8px;height:8px;border-radius:50%;background:var(--amber);animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

.sync-box{text-align:center}
.sync-spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}
@keyframes spin{to{transform:rotate(360deg)}}
.sync-bar{width:300px;height:6px;background:var(--border);border-radius:3px;margin:12px auto 0;overflow:hidden}
.sync-fill{height:100%;background:var(--blue);border-radius:3px;transition:width .3s}

/* ═══ REPORTS ═══ */
.rpt-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}
.rpt-section h2{font-size:16px;font-weight:800;margin-bottom:14px;color:var(--text)}
.rpt-section h3{font-size:13px;font-weight:700;color:var(--text2);margin:14px 0 8px}
.rpt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.rpt-card{background:var(--bg);border-radius:8px;padding:14px;text-align:center}
.rpt-val{font-size:24px;font-weight:800;color:var(--text)}
.rpt-val.green{color:var(--green)}.rpt-val.red{color:var(--red)}.rpt-val.amber{color:var(--amber)}
.rpt-label{font-size:11px;color:var(--text3);margin-top:4px}

.att-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding:10px 0}
.att-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}
.att-bar{width:100%;max-width:40px;background:var(--blue);border-radius:4px 4px 0 0;margin-top:auto;min-height:4px;transition:height .3s}
.att-bar-val{font-size:11px;font-weight:700;color:var(--text);margin-top:4px}
.att-bar-label{font-size:10px;color:var(--text3)}

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
  .sidebar{width:220px;min-width:220px}
  .content{padding:16px}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .cash-row{grid-template-columns:1fr}
}
