
:root{
  --ink:#14213d; --ink-2:#22325a; --gold:#b8892b; --gold-soft:#f4ead3;
  --bg:#f5f3ee; --card:#ffffff; --line:#e6e1d6; --text:#1c1f26; --muted:#6b6f7b;
  --green:#1f7a4d; --green-soft:#e3f2ea; --red:#b23b3b; --red-soft:#f8e5e5;
  --r:14px; --shadow:0 1px 2px rgba(20,33,61,.06),0 4px 14px rgba(20,33,61,.05);
  --nav-h:64px; --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{font:15px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
h1,h2,h3{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--gold);cursor:pointer;text-decoration:none}
.ic{width:20px;height:20px;flex:none}
.muted{color:var(--muted)} .small{font-size:12.5px}
.grow{flex:1;min-width:0}

/* Top bar */
.top{position:sticky;top:0;z-index:20;background:var(--ink);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:9px}
.logo{width:32px;height:32px;border-radius:9px;background:var(--gold);display:grid;place-items:center;color:var(--ink)}
.logo .ic{width:18px;height:18px}
.top h1{font:600 18px/1.1 Fraunces,Georgia,serif;letter-spacing:.2px}
.top .sub{font-size:11.5px;opacity:.7}

main{padding:16px 16px calc(var(--nav-h) + 96px + var(--safe-b));max-width:1120px;margin:0 auto}

/* Bottom nav */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(6,1fr);padding-bottom:var(--safe-b)}
.nav a{border:0;background:none;height:var(--nav-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:500;color:var(--muted);cursor:pointer}
.nav a.on{color:var(--ink)}
.nav a.on .ic{color:var(--gold)}
.nav a span{white-space:nowrap}

.fab{position:fixed;right:16px;bottom:calc(var(--nav-h) + 16px + var(--safe-b));z-index:25;width:56px;height:56px;border-radius:18px;border:0;background:var(--gold);color:var(--ink);box-shadow:0 8px 20px rgba(184,137,43,.4);display:grid;place-items:center;cursor:pointer}
.fab .ic{width:26px;height:26px;stroke-width:2.4}

/* Home */
.hero{background:linear-gradient(135deg,var(--ink),var(--ink-2));color:#fff;border-radius:18px;padding:18px;margin-bottom:14px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-30px;top:-30px;width:130px;height:130px;border-radius:50%;border:18px solid rgba(184,137,43,.25)}
.eyebrow{font-size:12px;letter-spacing:.6px;text-transform:uppercase;opacity:.7;margin:0 0 4px}
.hero h2{font:600 22px Fraunces,Georgia,serif}
.hero p{margin:4px 0 0;opacity:.85}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--shadow)}
.stat .ic{color:var(--gold);margin-bottom:6px}
.stat b{display:block;font-size:18px;font-weight:700;color:var(--ink)}
.stat span{font-size:12px;color:var(--muted)}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
.quick a{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink);cursor:pointer}
.quick .ic{color:var(--gold)}
.sec{display:flex;justify-content:space-between;align-items:baseline;font:600 16px Fraunces,Georgia,serif;color:var(--ink);margin:18px 2px 10px}
.sec a{font:600 13px Inter,sans-serif}

