/* ============================================================
   PUNICA — Staff Portal stylesheet
   Builds on the public site palette (crimson + cream, Libre
   Caslon + Spectral + Archivo) but tuned for a back-office tool.
   Load AFTER site.css.
   ============================================================ */

:root{
  --pp-bg:#F2ECDF;
  --pp-panel:#FFFDF8;
  --pp-line:rgba(33,27,23,.13);
  --pp-line-soft:rgba(33,27,23,.07);
  --pp-shadow:0 1px 2px rgba(60,17,18,.04), 0 12px 30px -22px rgba(60,17,18,.35);
}

body.pp{
  background:var(--pp-bg);
  font-family:var(--ui);
  font-size:15px;
  color:var(--ink);
  line-height:1.5;
}
.pp *{box-sizing:border-box;}

/* ============================================================
   LOGIN
   ============================================================ */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;}
.login-aside{
  position:relative;overflow:hidden;background:var(--crimson-ink);color:#F4E7DA;
  display:flex;flex-direction:column;justify-content:space-between;padding:clamp(34px,5vw,64px);
}
.login-aside__motif{position:absolute;right:-12%;bottom:-14%;width:min(78%,560px);opacity:.10;pointer-events:none;}
.login-aside .brand{position:relative;z-index:1;}
.login-aside .brand__title{color:#fff;}
.login-aside .brand__sub{color:#C9A892;}
.login-aside__mid{position:relative;z-index:1;max-width:24em;}
.login-aside__eyebrow{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#E7A98F;margin:0 0 18px;}
.login-aside__mid h1{font-family:var(--display);font-size:clamp(32px,3.6vw,50px);line-height:1.04;color:#fff;letter-spacing:-.02em;}
.login-aside__mid p{color:#E7CFBE;margin-top:18px;font-family:var(--serif);font-size:18px;line-height:1.55;}
.login-aside__foot{position:relative;z-index:1;font-size:12px;letter-spacing:.04em;color:#C9A892;display:flex;gap:18px;flex-wrap:wrap;}
.login-aside__foot a{color:#C9A892;}
.login-aside__foot a:hover{color:#fff;}

.login-main{display:flex;align-items:center;justify-content:center;padding:clamp(28px,5vw,56px);background:var(--pp-bg);}
.login-card{width:100%;max-width:400px;}
.login-card__kicker{font-family:var(--ui);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--crimson);margin:0 0 12px;}
.login-card h2{font-family:var(--display);font-size:clamp(28px,3.2vw,38px);line-height:1.05;letter-spacing:-.015em;color:var(--ink);margin:0 0 8px;}
.login-card__sub{color:var(--muted);font-family:var(--serif);font-size:16px;margin:0 0 30px;}

/* ============================================================
   FORM CONTROLS
   ============================================================ */
.field{margin-bottom:18px;}
.field > label{display:block;font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;}
.input, .textarea, .select{
  width:100%;font-family:var(--ui);font-size:15px;color:var(--ink);
  background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:3px;
  padding:.72em .9em;outline:none;transition:border-color .15s,box-shadow .15s;
}
.input:focus, .textarea:focus, .select:focus{border-color:var(--crimson);box-shadow:0 0 0 3px rgba(164,26,26,.12);}
.textarea{min-height:108px;resize:vertical;line-height:1.5;}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237A6F64' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;}
.field__hint{font-size:12.5px;color:var(--muted);margin-top:6px;}
.input-file{font-size:14px;color:var(--ink-soft);}
.input-file::file-selector-button{
  font-family:var(--ui);font-size:13px;font-weight:600;letter-spacing:.03em;
  margin-right:12px;padding:.6em 1em;border:1px solid var(--pp-line);border-radius:3px;
  background:var(--cream);color:var(--ink);cursor:pointer;transition:border-color .15s;
}
.input-file::file-selector-button:hover{border-color:var(--ink);}

.btn--block{width:100%;justify-content:center;}
.btn--sm{padding:.55em 1em;font-size:13px;}
.btn--xs{padding:.4em .75em;font-size:12px;letter-spacing:.03em;}
.btn[disabled]{opacity:.5;pointer-events:none;}

.form-error{
  font-size:13.5px;color:var(--crimson-deep);background:rgba(164,26,26,.08);
  border:1px solid rgba(164,26,26,.25);border-radius:3px;padding:.7em .9em;margin-bottom:16px;display:none;
}
.form-error.show{display:block;}

/* ============================================================
   APP SHELL
   ============================================================ */
.pp-shell{min-height:100vh;display:grid;grid-template-columns:262px 1fr;}
.pp-side{
  position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto;
  background:var(--oxblood);color:#EAD9C8;display:flex;flex-direction:column;
}
.pp-side__brand{display:flex;align-items:center;gap:12px;padding:20px 22px;border-bottom:1px solid rgba(255,255,255,.1);}
.pp-side__brand img{width:38px;height:38px;border-radius:5px;}
.pp-side__brand .t{font-family:var(--display);font-size:19px;color:#fff;line-height:1;}
.pp-side__brand .s{font-family:var(--ui);font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#C9A892;margin-top:4px;}
.pp-nav{padding:14px 12px;display:flex;flex-direction:column;gap:2px;flex:1;}
.pp-nav__group{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#B79683;padding:16px 12px 7px;}
.pp-nav a{
  display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:4px;
  font-size:14px;font-weight:500;color:#EAD9C8;transition:background .14s,color .14s;cursor:pointer;
}
.pp-nav a .ic{width:17px;height:17px;flex-shrink:0;opacity:.8;}
.pp-nav a:hover{background:rgba(255,255,255,.07);color:#fff;}
.pp-nav a.is-active{background:var(--crimson);color:#fff;}
.pp-nav a.is-active .ic{opacity:1;}
.pp-nav a .count{margin-left:auto;font-size:11px;font-weight:700;background:rgba(255,255,255,.14);padding:2px 7px;border-radius:999px;}
.pp-side__foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.1);font-size:11.5px;color:#B79683;letter-spacing:.04em;}
.pp-side__foot a{color:#C9A892;}
.pp-side__foot a:hover{color:#fff;}

.pp-main{min-width:0;display:flex;flex-direction:column;}
.pp-topbar{
  position:sticky;top:0;z-index:20;background:rgba(242,236,223,.9);backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--pp-line);display:flex;align-items:center;gap:18px;
  padding:0 clamp(20px,3vw,40px);min-height:68px;
}
.pp-topbar__title{font-family:var(--display);font-size:24px;letter-spacing:-.01em;color:var(--ink);}
.pp-topbar__spacer{margin-left:auto;}
.pp-user{display:flex;align-items:center;gap:12px;}
.pp-user__av{width:38px;height:38px;border-radius:50%;background:var(--crimson);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;letter-spacing:.02em;flex-shrink:0;transition:box-shadow .14s,transform .14s;}
.pp-user__av[role="button"]:hover{box-shadow:0 0 0 3px rgba(164,26,26,.22);transform:translateY(-1px);}
.pp-user__meta{display:flex;flex-direction:column;line-height:1.2;}
.pp-user__meta[role="button"]:hover .pp-user__name{color:var(--crimson);}
.pp-user__name{font-size:14px;font-weight:600;color:var(--ink);}
.pp-user__roles{font-size:11.5px;color:var(--muted);}
.pp-content{padding:clamp(22px,3.2vw,40px);max-width:1320px;width:100%;}

/* mobile sidebar toggle */
.pp-burger{display:none;width:40px;height:40px;border:1px solid var(--pp-line);border-radius:3px;background:transparent;place-items:center;color:var(--ink);}
.pp-scrim{display:none;}

/* ============================================================
   VIEWS / SECTIONS
   ============================================================ */
.view{display:none;}
.view.is-active{display:block;animation:viewIn .28s ease;}
@keyframes viewIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap;}
.view-head__main h2{font-family:var(--display);font-size:clamp(26px,3vw,34px);line-height:1.05;letter-spacing:-.015em;color:var(--ink);}
.view-head__main p{color:var(--muted);font-family:var(--serif);font-size:16px;margin:6px 0 0;}

/* ---------- panels / cards ---------- */
.panel{background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:6px;box-shadow:var(--pp-shadow);}
.panel__head{padding:18px 22px;border-bottom:1px solid var(--pp-line-soft);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.panel__head h3{font-family:var(--headline);font-size:19px;color:var(--ink);}
.panel__body{padding:22px;}
.panel + .panel{margin-top:22px;}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;}
.stat{background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:6px;padding:18px 20px;box-shadow:var(--pp-shadow);}
.stat__num{font-family:var(--display);font-size:38px;line-height:1;color:var(--crimson-ink);letter-spacing:-.02em;}
.stat__label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:10px;}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto;}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;}
.tbl th{
  text-align:left;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  padding:11px 16px;border-bottom:1px solid var(--pp-line);white-space:nowrap;background:var(--cream);
}
.tbl td{padding:14px 16px;border-bottom:1px solid var(--pp-line-soft);vertical-align:top;color:var(--ink-soft);}
.tbl tr:last-child td{border-bottom:0;}
.tbl tbody tr{transition:background .12s;}
.tbl tbody tr:hover{background:rgba(164,26,26,.025);}
.tbl .ref{font-family:var(--ui);font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--crimson);white-space:nowrap;}
.tbl .ttl{font-family:var(--headline);font-size:15.5px;color:var(--ink);line-height:1.25;}
.tbl .sub{font-size:13px;color:var(--muted);font-style:italic;margin-top:2px;}
.tbl .nowrap{white-space:nowrap;}
.tbl .actions{display:flex;gap:7px;flex-wrap:wrap;}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:.4em;font-family:var(--ui);font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;white-space:nowrap;line-height:1.2;}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85;}
.badge--neutral{color:#6a5f54;background:rgba(106,95,84,.1);}
.badge--amber{color:#8a5a12;background:rgba(176,116,24,.14);}
.badge--blue{color:#2b5b8f;background:rgba(43,91,143,.13);}
.badge--green{color:#27693c;background:rgba(31,107,58,.13);}
.badge--red{color:#9a2222;background:rgba(164,26,26,.12);}
.badge--gold{color:#7a611f;background:rgba(154,123,46,.16);}

.role-chip{display:inline-flex;align-items:center;font-family:var(--ui);font-size:11px;font-weight:600;letter-spacing:.05em;
  padding:3px 9px;border-radius:999px;border:1px solid var(--pp-line);color:var(--ink-soft);background:var(--cream);white-space:nowrap;}
.role-chip--on{background:var(--crimson);color:#fff;border-color:var(--crimson);}
.chips-row{display:flex;gap:6px;flex-wrap:wrap;}

/* ---------- toggles for role grants ---------- */
.role-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft);cursor:pointer;
  padding:5px 10px;border:1px solid var(--pp-line);border-radius:999px;background:var(--pp-panel);transition:.14s;user-select:none;}
.role-toggle:hover{border-color:var(--ink);}
.role-toggle input{position:absolute;opacity:0;width:0;height:0;}
.role-toggle .dot{width:9px;height:9px;border-radius:50%;background:var(--pp-line);transition:.14s;}
.role-toggle.on{background:var(--crimson);color:#fff;border-color:var(--crimson);}
.role-toggle.on .dot{background:#fff;}
.role-toggle.busy{opacity:.55;pointer-events:none;}
.role-toggle--locked{opacity:.4;cursor:not-allowed;}
.role-toggle--locked:hover{border-color:var(--pp-line);}

/* grouped role tiers (Journal roles · Senior · Book & production) */
.role-groups{display:flex;flex-wrap:wrap;gap:18px 26px;}
.role-group{display:flex;flex-direction:column;gap:7px;}
.role-group__label{font-family:var(--ui);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--muted);}
.role-group__label em{font-style:normal;font-weight:500;text-transform:none;letter-spacing:0;color:var(--pp-line-strong,#b9a9a6);margin-left:4px;}
.role-group + .role-group{padding-left:26px;border-left:1px solid var(--pp-line-soft);}
@media(max-width:760px){.role-group + .role-group{padding-left:0;border-left:0;}}
/* per-journal scope chips (Editor / Editor-in-Chief) */
.role-jr{display:inline-flex;flex-direction:column;gap:6px;}
.role-jr__lbl{font-family:var(--ui);font-size:10px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--muted);}
.role-jr__lbl em{font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;color:var(--pp-line-strong,#b9a9a6);margin-left:4px;}
.role-toggle--jr{padding:4px 9px;font-size:11.5px;}

/* ---------- empty / loading ---------- */
.empty{text-align:center;padding:46px 20px;color:var(--muted);}
.empty__mark{width:54px;height:54px;margin:0 auto 16px;opacity:.4;}
.empty h4{font-family:var(--headline);font-size:19px;color:var(--ink-soft);margin:0 0 6px;}
.empty p{font-size:14px;margin:0 auto;max-width:30em;}
.skeleton{height:54px;border-radius:5px;background:linear-gradient(90deg,rgba(0,0,0,.04),rgba(0,0,0,.07),rgba(0,0,0,.04));
  background-size:200% 100%;animation:sk 1.2s ease infinite;margin-bottom:10px;}
@keyframes sk{from{background-position:200% 0;}to{background-position:-200% 0;}}

.loader-full{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-family:var(--ui);}
.spinner{width:34px;height:34px;border:3px solid var(--pp-line);border-top-color:var(--crimson);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================================
   MODAL / DRAWER
   ============================================================ */
.modal-scrim{position:fixed;inset:0;background:rgba(40,20,12,.42);backdrop-filter:blur(2px);z-index:200;
  display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}
.modal-scrim.open{display:flex;}
.modal{background:var(--pp-panel);border-radius:8px;box-shadow:0 40px 90px -30px rgba(40,12,12,.6);
  width:100%;max-width:580px;animation:modalIn .26s cubic-bezier(.2,.7,.3,1);margin:auto;}
.modal--wide{max-width:780px;}
@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.98);}to{opacity:1;transform:none;}}
.modal__head{padding:22px 26px;border-bottom:1px solid var(--pp-line-soft);display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.modal__head h3{font-family:var(--display);font-size:25px;line-height:1.1;color:var(--ink);}
.modal__head p{font-size:13.5px;color:var(--muted);margin:5px 0 0;}
.modal__close{width:34px;height:34px;border:1px solid var(--pp-line);border-radius:4px;background:transparent;display:grid;place-items:center;color:var(--ink-soft);flex-shrink:0;}
.modal__close:hover{border-color:var(--ink);color:var(--ink);}
.modal__body{padding:24px 26px;}
.modal__foot{padding:18px 26px;border-top:1px solid var(--pp-line-soft);display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}

.def-list{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:14px;}
.def-list dt{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-top:2px;}
.def-list dd{margin:0;color:var(--ink);}

.review-item{border:1px solid var(--pp-line);border-radius:6px;padding:16px 18px;margin-bottom:12px;background:var(--cream);}
.review-item__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
.review-item__who{font-family:var(--headline);font-size:15px;color:var(--ink);}
.review-item__date{font-size:12px;color:var(--muted);}
.review-item__body{font-family:var(--serif);font-size:15px;color:var(--ink-soft);line-height:1.55;white-space:pre-wrap;}

.assignee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--pp-line-soft);}
.assignee-row:last-child{border-bottom:0;}
.assignee-row__name{font-size:14px;color:var(--ink);}
.assignee-row__name small{display:block;color:var(--muted);font-size:12px;}

.seg{display:inline-flex;border:1px solid var(--pp-line);border-radius:4px;overflow:hidden;flex-wrap:wrap;}
.seg button{font-family:var(--ui);font-size:13px;font-weight:600;padding:.55em 1em;background:var(--pp-panel);color:var(--ink-soft);border:0;border-right:1px solid var(--pp-line);transition:.12s;}
.seg button:last-child{border-right:0;}
.seg button.on{background:var(--crimson);color:#fff;}

/* stacked single-choice (e.g. conflict of interest) */
.choices{display:flex;flex-direction:column;gap:8px;}
.choice{display:flex;align-items:flex-start;gap:11px;text-align:left;width:100%;font-family:var(--ui);font-size:14px;font-weight:500;line-height:1.4;color:var(--ink-soft);background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:5px;padding:12px 14px;cursor:pointer;transition:border-color .12s,background .12s;}
.choice:hover{border-color:var(--muted);}
.choice.on{border-color:var(--crimson);background:rgba(164,26,26,.05);color:var(--ink);}
.choice__dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--pp-line);flex:none;margin-top:1px;transition:.12s;}
.choice.on .choice__dot{border-color:var(--crimson);background:var(--crimson);box-shadow:inset 0 0 0 3px var(--pp-panel);}

/* labelled blocks inside a review detail card */
.review-block__label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px;}
.review-block__label:first-child{margin-top:0;}

.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}
.inline-form .field{margin-bottom:0;}

/* ============================================================
   TOASTS
   ============================================================ */
.toast-host{position:fixed;right:20px;bottom:20px;z-index:400;display:flex;flex-direction:column;gap:10px;}
.toast{font-family:var(--ui);font-size:14px;font-weight:500;color:#fff;background:var(--ink);
  padding:.85em 1.1em;border-radius:5px;box-shadow:0 16px 40px -16px rgba(0,0,0,.5);
  opacity:0;transform:translateY(10px);transition:opacity .26s,transform .26s;max-width:360px;}
.toast.in{opacity:1;transform:none;}
.toast--ok{background:#27693c;}
.toast--err{background:var(--crimson-deep);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:980px){
  .login-wrap{grid-template-columns:1fr;}
  .login-aside{min-height:280px;}
  .stat-row{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:820px){
  .pp-shell{grid-template-columns:1fr;}
  .pp-side{position:fixed;left:0;top:0;bottom:0;width:262px;z-index:120;transform:translateX(-100%);transition:transform .26s ease;}
  .pp-side.open{transform:none;}
  .pp-burger{display:grid;}
  .pp-scrim{position:fixed;inset:0;background:rgba(20,10,8,.4);z-index:110;}
  .pp-scrim.open{display:block;}
  .pp-user__meta{display:none;}
}
@media(max-width:560px){
  .stat-row{grid-template-columns:1fr 1fr;}
  .view-head{flex-direction:column;align-items:flex-start;}
  .modal__foot{flex-direction:column-reverse;}
  .modal__foot .btn{width:100%;justify-content:center;}
}

/* ============================================================
   PROFILES — form grid, completion gate, my-profile, manage
   ============================================================ */
/* danger button (used for permanent removal) */
.btn--danger{background:var(--crimson-deep);color:#fff;border-color:var(--crimson-deep);}
.btn--danger:hover{background:#671012;border-color:#671012;}

/* two-column field grid shared by the gate, my-profile edit & admin edit */
.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.pf-grid .field{margin-bottom:16px;}
.pf-grid .pf-span{grid-column:1 / -1;}
.pf-grid .pf-wide{grid-column:span 1;}
.pf-grid .pf-narrow{grid-column:span 1;}
@media(max-width:620px){
  .pf-grid{grid-template-columns:1fr;}
}

/* sign-up: first name · middle initial · surname on one row */
.su-name{display:grid;grid-template-columns:1fr 96px 1fr;gap:0 14px;align-items:end;}
.su-name .field{margin-bottom:0;}

/* sign-up: generic two-up field row (city / postal, etc.) */
.su-row2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;}
.su-row2 .field{margin-bottom:0;}

/* first-login completion gate */
.profile-gate{
  position:fixed;inset:0;z-index:300;background:var(--pp-bg);
  overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;
  padding:clamp(20px,5vw,64px) 18px;
}
.profile-gate__card{
  width:100%;max-width:640px;background:var(--pp-panel);
  border:1px solid var(--pp-line);border-radius:10px;box-shadow:var(--pp-shadow);
  padding:clamp(26px,4vw,44px);
}
.profile-gate__head{margin-bottom:24px;}
.profile-gate__mark{width:46px;height:46px;opacity:.85;margin-bottom:16px;}
.profile-gate__head h2{font-family:var(--display);font-size:clamp(26px,3.4vw,34px);line-height:1.06;letter-spacing:-.015em;color:var(--ink);margin:0 0 10px;}
.profile-gate__sub{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-soft);margin:0;max-width:46em;}
.profile-gate__who{font-size:13px;color:var(--muted);margin:12px 0 0;}
.profile-gate__who strong{color:var(--ink-soft);font-weight:600;}
.profile-gate__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px;}
.profile-gate__signout{font-size:13px;color:var(--muted);border-bottom:1px solid transparent;}
.profile-gate__signout:hover{color:var(--crimson);border-bottom-color:rgba(164,26,26,.3);}
@media(max-width:560px){
  .profile-gate__foot{flex-direction:column-reverse;align-items:stretch;}
  .profile-gate__foot .btn{width:100%;justify-content:center;}
  .profile-gate__signout{text-align:center;}
}

/* my-profile read view */
.pf-read{display:grid;grid-template-columns:1fr 1fr;gap:2px 40px;margin:0;}
.pf-read__row{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:baseline;
  padding:13px 0;border-bottom:1px solid var(--pp-line-soft);}
.pf-read__row dt{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0;}
.pf-read__row dd{margin:0;font-size:15px;color:var(--ink);}
@media(max-width:760px){
  .pf-read{grid-template-columns:1fr;gap:0;}
}

/* manage-users table extras */
.us-meta{font-size:12.5px;color:var(--muted);margin-top:4px;}
.us-actions{display:flex;gap:8px;flex-wrap:wrap;}
.us-remove:hover{border-color:var(--crimson-deep);color:var(--crimson-deep);}

/* ---------- login / sign-up tabs ---------- */
.auth-seg{display:flex;gap:4px;background:var(--pp-panel,#f4eee9);border:1px solid var(--pp-line,#e4dcd3);border-radius:9px;padding:4px;margin-bottom:22px;}
.auth-seg__btn{flex:1;border:0;background:transparent;cursor:pointer;font-family:var(--ui);font-size:13.5px;font-weight:600;color:var(--ink-soft);padding:9px 10px;border-radius:6px;transition:.14s;}
.auth-seg__btn.on{background:var(--crimson);color:#fff;box-shadow:0 1px 4px -1px rgba(92,15,17,.4);}
.linklike{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--crimson);cursor:pointer;text-decoration:none;}
.linklike:hover{text-decoration:underline;}
.form-ok{display:none;background:rgba(31,107,58,.09);border:1px solid rgba(31,107,58,.28);color:#1c6536;font-size:13.5px;line-height:1.5;border-radius:6px;padding:11px 14px;margin-bottom:16px;}
.form-ok.show{display:block;}

/* ============================================================
   JOURNALS ADMIN (cover, indexing, memberships, issues)
   ============================================================ */
.jx-pick{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 22px;}
.jx-pick button{font-family:var(--ui);font-size:13px;font-weight:600;color:var(--ink-soft);
  background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:6px;padding:.55em 1em;cursor:pointer;transition:.14s;display:flex;align-items:center;gap:9px;}
.jx-pick button:hover{border-color:var(--ink-soft);}
.jx-pick button.on{background:var(--crimson);border-color:var(--crimson);color:#fff;}
.jx-pick .ab{font-weight:700;letter-spacing:.04em;}

.jx-cover{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.jx-cover__img{width:148px;aspect-ratio:1410/2250;object-fit:cover;border:1px solid var(--pp-line);
  border-radius:6px;background:var(--cream);display:block;box-shadow:var(--pp-shadow);}
.jx-cover__side{flex:1;min-width:240px;}

.optgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;}
.optcard{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--pp-line);border-radius:6px;
  padding:13px 15px;cursor:pointer;transition:.14s;background:var(--pp-panel);}
.optcard:hover{border-color:var(--ink-soft);}
.optcard.on{border-color:var(--crimson);background:rgba(164,26,26,.045);}
.optcard input{margin:1px 0 0;width:17px;height:17px;flex-shrink:0;accent-color:var(--crimson);cursor:pointer;}
.optcard__t{display:block;font-size:14px;font-weight:600;color:var(--ink);line-height:1.2;}
.optcard__d{display:block;font-size:12px;color:var(--muted);margin-top:3px;line-height:1.35;}

.issuecard{border:1px solid var(--pp-line);border-radius:8px;overflow:hidden;margin-bottom:16px;}
.issuecard__head{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--cream);border-bottom:1px solid var(--pp-line);flex-wrap:wrap;}
.issuecard__title{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.01em;}
.issuecard__title small{display:block;font-weight:500;font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:2px;}
.issuecard__sp{flex:1;}
.issuecard__body{padding:6px 18px 12px;}
.issuecard__empty{font-size:13px;color:var(--muted);padding:16px 0;}
.artrow{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--pp-line-soft);flex-wrap:wrap;}
.artrow:last-child{border-bottom:0;}
.artrow__main{flex:1;min-width:180px;}
.artrow__title{font-size:14px;font-weight:600;color:var(--ink);line-height:1.3;}
.jx-title-link{cursor:pointer;}
.jx-title-link:hover{text-decoration:underline;text-decoration-color:var(--crimson);text-underline-offset:2px;}
.artrow__meta{font-size:12px;color:var(--muted);margin-top:3px;}
.artrow__act{display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.artrow .select{width:auto;font-size:12.5px;padding:.4em 1.7em .4em .7em;}

.pill{font-family:var(--ui);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:4px 9px;border-radius:999px;white-space:nowrap;}
.pill--draft{background:rgba(0,0,0,.05);color:var(--muted);}
.pill--pub{background:rgba(31,107,58,.12);color:#1c6536;}
.pill--sched{background:rgba(196,120,20,.14);color:#9a5b00;}

/* article landing-page preview overlay */
.jx-landing-scrim{position:fixed;inset:0;z-index:400;background:rgba(20,8,8,.55);overflow-y:auto;padding:clamp(16px,4vw,56px) 16px;}
.jx-landing{max-width:760px;margin:0 auto;background:#fff;border-radius:10px;box-shadow:0 30px 80px -30px rgba(0,0,0,.55);overflow:hidden;}
.jx-landing__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 22px;border-bottom:1px solid var(--line);background:var(--cream);}
.jx-landing__bar .eyebrow2{font-family:var(--ui);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--crimson);font-weight:700;}
.jx-landing__close{background:#fff;border:1px solid var(--line);border-radius:5px;padding:6px 11px;cursor:pointer;font-family:var(--ui);font-size:13px;font-weight:600;color:var(--ink-soft);}
.jx-landing__close:hover{border-color:var(--ink);}
.jx-landing__body{padding:clamp(24px,4vw,40px);}
.jx-landing h1{font-family:var(--display);font-size:clamp(24px,3.4vw,34px);line-height:1.16;color:var(--ink);margin:0 0 14px;letter-spacing:-.01em;}
.jx-landing__authors{font-size:16px;color:var(--ink-soft);margin:0 0 4px;}
.jx-landing__meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--muted);padding:14px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin:16px 0 24px;}
.jx-landing__sec{margin-bottom:24px;}
.jx-landing__sec h4{font-family:var(--ui);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin:0 0 10px;}
.jx-landing__abstract{font-size:15.5px;line-height:1.62;color:var(--ink);white-space:pre-wrap;}
.jx-license{display:flex;gap:14px;align-items:flex-start;background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:16px 18px;}
.jx-license__cc{font-family:var(--ui);font-weight:800;font-size:12.5px;letter-spacing:.05em;color:var(--ink);border:1.5px solid var(--ink);border-radius:5px;padding:7px 9px;white-space:nowrap;}
.jx-license p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-soft);}

/* peer-review editor (modal) */
.rev-round{border:1px solid var(--pp-line);border-radius:7px;padding:14px 15px;margin-bottom:14px;background:var(--cream);}
.rev-round__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}
.rev-round__head strong{font-family:var(--ui);font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);}
.rev-item{background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:6px;padding:11px 12px;margin-bottom:10px;}
.rev-item__row{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
.rev-item__row .rev-reviewer{flex:1;}
.rev-item__row .rev-rec{width:auto;flex-shrink:0;}
.rev-item .rev-text{min-height:72px;}

/* peer-review block on the landing page */
.rev-l__group{margin-bottom:18px;}
.rev-l__round{font-family:var(--ui);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--crimson);margin-bottom:9px;}
.rev-l__item{border-left:2px solid var(--line);padding:1px 0 1px 14px;margin-bottom:13px;}
.rev-l__meta{display:flex;gap:10px;align-items:center;margin-bottom:5px;flex-wrap:wrap;}
.rev-l__who{font-size:13.5px;font-weight:600;color:var(--ink);}
.rev-l__text{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft);white-space:pre-wrap;}

/* editor decision field inside the reviews modal */
.rev-decision{display:flex;align-items:center;gap:12px;margin:0 0 12px;}
.rev-decision label{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--crimson);white-space:nowrap;}
.rev-decision label span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted);}
.rev-decision .select{width:auto;min-width:200px;}

/* collapsible peer-review rounds on the landing page (click + to reveal) */
.rev-d{border:1px solid var(--pp-line);border-radius:7px;margin-bottom:10px;overflow:hidden;}
.rev-d>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:11px;padding:13px 15px;background:var(--cream);}
.rev-d>summary::-webkit-details-marker{display:none;}
.rev-d__plus{position:relative;width:15px;height:15px;flex-shrink:0;}
.rev-d__plus::before,.rev-d__plus::after{content:"";position:absolute;background:var(--crimson);border-radius:1px;transition:transform .18s;}
.rev-d__plus::before{left:0;top:6.5px;width:15px;height:2px;}
.rev-d__plus::after{left:6.5px;top:0;width:2px;height:15px;}
.rev-d[open] .rev-d__plus::after{transform:scaleY(0);}
.rev-d__t{font-size:14px;font-weight:600;color:var(--ink);}
.rev-l__decision{margin-left:auto;font-family:var(--ui);font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:#1c6536;background:rgba(31,107,58,.12);padding:4px 10px;border-radius:999px;white-space:nowrap;}
.rev-d__body{padding:14px 15px 4px;border-top:1px solid var(--pp-line);}

/* full-issue table of contents */
.iss-toc{display:flex;flex-direction:column;}
.iss-toc__item{padding:14px 0;border-bottom:1px solid var(--pp-line-soft);cursor:pointer;transition:padding-left .14s;}
.iss-toc__item:hover{padding-left:8px;}
.iss-toc__item:last-child{border-bottom:0;}
.iss-toc__title{font-family:var(--display);font-size:18px;line-height:1.25;color:var(--ink);}
.iss-toc__item:hover .iss-toc__title{text-decoration:underline;text-decoration-color:var(--crimson);text-underline-offset:2px;}
.iss-toc__auth{font-size:13.5px;color:var(--ink-soft);margin-top:3px;}
.iss-toc__meta{font-size:12px;color:var(--muted);margin-top:3px;}

/* ============================================================
   JOURNAL SUBMISSIONS (author form + staff queue)
   ============================================================ */
.rp-prompt{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.rp-prompt h3{margin:0 0 5px;font-family:var(--headline);font-size:18px;color:var(--ink);}
.rp-prompt p{margin:0;font-size:13.5px;color:var(--ink-soft);max-width:46em;}
.rp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.rp-grid .rp-span{grid-column:1 / -1;}
.rp-grid dt{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;}
.rp-grid dd{margin:0;font-size:14px;color:var(--ink);display:flex;gap:6px;flex-wrap:wrap;}
@media(max-width:620px){.rp-grid{grid-template-columns:1fr;}}

.rev-suggest{border:1px solid var(--pp-line);border-radius:7px;padding:14px 15px;margin-bottom:12px;background:var(--cream);}
.rev-suggest__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.rev-suggest__head strong{font-family:var(--ui);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);}
.rev-suggest .field{margin-bottom:0;}
.rev-suggest .pf-grid{gap:12px 20px;}

.sub-row,.q-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--pp-line-soft);}
.sub-row:last-child,.q-row:last-child{border-bottom:0;}
.sub-row{cursor:pointer;transition:padding-left .14s;}
.sub-row:hover{padding-left:6px;}
.sub-row__main,.q-row__main{flex:1;min-width:0;}
.sub-row__title,.q-row__title{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.3;}
.q-row__ref{font-family:var(--ui);font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--crimson-ink);background:rgba(164,26,26,.07);border-radius:5px;padding:2px 7px;margin-right:4px;white-space:nowrap;}
.sub-row__meta,.q-row__meta{font-size:12.5px;color:var(--muted);margin-top:3px;}
.q-row__act{display:flex;gap:9px;align-items:center;flex-wrap:wrap;}
.q-row__act .select{width:auto;font-size:13px;padding:.45em 1.8em .45em .7em;}

