@font-face{ font-family:'Great Vibes'; src:url('/assets/fonts/GreatVibes-Regular.ttf') format('truetype'); font-display:swap; }
/* Portal components on top of the site v7 system: ruled rows, 3px corners,
   no decorative brass. */
.portal-wrap{ max-width:760px; margin:0 auto; }
.portal-wrap--wide{ max-width:1160px; }
/* Document viewer on the signing page: full column width, most of the viewport tall. */
.doc-frame{ width:100%; height:clamp(560px, 82vh, 1300px); border:0; display:block; background:#fff; }
@media (max-width:720px){ .doc-frame{ height:72vh; } }
.panel{ background:var(--surface); border:1px solid var(--line-2); border-radius:var(--r); padding:1.4rem 1.6rem; margin-bottom:1.4rem; }
.panel h2{ font-size:1.25rem; margin:0 0 .9rem; letter-spacing:-0.01em; }
.panel p{ color:var(--body); }
.rows{ list-style:none; margin:0; padding:0; }
.rows li{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.rows li:last-child{ border-bottom:0; }
.rows .title{ color:var(--ink); font-weight:600; }
.rows .meta{ color:var(--muted); font-size:.9rem; }
.status{ font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.25rem .55rem; border-radius:var(--r); border:1px solid var(--line-2); color:var(--muted); white-space:nowrap; }
.status.done{ border-color:var(--teal); color:var(--teal); }
.status.todo{ border-color:var(--line-2); color:var(--ink); }
.status.wait{ border-color:var(--line-2); color:var(--muted); }
.field label{ display:block; font-weight:700; color:var(--ink); margin-bottom:.35rem; font-size:.95rem; }
.field .hint{ display:block; color:var(--muted); font-size:.88rem; margin-top:.3rem; }
.field input[type=text], .field input[type=email], .field input[type=tel], .field input[type=date], .field input[type=datetime-local], .field textarea, .field select{
  width:100%; font:inherit; padding:.7rem .85rem; border:1px solid var(--line-2); border-radius:var(--r); background:var(--surface); color:var(--ink); min-height:44px;
}
.field textarea{ min-height:120px; resize:vertical; }
.field{ margin-bottom:1.1rem; }
.fixed-value{ padding:.7rem .85rem; background:var(--panel); border-radius:var(--r); color:var(--ink); }
.check{ display:flex; gap:.7rem; align-items:flex-start; padding:.9rem 1rem; background:var(--panel); border-radius:var(--r); margin-bottom:1.1rem; }
.check input{ width:22px; height:22px; margin-top:.15rem; flex:none; }
.check label{ font-weight:600; color:var(--ink); }
.table-fields{ width:100%; border-collapse:collapse; margin-bottom:1.1rem; }
.table-fields th{ text-align:left; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:.5rem .4rem; border-bottom:1px solid var(--line-2); }
.table-fields td{ padding:.5rem .4rem; border-bottom:1px solid var(--line); vertical-align:top; }
.table-fields td.rowlabel{ color:var(--ink); font-weight:600; white-space:nowrap; }
.table-fields input{ width:100%; font:inherit; padding:.55rem .7rem; border:1px solid var(--line-2); border-radius:var(--r); min-height:40px; }
.note{ color:var(--body); padding:.9rem 1rem; border-left:0; background:var(--panel); border-radius:var(--r); margin-bottom:1.1rem; }
.form-status{ min-height:1.4rem; color:var(--body); }
.form-status.error{ color:#8C2F2F; }
.actions{ display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; margin-top:1.2rem; }
.dev-link{ word-break:break-all; font-size:.85rem; }
.who{ font-size:.9rem; color:var(--band-body); }
.footer-note{ color:var(--muted); font-size:.85rem; line-height:1.5; }
@media (max-width:720px){
  .table-fields, .table-fields thead, .table-fields tbody, .table-fields tr, .table-fields td, .table-fields th{ display:block; }
  .table-fields thead{ display:none; }
  .table-fields td{ border-bottom:0; padding:.3rem 0; }
  .table-fields td.rowlabel{ padding-top:.9rem; border-top:1px solid var(--line); }
  .table-fields td[data-col]::before{ content:attr(data-col); display:block; font-size:.78rem; color:var(--muted); margin-bottom:.2rem; }
  .rows li{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:720px){ .who{ display:none; } .nav-right .btn{ padding:.6rem .8rem; font-size:.85rem; } }