/* Cards & lists */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.item{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:8px;cursor:pointer}
.item:active{transform:scale(.995)}
.item h3{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item p{margin:2px 0 0;font-size:13px}
.av{width:42px;height:42px;border-radius:12px;background:var(--gold-soft);color:var(--gold);display:grid;place-items:center;font-weight:700;flex:none}
.amt{text-align:right;font-weight:700;white-space:nowrap}
.amt small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.green{color:var(--green)} .red{color:var(--red)}
.datebox{width:48px;flex:none;border-radius:12px;background:var(--ink);color:#fff;text-align:center;padding:6px 0;line-height:1.1}
.datebox b{display:block;font-size:18px}
.datebox span{font-size:11px;text-transform:uppercase;opacity:.8}
.datebox.past{background:#c9c4b8;color:var(--ink)}
.datebox.today{background:var(--gold);color:var(--ink)}
.tag{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--gold-soft);color:#7d5c17;margin-right:4px}
.tag.today{background:var(--gold);color:var(--ink)}
.docs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.doc{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;border-radius:8px;border:1px solid var(--line);background:#faf8f3;max-width:180px;cursor:pointer}
.doc .ic{width:14px;height:14px;color:var(--gold)}
.doc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.note{font-size:13px;color:var(--muted);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.empty{text-align:center;padding:26px 16px;color:var(--muted);border:1.5px dashed var(--line);border-radius:var(--r);font-size:14px}

.search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 12px;margin-bottom:12px}
.search .ic{color:var(--muted)}
.search input{border:0;outline:0;background:none;height:44px;flex:1;min-width:0}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:10px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:var(--card);border-radius:20px;padding:7px 12px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chip small{opacity:.7;margin-left:4px}
.sumbar{display:flex;justify-content:space-between;align-items:center;background:var(--gold-soft);border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:13px}
.sumbar b{font-size:16px;color:var(--ink)}
.toolbar{display:flex;gap:8px;margin-bottom:10px}
.toolbar input{flex:1;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--card)}

/* Sheet */
.sheet-wrap{position:fixed;inset:0;z-index:50;background:rgba(14,20,35,.45);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .2s}
.sheet-wrap.open{opacity:1;pointer-events:auto}
.sheet{background:var(--bg);width:100%;max-height:92vh;overflow-y:auto;border-radius:20px 20px 0 0;padding:8px 16px calc(20px + var(--safe-b));transform:translateY(30px);transition:transform .22s ease}
.sheet-wrap.open .sheet{transform:none}
.sheet:before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:#cfc9bc;margin:4px auto 10px}
.sh-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sh-head h2{font:600 19px Fraunces,Georgia,serif;color:var(--ink)}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer}
.field{margin-bottom:12px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--ink)}
.field label b{color:var(--red)}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--card);padding:11px 12px;outline:0;font-size:16px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,137,43,.15)}
.field .err{border-color:var(--red)!important}
.field input[type=file]{padding:9px;font-size:14px}
.row{display:flex;gap:8px}
.warn{background:var(--red-soft);color:var(--red);padding:10px 12px;border-radius:10px;font-size:13.5px}
.hint{font-size:13px;color:var(--ink);background:var(--gold-soft);border-radius:10px;padding:9px 12px;margin:-2px 0 12px}
.hint:empty{display:none}
.sh-actions{display:flex;gap:10px;position:sticky;bottom:0;background:var(--bg);padding-top:8px}
.btn{height:48px;border-radius:12px;border:1px solid var(--line);background:var(--card);padding:0 16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn.danger{color:var(--red);border-color:#e9c9c9;background:var(--red-soft)}
.btn.ghost{height:46px;white-space:nowrap}
.btn.sm{height:38px;font-size:13px;padding:0 12px}
.btn-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}
.kv div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.kv b{display:block;font-size:15px}
.kv span{font-size:11.5px;color:var(--muted)}
.info{display:flex;gap:8px;align-items:flex-start;font-size:14px;margin-top:6px;color:var(--muted)}
.info .ic{width:16px;height:16px;margin-top:2px}
.backup{padding:14px;margin-top:18px}
.backup h3{font-size:14px;margin-bottom:4px}
.backup .row{margin-top:10px}

.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 86px + var(--safe-b));transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}

