:root,[data-theme="ocean"]{--brand:#075c72;--brand-2:#086b83;--brand-3:#073a50;--accent:#a16812;--action:#075c72;--panel-soft:#e9f3f7;--focus:#965a04;--muted-2:#607381}
[data-theme="royal"]{--brand:#59408d;--brand-2:#65449a;--brand-3:#332258;--accent:#926200;--action:#59408d;--panel-soft:#f1edf8;--focus:#965a04;--muted-2:#6e657d}
[data-mode="dark"]{--bg:#111b24;--panel:#1b2935;--line:#415464;--ink:#f0f4f7;--muted:#c1cdd6;--muted-2:#b3c3ce;--brand:#80d1ea;--brand-2:#9cdcf0;--brand-3:#123347;--action:#116880;--panel-soft:#263c4c;--focus:#ffd477;--info:#9fc7ff;--danger:#ffc3ba}
[data-mode="dark"][data-theme="royal"]{--brand:#c8b5f1;--brand-2:#ddcafa;--brand-3:#31274b;--action:#674a9b;--panel-soft:#352d49}
.btn.primary{background:var(--action);border-color:var(--action);color:#fff}.btn.accent{background:#e8c66d;color:#28200c;border-color:#ad8733}
.btn.primary:hover{background:var(--action);border-color:var(--action);color:#fff;filter:brightness(1.08)}.leaflet-control-layers-toggle:after{color:var(--ink)}
.field input,.field select,.field textarea,.toolbar input,.toolbar select,.search input,.btn:not(.primary):not(.accent),.mobile-toggle,.tabs a:hover,.tbl th,.topbar,.user-pill,.modal,.leaflet-popup-content-wrapper,.leaflet-popup-tip,.leaflet-control-layers,.leaflet-bar a,.map-legend{background:var(--panel);color:var(--ink)}
.hero-band,.login-brand{background:linear-gradient(135deg,var(--brand-3),var(--action));color:#fff}.sidebar{background:linear-gradient(var(--brand-3),var(--action))}.sidebar .brand,.sidebar a{color:#fff}.hero-band .btn{color:var(--ink)}
.action-row .action-count,.bar-row .bar{background:var(--panel-soft);color:var(--brand)}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.appearance-controls{position:relative;z-index:1;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:0;background:var(--panel);color:var(--ink);width:100%;font-size:12px}.appearance-controls label{display:flex;gap:5px;align-items:center}.appearance-controls select{font:inherit;padding:5px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:5px}.appearance-status{display:none}.appearance-status:not(:empty){display:block;flex-basis:100%;width:100%;text-align:right;color:var(--muted);font-size:11px;line-height:1.3}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.property-photo{margin:0;padding:12px;border:1px solid var(--line);border-radius:8px}.property-photo img{width:100%;height:200px;object-fit:contain;background:var(--panel-soft)}.property-photo figcaption{padding:10px 0}.popup-photo{width:210px;height:140px;object-fit:cover;display:block;border-radius:6px;margin-bottom:8px}.guest-shell{max-width:780px;margin:0 auto;padding:24px 20px 32px}.guest-header{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.guest-header h1{font-size:24px}.payment-panel,.payment-form{border-top:4px solid var(--brand);padding:20px;background:var(--panel);border-radius:10px}.payment-panel{margin-top:24px;border:1px solid var(--line);border-top:4px solid var(--brand)}.payment-amount{font-size:32px;font-weight:700;color:var(--brand)}.guest-payment-link{overflow-wrap:anywhere;display:block;padding:12px;background:var(--panel-soft);border-radius:6px}
[data-mode="dark"] .alert.error,[data-mode="dark"] .badge.red{background:#502d30;color:#ffdad2;border-color:#906367}[data-mode="dark"] .alert.success,[data-mode="dark"] .badge.green{background:#21453b;color:#bcebd3;border-color:#577e6e}[data-mode="dark"] .badge.yellow{background:#4b4024;color:#ffe29a;border-color:#8d7a45}[data-mode="dark"] .badge.blue{background:#263f60;color:#c8ddff;border-color:#5b7d9f}[data-mode="dark"] .badge.gray,[data-mode="dark"] .badge.white{background:#37434d;color:#e0e6eb;border-color:#667987}
.letter{color:#202020}.letter .tbl th,.letter .tbl td{color:#202020;background:#fff}.letter a{color:#075c72}
.leaflet-container a.leaflet-popup-close-button{color:var(--ink)}
.upload-feedback{padding:8px 0;color:var(--muted);overflow-wrap:anywhere}.upload-feedback p{margin:4px 0}.upload-feedback.error{color:var(--ink);padding:10px;border:1px solid var(--focus);border-radius:6px;background:var(--panel-soft)}.upload-feedback progress{width:100%;height:12px;accent-color:var(--brand)}
.search,.leaflet-control-attribution{background:var(--panel);color:var(--ink)}.letter .notes,.letter .muted{color:#555}
@media(max-width:650px){.appearance-controls{font-size:11px}.guest-header h1{font-size:20px}.guest-header .btn{width:100%}.topbar .user-pill{max-width:145px}.payment-form{padding:14px}}
@media print{.appearance-controls{display:none!important}body{background:#fff;color:#000}.card,.tbl th,.tbl td,table.tbl th{background:#fff;color:#000}.content{padding-bottom:0}}
.coordinate-search label{display:flex;flex-direction:column;gap:4px}
.coordinate-search input{width:180px;min-width:0}
#coordinate-results:empty{display:none}
#coordinate-results{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin-bottom:12px;overflow-wrap:anywhere}
@media(max-width:600px){.coordinate-search label{flex:1 1 140px}.coordinate-search input{width:100%}.coordinate-search button{flex:1 1 140px}}
.account-menu{position:relative;flex:none}
.account-menu-trigger{cursor:pointer;list-style:none;max-width:232px;min-height:40px;padding:4px 10px 4px 4px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;user-select:none}
.account-menu-trigger::-webkit-details-marker{display:none}
.account-menu-trigger::marker{content:""}
.account-menu-trigger .avatar{width:30px;height:30px;flex:none;background:#b91229;color:#fff;font-size:12px}
.account-menu-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:1200;width:232px;max-width:calc(100vw - 24px);border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);box-shadow:0 12px 28px rgba(0,0,0,.2);overflow:hidden;text-align:left}
.account-menu:not([open]) .account-menu-panel{display:none}
.account-menu-identity{margin:0 16px;padding:14px 0 10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.account-menu-identity strong{display:block;font-size:14px;font-weight:700;line-height:1.5}
.account-menu-identity span{display:block;color:var(--muted);font-size:13px;line-height:1.5;margin-top:2px}
.account-menu-links{padding:6px 0}
.account-menu-links a,.account-menu-signout button{display:block;width:100%;padding:10px 16px;text-align:left;font:inherit;font-size:14px;text-decoration:none;border:0;border-radius:0;background:transparent;color:var(--ink);cursor:pointer}
.account-menu-links a:hover,.account-menu-signout button:hover{background:var(--panel-soft);text-decoration:none}
.account-menu-signout{margin:0 16px;padding:6px 0}
.account-menu-signout{border-top:1px solid var(--line)}
.account-menu-signout button{padding-left:0;padding-right:0;color:var(--danger);min-height:38px}
.account-menu-trigger:focus-visible,.account-menu-links a:focus-visible,.account-menu-signout button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.profile-anchor{scroll-margin-top:90px}
[data-mode="dark"] .account-menu{--panel:#151c24;--line:#2c3747;--ink:#e8eef8;--muted:#a2b2c7;--panel-soft:#202b37;--danger:#ffa28e}
[data-mode="dark"] .account-menu-trigger{background:#19232d}
@media(max-width:650px){.account-menu-trigger{max-width:145px}.account-menu-panel{width:232px}}
.case-task-list{display:grid;gap:12px}
.case-task-summary{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow-wrap:anywhere;min-width:0}
.case-task-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.case-task-summary h4{margin:0}
.case-task-summary p{margin:8px 0;color:var(--muted)}
.case-task-detail{scroll-margin-top:90px;padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.case-task-detail:target{outline:2px solid var(--focus);outline-offset:5px;border-radius:6px}
.case-next-action{padding:10px 12px;border-left:3px solid var(--brand);background:var(--panel-soft);color:var(--ink)}
.case-task-detail textarea[readonly]{width:100%;max-width:100%;background:var(--panel);color:var(--ink)}
.parcel-map-popup .parcel-popup-action:not(.primary){color:var(--ink);margin-top:8px;border-color:var(--line)}
.fd-person{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid var(--line);border-radius:8px;padding:14px;margin:12px 0;min-width:0}
.fd-person legend{font-weight:600;padding:0 6px}.fd-person label,.fd-location label{display:flex;flex-direction:column;gap:6px;min-width:0}
.fd-person input,.fd-person select,.fd-person textarea,.fd-location input{width:100%;max-width:100%;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit}
.fd-person button{justify-self:start}.fd-event{white-space:pre-wrap;overflow-wrap:anywhere;max-width:60vw}
@media(max-width:650px){.fd-person{grid-template-columns:1fr}.fd-event{max-width:65vw}}
@media(max-width:650px){.case-task-summary .quick-actions{display:flex;flex-wrap:wrap}.case-task-summary .quick-actions .btn{flex:1 1 140px}}
