/* Desktop admin console styling. */
:root{
  --bg:#0f172a; --panel:#1e293b; --panel2:#334155; --line:#3b4863;
  --text:#e2e8f0; --muted:#94a3b8; --primary:#3b82f6; --danger:#ef4444; --ok:#22c55e;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:system-ui,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
[x-cloak]{display:none!important}
.muted{color:var(--muted)} .small{font-size:.82rem}
.msg.error{color:var(--danger);min-height:1.2rem;margin-top:.5rem}

/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center}
.login-card{background:var(--panel);padding:2.2rem;border-radius:16px;width:min(360px,90vw);
  display:flex;flex-direction:column;gap:.8rem;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.login-card h1{margin:0;font-size:1.4rem;text-align:center}
.login-card p{margin:0;text-align:center}
.login-card input{padding:.8rem;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:1rem}
.login-card a{text-align:center;text-decoration:none;margin-top:.4rem}

/* Layout */
.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.sidebar{background:var(--panel);display:flex;flex-direction:column;padding:1rem;gap:.3rem;border-right:1px solid var(--line)}
.sidebar .logo{font-weight:700;font-size:1.1rem;padding:.4rem .6rem 1rem}
.sidebar nav{display:flex;flex-direction:column;gap:.2rem;flex:1}
.sidebar nav a{padding:.7rem .8rem;border-radius:9px;cursor:pointer;color:var(--text);text-decoration:none}
.sidebar nav a:hover{background:var(--panel2)}
.sidebar nav a.active{background:var(--primary);color:#fff}
.sidebar nav a.disabled{color:#64748b;cursor:not-allowed;pointer-events:none}
.navhint{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin:.8rem 0 .2rem .6rem}
.sidebar-foot{display:flex;flex-direction:column;gap:.5rem;padding-top:.8rem;border-top:1px solid var(--line)}

.content{padding:1.6rem 2rem;overflow:auto;position:relative}
.head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}
.head h2{margin:0}
.head select{margin-right:.6rem}

/* Tables */
table.grid{width:100%;border-collapse:collapse;background:var(--panel);border-radius:12px;overflow:hidden}
table.grid th,table.grid td{padding:.7rem .9rem;text-align:left;border-bottom:1px solid var(--line)}
table.grid th{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
table.grid tr:last-child td{border-bottom:none}
table.grid tr.dim td{opacity:.45}
table.compact td{padding:.5rem .8rem}
.actions{text-align:right;white-space:nowrap}

.tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--panel2);font-size:.78rem}
.tag.ok{background:rgba(34,197,94,.2);color:#4ade80}
.tag.off{background:rgba(148,163,184,.2);color:var(--muted)}

.panel{background:var(--panel);border-radius:12px;margin-bottom:1rem;overflow:hidden}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--line)}

/* Buttons + inputs */
.btn{padding:.55rem .9rem;border:none;border-radius:9px;background:var(--panel2);color:var(--text);cursor:pointer;font-weight:600}
.btn:hover{filter:brightness(1.12)}
.btn.primary{background:var(--primary);color:#fff}
.btn.danger{background:var(--danger);color:#fff}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn.small{padding:.35rem .65rem;font-size:.82rem;margin-left:.3rem}
select,input[type=text],input[type=number],input[type=password],.modal input{
  padding:.5rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:.95rem}

/* Modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;z-index:50}
.modal{background:var(--panel);padding:1.6rem;border-radius:14px;width:min(480px,92vw);max-height:90vh;overflow:auto}
.modal h3{margin:.1rem 0 1rem}
.modal label{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem;font-size:.9rem;color:var(--muted)}
.modal label input,.modal label select{color:var(--text)}
.modal label.check{flex-direction:row;align-items:center;gap:.5rem}
.modal .grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.modal fieldset{border:1px solid var(--line);border-radius:10px;margin:.4rem 0 .8rem;padding:.6rem .9rem}
.modal legend{color:var(--muted);font-size:.82rem;padding:0 .4rem}
.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.4rem}

.toast{position:absolute;top:1rem;right:2rem;background:var(--ok);color:#04210f;padding:.6rem 1rem;border-radius:10px;font-weight:600;z-index:30}

/* ---- Floor plan editor ---- */
.floor-tools{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.seg{padding:.45rem .8rem;border:none;border-radius:8px;background:var(--panel2);color:var(--text);font-weight:600;cursor:pointer}
.seg.active{background:var(--primary);color:#fff}
.floor-bar2{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem;flex-wrap:wrap}
.floor-msg{color:var(--ok);font-weight:600}
.editor{display:flex;gap:1rem;align-items:flex-start}
.editor .canvas{
  position:relative;width:1000px;height:700px;flex:0 0 auto;border-radius:12px;border:1px solid var(--line);
  background:
    linear-gradient(#1e293b 1px,transparent 1px) 0 0/100% 40px,
    linear-gradient(90deg,#1e293b 1px,transparent 1px) 0 0/40px 100%,
    #131c2e;
  user-select:none;
}
.editor .table{
  position:absolute;border:2px solid;color:#fff;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-weight:700;cursor:grab;gap:2px;
}
.editor .table:active{cursor:grabbing}
.editor .table.sel{outline:3px solid #fde047;outline-offset:2px;z-index:5}
.editor .table.rect{border-radius:12px} .editor .table.round{border-radius:50%}
.editor .table .tseats{font-size:.7rem;opacity:.85;font-weight:600}
.editor .canvas .empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}
.st-available{background:#14532d;border-color:#22c55e}
.st-occupied {background:#1e3a8a;border-color:#3b82f6}
.st-dirty    {background:#78350f;border-color:#f59e0b}
.st-reserved {background:#4c1d95;border-color:#a78bfa}
.props{flex:1;min-width:230px;background:var(--panel);border-radius:12px;padding:1rem}
.props h3{margin:.1rem 0 .8rem}
.props label{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.7rem;font-size:.85rem;color:var(--muted)}
.props .grid2{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.props .modal-actions{display:flex;justify-content:space-between;gap:.6rem;margin-top:.6rem}

/* ---- Reports ---- */
.head input[type=date]{margin-right:.6rem}
.report-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1.4rem}
.rcard{background:var(--panel);border-radius:12px;padding:1.1rem;text-align:center}
.rcard span{display:block;font-size:1.6rem;font-weight:800}
.rcard label{color:var(--muted);font-size:.82rem}
.report-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
.report-cols h3{margin:.2rem 0 .6rem}
table.grid tr.strong td{font-weight:700;border-top:2px solid var(--line)}
@media(max-width:900px){.report-cols{grid-template-columns:1fr}}
table.grid tr.open td{background:rgba(245,158,11,.08)}

/* ---- Settings form ---- */
.settings-form{max-width:560px;display:flex;flex-direction:column;gap:1rem}
.settings-form label{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.9rem}
.settings-form input,.settings-form select,.settings-form textarea{
  color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.55rem;font-size:.95rem;font-family:inherit}

/* ---- Taxes admin ---- */
.addrow{display:flex;gap:.5rem;align-items:center;margin-top:.7rem;flex-wrap:wrap}
.addrow input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:.5rem;max-width:200px}
table.grid input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.35rem}