/* Tablet / Desktop */
@media (min-width:900px){
  body{padding-left:220px}
  .top{padding:14px 28px}
  .nav{top:0;right:auto;width:220px;grid-template-columns:1fr;align-content:start;border-top:0;border-right:1px solid var(--line);padding-top:76px}
  .nav a{flex-direction:row;justify-content:flex-start;gap:12px;padding:0 22px;height:48px;font-size:14px}
  .nav a.on{background:var(--gold-soft)}
  main{padding:24px 28px 120px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .fab{bottom:28px;right:28px}
  .toast{bottom:28px}
  .sheet-wrap{align-items:center;justify-content:center}
  .sheet{max-width:520px;border-radius:20px;max-height:88vh}
  .sheet:before{display:none}
}

/* ---------- Pages ---------- */
.back{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--muted);margin-bottom:6px;cursor:pointer}
.back:hover{color:var(--ink)}
.page-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.page-head h2{font:600 24px/1.2 Fraunces,Georgia,serif;color:var(--ink)}
.page-head p{margin:4px 0 0}
.badge{display:inline-block;font:600 11.5px Inter,sans-serif;padding:3px 9px;border-radius:20px;background:var(--green-soft);color:var(--green);vertical-align:middle;white-space:nowrap}
.badge.off{background:#ecebe6;color:var(--muted)}
.badge.gold{background:var(--gold-soft);color:#7d5c17}
.mini-av{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--gold-soft);color:var(--gold);font-size:10.5px;font-weight:700;margin-right:4px;vertical-align:middle}
.acts{display:flex;gap:6px;align-items:center}
.icon-btn{color:var(--ink)}
.icon-btn.danger{color:var(--red);background:var(--red-soft);border-color:#e9c9c9}
.icon-btn.sm{width:34px;height:34px;border-radius:9px}
.icon-btn.sm .ic{width:17px;height:17px}
.btn.green{background:var(--green-soft);border-color:#c5e3d2;color:var(--green)}

/* KPI cards */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kpi{border-radius:var(--r);padding:14px;border:1px solid var(--line);background:var(--card);min-width:0}
.kpi small{display:block;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.kpi b{display:block;font-size:22px;font-weight:700;margin-top:6px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.k-blue{background:linear-gradient(135deg,#eef1fb,#fff);border-color:#d9def3}
.k-grey{background:linear-gradient(135deg,#f0efea,#fff)}
.k-gold{background:linear-gradient(135deg,#fbf1d9,#fff);border-color:#efdfb5}
.k-gold b{color:#7d5c17}
.k-green{background:linear-gradient(135deg,#e3f2ea,#fff);border-color:#c5e3d2}
.k-green b{color:var(--green)}
.k-red{background:linear-gradient(135deg,#f8e5e5,#fff);border-color:#efcccc}
.k-red b,.k-red span.st{color:var(--red)}

/* Filters */
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;margin-bottom:14px}
.filters .search{grid-column:1/-1;margin:0}
.filters select{height:44px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:0 10px;min-width:0}

/* Table card */
.tcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px}
.tcard-head{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.tcard .empty{margin:14px;border-radius:12px}
.rt{width:100%;border-collapse:collapse}
.rt th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.rt td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:14px}
.rt tbody tr:last-child td{border-bottom:0}
.rt tbody tr.click{cursor:pointer}
.rt tbody tr.click:hover{background:#fbfaf6}
.rt .num{text-align:right;white-space:nowrap}
.rt .mono{font-variant-numeric:tabular-nums;letter-spacing:.2px}
.rt .t-name{font-weight:600;color:var(--ink)}
.rt .t-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.rt .fin{text-align:right;font-size:13px;line-height:1.55;white-space:nowrap}
.rt td.acts-cell{width:1%;white-space:nowrap}
.rt td.acts-cell .acts{justify-content:flex-end}
.pill{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:20px;background:#eef1fb;color:var(--ink);font-weight:700;font-size:13px}
@media (max-width:699px){
  .rt thead{display:none}
  .rt,.rt tbody,.rt tr,.rt td{display:block;width:100%}
  .rt tr{padding:12px 14px;border-bottom:1px solid var(--line)}
  .rt tbody tr:last-child{border-bottom:0}
  .rt td{border:0!important;padding:3px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:right}
  .rt td::before{content:attr(data-label);color:var(--muted);font-size:12.5px;text-align:left;flex:none}
  .rt td.main{display:block;text-align:left;padding-bottom:6px}
  .rt td.main::before,.rt td.acts-cell::before,.rt td.hide-m::before{display:none}
  .rt td.hide-m{display:none}
  .rt td.acts-cell{width:100%;justify-content:flex-end;padding-top:8px}
  .rt .fin{line-height:1.4}
}

/* Client page */
.cp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.cp-grid .contact{grid-column:1/-1}
.cp-grid .kpi{padding:12px}
.cp-grid .kpi b{font-size:14.5px;white-space:normal;overflow:visible}
.cp-grid .kpi small{font-size:10px;letter-spacing:.3px}
.contact{padding:14px 16px}
.contact small{display:block;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.contact .info{color:var(--text);margin-top:7px}
.contact .info .ic{color:var(--gold)}
.contact .info em{font-style:normal;color:var(--muted)}
.tabs-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:4px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;border:0;background:none;padding:9px 13px;border-radius:10px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;white-space:nowrap}
.tab.on{background:var(--ink);color:#fff}
.tab small{opacity:.7;margin-left:4px;font-weight:500}
@media (max-width:699px){.tabs-bar .btn{flex:1 1 100%}}

/* Form pages */
.form-page{max-width:860px}
.fcard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 16px 4px;margin-bottom:14px;box-shadow:var(--shadow)}
.fcard h3{font-size:11.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.fgrid{display:grid;grid-template-columns:1fr;gap:0 12px}
.fgrid .field{min-width:0}
.help{font-size:12px;color:var(--muted);margin:5px 0 0}
.subbox{border:1.5px dashed var(--line);border-radius:12px;padding:12px;margin-top:10px;background:#fcfbf8}
.subbox label{font-weight:600}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}
.form-actions .btn.primary{min-width:170px}
.combo{position:relative}
.combo .search{margin:0;border-radius:10px}
.combo .search input,.field .combo .search input{border:0;padding:0;background:none;box-shadow:none;height:44px;font-size:16px}
.combo .search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,137,43,.15)}
.combo .search.err{border-color:var(--red)}
.combo-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:15;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(20,33,61,.12);max-height:240px;overflow:auto;padding:4px}
.combo-list button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:8px;background:none;cursor:pointer;font-size:14px}
.combo-list button:hover{background:var(--gold-soft)}
.combo-list button small{color:var(--muted)}
.combo-list .create{color:#7d5c17;font-weight:600}
.combo-list .none{padding:10px 12px;color:var(--muted);font-size:13px}

@media (min-width:700px){
  .fgrid{grid-template-columns:repeat(6,1fr)}
  .fgrid .w1{grid-column:span 1}.fgrid .w2{grid-column:span 2}.fgrid .w3{grid-column:span 3}.fgrid .w4{grid-column:span 4}.fgrid .w5{grid-column:span 5}.fgrid .w6{grid-column:1/-1}
  .filters{grid-template-columns:2fr 1fr 1fr}
  .filters .search{grid-column:auto}
  .cp-grid .kpi{padding:16px}
  .cp-grid .kpi b{font-size:22px}
  .page-head h2{font-size:28px}
}
@media (min-width:900px){
  .kpis{grid-template-columns:repeat(4,1fr)}
  .cp-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}
  .cp-grid .contact{grid-column:auto}
}
@media (max-width:699px){.hide-m{display:none!important}}

.stat b span{font-size:inherit;color:inherit}
.stat b .red{color:var(--red)}
.date-filters{grid-template-columns:1fr 1fr;align-items:end}
.date-filters .field{margin:0}
.date-filters input[type=date]{width:100%;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:0 10px;font-size:15px}
.date-filters .presets{grid-column:1/-1;margin:0;padding:0}
@media (min-width:700px){.date-filters{grid-template-columns:180px 180px 1fr}.date-filters .presets{grid-column:auto;align-self:center}}

/* 7-item nav */
.nav{grid-template-columns:repeat(var(--n,7),1fr)}
.nav .ns{display:none}
@media (max-width:899px){.nav .nl{display:none}.nav .ns{display:inline}.nav a{font-size:10px;gap:2px}}
@media (min-width:900px){.nav{grid-template-columns:1fr}}
/* Reports */
.rt tfoot td{border-top:2px solid var(--line);background:#faf8f3;padding:12px}
.rep .rt td.green{color:var(--green)} .rep .rt td.red{color:var(--red)}
@media (max-width:699px){.rt tfoot{display:block}.rt tfoot tr{display:block;background:#faf8f3}}
@media print{
 .nav,.fab,.top,.no-print,.toast{display:none!important}
 body{padding:0!important;background:#fff}
 main{padding:0!important;max-width:none}
 .tcard,.kpi{box-shadow:none;break-inside:avoid}
}

/* ---------- PHP app additions ---------- */
.nav a{text-decoration:none}
a.card.item,a.chip,a.tab{text-decoration:none;color:inherit}
a.chip.on,a.tab.on{color:#fff}
.quick a{text-decoration:none}
.quick{grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}
.top{justify-content:space-between}
.top-acts{display:flex;gap:6px;align-items:center}
.top-acts form{margin:0}
.top-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font:500 13px Inter,sans-serif;cursor:pointer;text-decoration:none}
.top-btn:hover{background:rgba(255,255,255,.14)}
.top-btn .ic{width:17px;height:17px}
@media (max-width:699px){.top-btn span{display:none}.top-btn{padding:0 9px}.top .sub{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.flash{padding:11px 14px;border-radius:12px;margin-bottom:12px;font-size:14px;background:var(--green-soft);color:var(--green);border:1px solid #c5e3d2}
.flash-err{background:var(--red-soft);color:var(--red);border-color:#efcccc}
.flash code{background:rgba(0,0,0,.05);padding:1px 4px;border-radius:4px}
.stat b.red{color:var(--red)}
.check{display:inline-flex;align-items:center;gap:8px;font-weight:500!important;cursor:pointer}
.check input{width:18px!important;height:18px;margin:0;accent-color:var(--ink)}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fcfbf8}
.file-rows{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.file-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fcfbf8;font-size:13px}
.file-row .doc{max-width:none;margin:0}
.file-row a{font-weight:600}
.newcat{margin-top:8px;font-size:13px}
.newcat summary{cursor:pointer;color:#7d5c17;font-weight:600}
.newcat input{margin-top:6px}
.field .search{margin:0;border-radius:10px}
.field .search input{border:0!important;padding:0!important;height:44px;box-shadow:none!important;background:none}
.field .search:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,137,43,.15)}
form.search{margin-bottom:12px}
.pager{display:flex;gap:6px;justify-content:center;margin:6px 0 16px;flex-wrap:wrap}
.pager a,.pager span{min-width:36px;height:36px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--card);text-decoration:none;color:var(--ink);font-size:14px}
.pager a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager span{border:0;background:none}
.danger-zone{border-color:#efcccc}
.danger-zone h3{color:var(--red)}
.hint:empty{display:none}
.t-name a{color:var(--ink);text-decoration:none}
.t-name a:hover{text-decoration:underline}
.rt td a{color:var(--ink)}
/* Auth pages */
.auth-body{display:grid;place-items:center;min-height:100vh;padding:20px 16px;background:radial-gradient(circle at 20% 10%,#22325a,#14213d 60%)}
.auth-card{width:100%;max-width:400px;background:var(--bg);border-radius:20px;padding:26px 22px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.auth-card.wide{max-width:640px}
.auth-card h1{font:600 24px Fraunces,Georgia,serif;color:var(--ink);margin:4px 0 2px}
.auth-card>.muted{margin:0 0 16px}
.auth-logo{display:flex;align-items:center;gap:8px;font:600 15px Inter,sans-serif;color:var(--ink);margin-bottom:10px}
.auth-logo span{width:30px;height:30px;border-radius:9px;background:var(--gold);display:grid;place-items:center;color:var(--ink)}
.auth-card .fcard{box-shadow:none}
a.btn{color:var(--ink);text-decoration:none}
a.btn.primary{color:#fff}
a.btn.gold{color:var(--ink)}
