.public-content{padding-block:45px 70px;min-height:55vh}
.portal{padding-block:34px 65px;min-height:60vh}
.app-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-block:17px;border-bottom:1px solid var(--border)}
.app-nav a{font-size:.67rem;padding:6px 11px;border:1px solid transparent;border-radius:7px;color:var(--muted)}
.app-nav a:hover,.app-nav a.current{background:var(--pale);border-color:var(--border);color:var(--accent)}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:6px 0 28px}
.page-heading h1{font-size:2rem;line-height:1.5}
.back-link{font-size:.74rem;color:var(--muted)}
.panel{padding:27px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);margin-bottom:22px;min-width:0}
.panel h2{font-size:1.25rem;margin-bottom:14px;line-height:1.7}
.panel h3{font-size:1.06rem;margin-bottom:10px}
.muted{color:var(--muted);font-size:.81rem;line-height:2}
.hint{font-size:.68rem}
.notice{padding:13px 17px;background:var(--pale);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--surface));border-radius:9px;color:var(--text);font-size:.77rem;margin-bottom:20px;line-height:2}
.notice a{text-decoration:underline;text-underline-offset:4px}
.notice.error{border-color:#c67070;background:color-mix(in srgb,#c67070 9%,var(--surface))}
.notice.warning{border-color:#c59d53;background:color-mix(in srgb,#c59d53 9%,var(--surface))}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.full{grid-column:1/-1}
.field{display:block;color:var(--text);font-size:.74rem;min-width:0}
.field>span{display:block;margin-bottom:7px;color:var(--muted)}
.field input,.field select,.field textarea,.filter-row input,.filter-row select,.data-table input,.data-table select{width:100%;font:inherit;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 13px;background:var(--background);min-width:0;font-size:.79rem;line-height:1.7}
.field textarea{resize:vertical}
.field input:disabled,.field select:disabled{opacity:.55}
.checkbox-row{display:flex;gap:9px;align-items:center;font-size:.75rem;cursor:pointer}
.checkbox-row input{accent-color:var(--accent);width:15px;height:15px;margin:0;flex-shrink:0}
.check-grid{display:flex;flex-wrap:wrap;gap:12px 20px}
fieldset{border:1px solid var(--border);padding:18px;border-radius:10px;margin:0;min-width:0}
legend{font-size:.73rem;padding-inline:9px;color:var(--accent)}
.auth-panel{width:min(570px,100%);margin:15px auto 40px;padding:34px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
.auth-panel h1{font-size:1.9rem;line-height:1.6;margin:10px 0}
.auth-panel>.muted{margin:10px 0 25px}
.auth-panel .form-grid{grid-template-columns:1fr}
.registration-panel{width:min(830px,100%)}
.registration-panel .form-grid{grid-template-columns:1fr 1fr}
.auth-links{display:flex;justify-content:space-between;gap:20px;margin-top:26px;font-size:.74rem;color:var(--accent)}
.password-field{display:flex;align-items:stretch;border:1px solid var(--border);background:var(--background);border-radius:8px}
.password-field input{border:0;background:none;border-radius:8px}
.reveal-password{padding:0 14px;font-size:.65rem;flex-shrink:0;color:var(--accent)}
.registration-options{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:15px}
.registration-options label{border:1px solid var(--border);padding:11px 15px;border-radius:9px;font-size:.78rem;display:flex;align-items:center;gap:8px;cursor:pointer}
.registration-options label:has(input:checked){background:var(--pale);border-color:var(--accent)}
.registration-options input{accent-color:var(--accent)}
.avatar-options{display:flex;gap:13px}
.avatar-options label{display:flex;align-items:center;gap:8px;padding:11px 14px;background:var(--pale);border-radius:10px;font-size:.75rem;cursor:pointer}
.avatar-options input{accent-color:var(--accent)}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:26px}
.stat-card{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}
.stat-card small{display:block;color:var(--muted);font-size:.69rem}
.stat-card strong{display:block;color:var(--primary-ink);font-size:2.2rem;line-height:1.6;margin-top:8px}
.stat-card a{font-size:.64rem;color:var(--accent)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.toolbar,.filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.toolbar .btn{padding:10px 17px;font-size:.73rem}
.toolbar strong{margin-inline-end:auto}
.filter-row .field{min-width:130px;flex:1}
.filter-row .btn{align-self:end;font-size:.72rem;margin-bottom:1px}
.table-wrap{overflow-x:auto;max-width:100%}
.data-table{width:100%;border-collapse:collapse;text-align:right;font-size:.76rem;white-space:nowrap}
.data-table th{font-size:.65rem;font-weight:400;color:var(--muted);padding:12px;border-bottom:1px solid var(--border);background:var(--background)}
.data-table td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:middle}
.data-table tr:last-child td{border-bottom:0}
.data-table td.wrap-text{white-space:normal;min-width:180px;max-width:360px}
.data-table td small{display:block;color:var(--muted);font-size:.62rem}
.data-table a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.data-table form{display:flex;align-items:center;gap:7px}
.data-table .btn{padding:6px 11px;font-size:.62rem}
.data-table input{min-width:90px;max-width:180px;padding:7px}
.data-table select{max-width:150px;padding:7px}
.pill{display:inline-block;font-size:.61rem;line-height:1.8;border-radius:5px;padding:3px 8px;background:color-mix(in srgb,var(--primary) 8%,var(--surface));color:var(--primary-ink)}
.status-approved,.status-active,.status-ready,.status-available,.status-completed,.status-received{background:var(--pale);color:var(--accent)}
.status-expired,.status-damaged,.status-missing,.status-disabled,.status-rejected{background:color-mix(in srgb,#b75c61 10%,var(--surface));color:#b75c61}
.status-pending,.status-preparing,.status-trial,.status-maintenance,.status-counting{background:color-mix(in srgb,#b99550 10%,var(--surface));color:#a7843f}
.empty{text-align:center;padding:35px;color:var(--muted);font-size:.85rem}
.week-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;font-size:.71rem;table-layout:fixed}
.week-table th{padding:15px 7px;background:var(--background);color:var(--muted);font-size:.73rem;border-bottom:1px solid var(--border);border-inline-start:1px solid var(--border);font-weight:400}
.week-table th:first-child{width:80px;border-inline-start:0}
.week-table th small{display:block;font-size:.57rem;margin-top:6px;color:var(--muted)}
.week-table td{height:100px;vertical-align:top;padding:6px;border-inline-start:1px solid var(--border);border-bottom:1px solid var(--border)}
.week-table tbody th{background:var(--background);font-size:.62rem;vertical-align:middle}
.week-table tbody tr:last-child td,.week-table tbody tr:last-child th{border-bottom:0}
.booking-card{display:block;padding:8px;background:var(--pale);border-inline-start:3px solid var(--accent);border-radius:6px;margin-bottom:6px;font-size:.65rem;transition:background .2s}
.booking-card:hover{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}
.booking-card strong{display:block;font-weight:700}
.booking-card small{display:block;font-size:.59rem;color:var(--muted)}
.week-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:22px}
.week-controls .btn{font-size:.71rem;padding:8px 15px}
.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.detail-list dt{font-size:.65rem;color:var(--muted)}
.detail-list dd{margin:6px 0 0;font-size:.85rem}
.detail-list>div.full{grid-column:1/-1}
.plain-list{list-style:none;margin:0;padding:0}
.plain-list li{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--border);padding:12px 0;font-size:.76rem}
.plain-list li:last-child{border:0}
.plain-list small{font-size:.61rem;color:var(--muted)}
.notice p{white-space:pre-wrap}
.message-panel{border-inline-start:3px solid var(--accent)}
.account-dropdown{position:relative}
.account-dropdown summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;text-align:right}
.account-dropdown summary::-webkit-details-marker{display:none}
.account-dropdown small{display:block;font-size:.58rem;color:var(--muted);line-height:1.5}
.account-dropdown b{font-size:.71rem;font-weight:400}
.account-links{position:absolute;left:0;top:calc(100% + 15px);width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:10px;z-index:40}
.account-links a{display:block;padding:9px 12px;font-size:.74rem;border-radius:5px}
.account-links a:hover{background:var(--pale)}
.account-links .btn{width:100%;font-size:.65rem;padding:8px}
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;margin-top:38px}
.price-card{padding:30px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column}
.price-card.featured{border-color:var(--accent);background:var(--pale)}
.price-card h2{font-size:1.25rem;margin-bottom:12px}
.price-amount{font-size:2rem;line-height:1.8;margin-top:10px;color:var(--primary-ink)}
.price-amount small{font-size:.7rem;margin-inline-start:6px}
.price-card ul{margin:17px 0 25px;padding-inline-start:20px;font-size:.78rem;color:var(--muted);flex:1}
.price-card li{padding-block:6px}
.public-heading{text-align:center;max-width:650px;margin:15px auto 35px}
.public-heading h1{font-size:2.4rem;line-height:1.6}
.public-heading p{font-size:.87rem;color:var(--muted);margin-top:17px}
.section-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:23px}
.section-tabs a{border:1px solid var(--border);background:var(--surface);padding:8px 16px;border-radius:8px;font-size:.73rem}
.section-tabs a.current{border-color:var(--accent);color:var(--accent);background:var(--pale)}
.settings-details summary{cursor:pointer;font-size:.9rem;color:var(--accent)}
.settings-details[open] summary{margin-bottom:22px}
.ticket-message{border-bottom:1px solid var(--border);padding:18px 0}
.ticket-message p{white-space:pre-wrap;font-size:.86rem;line-height:2}
.ticket-message small{font-size:.66rem;color:var(--muted);display:block;margin-top:9px}
.action-danger{color:#b75c61;border-color:#b75c6133}
.session-current{font-size:.6rem;color:var(--accent)}
.color-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.color-fields input[type=color]{height:40px;padding:3px}
.reset-link{direction:ltr;overflow-wrap:anywhere;text-align:left;font-size:.75rem;background:var(--background);padding:12px;border-radius:7px}
.print-only{display:none}
@media(max-width:850px){.stats-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.price-grid{grid-template-columns:1fr 1fr}.price-grid .featured{grid-column:1/-1}.price-card{padding:25px}.page-heading h1{font-size:1.8rem}}
@media(max-width:600px){.portal{padding-block:22px 45px}.public-content{padding-block:25px 45px}.app-nav{gap:3px;padding-block:12px}.app-nav a{font-size:.6rem;padding:6px 8px}.page-heading{gap:12px;margin-bottom:22px}.page-heading h1{font-size:1.5rem}.back-link{font-size:.61rem}.panel{padding:20px 17px;margin-bottom:17px}.panel h2{font-size:1.1rem}.form-grid,.registration-panel .form-grid{grid-template-columns:1fr}.auth-panel{padding:26px 21px;margin-top:0}.auth-panel h1{font-size:1.6rem}.form-grid{gap:15px}.stats-grid{gap:12px}.stat-card{padding:18px}.stat-card strong{font-size:1.9rem}.stat-card small{font-size:.62rem}.notice{font-size:.7rem;padding:11px 14px}.data-table{font-size:.68rem}.data-table th{font-size:.58rem}.data-table td{padding:12px 9px}.detail-list{gap:15px}.detail-list dd{font-size:.74rem}.price-grid{grid-template-columns:1fr;gap:17px}.price-grid .featured{grid-column:auto}.public-heading h1{font-size:1.9rem}.price-card h2{font-size:1.1rem}.price-amount{font-size:1.8rem}.registration-options label{font-size:.68rem}.avatar-options{gap:7px;flex-wrap:wrap}.avatar-options label{font-size:.65rem;padding:9px}.account-dropdown b{font-size:.61rem;max-width:95px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-dropdown summary{gap:6px}.account-dropdown small{font-size:.5rem}.account-links{width:205px;left:-8px}.color-fields{grid-template-columns:1fr 1fr}.auth-links{font-size:.65rem}.toolbar .btn{font-size:.65rem;padding:8px 12px}}
@media print{.main-header,.utility-strip,.app-nav,.site-footer,.toolbar,.filter-row,.back-link,.no-print{display:none!important}.wrap{width:100%!important}.portal{padding:0}.panel{border:0;padding:0;box-shadow:none}.print-only{display:block}.data-table,.week-table{font-size:10pt;min-width:0}body{background:white!important;color:black!important;font-size:11pt}.week-table td{height:auto;min-height:60px}.booking-card{break-inside:avoid}.page-heading h1{font-size:18pt}table{break-inside:auto}tr{break-inside:avoid}a{color:black!important;text-decoration:none!important}}
