/* Roots & Return — portal shared styles (light theme, matches the site) */
:root{
  --ink:#1B2333; --ink-2:#243055;
  --marigold:#E0922F; --gold-deep:#C97A1E; --clay:#B5562F;
  --dawn:#EEF0F4; --dawn-2:#E4E7EE; --dawn-3:#D8DCE6; --white:#fff;
  --soft:#1B2333; --muted:#4A5568; --muted-2:#5A6478; --muted-3:#7C889F;
  --line:rgba(27,35,51,.12); --line-2:rgba(27,35,51,.18);
  --green:#4E8168; --green-bg:rgba(78,129,104,.12);
  --fd:'Fraunces',Georgia,serif; --fb:'Karla',system-ui,-apple-system,Arial,sans-serif;
  --ease:200ms cubic-bezier(.4,0,.2,1); --r8:8px; --r10:10px; --r14:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--fb);background:var(--dawn);color:var(--soft);font-size:16.5px;line-height:1.55;-webkit-font-smoothing:antialiased;}
a{color:var(--gold-deep);}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--marigold);outline-offset:2px;border-radius:4px;}

.wrap{max-width:1000px;margin:0 auto;padding:0 clamp(18px,5vw,40px);}
.narrow{max-width:460px;}

/* top bar */
.topbar{background:var(--white);border-bottom:1px solid var(--line);}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;}
.brand{display:flex;align-items:center;text-decoration:none;}
.topbar-right{display:flex;align-items:center;gap:16px;}
.who{font-size:14px;color:var(--muted-3);}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15.5px;border:1px solid var(--line-2);background:var(--white);color:var(--soft);padding:11px 18px;border-radius:var(--r8);transition:all var(--ease);}
.btn:hover{border-color:var(--muted-3);}
.btn-primary{background:var(--marigold);border-color:var(--marigold);color:var(--ink);}
.btn-primary:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.btn-ghost{border:0;background:none;color:var(--muted);font-weight:600;font-size:14.5px;padding:8px 10px;}
.btn-ghost:hover{color:var(--soft);}
.btn-sm{font-size:14px;padding:8px 12px;}
.btn[disabled]{opacity:.6;cursor:not-allowed;}

/* card */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r14);padding:clamp(22px,3vw,32px);box-shadow:0 1px 3px rgba(27,35,51,.05);}
.page{padding:clamp(28px,5vw,52px) 0;}
h1{font-family:var(--fd);font-weight:300;font-size:clamp(26px,3.4vw,36px);letter-spacing:-.015em;line-height:1.1;}
h2{font-family:var(--fd);font-weight:400;font-size:22px;}
.sub{color:var(--muted);margin-top:8px;}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;}

/* forms */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field label{font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-3);}
.field input,.field select{font-family:inherit;font-size:16px;padding:12px 13px;border:1px solid var(--line-2);border-radius:var(--r8);background:var(--white);color:var(--soft);}
.field input:focus,.field select:focus{outline:none;border-color:var(--marigold);}
.tabs{display:flex;gap:4px;background:var(--dawn-2);border-radius:var(--r8);padding:4px;margin-bottom:22px;}
.tab{flex:1;text-align:center;padding:10px;border-radius:6px;font-weight:700;font-size:15px;color:var(--muted);background:none;border:0;}
.tab.active{background:var(--white);color:var(--soft);box-shadow:0 1px 2px rgba(27,35,51,.1);}

.msg{margin-top:14px;padding:11px 14px;border-radius:var(--r8);font-size:14.5px;line-height:1.5;display:none;}
.msg.show{display:block;}
.msg.ok{background:var(--green-bg);border:1px solid rgba(78,129,104,.4);color:#2f6049;}
.msg.err{background:rgba(181,86,47,.1);border:1px solid rgba(181,86,47,.4);color:#8A3D1E;}

/* phase stepper */
.phases{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.phase{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r10);background:var(--white);}
.phase .dot{flex:none;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;border:1.5px solid var(--line-2);color:var(--muted-3);background:var(--white);}
.phase.done .dot{background:var(--green);border-color:var(--green);color:#fff;}
.phase.current{border-color:var(--marigold);box-shadow:0 0 0 2px rgba(224,146,47,.25);background:#FFFDF8;}
.phase.current .dot{background:var(--marigold);border-color:var(--marigold);color:var(--ink);}
.phase .ptag{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);}
.phase h3{font-family:var(--fd);font-weight:400;font-size:18px;margin:2px 0 3px;}
.phase p{font-size:14px;color:var(--muted);}
.phase .badge-now{margin-left:auto;flex:none;align-self:center;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--marigold);color:var(--ink);padding:4px 10px;border-radius:100px;}

/* document list */
.uploader{border:1.5px dashed var(--line-2);border-radius:var(--r10);padding:22px;text-align:center;transition:all var(--ease);cursor:pointer;display:block;}
.uploader:hover,.uploader.over{border-color:var(--marigold);background:#FFFDF8;}
.uploader input{display:none;}
.uploader b{display:block;font-size:15.5px;margin-bottom:4px;}
.uploader span{font-size:13.5px;color:var(--muted-3);}
.doclist{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:8px;}
.doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r8);background:var(--white);}
.doc .name{font-weight:600;font-size:15px;word-break:break-word;}
.doc .meta{font-size:13px;color:var(--muted-3);margin-top:1px;}
.doc .spacer{margin-left:auto;}
.empty{color:var(--muted-3);font-size:14.5px;padding:14px 0;}

/* admin table */
.table{width:100%;border-collapse:collapse;font-size:15px;}
.table th{text-align:left;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-3);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line);}
.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle;}
.table tr:hover td{background:var(--dawn);}
.table select{font-family:inherit;font-size:14.5px;padding:7px 9px;border:1px solid var(--line-2);border-radius:6px;background:var(--white);}
.scroll-x{overflow-x:auto;}

.stack{display:flex;flex-direction:column;gap:20px;}
.row-between{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.mut{color:var(--muted);}
.hidden{display:none !important;}
