:root {
  --navy: #111111;
  --navy-2: #2a2926;
  --blue: #9a7a32;
  --cyan: #e8c849;
  --gold: #c6a35f;
  --ink: #171715;
  --muted: #6e6a61;
  --line: #ddd8ca;
  --pale: #fff7d7;
  --paper: #ffffff;
  --bg: #f5f3ee;
  --success: #147c67;
  --danger: #b0443c;
  --shadow: 0 14px 40px rgba(11, 49, 93, .10);
  font-family: "Yu Gothic UI", "Yu Gothic", "Meiryo", system-ui, sans-serif;
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; font-size: 16px; line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.hidden { display: none !important; }
.muted { color: var(--muted); }

.public-view { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 42%) 1fr; background: var(--paper); }
.brand-panel { min-height: 100vh; padding: clamp(42px, 7vw, 88px); color: white; background: radial-gradient(circle at 12% 18%, rgba(232,200,73,.20), transparent 30%), linear-gradient(145deg, #080808, #1e1d1a 62%, #090909); display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.brand-panel::after { content: ""; width: 420px; height: 420px; position: absolute; right: -180px; bottom: -220px; border: 1px solid rgba(232,200,73,.35); border-radius: 50%; box-shadow: 0 0 0 55px rgba(232,200,73,.035), 0 0 0 110px rgba(232,200,73,.025); }
.brand-panel > *:not(.brand-person) { position: relative; z-index: 2; }
.brand-logo { width: min(265px, 64%); aspect-ratio: 2.82 / 1; border-radius: 4px; object-fit: cover; }
.brand-person { position: absolute; z-index: 1; right: -8%; bottom: 0; width: 54%; height: 86%; object-fit: cover; object-position: 50% 7%; mix-blend-mode: screen; opacity: .64; }
.brand-panel h1 { margin: 12px 0 20px; font-size: clamp(36px, 5vw, 66px); line-height: 1.18; letter-spacing: -.04em; }
.brand-panel > p:not(.eyebrow) { max-width: 330px; font-size: 17px; color: #eee9dc; }
.eyebrow, .section-kicker { margin: 0; font-size: 12px; line-height: 1.4; font-weight: 800; letter-spacing: .16em; color: var(--cyan); }
.brand-points { display: flex; gap: 8px; margin-top: 28px; flex-wrap: wrap; }
.brand-points span { padding: 5px 13px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #eaf5fb; font-size: 13px; }
.auth-panel { display: grid; place-items: center; padding: 40px 22px; background: linear-gradient(#fff, #f6f9fb); }
.auth-card { width: min(440px, 100%); }
.auth-card h2 { margin: 8px 0 4px; font-size: 30px; color: var(--navy); }
.auth-card form { display: grid; gap: 18px; margin-top: 28px; }
.security-note { margin-top: 20px; padding: 14px 16px; border-left: 3px solid var(--gold); color: var(--muted); background: #fbf8f1; font-size: 13px; }
.account-id-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.account-id-grid span { padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: #faf8f2; font-size: 12px; }
.account-id-grid b { display: block; color: var(--ink); }

label { display: grid; gap: 7px; color: #344456; font-size: 14px; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid #cbd7e1; border-radius: 10px; padding: 11px 12px; color: var(--ink); background: white; outline: none; transition: border-color .18s, box-shadow .18s; }
input:focus, select:focus, textarea:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(42,167,220,.14); }
textarea { resize: vertical; min-height: 84px; }
.required { display: inline; margin-left: 6px; color: var(--danger); font-size: 11px; }
.form-grid { display: grid; gap: 16px; align-items: start; }
.form-grid label { align-content: start; }
.form-grid label > input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), .form-grid label > select { align-self: start; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.span-two { grid-column: span 2; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 18px; border: 1px solid transparent; border-radius: 10px; text-decoration: none; font-weight: 800; cursor: pointer; transition: transform .16s, box-shadow .16s, background .16s; }
.button:hover { transform: translateY(-1px); }
.button:disabled { opacity: .55; cursor: wait; transform: none; }
.button.primary { color: #111; background: linear-gradient(135deg, var(--gold), #f0d75e); box-shadow: 0 8px 18px rgba(154,122,50,.22); }
.button.secondary { color: var(--navy); background: white; border-color: #b8cad9; }
.button.wide { width: 100%; }
.compact-button { min-height: 40px; padding: 7px 14px; }
.text-button { padding: 5px 0; border: 0; color: var(--blue); background: transparent; font-weight: 800; cursor: pointer; }
.icon-button { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--navy); font-size: 21px; }

.app-view { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 18px; display: flex; flex-direction: column; color: white; background: linear-gradient(180deg, #080808, #1d1c19 68%, #080808); z-index: 20; border-right: 3px solid var(--gold); }
.sidebar-logo { width: 45px; height: 49px; border-radius: 5px; object-fit: cover; }
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 28px; }
.sidebar-brand strong, .sidebar-brand span { display: block; line-height: 1.35; }
.sidebar-brand strong { font-size: 13px; }
.sidebar-brand span { color: #e9cf73; font-size: 15px; font-weight: 800; }
.sidebar nav { display: grid; gap: 7px; }
.sidebar-request-note { margin: 4px 10px 18px; color: #e6ddbf; font-size: 16px; line-height: 1.8; font-weight: 400; }
.nav-button { display: flex; gap: 12px; align-items: center; width: 100%; min-height: 47px; padding: 10px 13px; border: 0; border-radius: 11px; color: #e3dfd3; background: transparent; text-align: left; font-weight: 750; cursor: pointer; }
.nav-button span { width: 22px; color: #e5c85f; text-align: center; font-size: 19px; }
.nav-button:hover, .nav-button.active { color: white; background: rgba(255,255,255,.11); }
.nav-button.active { color: #111; background: linear-gradient(90deg, var(--gold), #efd75f); box-shadow: none; }
.nav-button.active span { color: #111; }
.sidebar-footer { margin-top: auto; display: grid; gap: 13px; }
.install-button { border: 1px solid rgba(255,255,255,.25); border-radius: 9px; padding: 8px; color: white; background: rgba(255,255,255,.08); cursor: pointer; }
.user-chip { display: flex; align-items: center; gap: 10px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.15); }
.user-chip strong, .user-chip small { display: block; }
.user-chip strong { font-size: 14px; }
.user-chip small { color: #d7c680; font-size: 12px; }
.avatar { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 50%; color: var(--navy); background: white; font-weight: 900; }
.sidebar-footer .text-button { justify-self: start; color: #e6d99e; font-size: 13px; }

.workspace { min-width: 0; }
.topbar { height: 82px; position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 16px; padding: 12px clamp(20px, 4vw, 52px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); backdrop-filter: blur(10px); }
.topbar > div { flex: 1; }
.topbar h2 { margin: 1px 0 0; color: var(--navy); font-size: 21px; line-height: 1.25; }
.content { width: min(1460px, 100%); margin: 0 auto; padding: 18px clamp(18px, 4vw, 52px) 90px; }
.view-section { animation: enter .22s ease; }
@keyframes enter { from { opacity: 0; transform: translateY(4px); } }
.welcome-row, .form-header, .panel-heading, .card-title.between, .result-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.welcome-row h3, .form-header h3 { margin: 0; color: var(--navy); font-size: 26px; }
.welcome-row p, .form-header p { margin: 3px 0 0; }
.date-badge { padding: 7px 12px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: white; font-size: 13px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0; }
.stat-card { text-align: center; min-height: 150px; padding: 24px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: 0 8px 28px rgba(11,49,93,.055); }
.stat-card span, .stat-card small { display: block; color: var(--muted); font-size: 13px; }
.stat-card strong { display: block; margin: 5px 0; color: var(--navy); font-size: 39px; line-height: 1.2; }
.stat-card.accent { color: white; border-color: transparent; background: linear-gradient(135deg, #111, #403b2b); box-shadow: inset 0 -5px 0 var(--gold); }
.stat-card.accent span, .stat-card.accent small, .stat-card.accent strong { color: white; }
.dashboard-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 18px; }
.action-panel, .recent-panel, .form-card, .result-panel { border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: 0 9px 28px rgba(11,49,93,.06); }
.action-panel { padding: 30px; display: grid; align-content: center; justify-items: start; min-height: 300px; background: radial-gradient(circle at 90% 0, rgba(42,167,220,.17), transparent 40%), white; }
.action-panel h3 { margin: 18px 0 3px; font-size: 23px; color: var(--navy); }
.action-panel p { margin: 0 0 22px; color: var(--muted); }
.action-symbol { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 19px; color: #111; background: linear-gradient(145deg, var(--gold), #f0dc73); font-weight: 900; }
.recent-panel { padding: 24px; }
.panel-heading h3, .panel-heading h4 { margin: 2px 0 0; color: var(--navy); }
.case-list { display: grid; margin-top: 14px; }
.case-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px 2px; border-top: 1px solid #e7edf2; cursor: pointer; }
.case-row:hover { background: #f8fbfd; }
.property-badge { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: var(--navy); background: var(--pale); font-size: 12px; font-weight: 900; }
.case-row strong, .case-row small { display: block; }
.case-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.case-row small { color: var(--muted); font-size: 12px; }
.empty { padding: 28px 10px; color: var(--muted); text-align: center; }

.form-header { margin-bottom: 10px; }
.status-pill, .confidence { display: inline-flex; padding: 5px 11px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.status-pill.draft { color: #74551e; background: #fff3d8; }
.status-pill.saved { color: #166856; background: #dff4ee; }
.form-card { margin-bottom: 10px; padding: 16px 20px; }
.card-title { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 10px; }
.card-title h4 { margin: 0; color: var(--navy); font-size: 18px; }
.card-title p { margin: 1px 0 0; color: var(--muted); font-size: 13px; }
.title-with-step { display: flex; gap: 13px; }
.step { flex: 0 0 31px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; color: white; background: var(--navy); font-size: 13px; font-weight: 900; }
.button-row { display: flex; gap: 9px; flex-wrap: wrap; }
.property-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.property-tabs label { display: block; cursor: pointer; }
.property-tabs label { position: relative; }
.property-tabs input { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.property-tabs span { display: block; padding: 18px; border: 1px solid var(--line); border-radius: 13px; color: var(--navy); background: #fbfdfe; font-size: 17px; font-weight: 900; transition: .18s; }
.property-tabs small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; font-weight: 500; }
.property-tabs input:checked + span { border-color: var(--cyan); background: var(--pale); box-shadow: inset 0 0 0 1px var(--cyan); }
.property-tabs input:focus-visible + span { outline: 3px solid rgba(42,167,220,.2); }
.income-box { margin: 18px 0; padding: 19px; border: 1px solid #dec970; border-radius: 13px; background: #fffaf0; }
.income-box h5 { margin: 0 0 14px; color: #1b1a17; font-size: 16px; }
.income-box label small { color: var(--muted); font-weight: 500; }
.document-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.document-box { display: grid; align-content: start; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fbfaf6; }
.document-heading { display: flex; gap: 11px; align-items: flex-start; }
.document-heading h5 { margin: 0; color: var(--navy); font-size: 16px; }
.document-heading p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.document-icon { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: var(--navy); background: var(--gold); font-weight: 900; }
.document-summary { display: grid; gap: 6px; padding: 12px; border-radius: 10px; background: white; border: 1px solid #d9c88f; }
.document-summary small { display: block; color: var(--muted); line-height: 1.5; }
.document-result-line { display: flex; justify-content: space-between; gap: 12px; color: var(--navy); }
.document-result-line span { color: var(--blue); font-weight: 900; }
.empty-summary { color: var(--muted); border-style: dashed; }
.warning-text { color: #9b4b20 !important; }
.small-button { margin-top: 5px; padding: 9px 12px; font-size: 12px; }
.location-status { display: flex; gap: 7px; flex-wrap: wrap; }
.location-status span { padding: 6px 9px; border-radius: 999px; color: var(--muted); background: #eceff2; font-size: 11px; font-weight: 800; }
.location-status span.confirmed { color: #0b6a52; background: #ddf3ed; }
.attachment-list { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 14px; }
#manage-attachments{margin-top:0}
#attachment-dialog .attachment-list{display:grid;padding:12px;gap:10px}
.attachment-choice{display:flex;align-items:center;gap:12px;padding:10px;border-bottom:1px solid #e5dfd3}
.attachment-choice input[type=checkbox]{width:20px;height:20px;margin:0}
.attachment-choice a{overflow-wrap:anywhere}
.attachment-list strong { color: var(--navy); font-size: 12px; }
.attachment-list a { padding: 7px 10px; border-radius: 8px; color: var(--blue); background: var(--pale); font-size: 12px; text-decoration: none; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.data-table { width: 100%; min-width: 1040px; border-collapse: collapse; }
.data-table.expanded { min-width: 1840px; }
.data-table th { padding: 10px 8px; color: white; background: var(--navy); font-size: 12px; text-align: left; white-space: nowrap; }
.data-table td { padding: 7px; border-top: 1px solid var(--line); background: white; }
.data-table td input, .data-table td select { min-width: 86px; padding: 8px; border-radius: 7px; font-size: 13px; }
.data-table td:nth-child(3) input { min-width: 210px; }
.data-table.expanded td:nth-child(3) input { min-width: 230px; }
.cell-stack { display: grid; gap: 5px; }
.cell-stack input { width: 100%; }
.remove-row { width: 32px; height: 32px; border: 0; border-radius: 7px; color: var(--danger); background: #fff1ef; cursor: pointer; }
.inline-fields { display: grid; grid-template-columns: minmax(260px, 420px) 1fr; gap: 18px; align-items: end; margin-top: 15px; }
.inline-fields p { margin: 0 0 8px; color: var(--muted); font-size: 12px; }
.adjustment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 20px; }
input[type="range"] { padding: 0; accent-color: var(--blue); }
output { color: var(--blue); font-size: 16px; font-weight: 900; }
.sticky-actions { position: sticky; bottom: 16px; z-index: 6; display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; padding: 13px; border: 1px solid rgba(190,204,216,.9); border-radius: 14px; background: rgba(255,255,255,.93); box-shadow: var(--shadow); backdrop-filter: blur(9px); }
.result-panel { margin-top: 24px; padding: 28px; border-top: 5px solid var(--cyan); }
.result-top h3 { margin: 2px 0; color: var(--navy); font-size: 25px; }
.confidence { color: var(--success); background: #ddf3ed; }
.main-price { padding: 27px 12px; text-align: center; }
.main-price span, .main-price small { display: block; color: var(--muted); }
.main-price strong { display: block; color: var(--blue); font-size: clamp(32px, 5vw, 52px); line-height: 1.3; }
.plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.plan-grid article { padding: 17px; border: 1px solid var(--line); border-radius: 12px; text-align: center; }
.plan-grid article.selected { border-color: var(--cyan); background: var(--pale); }
.plan-grid span, .plan-grid strong, .plan-grid small { display: block; }
.plan-grid span { color: var(--muted); font-size: 12px; }
.plan-grid strong { color: var(--navy); font-size: 21px; }
.plan-grid small { color: var(--muted); font-size: 11px; }
.reason-list { display: grid; gap: 8px; margin: 20px 0; padding: 18px; border-radius: 12px; background: #f7f9fb; }
.reason-list p { margin: 0; color: #435366; font-size: 14px; }
.result-actions { display: flex; justify-content: flex-end; gap: 10px; }
.version-panel { margin-top: 16px; padding: 22px 26px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: 0 9px 28px rgba(11,49,93,.06); }
.version-panel h4 { margin: 2px 0; color: var(--navy); }
.history-note { padding: 6px 10px; border-radius: 999px; color: var(--success); background: #ddf3ed; font-size: 12px; font-weight: 800; }
.version-list { display: grid; gap: 8px; margin-top: 14px; }
.version-row { display: grid; grid-template-columns: 72px 1fr auto; gap: 12px; align-items: center; padding: 11px 13px; border-radius: 10px; background: #f7f9fb; }
.version-row strong { color: var(--blue); }
.version-row span { color: #435366; font-size: 13px; }
.version-row small { color: var(--muted); text-align: right; }
.filter-row { display: flex; gap: 10px; margin: 18px 0; }
.filter-row input { flex: 1; }
.filter-row select { width: 220px; }
.case-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: white; }
.case-table { width: 100%; min-width: 820px; border-collapse: collapse; }
.case-table th, .case-table td { padding: 13px 15px; border-bottom: 1px solid var(--line); text-align: left; }
.case-table th { color: var(--muted); background: #f7f9fb; font-size: 12px; }
.case-table td { font-size: 14px; }
.case-table tr[data-id] { cursor: pointer; }
.case-table tr[data-id]:hover { background: #f5fafe; }
.admin-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 16px; }
.compact-form { display: grid; gap: 12px; }
.form-card h4 { margin-top: 0; color: var(--navy); }
.user-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.user-card { padding: 15px; border: 1px solid var(--line); border-radius: 11px; }
.user-card strong, .user-card span, .user-card small { display: block; }
.user-card span, .user-card small { color: var(--muted); font-size: 12px; }
.office-list { display: grid; gap: 9px; margin-bottom: 12px; }
.office-card { padding: 12px; border-left: 4px solid var(--gold); border-radius: 7px; background: #faf8f2; }
.office-card strong, .office-card span, .office-card small { display: block; }
.office-card span, .office-card small { color: var(--muted); font-size: 11px; }
.toast { position: fixed; top: 18px; left: 50%; z-index: 100; max-width: min(560px, calc(100vw - 32px)); padding: 12px 18px; border-radius: 10px; color: white; background: var(--navy); box-shadow: var(--shadow); opacity: 0; transform: translate(-50%, -12px); pointer-events: none; transition: .2s; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.error { background: var(--danger); }

.map-dialog { width: min(1040px, calc(100vw - 28px)); max-width: none; padding: 0; border: 0; border-radius: 18px; color: inherit; background: white; box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.map-dialog::backdrop { background: rgba(5,11,18,.72); backdrop-filter: blur(3px); }
.dialog-shell { padding: 22px; }
.dialog-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.dialog-header h3 { margin: 2px 0; color: var(--navy); }
.dialog-close { width: 40px; height: 40px; border: 0; border-radius: 50%; color: white; background: var(--navy); font-size: 23px; cursor: pointer; }
.dialog-help { margin: 10px 0 14px; color: var(--muted); font-size: 13px; }
.map-stage, .residential-map-stage { position: relative; min-height: 460px; overflow: hidden; border: 2px solid var(--gold); border-radius: 13px; background: #e8e5dc; }
.map-stage iframe { width: 100%; height: 520px; border: 0; }
.map-click-overlay { position: absolute; inset: 0; cursor: crosshair; background: rgba(255,213,0,.08); }
.center-cross { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: rgba(204,33,33,.88); border: 3px solid white; transform: translate(-50%,-50%); font-size: 20px; box-shadow: 0 2px 9px rgba(0,0,0,.4); }
.coordinate-row { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 10px 0; color: var(--muted); font-size: 12px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; }
.residential-map-stage { display: grid; place-items: center; overflow: auto; max-height: 64vh; padding: 8px; }
.map-image-wrap { position: relative; display: inline-block; line-height: 0; }
.map-image-wrap img { display: block; max-width: 100%; height: auto; cursor: crosshair; user-select: none; }
.map-marker { position: absolute; color: #d10f16; font-size: 30px; line-height: 1; transform: translate(-50%,-50%); text-shadow: 0 0 0 white, 0 1px 3px rgba(0,0,0,.65); pointer-events: none; }
.parcel-candidates { margin-top: 10px; padding: 10px; border-radius: 10px; background: #fff8dd; }
.parcel-candidates strong { display: block; margin-bottom: 7px; color: var(--navy); font-size: 12px; }
.parcel-candidates div { display: flex; flex-wrap: wrap; gap: 7px; }
.parcel-candidates button { padding: 7px 10px; border: 1px solid var(--gold); border-radius: 999px; color: var(--navy); background: white; cursor: pointer; }
.parcel-candidates button.selected { color: white; background: var(--navy); }

@media (max-width: 1000px) {
  .app-view { grid-template-columns: 84px minmax(0,1fr); }
  .sidebar { padding-inline: 12px; }
  .sidebar-brand { justify-content: center; padding-inline: 0; }
  .sidebar-brand > div:last-child, .nav-button:not(.active) { }
  .sidebar-brand > div:last-child, .nav-button { font-size: 0; }
  .nav-button { justify-content: center; }
  .nav-button span { font-size: 20px; }
  .user-chip > div, .sidebar-footer > .text-button { display: none; }
  .user-chip { justify-content: center; }
  .stats-grid { grid-template-columns: repeat(3, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .form-grid.three { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .user-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .document-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  body { font-size: 16px; }
  .public-view { grid-template-columns: 1fr; }
  .brand-panel { min-height: auto; padding: 32px 24px; }
  .brand-panel h1 { font-size: 33px; margin: 8px 0 12px; }
  .brand-panel > p:not(.eyebrow) { display: none; }
  .brand-person { display: none; }
  .brand-logo { width: 190px; }
  .brand-points { margin-top: 14px; }
  .brand-mark { width: 56px; height: 56px; border-radius: 16px; font-size: 19px; }
  .auth-panel { padding: 34px 22px 70px; place-items: start center; }
  .app-view { display: block; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: 260px; transform: translateX(-102%); transition: transform .2s; box-shadow: 15px 0 45px rgba(0,0,0,.22); }
  .sidebar.open { transform: translateX(0); }
  .sidebar-brand > div:last-child, .nav-button { font-size: inherit; }
  .nav-button { justify-content: flex-start; }
  .user-chip > div, .sidebar-footer > .text-button { display: block; }
  .user-chip { justify-content: flex-start; }
  .topbar { height: 72px; padding: 9px 14px; }
  .icon-button { display: inline-grid; place-items: center; flex: 0 0 42px; }
  .topbar .compact-button { width: 43px; padding: 0; font-size: 0; border-radius: 50%; }
  .topbar .compact-button::first-letter { font-size: 20px; }
  .content { padding: 22px 14px 80px; }
  .welcome-row, .form-header { align-items: flex-start; }
  .welcome-row .date-badge { display: none; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-card { min-height: 130px; padding: 18px; }
  .stat-card:first-child { grid-column: span 2; }
  .form-card { padding: 18px 15px; border-radius: 14px; }
  .form-grid.two, .form-grid.three, .admin-grid, .adjustment-grid { grid-template-columns: 1fr; }
  .span-two { grid-column: auto; }
  .property-tabs { grid-template-columns: repeat(2, 1fr); gap: 7px; }
  .property-tabs span { padding: 13px 8px; font-size: 15px; text-align: center; }
  .property-tabs small { font-size: 10px; }
  .card-title.between { align-items: flex-start; flex-direction: column; }
  .button-row { width: 100%; }
  .button-row .button { flex: 1; padding-inline: 10px; font-size: 13px; }
  .inline-fields { grid-template-columns: 1fr; }
  .sticky-actions { bottom: 9px; }
  .sticky-actions .button { flex: 1; }
  .plan-grid { grid-template-columns: 1fr; }
  .result-actions { flex-direction: column; }
  .filter-row { flex-direction: column; }
  .filter-row select { width: 100%; }
  .user-list { grid-template-columns: 1fr; }
  .dialog-shell { padding: 14px; }
  .map-stage, .residential-map-stage { min-height: 330px; }
  .map-stage iframe { height: 420px; }
  .dialog-actions .button { flex: 1; padding-inline: 9px; }
}

@media print {
  .sidebar, .topbar, .sticky-actions { display: none !important; }
  .app-view { display: block; }
  .content { padding: 0; }
  .form-card, .result-panel { box-shadow: none; }
}

@media (max-width:720px) {
  .topbar .compact-button::before {content:'＋';font-size:25px;line-height:1;}
  #comparable-card .table-scroll {overflow:visible;}
  #comparable-card .data-table {min-width:0;width:100%;display:block;}
  #comparable-card thead {display:none;}
  #comparables-body {display:grid;gap:18px;}
  #comparables-body tr {display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px;border:1px solid #d5c793;border-radius:12px;background:#fffdf5;}
  #comparables-body td {display:block;width:auto;min-width:0;border:0;padding:0;}
  #comparables-body td:nth-child(3),#comparables-body td:nth-child(9) {grid-column:span 2;}
  #comparables-body td::before {content:attr(data-label);display:block;font-size:11px;font-weight:600;margin-bottom:4px;}
  #comparables-body input,#comparables-body select {min-width:0;width:100%;font-size:16px;}
  .case-table {min-width:0;display:block;}
  .case-table thead {display:none;}
  .case-table tbody {display:grid;gap:12px;padding:10px;}
  .case-table tr {display:grid;grid-template-columns:1fr 1fr;border:1px solid #ddd;border-radius:10px;padding:8px;}
  .case-table td {padding:6px;border:0;}
  .case-table td:nth-child(4) {grid-column:span 2;font-weight:700;}
}

.renovation-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid #ddd}.renovation-result{padding:12px 0;border-bottom:1px solid #ccc}.renovation-result p{font-size:14px;line-height:1.7}@media(max-width:700px){.renovation-row{grid-template-columns:1fr 1fr}.renovation-row>label:first-child{grid-column:1/-1}}

#market-candidates{max-height:55vh;overflow:auto}.market-candidate{display:flex;flex-direction:row;gap:14px;padding:14px;border-bottom:1px solid #ddd;line-height:1.7}.market-candidate input{width:20px;min-width:20px;height:20px;margin-top:5px}
.reins-intake{grid-column:1/-1;margin:24px 0;padding:24px;background:#f5f2e9;border:1px solid #c8b77b}.reins-card{margin:16px 0;padding:20px;background:white;border:1px solid #d6d2c6}.reins-card>label{display:block;margin:12px 0}.reins-card input[type=checkbox]{width:auto;margin-right:8px}[hidden]{display:none!important}
@font-face{font-family:HMPrice;src:url(/static/assets/fonts/NotoSansJP-900.ttf) format("truetype");font-weight:900;font-display:swap}.main-price strong,.main-price small,.price-plans strong{font-family:HMPrice,sans-serif;font-weight:900}.individual-intake{grid-column:1/-1;padding:20px;border:1px solid #c8b77b}.individual-intake summary{font-weight:700;padding:16px;cursor:pointer}.individual-row{padding:12px 0;border-top:1px solid #ddd}

.app-version { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.2); color: #d5c99f; font-size: 12px; line-height: 1.6; text-align: center; }
.branch-home{display:flex;align-items:center;gap:28px;padding:24px;margin-bottom:24px;background:#fff;border:1px solid #d8cba0;border-radius:16px}.branch-home img{width:190px;height:130px;object-fit:cover;border-radius:8px}.branch-home h2{margin:0 0 10px}.branch-home p{margin:0}@media(max-width:600px){.branch-home{gap:16px;padding:16px}.branch-home img{width:110px;height:90px}}
.file-drop{margin-top:12px;padding:20px 12px;border:2px dashed #b49a59;border-radius:10px;text-align:center;background:#fffdf6;color:#484333;cursor:pointer;transition:background .15s,border-color .15s}.file-drop small{display:block;margin-top:6px;color:#6d6759}.file-drop.drag-over,.file-drop:focus-visible{background:#efe5c8;border-color:#735c24;outline:2px solid #b49a59;outline-offset:2px}
.input-help-button{margin-left:14px;padding:5px 14px;border:1px solid #ad9252;border-radius:20px;background:#fffaf0;color:#5b471d;font-size:13px;font-weight:700;cursor:pointer;vertical-align:middle;white-space:nowrap}
.input-help-button:hover{background:#f0e5ca}.input-help-button:focus-visible{outline:3px solid #315c88;outline-offset:2px}.input-help-label{display:flex;justify-content:flex-end;margin-top:12px}
.input-help-dialog{width:min(740px,calc(100vw - 32px));max-height:85vh;padding:0;border:1px solid #c8b77b;border-radius:16px;color:#202320;background:#fff;box-shadow:0 24px 80px #0005}
.input-help-dialog::backdrop{background:#0007}.input-help-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;background:#f6f2e8;border-bottom:1px solid #ded5bf}.input-help-dialog h2{margin:0;font-size:21px}.input-help-dialog header button{flex-shrink:0}.input-help-dialog ol{max-height:55vh;overflow:auto;margin:0;padding:24px 30px 24px 54px;font-size:16px;line-height:1.9}.input-help-dialog li{padding-left:5px;margin-bottom:16px}.input-help-dialog li:last-child{margin-bottom:0}.input-help-dialog footer{padding:16px 26px;text-align:right;border-top:1px solid #e8e1d3}
.change-body{padding:24px;max-height:68vh;overflow:auto}.change-body label{display:block;margin:14px 0}.change-body textarea{width:100%}#change-preview{max-width:100%;max-height:240px;object-fit:contain}.change-entry{padding:16px 0;border-bottom:1px solid #ded5bf;overflow-wrap:anywhere}.change-entry p{white-space:pre-wrap}.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1100px){.dashboard-grid{grid-template-columns:1fr}}

.data-source-credit{font-size:11px;line-height:1.7;color:#66675f;padding:12px 4px;margin:8px 0 20px;}
/* Keep the missing-input location visible after the toast disappears. */
.appraisal-error { outline: 2px solid #ba302c !important; outline-offset: 3px; scroll-margin-block: 90px; }
.appraisal-error-message { border: 2px solid #ba302c; border-radius: 8px; color: #9d2420; background: #fff5f4; padding: 12px 16px; }
.shape-catalog-dialog { width: min(1100px, 94vw); max-height: 88vh; overflow:auto; border:1px solid #b49a59; border-radius:14px; padding:24px; }
.shape-catalog-dialog header { display:flex; justify-content:space-between; align-items:center; position:sticky; top:-24px; padding:12px 0; background:white; z-index:1; }
.shape-catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-top:20px; }
.shape-catalog-choice { display:flex; flex-direction:column; padding:12px; border:1px solid #c8c1af; background:white; border-radius:8px; cursor:pointer; text-align:left; }
.shape-catalog-choice:hover,.shape-catalog-choice:focus-visible { outline:2px solid #a78a3f; }
.shape-catalog-choice img { width:100%; height:190px; object-fit:contain; }
@keyframes fetch-attention-pulse { 0%,100% { box-shadow:0 0 0 0 #c7a34b; background:#fff8df; } 50% { box-shadow:0 0 0 5px #c7a34b66; background:#ffe294; } }
.fetch-attention { animation:fetch-attention-pulse 1.8s ease-in-out infinite; border:2px solid #b58a25 !important; }
@media (prefers-reduced-motion:reduce) { .fetch-attention { animation:none; background:#ffe294; outline:3px solid #c7a34b; } }

#comparable-card .table-scroll { display:none; }
#comparable-card.town-auto #mlit-fetch, #comparable-card #add-comparable { display:none; }
#comparable-card.town-auto label:has([name="market_district"]), #comparable-card.town-auto label:has([name="market_quarters"]) { display:none; }
#version-panel { display:none !important; }
.appraisal-error { outline:4px solid #c91414 !important; outline-offset:3px; background-color:#fff0f0 !important; box-shadow:0 0 0 8px #d7191929 !important; }
section.appraisal-error::before { content:'⚠ 要確認'; display:block; width:fit-content; background:#bb1010; color:#fff; font-weight:700; padding:7px 16px; border-radius:6px; margin-bottom:14px; }
.appraisal-error-message { color:#a30000 !important; font-weight:700; font-size:16px; background:#ffe4e4; padding:14px; border-left:6px solid #bb1010; }

/* Readable Japanese type, using bundled fonts without external requests. */
@font-face{font-family:HMUI;src:url(/static/assets/fonts/NotoSansJP-450.ttf) format("truetype");font-weight:400 500;font-display:swap}
@font-face{font-family:HMUI;src:url(/static/assets/fonts/NotoSansJP-700.ttf) format("truetype");font-weight:600 800;font-display:swap}
:root{font-family:HMUI,"Meiryo",sans-serif;color:#30352f}
body{font-size:17px;line-height:1.8}
#appraisal-form label,#appraisal-form input,#appraisal-form select,#appraisal-form textarea{font-size:16px}
#appraisal-form p,.muted{font-size:15px;line-height:1.85}
.input-help-button{font-size:14px}.input-help-dialog ol{font-size:17px}
.optional-market{margin:18px 0}.optional-market summary{cursor:pointer;color:#72591f;padding:12px;background:#faf6eb;border-radius:12px}
.input-help-dialog section{margin:20px;padding:20px;border:1px solid #e0dacd;border-radius:14px}
.input-help-dialog>p{margin:20px}.input-help-dialog input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:10px}
.comparable-details{display:grid;grid-template-columns:120px 1fr;gap:8px 16px;font-size:15px}.comparable-details dt{color:#666}.comparable-details dd{margin:0}
.help-visual-item{list-style:none}.help-figure{display:flex;gap:24px;margin:12px 0 24px;padding:20px 12px;background:#f6f4ed;border-radius:16px;counter-reset:steps}
.help-figure>div{position:relative;flex:1;text-align:center;padding:14px 5px;background:white;border:1px solid #dfd7bc;border-radius:14px;counter-increment:steps}
.help-figure>div:not(:last-child)::after{content:'→';position:absolute;right:-23px;top:35%;color:#a28542;font-size:22px}
.help-figure span{display:block;color:#8f7231;font-size:36px;line-height:1.5}.help-figure strong{display:block;font-size:14px;line-height:1.6}
@media(max-width:550px){.help-figure{gap:16px;padding:12px 4px}.help-figure strong{font-size:12px}.help-figure>div:not(:last-child)::after{right:-16px;font-size:16px}.comparable-details{grid-template-columns:90px 1fr}}

/* Rounded navigation and larger home text. */
@font-face{font-family:HMMaru;src:url(/static/assets/fonts/KosugiMaru-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
.sidebar{font-family:HMMaru,HMUI,sans-serif}
.sidebar .nav-button{font-family:inherit;font-size:20px;font-weight:400;min-height:56px;line-height:1.6}
.sidebar-brand strong{font-size:16px;font-weight:400}.sidebar-brand span{font-size:18px;font-weight:400}
#view-dashboard .welcome-row p,#view-dashboard .action-panel p{font-size:17px;line-height:1.8}
#view-dashboard .stat-card span,#view-dashboard .stat-card small{font-size:16px}
#view-dashboard .case-row strong{font-size:17px;white-space:normal;overflow-wrap:anywhere;line-height:1.65}
#view-dashboard .case-row small{font-size:15px;line-height:1.7}
#view-dashboard .property-badge{font-size:14px;min-width:42px}
#view-dashboard .case-row{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:16px 2px}
#view-dashboard .case-row>small:last-child{grid-column:2;font-size:15px;line-height:1.7}
#view-dashboard .change-entry,#view-dashboard .empty{font-size:17px}
@media(min-width:701px) and (max-width:1000px){.app-view{grid-template-columns:216px minmax(0,1fr)}.sidebar .nav-button{justify-content:flex-start;font-size:19px}.sidebar-brand{gap:8px}.sidebar-brand strong{font-size:14px}}

.source-mode-options{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0}
.source-mode-options>label,.source-mode-options>article{flex:1;min-width:220px;border:2px solid #cbb982;border-radius:14px;padding:18px;background:#fff;font-size:18px;cursor:pointer}
.source-mode-options>label:has(input:checked),.source-mode-options>.source-selected{background:#fff3c8;border-color:#927126}
#appraisal-form .source-mode-options>label{display:flex;align-items:center;gap:10px}
#appraisal-form .source-mode-options input[type=radio]{appearance:none;-webkit-appearance:none;display:grid;place-content:center;flex:0 0 18px;width:18px;height:18px;min-height:0;margin:0;padding:0;border:1.5px solid #8b8167;border-radius:3px;background:#fff;cursor:pointer}
#appraisal-form .source-mode-options input[type=radio]::before{content:'';width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg);visibility:hidden}
#appraisal-form .source-mode-options input[type=radio]:checked{background:#937634;border-color:#937634}
#appraisal-form .source-mode-options input[type=radio]:checked::before{visibility:visible}
#appraisal-form .source-mode-options input[type=radio]:focus-visible{outline:3px solid #bba667;outline-offset:3px}

#appraisal-form input:not([type=radio]):not([type=checkbox]):not([type=range]),#appraisal-form select,#appraisal-form textarea{background-color:#fff}
#appraisal-form .auto-filled{background-color:#edf5fa!important;border-color:#b8cfdf}
.field-color-guide{padding:14px 18px;background:#f4f8fb;border-radius:12px;font-size:16px;color:#33475b}
.document-guide{margin:12px 0 18px;padding:12px 18px;border:1px solid #dfd7c8;border-radius:14px;background:#fff}
.document-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}
.document-guide>summary::-webkit-details-marker{display:none}
.document-guide>summary::marker{content:''}
.document-guide>summary h3{font-size:22px;margin:0}
.document-guide-arrow{font-size:18px;color:#937634;transition:transform .15s}
.document-guide[open] .document-guide-arrow{transform:rotate(180deg)}
.document-guide>summary:focus-visible{outline:3px solid #937634;outline-offset:6px;border-radius:4px}
.document-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.corrected-map-preview h5{font-size:20px;margin:0 0 12px}
#registration-card>.corrected-map-preview{margin-top:16px}
#registration-card>.document-grid{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
#registration-card{padding:12px 16px}
#registration-card .document-box{min-width:0;gap:8px;padding:14px}
#registration-card .document-heading{gap:8px}
#registration-card .document-heading p{margin-top:2px;line-height:1.5}
#registration-card .document-icon{flex-basis:32px;width:32px;height:32px}
#registration-card .file-drop{margin-top:2px;padding:10px 12px}
#registration-card .file-drop small{margin-top:2px}
#registration-card .document-summary{padding:4px 0;gap:4px;border:0;border-radius:0;background:transparent}
#registration-card .document-summary>p{margin:2px 0 6px;line-height:1.5}
#registration-card .document-summary>details{min-width:0}
#registration-card .document-summary>details>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 0;cursor:pointer}
#registration-card #registration-batch-status{margin:2px 0;line-height:1.5}
#registration-card .location-status span{padding:4px 8px}
#registration-card .small-button{margin-top:2px}
#registration-card #apply-registration-result{font-size:inherit}
@media(max-width:760px){#registration-card>.document-grid{grid-template-columns:1fr}}
.corrected-map-preview .corrected-map-status{font-size:15px;line-height:1.7;color:#52616b}
.corrected-map-image{text-align:center}
.corrected-map-image .map-image-wrap{max-width:100%}
.corrected-map-image img{max-height:620px;width:auto;cursor:default}
.corrected-map-image .map-marker{font-size:24px;color:#df1d24;-webkit-text-stroke:2px white;filter:drop-shadow(0 1px 2px #555)}
.document-guide-grid article{padding:22px;border-radius:15px}
.document-required{background:#f2f7fb;border:2px solid #adc5d8}
.document-recommended{background:#fffcf3;border:2px solid #ddc889}
.document-guide-grid h4{font-size:21px;margin:0 0 16px}
.document-guide-grid ol{list-style:none;padding:0;margin:0}
.document-guide-grid li{margin:16px 0}
.document-guide-grid strong,.document-guide-grid span{display:block;font-size:18px;line-height:1.7}
.document-guide-grid span,.document-guide-grid p{font-size:16px;color:#52616b}
@media(max-width:760px){.document-guide-grid{grid-template-columns:1fr}}

/* Compact screen spacing; retain text sizes and usable controls. */
@media screen {
  #appraisal-form .form-grid{row-gap:10px}
  #appraisal-form label{gap:5px;align-content:start}
  #appraisal-form p{margin-top:5px;margin-bottom:7px}
  #appraisal-form .card-title p{margin:2px 0 0}
  #appraisal-form .property-tabs span{padding:10px 14px}
  #appraisal-form .document-guide{margin:8px 0 10px;padding:10px 16px}
  #appraisal-form .income-box{margin:10px 0;padding:12px 16px}
  #appraisal-form .income-box h5{margin-bottom:8px}
  #appraisal-form .adjustment-grid{gap:14px;margin-bottom:10px}
  #appraisal-form .individual-intake{padding:12px 16px}
  #appraisal-form .individual-intake summary{padding:9px 8px}
  #appraisal-form .individual-row{padding:8px 0}
  #appraisal-form .reins-intake{margin:12px 0;padding:14px 16px}
  #appraisal-form .reins-card{margin:10px 0;padding:12px 16px}
  #appraisal-form .reins-card>label{margin:7px 0}
  #appraisal-form .renovation-row{padding:10px 0;row-gap:8px}
  #appraisal-form .optional-market{margin:10px 0}
  #appraisal-form .source-mode-options{margin:10px 0;gap:10px}
  #appraisal-form .source-mode-options>label{padding:10px 14px}
  #appraisal-form .sticky-actions{margin-top:10px;padding:9px 12px}
  .stats-grid{margin:14px 0;gap:12px}
  .stat-card{min-height:0;padding:16px 20px}
  .dashboard-grid{align-items:start;gap:14px}
  .action-panel{min-height:0;padding:20px}
  .action-panel h3{margin-top:10px}
  .action-panel p{margin-bottom:12px}
  .recent-panel{padding:16px 20px}
  #view-dashboard .case-row{padding:10px 2px;row-gap:4px}
  .empty{padding:16px 10px}
  .result-panel{margin-top:14px;padding:20px}
}

#appraisal-form .postal-row{display:grid;grid-template-columns:minmax(140px,300px) auto;align-items:end;justify-content:start;gap:8px 12px}
#appraisal-form .postal-row>label{min-width:0}
#appraisal-form .postal-row>#postal-search{margin:0;align-self:end}
#appraisal-form .postal-row>#postal-status,#appraisal-form .postal-row>#postal-candidates{grid-column:1/-1}
#postal-status:empty,#postal-candidates:empty{display:none}
@media(max-width:480px){#appraisal-form .postal-row{grid-template-columns:minmax(100px,1fr) auto;gap:8px}#appraisal-form #postal-search{padding-inline:8px;font-size:14px}}

#appraisal-form .bus-action-row{display:grid;grid-template-columns:minmax(140px,1fr) auto;gap:12px;align-items:end}
#appraisal-form .bus-action-row>label{min-width:0}
#appraisal-form .bus-action-row>#auto-station{margin:0;align-self:end}
@media(max-width:480px){#appraisal-form .bus-action-row{grid-template-columns:minmax(80px,1fr) auto;gap:8px}#appraisal-form #auto-station{padding-inline:8px;font-size:13px}}

.location-action-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:stretch}
.location-action-row>.button{min-width:0;padding:8px 10px;white-space:normal;line-height:1.5}

#appraisal-form .traffic-inline-row{display:grid;grid-template-columns:minmax(160px,2fr) minmax(80px,1fr) minmax(80px,1fr) auto;gap:12px;align-items:end}
#appraisal-form .traffic-inline-row>label{min-width:0}
#appraisal-form .traffic-inline-row>#auto-station{margin:0;align-self:end}
@media(max-width:700px){#appraisal-form .traffic-inline-row{overflow-x:auto;grid-template-columns:minmax(160px,2fr) 80px 80px max-content;padding-bottom:4px}}

#appraisal-form .road-fields-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
#appraisal-form .road-fields-row>label{min-width:0}
@media(max-width:550px){#appraisal-form .road-fields-row{overflow-x:auto;grid-template-columns:repeat(4,minmax(110px,1fr));padding-bottom:4px}}

#appraisal-form .road-fields-row>.road-width-extra{grid-column:3}

#shape-details>summary{display:inline-flex;list-style:none;margin:4px 0;cursor:pointer}
#shape-details>summary::-webkit-details-marker{display:none}
#shape-details>summary::marker{content:""}
.shape-details-body{margin-top:8px}

.comparable-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
#comparable-case-count,#reins-case-count{font-size:20px;font-weight:700;color:#66562e;white-space:nowrap}

#appraisal-form .property-info-title{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:center}
.property-info-heading{display:flex;align-items:flex-start;gap:13px;min-width:0}
#appraisal-form .property-info-title>#enrich-property{grid-column:2;margin:0;justify-self:start;max-width:100%;white-space:normal}
@media(max-width:1000px){#appraisal-form .property-info-title{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#appraisal-form .property-info-title{grid-template-columns:1fr}#appraisal-form .property-info-title>#enrich-property{grid-column:1}}



#back-to-top{position:static;background:#fff;min-height:44px}
#back-to-top[hidden]{display:none}
@media print{#back-to-top{display:none!important}}

#appraisal-form .walk-distance-row{display:flex;align-items:center;gap:8px}
#appraisal-form .walk-distance-row input{min-width:65px;flex:1;width:65px}
#walk-distance{white-space:nowrap;font-weight:700;font-size:14px}
#appraisal-form .traffic-inline-row{grid-template-columns:minmax(160px,2fr) minmax(170px,1.4fr) minmax(80px,1fr) auto}
@media(max-width:700px){#appraisal-form .traffic-inline-row{grid-template-columns:minmax(160px,2fr) 170px 80px max-content}}

#appraisal-form .traffic-options{display:flex;align-items:center;gap:12px}
#appraisal-form .traffic-options>button{flex-shrink:0}
#appraisal-form .traffic-options>p{margin:0}
#appraisal-form .second-station-fields{display:grid;grid-template-columns:minmax(160px,2fr) repeat(3,minmax(80px,1fr));gap:12px;align-items:end}
#appraisal-form .second-station-fields[hidden]{display:none}
@media(max-width:700px){#appraisal-form .traffic-options{align-items:flex-start}#appraisal-form .second-station-fields{overflow-x:auto}}

.reins-missing-warning{color:#b42318;font-weight:700;line-height:1.7;overflow-wrap:anywhere}

.reins-price-notice{display:inline-block;margin-left:12px;font-size:14px;font-weight:500;color:#b42318;line-height:1.6}

.nav-button .menu-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px}
.menu-icon svg{width:24px;height:24px;display:block}

.condition-options button[aria-pressed="true"]{background:#fff2bf;border-color:#987b30;color:#493a17;box-shadow:inset 0 0 0 1px #987b30}

.change-send-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.change-send-row span{font-size:13px}.change-response-controls{display:grid;gap:10px;margin-top:12px}.change-response-controls button{justify-self:start}

.condition-choice .source-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}.condition-choice h4{margin:16px 0 10px}

/* Keep optional report explanations compact and horizontal. */
#appraisal-form .condition-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-top:10px;padding-bottom:10px}
#appraisal-form .condition-options>h3{flex-basis:100%;margin:0 0 2px}
#appraisal-form .condition-choice{display:flex;align-items:center;gap:8px;flex:1 1 auto}
#appraisal-form .condition-choice h4{margin:0;font-size:12px;white-space:nowrap}
#appraisal-form .condition-choice .source-mode-options{display:flex;flex-wrap:nowrap;gap:6px;margin:0}
#appraisal-form .condition-choice .source-mode-options>label{flex:0 0 auto;min-width:0;padding:8px;font-size:12px;gap:5px;border-width:1px;border-radius:8px;white-space:nowrap}
#appraisal-form .condition-choice .source-mode-options input[type=radio]{flex-basis:14px;width:14px;height:14px}
@media(max-width:600px){#appraisal-form .condition-choice{flex-wrap:wrap;gap:5px}#appraisal-form .condition-choice h4{flex-basis:100%}}

#registration-card #apply-registration-result:disabled{opacity:1;color:#171710;cursor:not-allowed}

#appraisal-form .property-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:center}
#appraisal-form .property-tabs .property-tab-minor>span{min-height:0;padding:10px 14px;font-size:17px}
#appraisal-form .property-tabs .property-tab-minor small{font-size:10px}
#commercial-use-field{margin:0;font-size:12px}
#commercial-use-field select{margin-top:4px}
@media(max-width:720px){#appraisal-form .property-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}

.demolition-row,#demolition-details{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.demolition-row{margin:10px 0}#demolition-details[hidden]{display:none}#appraisal-form .demolition-row .source-mode-options{margin:0;gap:6px}#appraisal-form .demolition-row .source-mode-options>label{min-width:0;padding:8px;font-size:12px;white-space:nowrap}#demolition-details>label{font-size:12px;max-width:160px}

#appraisal-form .property-tabs{align-items:stretch}#appraisal-form .property-tabs label{display:flex}#appraisal-form .property-tabs label>span{width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}

@media(max-width:720px){#appraisal-form .property-tabs .property-tab-minor>span{font-size:15px}}

#appraisal-form .google-map-url-row{display:flex;align-items:center;gap:8px}#appraisal-form .google-map-url-row>span{flex:0 0 auto;white-space:nowrap}#appraisal-form .google-map-url-row>input{flex:1;min-width:0;width:0;margin:0}

#appraisal-form .demolition-row .source-mode-options{flex:0 1 auto;max-width:100%;flex-wrap:wrap}
#appraisal-form .demolition-row .source-mode-options>label{flex:0 0 auto;width:auto;min-width:max-content;gap:6px;box-sizing:border-box}
#demolition-details{min-width:0;max-width:100%}
#demolition-details>label{flex:0 1 160px;min-width:0}
#demolition-details>label>input{width:100%;min-width:0;box-sizing:border-box}

#staff-management-button{margin:0 0 12px auto}#staff-management-button[hidden]{display:none!important}

#staff-management-button{width:100%;margin:14px 0 0;text-align:left}

#branch-home{flex-wrap:wrap}.report-artwork-controls{margin-left:auto;flex:0 1 510px;min-width:0}.artwork-selects{display:flex;gap:8px;flex-wrap:wrap}.artwork-selects label{flex:1;min-width:120px}.report-artwork-controls label{font-size:12px}.report-artwork-controls img{max-width:100px;max-height:100px;object-fit:contain;margin:8px}.report-artwork-controls [hidden]{display:none!important}.report-artwork-controls small{font-size:11px}

.report-artwork-controls .artwork-heading{font-size:16px;font-weight:700;line-height:1.5}.report-artwork-controls select{font-size:15px}.report-artwork-controls label{font-size:15px}

.artwork-page-row{padding:8px 0;border-bottom:1px solid #e3dac6}.artwork-page-row strong{font-size:15px}.artwork-page-row .artwork-selects{align-items:center}.artwork-page-row img{width:56px;height:64px;margin:0}

.dashboard-start-column{display:grid;align-content:start;gap:14px;min-width:0}
.browser-guide{padding:16px;border:1px solid var(--line);border-radius:17px;background:white}
.browser-guide h3{margin:0 0 10px;font-size:18px}
.browser-guide table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.5}
.browser-guide th,.browser-guide td{text-align:left;padding:9px 4px;border-bottom:1px solid #eee8dc;overflow-wrap:anywhere}
.browser-guide thead th{font-weight:700}.browser-guide tbody th{font-weight:400;width:48%}.browser-guide span{font-size:12px}.browser-guide tr:last-child th,.browser-guide tr:last-child td{border-bottom:0}

.operation-question-form{display:flex;align-items:center;gap:8px;flex:1;max-width:660px;margin-left:auto;min-width:0}.operation-question-form label{white-space:nowrap;font-size:15px;font-weight:700}.operation-question-form input{flex:1;min-width:100px}.operation-question-form button{white-space:nowrap}.operation-answer-body{padding:20px;max-height:65vh;overflow:auto}.operation-answer [data-answer]{white-space:pre-wrap;font-size:16px;line-height:1.8}.operation-answer [data-question]{font-weight:700}.operation-answer details{margin-top:12px;font-size:15px;line-height:1.7}@media(max-width:1000px){.topbar{flex-wrap:wrap}.operation-question-form{order:3;flex-basis:100%;max-width:none;margin-left:0}}@media(max-width:480px){.operation-question-form{flex-wrap:wrap}.operation-question-form label{width:100%}}

.topbar{height:auto;min-height:82px}@media(max-width:1250px){.topbar{flex-wrap:wrap}.operation-question-form{order:3;flex-basis:100%;max-width:none;margin-left:0}}

.pdf-screenshot-help{font-size:14px;line-height:1.4;flex-shrink:0}.pdf-screenshot-help span{font-size:12px}.screenshot-help-dialog [data-paste]{border:2px dashed var(--gold);padding:18px;border-radius:12px;background:#fffaf0;margin-bottom:12px;cursor:text}.screenshot-help-dialog [data-paste]:focus{outline:2px solid var(--gold)}.screenshot-help-dialog [data-preview]{max-width:100%;max-height:230px;object-fit:contain;margin:12px 0}.screenshot-help-dialog [data-answer]{white-space:pre-wrap;font-size:16px;line-height:1.8}.screenshot-help-dialog label{display:block;margin:12px 0}.screenshot-help-dialog [hidden]{display:none!important}@media(max-width:1250px){.pdf-screenshot-help{order:4}}

/* Keep text questions and PDF screenshot help distinct and aligned left. */
.topbar>div:not(.header-help-tools){flex:0 0 auto;min-width:76px}
.topbar>.header-help-tools{display:flex;align-items:center;justify-content:flex-start;gap:32px;flex:1 1 auto;min-width:0;margin-left:12px}
.header-help-tools .operation-question-form{flex:0 1 440px;max-width:440px;margin-left:0;order:0}
.header-help-tools .pdf-screenshot-help{order:0;position:relative;margin-left:0;background:#fffaf0;border-color:#cbb477}
.header-help-tools .operation-question-form input,.header-help-tools .operation-question-form button,.header-help-tools .pdf-screenshot-help{box-sizing:border-box;height:48px;min-height:48px}
.header-help-tools .pdf-screenshot-help{padding-top:4px;padding-bottom:4px}
.header-help-tools .pdf-screenshot-help:before{content:"";position:absolute;left:-17px;top:5px;bottom:5px;width:1px;background:#d8d1c3}
.topbar>.compact-button{margin-left:auto;flex-shrink:0}
@media(max-width:1100px){.topbar>.header-help-tools{order:3;flex-basis:100%;margin-left:0;flex-wrap:wrap;row-gap:14px}.header-help-tools .operation-question-form{flex:1 1 300px;max-width:480px}}
@media(max-width:600px){.header-help-tools .operation-question-form{flex-basis:100%;max-width:none}.header-help-tools .pdf-screenshot-help:before{display:none}.header-help-tools .pdf-screenshot-help{margin-top:4px}}
.report-preview-dialog{width:min(1100px,96vw);max-width:96vw;max-height:96vh;padding:20px;border:1px solid #cbb477;border-radius:14px}.report-preview-dialog::backdrop{background:#0009}.report-preview-header,.report-preview-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.report-preview-dialog iframe{display:block;width:100%;height:65vh;border:1px solid #d8d1c3;background:#eee;margin:12px 0}.report-preview-dialog [data-status]{margin-bottom:0}
