.portal-body { min-height:100vh; }
.portal-header-label { color:var(--copper); font-size:9px; letter-spacing:.16em; margin-left:auto; margin-right:30px; }
.portal-wrap { width:min(1320px,calc(100% - 80px)); margin:0 auto; min-height:calc(100vh - 180px); }
.portal-main { padding:55px 0 75px; min-width:0; }
.portal-wrap.has-sidebar { display:grid; grid-template-columns:190px minmax(0,1fr); gap:45px; }
.admin-nav { padding-block:55px; border-right:1px solid var(--line); padding-right:22px; }
.admin-nav > a { display:flex; gap:12px; align-items:center; padding:14px 12px; margin-bottom:6px; font-size:12px; color:var(--muted); }
.admin-nav .icon { width:18px; height:18px; }
.admin-nav > a:hover { color:var(--paper); }
.admin-nav > a[aria-current] { background:#f0a2690b; border-left:1px solid var(--copper); color:var(--copper); }
.admin-nav > span { display:block; padding:29px 12px; margin-top:25px; border-top:1px solid var(--line); color:var(--quiet); font-size:7px; line-height:2; letter-spacing:.1em; }
.portal-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:33px; }
.portal-heading .eyebrow,.auth-panel > .eyebrow,.guest-portal > .eyebrow { color:var(--copper); font-size:9px; margin-bottom:15px; }
.portal-heading h1,.auth-panel h1,.guest-portal h1 { font-size:clamp(29px,3.2vw,42px); font-weight:500; letter-spacing:-.045em; margin-bottom:14px; }
.portal-heading p:not(.eyebrow) { font-size:13px; }
.portal-heading .button { font-size:10px; padding-inline:15px; white-space:nowrap; }
.portal-notice { background:#1e2118; border:1px solid #5c6541; padding:15px 18px; color:#d2ddb5; font-size:13px; margin-bottom:25px; }
.portal-notice.is-error,.form-error { background:#281a15; color:#ffb293; border:1px solid #7c4734; padding:15px; }
.auth-panel { width:min(460px,100%); margin:35px auto; border:1px solid var(--copper-line); background:linear-gradient(145deg,#34231622,transparent); padding:40px; }
.auth-panel .auth-symbol { width:29px; height:29px; color:var(--copper); margin-block:8px 27px; }
.auth-panel h1 { font-size:35px; }
.auth-panel > p:not(.eyebrow) { font-size:13px; margin-bottom:25px; }
.auth-panel > .button { margin-top:24px; }
.auth-form { display:grid; gap:19px; max-width:460px; }
.auth-form .button { justify-self:start; }
.auth-panel .auth-form .button { justify-self:stretch; }
.field { display:flex; flex-direction:column; gap:9px; min-width:0; font-size:12px; color:var(--muted); }
.field input,.field textarea,.field select { appearance:none; width:100%; background:#0c0d0b; border:1px solid #444137; color:var(--paper); border-radius:0; padding:12px 13px; font:inherit; font-size:14px; min-height:45px; line-height:1.5; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--copper); }
.field input[readonly] { color:var(--muted); font-size:11px; }
.field textarea { resize:vertical; }
.field select { padding-right:28px; background-image:linear-gradient(45deg,transparent 50%,#f0a269 50%),linear-gradient(135deg,#f0a269 50%,transparent 50%); background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px; background-size:5px 5px; background-repeat:no-repeat; }
.metrics { display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); margin-bottom:30px; }
.metric { display:flex; flex-direction:column; padding:24px 19px; border-right:1px solid var(--line); }
.metric:last-child { border:0; }
.metric > .icon { width:19px; height:19px; color:var(--copper); margin-bottom:20px; }
.metric strong { font-size:39px; line-height:1; margin-bottom:13px; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.metric > span { font-size:10px; color:var(--muted); }
.admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.admin-panel { border:1px solid var(--line); background:var(--surface); padding:28px; margin-bottom:24px; min-width:0; }
.admin-panel > .eyebrow { color:var(--copper); font-size:8px; margin-bottom:20px; }
.admin-panel h2 { font-size:25px; margin-bottom:20px; letter-spacing:-.035em; }
.admin-panel > p { font-size:12px; }
.admin-panel > .inline-link { margin-top:15px; }
.admin-panel > .small-tag { display:table; margin-top:20px; }
.next-step > div { display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.next-step .icon { color:var(--copper); }
.next-step h3 { font-size:16px; }
.fine-print { font-size:10px !important; color:var(--quiet); line-height:1.8; margin-top:16px; }
.create-codes { display:grid; grid-template-columns:minmax(160px,1fr) 100px auto; align-items:end; gap:18px; }
.create-codes .button { min-height:47px; }
.codes-toolbar { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-top:30px; }
.filter-form { display:flex; gap:12px; align-items:end; }
.filter-form .field { min-width:160px; }
.filter-form .button { min-height:47px; }
.export-actions { display:flex; gap:10px; flex-wrap:wrap; }
.export-actions .button { font-size:10px; padding-inline:13px; }
.export-warning { display:flex; gap:10px; align-items:flex-start; font-size:10px; color:var(--quiet); margin-block:22px; }
.export-warning .icon { width:14px; height:14px; margin-top:2px; color:var(--copper); }
.code-table-wrap { width:100%; overflow:auto; border:1px solid var(--line); }
.code-table { border-collapse:collapse; width:100%; text-align:left; font-size:11px; }
.code-table th { padding:14px 17px; font-size:9px; font-weight:400; letter-spacing:.04em; color:var(--quiet); white-space:nowrap; background:var(--surface); }
.code-table td { padding:17px; border-top:1px solid var(--line); vertical-align:middle; }
.code-table td > strong { display:block; min-width:130px; }
.code-table td > small { font-size:8px; color:var(--quiet); letter-spacing:.1em; }
.code-table .inline-link { font-size:10px; white-space:nowrap; }
.code-status { display:inline-flex; align-items:center; gap:6px; font-size:9px; padding:5px 9px; border:1px solid #424039; white-space:nowrap; }
.code-status::before { content:''; width:4px; height:4px; border-radius:50%; background:currentColor; }
.status-unused { color:var(--muted); }
.status-active { color:#ccd9a0; border-color:#4c5834; background:#4d602012; }
.status-blocked { color:#f9ad91; border-color:#694432; background:#7d3a2112; }
.muted { color:var(--quiet); }
.table-empty { text-align:center; padding-block:55px !important; }
.table-empty > .icon { color:var(--copper); width:30px; height:30px; margin-bottom:20px; }
.table-empty h3 { font-size:20px; margin-bottom:13px; }
.table-empty p { font-size:12px; }
.pagination { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-top:18px; font-size:11px; color:var(--quiet); }
.pagination > div { display:flex; gap:15px; }
.code-detail { display:grid; grid-template-columns:300px minmax(0,1fr); gap:24px; }
.code-visual { text-align:center; display:flex; align-items:center; flex-direction:column; }
.qr-image { width:230px; max-width:100%; height:auto; background:white; padding:0; }
.code-visual > p { font-size:10px; margin-top:22px; }
.code-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:20px; }
.code-actions .button { font-size:10px; padding-inline:14px; }
.access-data { margin:0 0 25px; }
.access-data > div { border-bottom:1px solid var(--line); padding:11px 0; display:flex; align-items:baseline; justify-content:space-between; gap:15px; }
.access-data dt { font-size:11px; color:var(--quiet); }
.access-data dd { margin:0; font-size:12px; text-align:right; }
.settings-form .admin-panel > .field { margin-top:22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.repeat-row { padding:20px; margin-bottom:20px; border:1px solid var(--line); display:grid; gap:17px; }
.remove-row { justify-self:end; }
.sticky-save { position:sticky; bottom:0; background:#12120ff5; border:1px solid var(--copper-line); padding:17px 20px; display:flex; align-items:center; justify-content:space-between; gap:15px; z-index:5; }
.sticky-save > p { font-size:10px; }
.sticky-save .button { white-space:nowrap; }
.security-list { display:grid; gap:13px; color:var(--muted); font-size:12px; }
.security-list li { padding-left:18px; position:relative; }
.security-list li::before { content:'·'; position:absolute; left:0; color:var(--copper); }
.guest-portal { max-width:800px; margin:15px auto; }
.guest-portal-heading { display:flex; gap:22px; align-items:flex-start; margin-block:30px 15px; }
.guest-portal-heading > .icon { width:45px; height:45px; color:var(--copper); stroke-width:1; margin-top:5px; }
.guest-portal-heading h1 { font-size:clamp(32px,4vw,46px); overflow-wrap:anywhere; }
.guest-portal > p { max-width:600px; font-size:14px; }
.guest-portal .code-status { margin-top:22px; }
.guest-portal > .auth-form { margin-top:30px; }
.guest-event-line { color:var(--muted); font-size:12px; line-height:2.5; margin-block:25px; }
.guest-event-line .icon { width:15px; height:15px; color:var(--copper); margin-right:8px; }
.guest-features { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:25px; }
.guest-features .admin-panel > .icon { color:var(--copper); width:27px; height:27px; }
.guest-features .status-tag { float:right; font-size:6px; }
.guest-features h2 { margin-top:24px; font-size:24px; }
.guest-portal > .inline-link { margin-top:25px; }
.portal-footer { border-top:1px solid var(--line); padding:24px; text-align:center; color:var(--quiet); font-size:9px; letter-spacing:.05em; }
.hero-intro { white-space:pre-line; }
.print-toolbar { padding-bottom:35px; }
.print-toolbar h1 { font-size:30px; margin-bottom:15px; }
.print-toolbar p { margin-bottom:20px; }
.print-toolbar .inline-link { margin-left:20px; }
.print-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.print-card { background:white; color:#111; text-align:center; padding:20px; border:1px solid #ccc; break-inside:avoid; }
.print-card > svg { width:180px; height:180px; max-width:100%; margin:10px auto; }
.print-card > p { font-size:9px; color:#333; letter-spacing:.12em; }
.print-card > h2 { font-size:17px; margin-bottom:10px; overflow-wrap:anywhere; }
.print-card > strong { color:#111; font-size:12px; display:block; }
.print-card > span,.print-card > small { display:block; color:#555; font-size:9px; margin-top:10px; }
@media(max-width:1100px){.portal-wrap.has-sidebar{grid-template-columns:160px minmax(0,1fr);gap:28px}.admin-nav{padding-right:12px}.metric{padding:20px 12px}.metric strong{font-size:34px}.create-codes{grid-template-columns:1fr 80px}.create-codes .button{grid-column:1/-1;justify-self:start}.code-detail{grid-template-columns:240px 1fr;gap:20px}.admin-panel{padding:24px}.code-table td,.code-table th{padding:14px 12px}.portal-heading{align-items:flex-start}.print-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.portal-wrap{width:calc(100% - 44px)}.portal-wrap.has-sidebar{display:block}.admin-nav{border:0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;padding:17px 0;gap:5px}.admin-nav > a{padding:9px 12px;margin:0;font-size:11px}.admin-nav > span{display:none}.admin-nav > a[aria-current]{border:0;border-bottom:1px solid var(--copper)}.admin-nav .icon{width:16px;height:16px}.portal-main{padding-top:35px}.metrics{grid-template-columns:repeat(3,1fr)}.metric{padding:20px}.metric:nth-child(4),.metric:nth-child(5){border-top:1px solid var(--line)}.metric:nth-child(3){border-right:0}.metric:nth-child(5){border-right:1px solid var(--line)}.code-detail{grid-template-columns:1fr 1.2fr}.portal-header-label{font-size:7px;margin-right:15px}.header-inner > .inline-link{font-size:10px}.print-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.portal-header-label{display:none}.header-inner > form,.header-inner > .inline-link{margin-left:auto}.portal-wrap{width:calc(100% - 36px)}.portal-main{padding-top:30px;padding-bottom:50px}.portal-heading{flex-direction:column;align-items:stretch;gap:13px}.portal-heading h1{font-size:33px}.portal-heading > .button{align-self:flex-start}.portal-heading .eyebrow{font-size:8px}.auth-panel{padding:28px 23px;margin:15px auto}.auth-panel h1{font-size:30px}.auth-form .button{width:100%}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:21px 17px;min-height:150px}.metric:nth-child(2n){border-right:0}.metric:nth-child(3){border-right:1px solid var(--line);border-top:1px solid var(--line)}.metric:nth-child(5){border-right:1px solid var(--line)}.metric strong{font-size:37px}.metric > span{font-size:10px}.admin-grid{grid-template-columns:1fr;gap:0}.admin-panel{padding:24px 20px}.admin-panel h2{font-size:25px}.create-codes{gap:16px}.create-codes .button{width:100%}.codes-toolbar{align-items:stretch}.filter-form{width:100%}.filter-form .field{flex:1}.export-actions{width:100%}.export-actions .button{flex:1;font-size:9px;padding-inline:9px;gap:8px}.code-table-wrap{border:0;overflow:visible}.code-table{display:block}.code-table thead{display:none}.code-table tbody{display:grid;gap:15px}.code-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);padding:12px}.code-table td{padding:8px;border:0;font-size:11px;min-width:0}.code-table td:first-child{grid-column:1/-1}.code-table td:last-child{grid-column:1/-1;border-top:1px solid var(--line);margin-top:5px;padding-top:10px}.code-table td:nth-child(4){font-size:9px;color:var(--quiet)}.code-table td.table-empty{grid-column:1/-1}.code-detail{grid-template-columns:1fr;gap:0}.code-visual .qr-image{width:230px}.code-actions{gap:10px}.code-actions .button{min-height:44px}.form-grid{grid-template-columns:1fr}.repeat-row{padding:17px}.sticky-save{flex-direction:column;align-items:stretch;padding:15px}.sticky-save .button{width:100%}.sticky-save p{font-size:9px}.guest-portal-heading{gap:15px}.guest-portal-heading > .icon{width:30px;height:30px}.guest-portal-heading h1{font-size:32px}.guest-portal > p{font-size:13px}.guest-features{grid-template-columns:1fr;gap:0}.print-grid{grid-template-columns:1fr}.print-toolbar .inline-link{margin-left:0;display:table;margin-top:15px}.admin-nav{gap:2px}.admin-nav > a{font-size:10px;gap:7px;padding:8px}.admin-nav .icon{width:14px;height:14px}}
@media print{@page{size:A4 portrait;margin:12mm}html{color-scheme:light}body{background:#fff !important;color:#000}body::before,.site-header,.portal-footer,.print-toolbar,.skip-link{display:none !important}.portal-wrap{width:100%;margin:0;display:block !important}.portal-main{padding:0}.print-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8mm}.print-card{border:1px dashed #aaa;padding:6mm;break-inside:avoid;min-height:100mm}.print-card > svg{width:46mm;height:46mm}.print-card > p{font-size:7pt}.print-card > h2{font-size:13pt}.print-card > small,.print-card > span{font-size:7pt}}
