/* Admin — shares the tokens defined in styles.css */

body.admin{background:var(--paper)}
.admin-wrap{max-width:1180px;margin:0 auto;padding:0 32px}

/* ---------- login ---------- */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{background:var(--paper-raised);border:1px solid var(--rule);border-radius:3px;padding:44px;width:min(420px,100%)}
.login-card .display{margin-bottom:28px}
.login-card .btn{width:100%;justify-content:center;margin-top:6px}

/* ---------- bar ---------- */
.admin-bar{border-bottom:1px solid var(--rule-soft);background:rgba(253,252,250,.7);position:sticky;top:0;z-index:30;backdrop-filter:blur(8px)}
.admin-bar-inner{display:flex;align-items:center;justify-content:space-between;padding:20px 0;gap:16px}
.admin-bar-actions{display:flex;gap:10px}
.btn.sm{padding:9px 16px;font-size:13px}

/* ---------- warnings ---------- */
.warn{border:1px solid #e0c07a;background:#fdf6e6;border-radius:2px;padding:14px 18px;margin:24px 0 0;font-size:13.5px;color:#6b5320;display:flex;gap:10px}
.warn b{font-weight:600}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border-top:1px solid var(--rule);margin:32px 0 0}
.stat{padding:22px 24px 22px 0;border-bottom:1px solid var(--rule-soft)}
.stat .k{font-family:var(--serif);font-size:36px;font-weight:380;line-height:1;letter-spacing:-.02em;display:block;margin-bottom:8px}
.stat .v{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);font-weight:500}

/* ---------- panels ---------- */
.panel{margin:44px 0 0;padding-bottom:8px}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.panel-head .display{margin:0}
.icon-btn{background:none;border:0;font-size:24px;line-height:1;color:var(--ink-40);cursor:pointer;padding:4px 8px}
.icon-btn:hover{color:var(--ink)}
#newPanel{background:var(--paper-raised);border:1px solid var(--rule);border-radius:3px;padding:32px 34px}
.terms-toggle{margin:6px 0 18px}
.terms-toggle summary{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);cursor:pointer;padding:6px 0;font-weight:500}
.linkbox{display:flex;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:12px 14px;margin-top:8px}
.linkbox code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;flex:1;overflow-x:auto;white-space:nowrap}

/* ---------- table ---------- */
.table-scroll{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th{
  text-align:left;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);
  font-weight:500;padding:0 16px 12px 0;border-bottom:1px solid var(--rule);white-space:nowrap;
}
.tbl td{padding:16px 16px 16px 0;border-bottom:1px solid var(--rule-soft);vertical-align:middle}
.tbl tr{cursor:pointer;transition:background .12s ease}
.tbl tbody tr:hover{background:rgba(18,42,92,.035)}
.tbl .co{font-weight:600}
.tbl .sub{display:block;font-size:12.5px;color:var(--ink-40);margin-top:2px}
.tbl .amt{font-variant-numeric:tabular-nums}
.empty{color:var(--ink-40);font-size:14px;padding:24px 0}

.chip{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:5px 11px;border-radius:2px;white-space:nowrap}
.chip .d{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.chip.sent{background:rgba(16,16,19,.05);color:var(--ink-40)}
.chip.viewed{background:rgba(110,129,171,.16);color:#4a5c85}
.chip.signed{background:rgba(18,42,92,.12);color:var(--navy)}
.chip.paid{background:rgba(0,140,90,.13);color:#0a6b47}
.chip.scheduled{background:rgba(0,140,90,.13);color:#0a6b47}
.chip.complete{background:var(--navy);color:#fff}

/* ---------- drawer ---------- */
.drawer-backdrop{position:fixed;inset:0;z-index:100;background:rgba(16,16,19,.34);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;animation:fade .2s ease both}
.drawer-panel{
  background:var(--paper);width:min(720px,100%);height:100%;overflow-y:auto;padding:44px 46px 80px;
  position:relative;border-left:1px solid var(--rule);animation:slidein .3s cubic-bezier(.2,.8,.3,1) both;
}
@keyframes slidein{from{transform:translateX(28px);opacity:0}to{transform:none;opacity:1}}
.drawer-close{position:absolute;top:18px;right:22px}

.dsec{margin:34px 0 0}
.dsec h4{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);font-weight:600;margin:0 0 14px}
.kv{display:grid;grid-template-columns:190px 1fr;gap:8px 18px;font-size:14px}
.kv dt{color:var(--ink-40)}
.kv dd{margin:0;word-break:break-word}
.timeline{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule-soft)}
.timeline li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule-soft);font-size:14px}
.timeline .lbl{color:var(--ink-60)}
.timeline .ts{color:var(--ink-40);font-size:13px;font-variant-numeric:tabular-nums}
.timeline .pending{color:#b9b7b1}
.sig-preview{background:var(--paper-raised);border:1px solid var(--rule);border-radius:2px;padding:18px;text-align:center}
.sig-preview img{max-width:100%;max-height:110px}
.drawer-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.danger{color:#a3231f;border-color:rgba(163,35,31,.35)}
.danger:hover{border-color:#a3231f;background:rgba(163,35,31,.05)}
.contract-preview{background:var(--paper-raised);border:1px solid var(--rule);border-radius:2px;padding:26px 28px;max-height:420px;overflow-y:auto}
.contract-preview h5{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:22px 0 8px;font-weight:600}
.contract-preview h5:first-child{margin-top:0}
.contract-preview p{font-size:13.5px;line-height:1.62;margin:0 0 9px;color:var(--ink)}

@media (max-width:720px){
  .admin-wrap{padding:0 20px}
  .drawer-panel{padding:38px 22px 70px}
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv dt{margin-top:10px}
  .field-row{grid-template-columns:1fr;gap:0}
}
