/* ==========================================================================
   TIBURO GROUP — Site Admin (internal editing dashboard)
   Deliberately separate from style.css's public-site chrome: this is a
   private tool, not a marketing page, so it gets its own compact,
   utilitarian layout. Reuses the same brand palette (see style.css header)
   so it still feels like part of the Tiburo Group system.
   ========================================================================== */

:root{
  --abyss:#0A0E10;
  --deep:#12181B;
  --panel:#171F22;
  --steel:#2B3A40;
  --sonar:#C9A667;
  --sonar-dim:#A9854F;
  --beacon:#E8CE9B;
  --foam:#F4F0E6;
  --ink:#1B1F1C;
  --mist:#FAF8F3;
  --line:#2B3538;
  --good:#5FAE7A;
  --bad:#D9695A;
  --font-display:'Oswald',sans-serif;
  --font-body:'Source Sans 3',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--abyss);
  color:var(--foam);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--beacon);}
h1,h2,h3{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0 0 .5em;
  color:var(--foam);
}
.small{font-size:.85rem;color:#9FADB3;}

/* ---- Login page ------------------------------------------------------- */
.admin-login-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.admin-login-card{
  width:100%;
  max-width:400px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:36px 32px;
}
.admin-login-card .eyebrow{
  font-family:var(--font-display);
  font-size:.75rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--sonar);
  margin-bottom:.6em;
}
.admin-login-card h1{font-size:1.5rem;margin-bottom:.3em;}
.admin-login-card p.lead{color:#9FADB3;margin-bottom:1.6em;font-size:.92rem;}

/* ---- Shared form elements ---------------------------------------------- */
.field{margin-bottom:16px;}
.field label{
  display:block;
  font-size:.82rem;
  font-weight:600;
  color:#C7D1D4;
  margin-bottom:5px;
}
.field .hint{font-size:.78rem;color:#7C8A90;margin-top:4px;}
input[type=text],input[type=email],input[type=password],input[type=date],
input[type=number],textarea,select{
  width:100%;
  background:var(--abyss);
  border:1px solid var(--steel);
  color:var(--foam);
  border-radius:6px;
  padding:10px 12px;
  font-family:inherit;
  font-size:.94rem;
}
textarea{min-height:90px;resize:vertical;font-family:'SFMono-Regular',Consolas,monospace;font-size:.85rem;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--sonar-dim);outline-offset:1px;}
input[type=checkbox]{width:auto;margin-right:8px;}
.checkbox-row{display:flex;align-items:center;font-size:.9rem;color:#C7D1D4;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-display);
  font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  padding:11px 20px;border-radius:6px;border:1px solid transparent;
  cursor:pointer;transition:filter .15s ease;text-decoration:none;
}
.btn:hover{filter:brightness(1.12);}
.btn:disabled{opacity:.55;cursor:not-allowed;}
.btn-primary{background:var(--sonar);color:var(--abyss);}
.btn-ghost{background:transparent;border-color:var(--steel);color:var(--foam);}
.btn-danger{background:transparent;border-color:var(--bad);color:var(--bad);}
.btn-danger:hover{background:rgba(217,105,90,.12);}
.btn-sm{padding:7px 13px;font-size:.72rem;}
.btn-block{width:100%;}

.form-msg{margin-top:12px;font-size:.88rem;min-height:1.2em;}
.form-msg.ok{color:var(--good);}
.form-msg.err{color:var(--bad);}

/* ---- Dashboard shell ---------------------------------------------------- */
.admin-shell{min-height:100vh;display:flex;flex-direction:column;}
.admin-topbar{
  background:var(--panel);
  border-bottom:1px solid var(--line);
  padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;
  position:sticky;top:0;z-index:20;
}
.admin-topbar .brand{display:flex;align-items:center;gap:10px;}
.admin-topbar .brand strong{
  font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;
  font-size:1rem;color:var(--sonar);
}
.admin-topbar .who{font-size:.82rem;color:#9FADB3;}
.admin-topbar .actions{display:flex;align-items:center;gap:10px;}
#publish-status{font-size:.82rem;color:#9FADB3;}

.admin-tabs{
  display:flex;gap:4px;padding:0 24px;background:var(--deep);
  border-bottom:1px solid var(--line);overflow-x:auto;
}
.admin-tab-btn{
  background:none;border:none;color:#9FADB3;padding:13px 16px;
  font-family:var(--font-display);font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;font-weight:600;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;
}
.admin-tab-btn:hover{color:var(--foam);}
.admin-tab-btn.active{color:var(--sonar);border-bottom-color:var(--sonar);}

.admin-main{flex:1;padding:28px 24px 60px;max-width:1040px;width:100%;margin:0 auto;}
.admin-panel{display:none;}
.admin-panel.active{display:block;}
.panel-intro{color:#9FADB3;font-size:.92rem;margin-bottom:22px;max-width:680px;}

.card{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:22px 24px;margin-bottom:18px;
}
.card h3{font-size:1rem;margin-bottom:14px;}
.card-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:14px 0;border-top:1px solid var(--line);
}
.card-row:first-of-type{border-top:none;padding-top:0;}
.card-row .meta{flex:1;min-width:0;}
.card-row .meta strong{display:block;font-size:.92rem;color:var(--foam);}
.card-row .meta span{font-size:.8rem;color:#8A9AA0;}
.card-row .row-actions{display:flex;gap:8px;flex-shrink:0;}

table.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;}
table.admin-table th{
  text-align:left;font-family:var(--font-display);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;color:#8A9AA0;
  padding:8px 10px;border-bottom:1px solid var(--line);
}
table.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;}
table.admin-table tr:last-child td{border-bottom:none;}
.badge{
  display:inline-block;font-size:.72rem;padding:2px 9px;border-radius:20px;
  font-weight:600;letter-spacing:.03em;
}
.badge.pub{background:rgba(95,174,122,.15);color:var(--good);}
.badge.draft{background:rgba(217,105,90,.15);color:var(--bad);}

.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;}
.media-item{background:var(--abyss);border:1px solid var(--steel);border-radius:8px;overflow:hidden;}
.media-item img{width:100%;height:100px;object-fit:cover;display:block;background:#000;}
.media-item .media-body{padding:8px 10px;}
.media-item .media-body .fname{font-size:.72rem;color:#9FADB3;word-break:break-all;display:block;margin-bottom:6px;}

.logo-slot{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line);}
.logo-slot:first-of-type{border-top:none;padding-top:0;}
.logo-slot .preview{
  width:64px;height:64px;border-radius:8px;border:1px solid var(--steel);
  background:var(--abyss) center/contain no-repeat;flex-shrink:0;
}
.logo-slot .meta{flex:1;}
.logo-slot .meta strong{display:block;font-size:.88rem;}
.logo-slot .meta span{font-size:.78rem;color:#8A9AA0;}

.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;
  align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;z-index:50;
}
.modal-overlay.open{display:flex;}
.modal{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:26px 28px;max-width:620px;width:100%;
}
.modal h3{margin-bottom:18px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:560px){.two-col{grid-template-columns:1fr;}}

.top-actions-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap;}
.filter-row{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.filter-row select{width:auto;}

.loading-note{color:#7C8A90;font-size:.88rem;padding:20px 0;}
.reset-link{background:none;border:none;color:#8A9AA0;font-size:.76rem;text-decoration:underline;cursor:pointer;padding:0;margin-top:6px;}
.reset-link:hover{color:var(--bad);}
.override-flag{display:inline-block;font-size:.7rem;color:var(--sonar);margin-left:8px;letter-spacing:.03em;}
