/* Shared customer/admin design, loaded after page-specific styles. */
.portal-page {
  --bg:#f4f7f6; --surface:#fff; --surface-soft:#f0f5f2;
  --border:#dce6e0; --text:#172a22; --text-muted:#60736a;
  --primary:#1c352b; --primary-hover:#284c3d; --border-focus:#4d8a68;
  --radius:20px; --radius-sm:10px; --shadow:0 4px 20px #1c463305;
  background:var(--bg); color:var(--text);
}
.portal-page .portal-main {padding:clamp(24px,3.2vw,56px); min-width:0}
.portal-page .portal-sidebar {background:#fff; border-color:var(--border); padding-top:30px}
.portal-page .portal-role {color:var(--text-muted);font-size:11px;font-weight:650;letter-spacing:.12em}
.portal-page .portal-nav a {border:1px solid transparent;transition:background .15s,color .15s;font-size:14px;min-height:46px}
.portal-page .portal-nav a:hover {background:#f0f6f3;color:#176646}
.portal-page .portal-nav a.active,.portal-page .portal-nav a[aria-current=page] {background:#eaf5ef;color:#176646;border-color:#cde6d7;font-weight:650}
.portal-page #account-nav a[href="/print/"] {margin-top:16px;background:var(--primary);color:#fff;text-align:center}
.portal-page #account-nav a[href="/print/"]:hover {background:var(--primary-hover)}
.portal-page .portal-logout {display:block;width:100%;box-sizing:border-box;text-align:left;margin-top:8px;padding:13px 14px;border:1px solid transparent;border-radius:10px;background:transparent;font:inherit;font-size:14px;line-height:1.5;min-height:46px;color:var(--text-muted);transition:background .15s,color .15s}
.portal-page .portal-logout:hover {background:#eaf0f6;border-color:#cddce8;color:#345a76}
.portal-page .portal-logout:focus-visible {outline:3px solid #527c9b;outline-offset:2px}
.portal-page .portal-main .portal-heading {
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin:0 0 28px;padding:clamp(24px,2.5vw,36px);
  background:linear-gradient(115deg,#fff 25%,#edf7f0);
  border:1px solid #d9e8df;border-radius:22px;
}
.portal-page .portal-heading>div {min-width:0}
.portal-page .portal-heading h1 {font-size:clamp(28px,2.6vw,40px);line-height:1.16;letter-spacing:-.035em;margin:0 0 12px}
.portal-page .portal-heading h1:last-child {margin-bottom:0}
.portal-page .portal-heading p,.portal-page .portal-heading .text-muted {max-width:850px;color:var(--text-muted);font-size:15px;line-height:1.7;margin:0}
.portal-page .portal-heading :is(.portal-eyebrow,.customer-eyebrow,.pricing-eyebrow,.eyebrow) {font-size:11px;font-weight:700;letter-spacing:.12em;color:#37725a;margin-bottom:12px}
.portal-page .portal-heading .detail-back {display:inline-block;font-size:13px;margin-bottom:16px;color:#3c6d56}
.portal-page .portal-heading :is(.admin-user,.account-user) {font-size:12px;color:var(--text-muted);overflow-wrap:anywhere}
.portal-page .portal-heading>.btn {flex-shrink:0}
.portal-page .portal-heading .customer-intro {margin-bottom:14px}
.portal-page .portal-main :is(.card,.shop-card,.order-card) {background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);min-width:0}
.portal-page .portal-main .shop-card {padding:28px;margin-bottom:24px}
.portal-page .portal-main :is(.card-body,.detail-summary,.timeline,.stat-card) {padding:26px}
.portal-page .portal-main :is(.admin-section-header,.account-section-header) {padding:24px 28px;border-bottom:1px solid var(--border)}
.portal-page .portal-main :is(.admin-section-header,.account-section-header) h2 {margin:0;font-size:21px}
.portal-page .portal-main h2 {font-size:21px;line-height:1.35;letter-spacing:-.02em}
.portal-page .portal-main h3 {font-size:17px;line-height:1.4}
.portal-page .portal-main .btn {min-height:46px;border-radius:10px;font-size:14px;font-weight:600;line-height:1.45;padding:12px 18px;white-space:normal;text-align:center}
.portal-page .portal-main .btn-primary {background:var(--primary);border-color:var(--primary);color:#fff}
.portal-page .portal-main .btn-primary:hover {background:var(--primary-hover);border-color:var(--primary-hover)}
.portal-page .portal-main .btn-secondary {background:#fff;color:var(--text);border:1px solid var(--border)}
.portal-page .portal-main .btn-secondary:hover {background:var(--surface-soft);border-color:#a5bdaf}
.portal-page .portal-main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]),select,textarea) {border-color:#d5e1da;border-radius:10px;background:#fff;color:var(--text);min-height:46px;font-size:16px;max-width:100%}
.portal-page .portal-main textarea {line-height:1.6}
.portal-page .portal-main label {font-size:13px;font-weight:600;color:var(--text);line-height:1.5}
.portal-page :is(a,button,input,select,textarea,summary):focus-visible {outline:3px solid #65a984;outline-offset:3px}
.portal-page .portal-main :is(.quiet,.text-muted,.form-help) {color:var(--text-muted);line-height:1.65}
.portal-page .portal-main th {background:#f2f7f4;color:var(--text-muted);font-size:12px;font-weight:600}
.portal-page .portal-main :is(th,td) {border-color:var(--border)}
.portal-page .portal-main table {font-size:14px}
.portal-page .portal-main :is(.order-controls,.order-filters,.user-actions,.quote-actions,.invoice-toolbar,.pricing-links) {gap:16px}
.portal-page .portal-main .notice {background:#eef5f1;border-color:#d5e5db;color:#355b46;border-radius:14px}
.portal-page .portal-main .stat-value {font-variant-numeric:tabular-nums}
.portal-page .portal-main :is(.table-wrap,.order-table-wrap) {max-width:100%}
@media(max-width:1100px) {
 .portal-page .portal-main .portal-heading {flex-wrap:wrap;align-items:flex-start}
 .portal-page .portal-heading>.admin-user {flex-basis:100%}
}
@media(max-width:900px) {
 .portal-page .portal-sidebar {padding:16px 24px}
 .portal-page .portal-main {padding:28px 24px}
}
@media(max-width:600px) {
 .portal-page .portal-main {padding:24px 16px}
 .portal-page .portal-sidebar {padding:14px 18px}
 .portal-page .portal-main .portal-heading {padding:24px 20px;border-radius:18px;gap:18px;margin-bottom:24px}
 .portal-page .portal-heading h1 {font-size:28px}
 .portal-page .portal-heading>.btn {width:100%}
 .portal-page .portal-main :is(.shop-card,.card-body,.detail-summary,.timeline,.stat-card,.admin-section-header,.account-section-header) {padding:20px}
 .portal-page .portal-main :is(.card,.shop-card,.order-card) {border-radius:18px}
 .portal-page .portal-heading .pricing-links {flex-wrap:wrap}
}
