/* Shared Lao red, blue and white palette. Layout stays with each business view. */
:root {
  --lao-red: #ce2b37;
  --lao-blue: #002868;
  --lao-white: #fff;
  --brand-action: #bc2438;
  --brand-action-hover: #d73347;
  --page-night: #071222;
  --panel-night: #102340;
  --panel-soft: #0b1b32;
  --panel-raised: #173456;
  --panel-line: #294361;
  --panel-radius: 16px;
  --control-radius: 11px;
  --focus-ring: #86afe8;
  --text-night: #f5f8ff;
  --text-muted-night: #b5c6dc;
}
:root{--ink:#172c4b;--muted:#60718a;--paper:#f2f5fb;--line:#d5dfec;--gold:var(--lao-blue);--dark:var(--lao-blue);--green:#208c59;--red:#b42339}*{box-sizing:border-box}body{margin:0;background:#edf2f9;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}.admin-topbar{height:62px;padding:0 max(18px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--lao-blue);color:#fff}.admin-brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--lao-white);color:var(--lao-blue);font-weight:900;font-size:22px}.admin-brand b,.admin-brand small{display:block}.admin-brand b{font-size:15px;letter-spacing:2px}.admin-brand small{margin-top:2px;color:#d4c7a7;font-size:10px}.view-site{color:#eddfb8;font-size:12px;text-decoration:none}.admin-main{max-width:1180px;margin:0 auto;padding:28px 20px 70px}.hidden{display:none!important}.eyebrow{color:#9c8050;font-size:9px;font-weight:850;letter-spacing:1.8px}.login-card{max-width:430px;margin:7vh auto;padding:28px;border:1px solid var(--line);border-radius:22px;background:white;box-shadow:0 14px 40px #38383812}.login-card h1,.page-title-row h1{margin:7px 0 4px;font-size:26px}.login-card p,.page-title-row p,.panel-heading p{margin:4px 0 17px;color:var(--muted);font-size:12px;line-height:1.5}.login-card label,.form-grid label{display:block;color:#405673;font-size:11px;font-weight:750}.login-card input,.form-grid input,.form-grid select,.form-grid textarea,.filter-row select,.filter-label select{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;outline-color:var(--gold)}.login-card .button{width:100%;margin-top:13px}.login-tip{margin-top:16px;padding:10px 11px;border-radius:10px;background:#edf2fa;color:#506681;font-size:10px;line-height:1.45}.feedback,.dashboard-feedback{min-height:17px;margin-top:8px;color:var(--red);font-size:11px}.page-title-row{display:flex;align-items:center;justify-content:space-between}.page-title-row p{margin-bottom:0}.button{min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.button.primary{border-color:var(--brand-action);background:var(--brand-action);color:white}.button.secondary{background:white;color:#405673}.button:disabled{opacity:.55;cursor:wait}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.stat{padding:15px;border:1px solid var(--line);border-radius:15px;background:white}.stat span,.stat b{display:block}.stat span{color:var(--muted);font-size:10px}.stat b{margin-top:6px;font-size:22px;color:var(--lao-blue)}.admin-tabs{display:flex;gap:7px;margin-bottom:12px}.admin-tab{padding:9px 14px;border:1px solid transparent;border-radius:99px;background:#e2eaf5;color:#6e675c;font:inherit;font-size:11px;cursor:pointer}.admin-tab.active{border-color:#dac99e;background:#fff;color:var(--lao-blue);font-weight:850}.panel{padding:18px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:0 8px 28px #38383808}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{margin:0;font-size:17px}.panel-heading p{margin:5px 0 0}.filter-row{margin:12px 0;display:flex;justify-content:flex-end}.filter-row label,.filter-label{font-size:10px;color:var(--muted)}.filter-row select,.filter-label select{display:inline-block;width:auto;margin:0 0 0 6px;padding:7px 10px}.listing-admin-list,.inquiry-list{display:grid;gap:9px}.admin-listing,.inquiry-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid #e0e7f0;border-radius:13px;background:#fafcff}.admin-listing img{width:76px;height:62px;border-radius:9px;background:#e9e3d8;object-fit:cover}.admin-copy h3{margin:0;font-size:13px}.admin-meta{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.4}.badge{display:inline-flex;margin:0 4px 0 0;padding:3px 7px;border-radius:99px;background:#e6eefb;color:#315683;font-size:9px;font-weight:800}.badge.draft{background:#f5e9e5;color:#985540}.row-actions{display:flex;gap:6px}.row-actions button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:white;color:#405673;font-size:10px;cursor:pointer}.row-actions button.delete{color:var(--red)}.inquiry-card{grid-template-columns:minmax(0,1fr) auto;align-items:start}.inquiry-card h3{margin:0;font-size:13px}.inquiry-card p{margin:6px 0;color:#405673;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.inquiry-card small{color:var(--muted);font-size:9px}.inquiry-card .row-actions{flex-direction:column}.empty-list{padding:28px 12px;text-align:center;color:var(--muted);font-size:12px}.modal-backdrop{position:fixed;z-index:8;inset:0;display:grid;place-items:center;padding:16px;background:#191713a6}.editor-modal{width:min(100%,760px);overflow:auto;padding:21px;border-radius:20px;background:var(--paper);box-shadow:0 20px 70px #0004}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:3px 0;font-size:19px}.icon-button{width:34px;height:34px;border:0;border-radius:50%;background:#ece7dc;color:#716a60;font-size:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid .wide{grid-column:1/-1}.form-grid textarea{resize:vertical;line-height:1.45}.upload-label input{padding:8px}.upload-label small{display:block;margin-top:5px;color:var(--muted);font-size:9px;font-weight:400}.photo-preview{display:flex;flex-wrap:wrap;gap:8px}.photo-preview img{width:92px;height:72px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}.form-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.toast{position:fixed;z-index:10;left:50%;bottom:25px;transform:translateX(-50%);padding:10px 15px;border-radius:99px;background:var(--lao-blue);color:#eddba9;font-size:11px;box-shadow:0 5px 20px #0003}@media(max-width:600px){.admin-main{padding:20px 12px 42px}.admin-topbar{padding:0 14px}.stats-grid{gap:6px}.stat{padding:11px}.stat b{font-size:18px}.panel{padding:12px}.panel-heading{align-items:flex-start}.panel-heading>.button{white-space:nowrap}.admin-listing{grid-template-columns:62px minmax(0,1fr);gap:8px}.admin-listing img{width:62px;height:58px}.row-actions{grid-column:2;justify-content:flex-start}.row-actions button{padding:7px 9px}.filter-row{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.editor-modal{padding:16px}.login-card{margin:5vh auto;padding:22px}} 

input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.service-config-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.service-config-form label { display:block; color:#405673; font-size:11px; font-weight:750; }
.service-config-form .wide { grid-column:1/-1; }
.service-config-form textarea { display:block; width:100%; margin-top:6px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font:inherit; font-size:12px; line-height:1.55; outline-color:var(--gold); resize:vertical; }
.service-config-form label small { display:block; margin-top:5px; color:var(--muted); font-size:9px; font-weight:400; line-height:1.5; }
.service-config-form .form-actions { align-items:center; justify-content:space-between; margin-top:2px; }
.config-saved { color:var(--muted); font-size:10px; }
.service-config-form input { display:block; width:100%; margin-top:6px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font:inherit; font-size:13px; outline-color:var(--gold); }
.service-config-form select { display:block; width:100%; margin-top:6px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); font:inherit; font-size:13px; outline-color:var(--gold); }
.lease-quote-ledger { overflow-x:auto; margin:12px 0 26px; color:var(--muted); font-size:11px; }
.lease-quote-ledger table { min-width:960px; }
.lease-quote-ledger td { white-space:nowrap; font-variant-numeric:tabular-nums; }
.lease-quote-ledger small { font-size:9px; }
.property-admin-form { margin: 22px 0; }
.property-admin-form > h3, #property-admin-result h3 { margin: 22px 0 12px; font-size: 15px; }
.property-admin-form h4, #property-admin-result h4 { margin: 19px 0 11px; font-size: 12px; }
.property-admin-rules { margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.property-admin-rules summary { cursor: pointer; font-size: 12px; color: #405673; }
.property-admin-rules > .service-config-form { margin-top: 15px; }
.property-admin-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 9px; margin: 12px 0; }
.property-admin-metrics > div { display: grid; gap: 9px; min-width: 0; padding: 14px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f5f8fd; }
.property-admin-metrics span { font-size: 10px; color: var(--muted); }
.property-admin-metrics strong { font-size: 20px; color: var(--lao-blue); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.property-admin-stage { padding: 12px; border-radius: 10px; color: var(--lao-blue); background: #e9f0fc; font-size: 12px; line-height: 1.8; }
.property-admin-table { overflow-x: auto; }
.property-admin-table table { min-width: 480px; }
.property-admin-outcomes { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-bottom: 13px; }
.property-admin-outcomes article { padding: 15px; border: 1px solid var(--line); border-radius: 10px; }
.property-admin-outcomes h4 { margin-top: 0 !important; }
.property-admin-outcomes p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.8; }
.property-admin-confirm { margin: 20px 0 10px; font-size: 12px; line-height: 1.8; }
.property-applications-header { padding-top: 26px; margin-top: 25px; border-top: 1px solid var(--line); }
.property-application-card { margin-top: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 13px; }
.property-application-card > p { color: var(--muted); font-size: 12px; line-height: 1.8; }
.property-application-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.property-application-heading h3 { margin: 10px 0 6px; font-size: 16px; }
.property-application-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.property-application-heading > strong { flex: none; font-size: 23px; color: var(--lao-blue); text-align: right; }
.property-application-heading small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; font-weight: 400; }
.property-application-description { white-space: pre-wrap; overflow-wrap: anywhere; }
.property-application-details { margin: 17px 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.property-application-details > summary { color: var(--lao-blue); cursor: pointer; font-size: 12px; }
.property-application-details h4 { margin: 19px 0 11px; font-size: 12px; }
.property-application-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 13px 12px; margin: 13px 0; }
.property-application-detail-grid dt { color: var(--muted); font-size: 10px; line-height: 1.7; }
.property-application-detail-grid dd { margin: 5px 0 0; color: #405673; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.property-application-note { color: var(--muted); font-size: 10px; line-height: 1.8; }
.property-application-files { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.property-application-files a { padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--lao-blue); background: #f5f8fd; font-size: 11px; text-decoration: none; overflow-wrap: anywhere; }
.property-application-files small { color: var(--muted); font-size: 9px; }
.property-application-footer { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.property-application-footer > small { flex: 1; color: var(--muted); font-size: 9px; line-height: 1.8; }
.property-application-footer label { color: var(--muted); font-size: 10px; }
.property-application-footer select { display: block; margin-top: 5px; padding: 7px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font-size: 12px; }
@media(max-width:420px) { .property-application-heading { flex-direction: column; }.property-application-heading > strong { text-align: left; } }
.pricing-config-form { padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.pricing-config-note { margin:0; padding:10px 12px; border-radius:10px; background:#edf2fa; color:#506681; font-size:11px; line-height:1.65; }
.pricing-config-form .pricing-config-note { margin-top:10px; }
.rental-rule-table { width:100%; margin:14px 0; border-collapse:collapse; font-size:12px; line-height:1.6; }
.rental-rule-table th,.rental-rule-table td { padding:9px 10px; border-bottom:1px solid var(--line); text-align:left; }
.rent-demo-check { display:flex!important; align-items:center; gap:8px; align-self:center; }
.rent-demo-check input { width:auto!important; margin:0!important; }
.rent-payment-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.rent-payment-preview>div { display:grid; gap:5px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#edf2fa; }
.rent-payment-preview span,.rent-payment-preview small { color:var(--muted); font-size:10px; }
.rent-payment-preview strong { color:#74582c; font-size:16px; overflow-wrap:anywhere; }
@media(max-width:600px){.service-config-form{grid-template-columns:1fr;gap:10px}.service-config-form .wide{grid-column:auto}.admin-tabs{flex-wrap:wrap}.service-config-form .form-actions{gap:10px;align-items:flex-start;flex-direction:column-reverse}}
.ladder-admin-rules { padding: 12px; border-radius: 10px; background: #f3f0e8; color: #736852; font-size: 11px; line-height: 1.8; }
.ladder-admin-projects { display: grid; gap: 9px; margin-top: 15px; }
.ladder-admin-project { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.ladder-admin-project h3 { margin: 0; font-size: 13px; }
.ladder-admin-project p { margin: 5px 0; color: #7a6b50; font-size: 11px; }
.ladder-admin-project small { color: var(--muted); font-size: 10px; line-height: 1.7; }
.ladder-admin-project button { flex: none; }
.ladder-admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--line); }
.ladder-admin-form .wide { grid-column: 1 / -1; }
.ladder-admin-form h3 { margin: 0 0 4px; font-size: 15px; }
.ladder-admin-form label { color: #405673; font-size: 11px; font-weight: 700; }
.ladder-admin-form input:not([type="checkbox"]), .ladder-admin-form textarea { display: block; width: 100%; margin-top: 6px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--ink); font: inherit; font-size: 12px; outline-color: var(--gold); }
.ladder-admin-form label small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.6; font-weight: 400; }
.ladder-admin-form textarea { resize: vertical; line-height: 1.7; }
.ladder-admin-check { display: flex; gap: 7px; align-items: center; }
@media(max-width:600px) { .ladder-admin-form { grid-template-columns: 1fr; } .ladder-admin-form .wide { grid-column: auto; } .ladder-admin-project { align-items: flex-start; flex-direction: column; } }

.project-flow-actions { flex-wrap: wrap; }
.property-report-download { display: block; margin: 12px 0; color: #9bdcf6; overflow-wrap: anywhere; }

.property-history-values { padding:12px; max-height:360px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:11px; background:#edf2fa; border-radius:10px; }
.admin-topbar { border-top: 3px solid var(--lao-red); }
.admin-tabs { flex-wrap: wrap; gap: 8px; }
.admin-tab { font-size: 14px; border-radius: 10px; padding: 10px 14px; }
.admin-tab.active { background: var(--lao-blue); border-color: var(--lao-blue); color: white; }
.admin-main { max-width: 1180px; }
.button, .row-actions button { min-height: 42px; font-size: 14px; }
.button.primary { background: var(--brand-action); border-color: var(--brand-action); color: white; box-shadow: none; }
.button.primary:hover { background: var(--brand-action-hover); }
.button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid #2162b6; outline-offset: 3px; }
.panel-heading p, .page-title-row p, .login-card p { font-size: 14px; line-height: 1.7; }
.service-config-form label, .form-grid label, .login-card label { font-size: 14px; }
.service-config-form input, .service-config-form select, .service-config-form textarea, .form-grid input, .form-grid select, .form-grid textarea { font-size: 15px; min-height: 44px; }
.login-tip, .feedback, .dashboard-feedback, .config-saved { font-size: 13px; line-height: 1.6; }
.operations-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 24px 0 12px; }
.operations-filters[hidden], .operations-pagination[hidden] { display: none; }
.operations-filters label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; }
.operations-search { flex: 1 1 220px; }
.operations-filters input, .operations-filters select { min-width: 0; width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 9px; background: white; padding: 9px 12px; color: var(--ink); font: inherit; font-size: 14px; }
.operations-list { display: grid; gap: 12px; }
.operations-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--line); border-radius: 13px; padding: 18px; background: #f8faff; }
.operations-row > div:first-child { min-width: 0; }
.operations-row h3 { margin: 9px 0; font-size: 17px; overflow-wrap: anywhere; }
.operations-row p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.operations-row small { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; }
.operations-row.is-hidden { border-style: dashed; background: #f3f5f9; }
.operations-row .row-actions { flex: none; flex-wrap: wrap; justify-content: end; }
.operations-row .badge { font-size: 12px; }
.operations-pagination { display: flex; gap: 10px; align-items: center; margin-top: 22px; font-size: 14px; color: var(--muted); }
.operations-pagination span { margin-right: auto; }
.operations-dialog { width: min(760px, calc(100% - 24px)); padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: white; color: var(--ink); }
.operations-dialog::backdrop { background: #07172ec9; }
.operations-dialog .panel-heading h2 { margin: 0; }
.operations-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 20px 0 28px; }
.operations-stats article { min-width: 0; padding: 20px; border: 1px solid var(--line); border-top: 3px solid var(--lao-blue); border-radius: 12px; background: #f6f9ff; }
.operations-stats span, .operations-stats small { color: var(--muted); font-size: 13px; }
.operations-stats strong { display: block; margin: 10px 0; color: var(--lao-blue); font-size: 25px; overflow-wrap: anywhere; }
.operations-stats small { display: block; }
.operations-shortcuts { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 30px; }
.operations-shortcuts button { flex: 1 1 180px; text-align: left; padding: 14px; }
.operations-history article { padding: 15px 0; border-bottom: 1px solid var(--line); }
.operations-history article > div { display: flex; flex-wrap: wrap; gap: 12px; font-size: 14px; }
.operations-history span, .operations-history small { color: var(--muted); }
.operations-history small { display: block; margin-top: 8px; font-size: 12px; overflow-wrap: anywhere; }
.operations-rate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 20px 0; }
.operations-rate-grid article { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.operations-rate-grid b { font-size: 13px; color: var(--muted); }
.operations-rate-grid span { font-size: 20px; color: var(--lao-blue); font-variant-numeric: tabular-nums; }
.operations-note { color: var(--muted); font-size: 14px; line-height: 1.8; }
@media (max-width: 600px) {
  .operations-row { flex-direction: column; align-items: stretch; padding: 15px; }
  .operations-row .row-actions { justify-content: start; }
  .operations-filters > label { flex: 1 1 130px; }
  .operations-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .operations-stats article { padding: 14px; }
  .operations-stats strong { font-size: 21px; }
  .operations-dialog { padding: 18px; }
  .page-title-row { align-items: start; gap: 12px; }
  .page-title-row h1 { font-size: 24px; }
}
/* One viewport contract for app browsers, keyboards, safe areas and dialogs. */
:root {
  --viewport-height: 100vh;
  --viewport-top: 0px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --page-gutter: 18px;
}
@supports (height: 100dvh) { :root { --viewport-height: 100dvh; } }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.app-shell {
  height: var(--viewport-height);
  top: var(--viewport-top);
  padding: var(--safe-top) max(var(--page-gutter), var(--safe-right)) calc(var(--ui-navigation-height) + 12px + var(--safe-bottom)) max(var(--page-gutter), var(--safe-left));
}
:where(dialog, .inquiry-modal, .editor-modal, .ladder-trade-dialog) {
  max-height: min(calc(var(--viewport-height) * var(--dialog-ratio, .92)), calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - var(--dialog-gap, 24px)));
}
:where(dialog) {
  position: fixed;
  top: calc(var(--viewport-top) + var(--safe-top));
  bottom: calc(100% - var(--viewport-top) - var(--viewport-height) + var(--safe-bottom));
}
.film-details { --dialog-ratio: .86; }
.ladder-trade-dialog { --dialog-ratio: .88; }
.operations-dialog { --dialog-ratio: .9; }
.editor-modal { --dialog-ratio: .94; }
.phonebook-form-dialog { --dialog-ratio: 1; --dialog-gap: 36px; }
.auction-payment-dialog { --dialog-ratio: 1; --dialog-gap: 32px; }
.modal-backdrop, .ladder-modal {
  top: var(--viewport-top);
  bottom: auto;
  height: var(--viewport-height);
  padding: max(12px, var(--safe-top)) max(12px, var(--safe-right)) max(12px, var(--safe-bottom)) max(12px, var(--safe-left));
}
.toast { max-width: calc(100% - 32px); white-space: normal; overflow-wrap: anywhere; }
@media (min-width: 700px) and (min-height: 500px) {
  .app-shell { height: min(900px, calc(var(--viewport-height) - 36px)); }
}
@media (max-height: 760px) { :root { --page-gutter: 14px; } }
@media (max-width: 360px) { :root { --page-gutter: 12px; } }
@media (max-width: 480px) { .anime-theatre { --dialog-ratio: .95; } }
@media (hover: none), (max-width: 699px) {
  :is(.app-shell, dialog, .admin-main) :is(input:not([type=checkbox], [type=radio], [type=range], [type=file]), select, textarea) { font-size: max(16px, 1rem); }
  .app-shell :is(.listing-card, .photo-stage, .opportunity-card, .opportunity-video-stage, .property-project-browser) { touch-action: pinch-zoom; }
}
