/* Portal-specific styles are kept separate from the shared workshop UI. */
:root { --portal-navy: #061a24; --portal-cyan: #10b8d8; --portal-ink: #071923; --portal-muted: #58707d; --portal-line: #dbe5e9; }
.portal-page { background:#fff; color:var(--portal-ink); }
.portal-page p { color:var(--portal-muted); }
.portal-page .portal-header { border-bottom:1px solid var(--portal-line); }
.portal-page .portal-header .wrap { min-height:78px; }
.portal-page .portal-nav { display:flex; align-items:center; gap:30px; margin-left:auto; color:var(--portal-ink); font-size:14px; font-weight:650; }
.portal-page .portal-brand { display:flex; align-items:center; gap:12px; font-size:18px; font-weight:800; letter-spacing:-.04em; }
.portal-page .portal-brand img { width:52px; height:52px; object-fit:contain; }
.portal-page .portal-button { background:var(--portal-navy); border-color:var(--portal-navy); color:#fff; border-radius:7px; }
.portal-page .portal-button:hover { background:#103241; color:#fff; }
.portal-page .portal-button.secondary { color:var(--portal-ink); border-color:#9eb2bb; background:#fff; }
.portal-page .portal-button.secondary:hover { background:#edf5f7; }
.portal-page .portal-hero { padding:80px 0 34px; }
.portal-page .portal-hero .wrap { display:grid; grid-template-columns:minmax(270px,.82fr) minmax(0,1.35fr); gap:72px; align-items:start; }
.portal-page .portal-intro { padding-top:36px; }
.portal-page .portal-intro h1 { max-width:460px; font-size:clamp(42px,4.7vw,70px); color:var(--portal-ink); }
.portal-page .portal-intro p { margin-top:22px; max-width:420px; font-size:18px; line-height:1.55; }
.portal-page .portal-kicker { width:42px; height:4px; background:var(--portal-cyan); margin-bottom:24px; }
.portal-page .portal-steps { list-style:none; padding:34px 0 0; margin:0; display:grid; gap:19px; }
.portal-page .portal-steps li { display:grid; grid-template-columns:48px 1fr; column-gap:15px; align-items:center; color:var(--portal-muted); }
.portal-page .portal-steps b { grid-row:span 2; width:44px; height:44px; display:grid; place-items:center; border:1px solid #c7d6dc; border-radius:50%; font-size:16px; color:#4d6672; }
.portal-page .portal-steps li:first-child b { color:#fff; background:var(--portal-cyan); border-color:var(--portal-cyan); }
.portal-page .portal-steps strong { color:var(--portal-ink); font-size:15px; }
.portal-page .portal-steps small { color:var(--portal-muted); font-size:13px; }
.portal-page .portal-form { color:var(--portal-ink); background:#fff; border:1px solid var(--portal-line); border-radius:10px; padding:28px; box-shadow:0 18px 45px rgba(4,35,49,.07); }
.portal-page .portal-form h2 { font-size:31px; color:var(--portal-ink); }
.portal-page .portal-form .panel-intro { color:var(--portal-muted); }
.portal-page .portal-form .service-option { color:var(--portal-ink); border-color:#d4e0e5; background:#fff; min-height:116px; }
.portal-page .portal-form .service-option:has(input:checked) { border-color:var(--portal-cyan); box-shadow:inset 0 0 0 1px var(--portal-cyan); }
.portal-page .portal-form .service-option input,.portal-page .portal-form .check input { accent-color:var(--portal-cyan); }
.portal-page .portal-form .service-option .icon,.portal-page .portal-form .upload-zone .icon { color:var(--portal-cyan); }
.portal-page .portal-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.portal-page .portal-form select,.portal-page .portal-form textarea { background:#fff; color:var(--portal-ink); border-color:#b9cbd2; }
.portal-page .portal-form input::placeholder,.portal-page .portal-form textarea::placeholder { color:#718995; }
.portal-page .portal-form .upload-zone { background:#fbfdfe; border-color:#bbd0d8; min-height:150px; }
.portal-page .portal-form .upload-zone:hover,.portal-page .portal-form .upload-zone.dragging { background:#effafd; border-color:var(--portal-cyan); }
.portal-page .portal-form .note { color:#42606e; background:#eef8fa; border-left-color:var(--portal-cyan); }
.portal-page .portal-form .error { color:#8a2638; background:#fff0f2; border-color:#e9acb8; }
.portal-page .portal-form .file-list li { border-color:#e0e9ec; }
.portal-page .portal-process { margin-top:50px; background:var(--portal-navy); color:#fff; padding:70px 0; }
.portal-page .portal-process p,.portal-page .portal-process small { color:#b9cbd4; }
.portal-page .portal-process h2 { color:#fff; max-width:550px; }
.portal-page .portal-process-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:65px; align-items:end; }
.portal-page .portal-process-list { list-style:none; padding:0; margin:34px 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.portal-page .portal-process-list li { border-top:1px dashed #6f939f; padding-top:18px; font-size:14px; }
.portal-page .portal-process-list b { display:block; color:#fff; font-size:15px; margin-bottom:7px; }
.portal-page .portal-process-art { width:100%; min-height:310px; object-fit:cover; object-position:center; border-radius:10px; opacity:.9; }
.portal-page footer { background:#fff; border-top:0; padding:28px 0; }
.portal-page footer p,.portal-page footer a { color:#58707d; }
@media(max-width:900px) { .portal-page .portal-hero .wrap,.portal-page .portal-process-grid { grid-template-columns:1fr; gap:35px; } .portal-page .portal-intro { padding-top:0; } .portal-page .portal-process-list { grid-template-columns:repeat(2,1fr); } }
@media(max-width:760px) { .portal-page .portal-nav { display:none; } .portal-page .portal-hero { padding:42px 0 20px; } .portal-page .portal-form { padding:20px; } .portal-page .portal-process { padding:52px 0; } }
.portal-page.order-body { background:#fff; color:var(--portal-ink); }
.portal-page.order-body header { border-bottom:1px solid var(--portal-line); }
.portal-page.order-body .brand-logo { width:58px; height:58px; object-fit:contain; }
.portal-page.order-body .page-heading { margin-top:52px; }
.portal-page.order-body .page-heading h1,.portal-page.order-body h2,.portal-page.order-body h3 { color:var(--portal-ink); }
.portal-page.order-body .order-step { color:var(--portal-muted); }
.portal-page.order-body .order-step.current { color:var(--portal-ink); }
.portal-page.order-body .order-step b { border-color:#c7d6dc; color:#526b77; }
.portal-page.order-body .order-step.current b { background:var(--portal-cyan); border-color:var(--portal-cyan); color:#fff; }
.portal-page.order-body .step-line { background:#d7e3e7; }
.portal-page.order-body .panel { background:#fff; border-color:var(--portal-line); box-shadow:0 18px 45px rgba(4,35,49,.06); }
.portal-page.order-body .panel p,.portal-page.order-body .sidebar p,.portal-page.order-body .sidebar small { color:var(--portal-muted); }
.portal-page.order-body .service-option { background:#fff; color:var(--portal-ink); border-color:#d4e0e5; }
.portal-page.order-body .service-option:has(input:checked) { border-color:var(--portal-cyan); box-shadow:inset 0 0 0 1px var(--portal-cyan); }
.portal-page.order-body .service-option input,.portal-page.order-body .check input { accent-color:var(--portal-cyan); }
.portal-page.order-body .service-option .icon,.portal-page.order-body .upload-zone .icon { color:var(--portal-cyan); }
.portal-page.order-body input:not([type=checkbox]):not([type=radio]):not([type=file]),.portal-page.order-body select,.portal-page.order-body textarea { background:#fff; border-color:#b9cbd2; color:var(--portal-ink); }
.portal-page.order-body .upload-zone { background:#fbfdfe; border-color:#bbd0d8; }
.portal-page.order-body .upload-zone:hover,.portal-page.order-body .upload-zone.dragging { background:#effafd; border-color:var(--portal-cyan); }
.portal-page.order-body .note { background:#eef8fa; border-left-color:var(--portal-cyan); color:#42606e; }
.portal-page.order-body .button { border-color:var(--portal-navy); background:var(--portal-navy); color:#fff; }
.portal-page.order-body .button.secondary,.portal-page.order-body .button.ghost { background:#fff; color:var(--portal-ink); border-color:#9eb2bb; }
.portal-page.order-body .error { color:#8a2638; background:#fff0f2; border-color:#e9acb8; }