/* submission detail modal */
.dt-files{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--pp-line);}
.dt-sec{margin-bottom:18px;}
.dt-sec h4{font-family:var(--ui);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin:0 0 7px;}
.dt-p{margin:0 0 6px;font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap;}
.dt-rev{padding:8px 0;border-bottom:1px dashed var(--pp-line-soft);font-size:14px;color:var(--ink);}
.dt-rev:last-child{border-bottom:0;}
.dt-rev__m{font-size:12.5px;color:var(--muted);margin-top:2px;}
.dt-confirms{margin:0;padding-left:2px;list-style:none;font-size:13.5px;color:var(--ink-soft);}
.dt-confirms li{margin-bottom:4px;}

/* editorial workflow panel inside the submission detail */
.dt-editorial{background:var(--cream);border:1px solid var(--pp-line);border-radius:9px;padding:6px 16px 10px;margin-bottom:20px;}
.dt-editorial .dt-sec{margin-bottom:14px;}
.dt-editorial .dt-sec:last-child{margin-bottom:6px;}
.dt-sechead{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.dt-statusrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.dt-refcheck{margin-top:14px;border-top:1px solid var(--pp-line);padding-top:12px;}
.dt-refsum{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}
.dt-refresults{margin-top:10px;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;}
.dt-refresults:empty{display:none;}
.dt-ref{border:1px solid var(--pp-line-soft);border-radius:7px;padding:8px 11px;background:var(--pp-paper,#fff);}
.dt-ref__top{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.dt-ref__src{font-size:11.5px;color:var(--muted);font-family:var(--ui);}
.dt-ref__raw{font-size:12.5px;color:var(--ink);margin-top:5px;line-height:1.45;}
.dt-ref__match{font-size:12px;color:var(--olive-deep,#5a6a2a);margin-top:4px;line-height:1.4;}
.dt-ref__tags{display:inline-flex;gap:5px;flex-wrap:wrap;align-items:center;}
.reftag{font-family:var(--ui);font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:2px 7px;border-radius:5px;white-space:nowrap;}
.reftag--src{background:rgba(60,110,70,.12);color:#2f6a44;border:1px solid rgba(60,110,70,.28);}
.reftag--retract{background:rgba(164,26,26,.12);color:#a41a1a;border:1px solid rgba(164,26,26,.34);}
.reftag--concern{background:rgba(190,130,30,.14);color:#9a6a12;border:1px solid rgba(190,130,30,.34);}
.dt-link{font-size:12.5px;color:var(--crimson,#a41a1a);text-decoration:none;border-bottom:1px solid rgba(164,26,26,.3);}
.dt-link:hover{text-decoration:none;border-bottom-color:var(--crimson,#a41a1a);}
.dt-rev{padding:9px 0;border-bottom:1px dashed var(--pp-line-soft);font-size:14px;color:var(--ink);}
.dt-rev:last-child{border-bottom:0;}
.dt-rev__top{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;}
.dt-rev__pillrow{display:flex;gap:8px;align-items:center;flex-shrink:0;}
.dt-rev__m{font-size:12.5px;color:var(--muted);margin-top:2px;}
.dt-rev__rep{margin-top:7px;padding:9px 12px;background:#fff;border:1px solid var(--pp-line);border-radius:7px;font-size:13.5px;}
.dt-rev__rep>strong{color:var(--crimson-ink);}
.dt-revprog{margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--ink-soft);}
.dt-rev__tag{display:inline-block;font-family:var(--ui);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:4px;padding:1px 6px;vertical-align:1px;}
.rv-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;}
.rv-chip{font-family:var(--ui);font-size:12.5px;color:var(--ink-soft);background:var(--pp-panel);border:1px solid var(--pp-line);border-radius:999px;padding:6px 12px;cursor:pointer;}
.rv-chip:hover{border-color:var(--crimson);color:var(--crimson-ink);}

/* outbox */
.ob-row{padding:13px 0;border-bottom:1px solid var(--pp-line-soft);}
.ob-row:last-child{border-bottom:0;}
.ob-row__subj{font-size:14px;font-weight:600;color:var(--ink);}
.ob-row__meta{font-size:12px;color:var(--muted);margin:3px 0 7px;}
.ob-row__body{font-size:13px;line-height:1.5;color:var(--ink-soft);white-space:pre-wrap;background:var(--cream);border:1px solid var(--pp-line-soft);border-radius:6px;padding:11px 13px;max-height:150px;overflow-y:auto;}

