/* Cerea Cloud: acceso y panel, 12 octubre 2026. */
.cerea-auth, .cerea-shell { --accent:#008da8; --accent-dark:#081d2c; --ink:#18394d; --muted:#637f90; --line:#dfe9ee; --surface:#f3f7fa; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); margin:0; background:var(--surface); font-size:15px; line-height:1.5; }
.cerea-auth *, .cerea-shell * { box-sizing:border-box; font-family:inherit; -webkit-font-smoothing:antialiased; }
.cerea-auth a, .cerea-shell a { text-decoration:none; }
.cerea-auth button, .cerea-shell button, .cerea-auth input, .cerea-shell input { font:inherit; }
.cerea-auth :focus-visible, .cerea-shell :focus-visible { outline:3px solid #00cce4; outline-offset:3px; }
.brand { display:inline-flex; align-items:center; gap:11px; color:var(--ink); font-size:22px; font-weight:600; letter-spacing:-.7px; white-space:nowrap; }
.brand strong { font-weight:400; }
.brand-mark { width:36px; height:36px; color:var(--accent); flex-shrink:0; }
.eyebrow { display:block; color:var(--muted); font-size:10px; letter-spacing:1.7px; font-weight:700; margin-bottom:10px; }
.cc-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; border:1px solid transparent; border-radius:9px; padding:10px 17px; font-size:13px; font-weight:600; cursor:pointer; transition:background .15s,box-shadow .15s; box-shadow:none; }
.cc-button.primary { background:var(--accent); color:#fff; }
.cc-button.primary:hover { background:var(--accent-dark); }
.cc-button.secondary { background:#fff; color:var(--ink); border-color:#cddde5; }
.cc-button.secondary:hover { background:#edf8fb; border-color:#8fbccc; }
.field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.field label { color:var(--ink); font-size:13px; font-weight:600; }
.field input { width:100%; min-width:0; min-height:46px; background:#fff; border:1px solid #cddde5; border-radius:8px; padding:11px 13px; color:var(--ink); font-size:14px; }
.field input::placeholder { color:#8196a3; }
.field input:focus { border-color:var(--accent); outline:none; box-shadow:0 0 0 3px #008da817; }
/* Acceso */
.auth-layout { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.auth-story { background:#081d2c; color:#fff; padding:48px 11%; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.brand-light { color:white; z-index:1; align-self:flex-start; }
.brand-light .brand-mark { color:#00cce4; }
.story-copy { margin:auto 0; padding:90px 0; position:relative; z-index:1; max-width:440px; }
.story-copy .eyebrow { color:#73dcea; font-size:10px; }
.story-copy h1 { font-size:clamp(40px,4.5vw,66px); font-weight:500; line-height:1.07; letter-spacing:-2.8px; margin:22px 0 25px; }
.story-copy p { color:#c7dbe8; max-width:330px; font-size:16px; line-height:1.8; }
.story-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:30px; }
.story-tags span { color:#c3dce9; font-size:11px; border:1px solid #ffffff26; background:#ffffff06; padding:6px 13px; border-radius:30px; }
.story-footer { font-size:11px; color:#92b0c4; margin:0; position:relative; z-index:1; }
.field-art { position:absolute; width:650px; height:650px; bottom:-260px; right:-400px; transform:rotate(-26deg); }
.field-art div { position:absolute; inset:0; border:1px solid #00cce440; border-radius:43% 57% 44% 56%; }
.field-art div:nth-child(2) { inset:40px; }
.field-art div:nth-child(3) { inset:80px; }
.field-art div:nth-child(4) { inset:120px; }
.field-art div:nth-child(5) { inset:160px; }
.auth-form-area { display:flex; align-items:center; justify-content:center; padding:70px 40px; position:relative; background:#f3f7fa; }
.auth-card { width:100%; max-width:360px; }
.auth-card h2 { font-size:30px; font-weight:600; letter-spacing:-1px; margin:8px 0 10px; }
.auth-intro { color:var(--muted); font-size:14px; margin:0 0 34px; }
.auth-form { display:flex; flex-direction:column; gap:22px; }
.auth-form input { min-height:50px; }
.password-field { position:relative; }
.password-field input { padding-right:82px; }
.password-field button { position:absolute; right:6px; top:6px; bottom:6px; border:0; background:transparent; color:var(--accent); font-size:11px; font-weight:600; border-radius:5px; padding:0 10px; cursor:pointer; }
.auth-submit { margin-top:3px; min-height:50px; justify-content:space-between; padding:12px 18px; font-size:14px; }
.auth-note { color:#8196a3; text-align:center; font-size:11px; margin:22px 0 0; }
.auth-error { padding:12px 14px; background:#fff0ed; border:1px solid #f0cdc3; border-radius:8px; color:#993f30; font-size:13px; }
.auth-footer { position:absolute; bottom:28px; left:20px; right:20px; text-align:center; font-size:11px; color:#7892a3; }
.auth-footer span { margin:0 7px; }
/* Navegación y panel */
.app-header { background:#fff; border-bottom:1px solid var(--line); min-height:76px; padding:0 max(28px,calc((100vw - 1440px)/2)); display:flex; align-items:center; gap:54px; }
.app-nav { display:flex; align-self:stretch; gap:30px; }
.app-nav a { display:flex; align-items:center; color:var(--muted); font-size:13px; border-bottom:2px solid transparent; }
.app-nav a:hover { color:var(--accent); }
.app-nav a.is-active { color:var(--accent); border-bottom-color:var(--accent); font-weight:600; }
.logout-link { margin-left:auto; color:var(--muted); font-size:12px; padding:12px 0; }
.logout-link span { margin-left:8px; }
.app-main { max-width:1440px; margin:0 auto; padding:34px 28px 48px; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:27px; }
.page-heading .eyebrow { margin-bottom:8px; }
.page-heading h1 { font-size:31px; letter-spacing:-1px; font-weight:600; margin:0 0 6px; }
.page-heading p { color:var(--muted); margin:0; font-size:13px; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:stretch; gap:22px; margin-bottom:25px; }
.map-card, .filters-card, .jobs-card { background:#fff; border:1px solid var(--line); border-radius:13px; overflow:hidden; box-shadow:0 3px 10px #18394d03; }
.card-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px 23px; }
.card-heading .eyebrow { margin-bottom:5px; font-size:9px; }
.card-heading h2 { font-size:17px; font-weight:600; letter-spacing:-.3px; margin:0; }
.card-heading p { font-size:12px; color:var(--muted); margin:5px 0 0; }
.map-card #map { width:100%; height:365px; background:#e7f0f5; }
.map-badge { background:#edf7fb; padding:5px 9px; border-radius:6px; white-space:nowrap; font-size:10px; color:#426c82; }
.map-badge span { display:inline-block; height:6px; width:6px; background:#00cce4; border-radius:50%; margin-right:5px; }
.map-footer { display:flex; justify-content:space-between; gap:10px; padding:13px 23px; color:var(--muted); font-size:10px; }
.route-swatch { display:inline-block; width:15px; height:3px; background:#36af62; vertical-align:middle; margin-right:6px; border-radius:2px; }
.filter-fields { display:grid; gap:17px; padding:2px 23px 0; }
.filter-actions { display:flex; gap:9px; padding:23px 23px 0; }
.filter-actions .primary { flex:1; padding-left:10px; padding-right:10px; }
.filter-actions .secondary { font-size:12px; padding:10px; }
.filter-hint { padding:15px 23px 5px; color:#7892a3; font-size:11px; line-height:1.7; }
.count-pill { display:inline-flex; align-items:center; justify-content:center; min-width:27px; min-height:23px; padding:2px 8px; margin-left:8px; font-size:11px; background:#eaf7fc; color:var(--accent); border-radius:6px; vertical-align:middle; }
.table-hint { font-size:11px; color:#7892a3; }
.table-scroll { overflow:auto; }
.cerea-shell .jobs-table { width:100%; border-collapse:collapse; margin:0; table-layout:auto; color:var(--ink); }
.jobs-table thead { background:#f6fafc; }
.cerea-shell .jobs-table th { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:12px 20px; font-size:10px; letter-spacing:.8px; text-transform:uppercase; color:#6c889a; font-weight:600; white-space:nowrap; box-shadow:none; }
.cerea-shell .jobs-table td { border-bottom:1px solid #eaf1f5; padding:18px 20px; font-size:12px; vertical-align:middle; background:transparent; box-shadow:none; }
.jobs-table .fecha { color:var(--muted); font-size:11px; white-space:nowrap; }
.jobs-table .parcela { font-weight:600; }
.jobs-table .area-cell { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.jobs-table tbody tr:hover { background:#f6fafc; }
.jobs-table tbody tr.is-selected { background:#e7f6fc; }
.job-actions { white-space:nowrap; }
.action-link { display:inline-flex; align-items:center; justify-content:center; font-size:11px; min-height:34px; padding:6px 9px; border-radius:6px; color:#5e7d90; }
.action-link:hover { background:#eaf6fc; color:var(--accent); }
.view-link { background:#e7f6fc; color:var(--accent); font-weight:600; margin-right:4px; }
.view-link.is-selected { background:var(--accent); color:white; }
.delete-link { color:#a66c5e; }
.delete-link:hover { background:#fff0ec; color:#a1402c; }
.jobs-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 23px; }
.jobs-footer>span { color:#7892a3; font-size:11px; }
.jobs-footer .cc-button { font-size:12px; }
.empty-state { text-align:center; padding:45px 25px!important; }
.empty-state strong, .empty-state span { display:block; }
.empty-state span { color:var(--muted); font-size:12px; margin-top:8px; }
.filter-empty { padding:18px 23px; font-size:12px; color:var(--muted); }
.notice { padding:13px 18px; border:1px solid #bcdbe8; background:#ecf7fb; border-radius:9px; margin-bottom:20px; font-size:13px; }
[hidden] { display:none!important; }
@media (min-width:1600px) { .map-card #map { height:420px; } }
@media (max-width:1100px) { .workspace-grid { grid-template-columns:minmax(0,1fr) 275px; gap:16px; } .cerea-shell .jobs-table td,.cerea-shell .jobs-table th { padding-left:13px; padding-right:13px; } .map-footer>span:last-child { display:none; } .action-link { padding:6px; } }
@media (max-width:760px) {
  .auth-layout { grid-template-columns:1fr; }
  .auth-story { padding:24px; min-height:210px; }
  .auth-story .brand { font-size:20px; }
  .story-copy { margin:25px 0 0; padding:0; }
  .story-copy h1 { font-size:31px; letter-spacing:-1px; margin:7px 0 0; }
  .story-copy h1 br { display:none; }
  .story-copy .eyebrow,.story-copy p,.story-tags,.story-footer { display:none; }
  .field-art { bottom:-445px; right:-320px; }
  .auth-form-area { padding:38px 24px 90px; min-height:calc(100vh - 210px); align-items:flex-start; }
  .auth-card h2 { font-size:27px; }
  .auth-footer { bottom:22px; }
  .app-header { padding:0 18px; min-height:66px; gap:20px; flex-wrap:wrap; }
  .app-header .brand { font-size:18px; gap:8px; }
  .brand-mark { width:30px; height:30px; }
  .app-nav { gap:18px; }
  .app-nav a { font-size:11px; }
  .logout-link { font-size:11px; }
  .logout-link span { display:none; }
  .app-main { padding:25px 16px 35px; }
  .page-heading { margin-bottom:21px; align-items:flex-start; }
  .page-heading h1 { font-size:27px; }
  .page-heading p { font-size:12px; max-width:235px; }
  .page-heading .cc-button { font-size:11px; padding:9px 11px; }
  .page-heading .eyebrow { font-size:8px; letter-spacing:1px; }
  .workspace-grid { grid-template-columns:1fr; gap:16px; margin-bottom:16px; }
  .map-card #map { height:320px; }
  .card-heading { padding:18px; }
  .card-heading h2 { font-size:16px; }
  .map-footer { padding:12px 18px; }
  .filter-fields { padding:0 18px; grid-template-columns:1fr 1fr; gap:13px; }
  .filter-fields .field:first-child { grid-column:1 / -1; }
  .filter-actions { padding:17px 18px 0; }
  .filter-hint { padding:0 18px; margin:12px 0 17px; }
  .table-hint { display:none; }
  .table-scroll { overflow:visible; }
  .jobs-table,.jobs-table tbody { display:block; }
  .jobs-table thead { display:none; }
  .jobs-table tbody tr { display:grid; grid-template-columns:1fr 1fr; padding:15px 18px; border-top:1px solid var(--line); gap:10px 14px; }
  .cerea-shell .jobs-table td { display:block; padding:0; border:0; font-size:13px; min-width:0; overflow-wrap:anywhere; }
  .jobs-table td[data-label]::before { content:attr(data-label); display:block; font-size:9px; font-weight:500; text-transform:uppercase; letter-spacing:.6px; color:#7995a6; margin-bottom:3px; }
  .jobs-table .fecha { grid-column:1 / -1; font-size:11px!important; }
  .jobs-table .fecha::before { display:none!important; }
  .jobs-table .area-cell { text-align:left; }
  .jobs-table td.job-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:4px; padding-top:4px; }
  .jobs-table .job-actions::before { display:none!important; }
  .action-link { padding:8px 11px; min-height:40px; font-size:11px; }
  .jobs-footer { padding:16px 18px; }
  .empty-state { grid-column:1 / -1; }
}
@media (max-width:390px) { .app-header { gap:12px; padding:0 12px; } .app-nav { gap:12px; } .app-header .brand { font-size:16px; } .filter-fields { grid-template-columns:1fr; } .page-heading .cc-button { padding:9px; } }
@media (prefers-reduced-motion:reduce) { .cc-button { transition:none; } }

.cerea-shell .brand span, .cerea-shell .brand strong { font-size:inherit; }

/* Paleta de splash Cerea300R: #081D2C, cian y blanco. */
.cerea-auth, .cerea-shell { --accent-dark:#006a80; --brand-accent:#00cce4; }
.app-header { background:#081d2c; border-bottom-color:#333; }
.app-header .brand { color:#fff; gap:9px; }
.cerea-logo { width:120px; height:40px; object-fit:contain; flex-shrink:0; }
.brand .cloud-word { font-size:20px; font-weight:400; letter-spacing:-.4px; }
.app-nav a, .logout-link { color:#b9d0e0; }
.app-nav a:hover, .app-nav a.is-active { color:#61ddeb; }
.app-nav a.is-active { border-bottom-color:var(--brand-accent); }
.story-copy .eyebrow { color:#63dce9; }
@media(max-width:760px) { .cerea-logo { width:90px; height:30px; } .brand .cloud-word { font-size:17px; } .app-header { gap:16px; } }
@media(max-width:390px) { .cerea-logo { width:78px; height:26px; } .brand .cloud-word { font-size:15px; } .app-header { gap:12px; } }

/* Colores de la splash actual de Cerea300R. */
.cerea-auth, .cerea-shell { --splash-navy:#081d2c; --splash-cyan:#00cce4; }
.auth-story { background:linear-gradient(145deg,#0b2a40 0%,#081d2c 70%); }
.app-header { background:var(--splash-navy); border-bottom-color:#123348; }
.app-nav a.is-active { color:var(--splash-cyan); border-bottom-color:var(--splash-cyan); }
.cc-button.primary { background:var(--splash-cyan); color:var(--splash-navy); }
.cc-button.primary:hover { background:#5adeef; color:var(--splash-navy); }
.auth-submit { font-weight:700; }
.field-art div { border-color:#00cce435; }
.story-tags span { border-color:#5adeef33; }

/* Perfil y edicion */
.detail-card { background:#fff; border:1px solid var(--line); border-radius:13px; overflow:hidden; max-width:1000px; margin:0 auto; box-shadow:0 3px 10px #18394d05; }
.profile-card { max-width:900px; }
.profile-intro { padding:32px; display:flex; align-items:center; gap:20px; border-bottom:1px solid var(--line); background:linear-gradient(120deg,#eef8fc,#fff); }
.profile-intro h2 { font-size:24px; margin:0 0 6px; font-weight:600; }
.profile-intro p { font-size:13px; color:var(--muted); margin:0; }
.profile-avatar { width:68px; height:68px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border-radius:19px; background:#081d2c; color:#00cce4; font-size:29px; font-weight:600; }
.account-details { margin:0; padding:10px 32px; }
.account-details>div { display:grid; grid-template-columns:200px 1fr; padding:24px 0; border-bottom:1px solid #eaf1f5; }
.account-details>div:last-child { border-bottom:0; }
.account-details dt { font-size:13px; font-weight:500; color:var(--muted); }
.account-details dd { margin:0; font-size:14px; overflow-wrap:anywhere; }
.password-mask { letter-spacing:3px; font-size:17px; }
.detail-note { display:block; font-size:11px; color:var(--muted); margin-top:5px; }
.detail-footer { border-top:1px solid var(--line); background:#fafcfd; padding:22px 32px; display:flex; justify-content:space-between; align-items:center; gap:18px; }
.detail-footer>span { color:var(--muted); font-size:12px; }
.edit-section { padding:28px 32px; border-bottom:1px solid var(--line); }
.section-heading { margin-bottom:22px; }
.section-heading h2 { font-size:18px; font-weight:600; margin:0 0 5px; }
.section-heading p { color:var(--muted); font-size:12px; margin:0; }
.edit-fields { display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; }
.field-hint { color:var(--muted); font-size:11px; }
.edit-advanced { margin:0; padding:22px 32px; }
.edit-advanced summary { cursor:pointer; color:var(--ink); font-size:13px; font-weight:600; }
.edit-advanced summary span { color:var(--muted); font-weight:400; font-size:11px; margin-left:10px; }
.edit-advanced .field { margin-top:18px; }
.field textarea { width:100%; border:1px solid #cddde5; border-radius:8px; padding:13px; resize:vertical; font-size:12px; line-height:1.7; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--ink); }
.field textarea:focus { outline:2px solid #00cce4; outline-offset:2px; }
.edit-buttons { display:flex; gap:10px; }
.map-fit-button { border:0; background:transparent; padding:0 4px; color:var(--accent); font-size:11px; font-weight:600; cursor:pointer; }
.map-fit-button:disabled { color:var(--muted); cursor:default; }
@media (max-width:760px) {
  .profile-intro { padding:24px 20px; gap:15px; }
  .profile-avatar { width:52px; height:52px; font-size:23px; border-radius:14px; }
  .profile-intro h2 { font-size:21px; }
  .account-details { padding:0 20px; }
  .account-details>div { grid-template-columns:1fr; gap:8px; padding:20px 0; }
  .detail-footer { padding:20px; flex-direction:column; align-items:stretch; }
  .detail-footer .cc-button { min-height:46px; }
  .edit-section { padding:23px 20px; }
  .edit-fields { grid-template-columns:1fr; gap:17px; }
  .edit-advanced { padding:20px; }
  .edit-buttons>* { flex:1; }
}

/* Mapa como espacio principal de trabajo. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.header-tools { margin-left:auto; display:flex; align-items:center; gap:24px; }
.language-select { background:transparent; color:#c6dbe8; border:1px solid #2b475c; border-radius:6px; padding:7px 9px; font-size:11px; cursor:pointer; max-width:120px; }
.language-select option { color:#18394d; background:white; }
.app-header .logout-link { margin-left:0; }
.app-main.map-page { max-width:none; padding:0; }
.workspace-toolbar { height:70px; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); background:#fff; }
.workspace-title h1 { font-size:19px; font-weight:600; margin:0; letter-spacing:-.5px; }
.workspace-title .eyebrow { font-size:8px; margin:0 0 4px; letter-spacing:1.2px; }
.workspace-controls { display:flex; align-items:center; gap:10px; }
.workspace-controls .cc-button { min-height:37px; padding:7px 12px; font-size:11px; }
.trace-toggle { display:flex; align-items:center; gap:8px; font-size:11px; color:var(--muted); margin-right:7px; cursor:pointer; }
.trace-toggle input { accent-color:#008da8; width:15px; height:15px; }
.map-workspace { display:grid; grid-template-columns:330px minmax(0,1fr); height:calc(100dvh - 146px); min-height:480px; }
.workspace-sidebar { display:flex; flex-direction:column; background:#f7fafc; border-right:1px solid #d6e3eb; min-height:0; }
.sidebar-filters { padding:19px 18px 17px; background:#fff; border-bottom:1px solid var(--line); }
.sidebar-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.sidebar-heading h2 { margin:0; font-size:15px; font-weight:600; }
.text-button { background:none; border:0; color:#008da8; font-size:11px; padding:5px 0; cursor:pointer; }
.sidebar-filter-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px 10px; }
.sidebar-filter-fields .wide { grid-column:1/-1; }
.sidebar-filter-fields .field { gap:5px; }
.sidebar-filter-fields label { font-size:10px; }
.sidebar-filter-fields input { min-height:36px; font-size:12px; padding:8px 10px; }
.sidebar-filters>.cc-button { width:100%; margin-top:13px; min-height:36px; font-size:11px; padding:8px; }
.sidebar-list-heading { padding:14px 18px 10px; display:flex; align-items:center; gap:6px; }
.sidebar-list-heading h2 { font-size:12px; font-weight:600; margin:0; }
.sidebar-list-heading .count-pill { margin:0; font-size:10px; min-height:20px; }
.sidebar-sort { font-size:9px; color:var(--muted); margin-left:auto; }
.workspace-job-list { overflow:auto; padding:0 12px 10px; flex:1; min-height:0; }
.job-card { border:1px solid #dde7ed; border-radius:9px; background:#fff; margin-bottom:9px; overflow:hidden; }
.job-card.is-selected { border-color:#06bad4; box-shadow:0 0 0 1px #06bad420; background:#edfafe; }
.job-route-link { display:block; color:var(--ink); padding:14px 14px 8px; }
.job-route-link:hover { color:var(--ink); background:#f0faff; }
.job-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.job-card h3 { font-size:14px; font-weight:600; margin:0; overflow-wrap:anywhere; }
.job-area { white-space:nowrap; font-size:12px; color:#008da8; font-weight:600; font-variant-numeric:tabular-nums; }
.job-area small { font-size:9px; font-weight:400; }
.job-card p { margin:4px 0 0; }
.job-date { font-size:9px; color:var(--muted); }
.job-client { font-size:11px; color:#527286; }
.job-task { font-size:10px; color:#7892a3; overflow-wrap:anywhere; }
.job-open { display:block; color:#008da8; font-size:10px; font-weight:600; margin-top:10px; }
.job-card-actions { display:flex; align-items:center; gap:6px; border-top:1px solid #eaf1f5; padding:2px 8px; }
.job-card-actions .action-link { font-size:10px; min-height:29px; }
.job-card-actions .delete-link { margin-left:auto; }
.sidebar-footer { padding:12px 16px; border-top:1px solid var(--line); background:#fff; }
.sidebar-footer .cc-button { width:100%; min-height:37px; font-size:11px; }
.sidebar-empty { padding:25px 14px; text-align:center; }
.sidebar-empty strong { font-size:13px; }
.sidebar-empty p { font-size:12px; color:var(--muted); margin-top:8px; }
.workspace-map { position:relative; min-width:0; min-height:0; overflow:hidden; }
.workspace-map #map { width:100%; height:100%; background:#e7f0f5; }
.map-key { position:absolute; top:16px; left:18px; display:flex; align-items:center; gap:7px; padding:8px 12px; background:#ffffffed; border:1px solid #dce7eeb0; box-shadow:0 2px 10px #081d2c14; border-radius:7px; color:#436278; font-size:10px; pointer-events:none; }
.map-key .route-swatch { margin:0; background:#35ef65; }
.map-key-separator { margin:0 3px; }
.map-summary { position:absolute; bottom:35px; left:18px; padding:16px 18px; max-width:330px; background:#ffffffed; border:1px solid #ffffffcc; border-radius:10px; box-shadow:0 5px 18px #081d2c25; pointer-events:none; }
.map-summary .eyebrow { font-size:8px; margin-bottom:6px; }
.map-summary h2 { font-size:17px; font-weight:600; letter-spacing:-.3px; margin:0; overflow-wrap:anywhere; }
.map-summary p { color:var(--muted); font-size:11px; margin:5px 0 0; overflow-wrap:anywhere; }
.map-summary dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:13px 0 0; border-top:1px solid var(--line); padding-top:10px; }
.map-summary dt { font-size:9px; color:var(--muted); font-weight:400; }
.map-summary dd { font-size:12px; margin:3px 0 0; color:var(--ink); font-weight:600; }
.mobile-view-switch { display:none; }
.workspace-notice { position:absolute; top:155px; right:70px; z-index:2; }
.auth-language { position:absolute; right:30px; top:25px; }
.auth-language .language-select { color:#436278; border-color:#cddde5; background:#fff; }
@media(max-width:1050px) { .map-workspace { grid-template-columns:300px minmax(0,1fr); } .app-header { gap:32px; } }
@media(max-width:900px) {
 .workspace-toolbar { height:77px; padding:11px 16px; }
 .workspace-title h1 { font-size:16px; }
 .workspace-title .eyebrow { font-size:7px; letter-spacing:.7px; }
 .trace-toggle { display:none; }
 .workspace-controls { gap:6px; }
 .workspace-controls .cc-button { padding:8px 9px; font-size:10px; min-height:36px; }
 .mobile-view-switch { display:flex; gap:5px; padding:7px 16px; height:48px; background:#fff; border-bottom:1px solid var(--line); }
 .mobile-view-switch button { flex:1; min-height:33px; font-size:11px; font-weight:600; border:1px solid #dfe9ee; border-radius:7px; background:#f7fafc; color:#637f90; cursor:pointer; }
 .mobile-view-switch button.is-active { background:#e9faff; color:#007b92; border-color:#96deeb; }
 .map-workspace { display:block; height:calc(100dvh - 191px); min-height:420px; }
 .workspace-map { height:100%; }
 .workspace-sidebar { display:none; height:100%; border-right:0; }
 .map-workspace.is-list-view .workspace-sidebar { display:flex; }
 .map-workspace.is-list-view .workspace-map { display:none; }
 .sidebar-filter-fields { grid-template-columns:1fr 1fr 1fr; }
 .sidebar-filter-fields .wide { grid-column:auto; }
 .sidebar-filters { padding:15px 16px; }
 .sidebar-heading { margin-bottom:10px; }
 .sidebar-filters>.cc-button { margin-top:10px; }
 .workspace-job-list { padding:0 16px 10px; }
 .map-key { left:12px; top:12px; padding:7px 9px; font-size:9px; }
 .map-summary { bottom:35px; left:12px; right:12px; max-width:none; padding:12px 15px; }
 .map-summary h2 { font-size:15px; }
 .map-summary p { font-size:10px; }
 .map-summary dl { margin-top:9px; padding-top:8px; }
 .workspace-notice { position:static; margin:8px; }
}
@media(max-width:760px) { .app-header { gap:18px; } .header-tools { gap:12px; } .language-select { font-size:10px; padding:6px; max-width:94px; } .app-header .app-nav { gap:14px; } .auth-language { right:24px; top:16px; } .page-heading>a { white-space:normal; } }
@media(max-width:500px) { .app-header { flex-wrap:nowrap; gap:10px; padding:0 12px; } .app-header .app-nav { gap:11px; } .app-header .app-nav a { font-size:10px; } .header-tools { gap:8px; } .app-header .logout-link { display:none; } .app-header .brand { gap:4px; } .app-header .cerea-logo { width:74px; height:27px; } .app-header .brand .cloud-word { font-size:13px; } .language-select { max-width:78px; font-size:9px; } .sidebar-filter-fields { grid-template-columns:1fr 1fr; } .sidebar-filter-fields .wide { grid-column:1/-1; } }

@media(max-width:500px) { .app-header .logout-link {display:inline-flex; padding:8px 2px;} .logout-text {display:none;} .app-header .logout-link>span[aria-hidden] {display:inline;} .app-header .logout-link span {margin-left:0;} }
@media(max-width:500px) { .detail-card~* {max-width:100%;} .page-heading {flex-wrap:wrap;} .page-heading>a {min-height:38px;} }

.edit-advanced summary>span:first-child {font-size:13px; font-weight:600; color:var(--ink); margin-left:0;}

@media(max-width:360px) { .app-header .brand .cloud-word {display:none;} .app-header .app-nav a {font-size:9px;} .language-select {max-width:72px;} .app-header {gap:8px;} .workspace-title .eyebrow {display:none;} .workspace-controls .cc-button {padding:7px;font-size:9px;} }

.field select {width:100%;min-width:0;min-height:46px;background:#fff;border:1px solid #cddde5;border-radius:8px;padding:11px 13px;color:var(--ink);font-size:14px;}
.field select:focus {border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #008da817;}
.sidebar-filter-fields select {min-height:36px;font-size:12px;padding:8px 10px;}

.map-summary.is-job-summary {width:400px;max-width:calc(100% - 36px);max-height:45%;overflow-y:auto;pointer-events:auto;overscroll-behavior:contain;scrollbar-width:thin;}
.map-summary.is-job-summary dl {grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;}
.map-summary.is-job-summary dd {font-size:11px;overflow-wrap:anywhere;line-height:1.4;}
@media(max-width:900px) {
  .map-summary.is-job-summary {width:auto;max-width:none;}
  .map-summary.is-job-summary dl {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;}
}

.sidebar-footer {display:grid;gap:8px;}
.sidebar-footer .cc-button[hidden] {display:none;}
.sidebar-footer .cc-button:disabled {opacity:.7;cursor:default;}

@media(max-width:900px) {
 .app-header {display:grid;grid-template-columns:1fr auto;grid-template-rows:44px 44px;gap:4px 10px;height:108px;padding:8px 12px;}
 .app-header .brand {grid-column:1;grid-row:1;gap:8px;}
 .app-header .cerea-logo {width:100px;height:34px;}
 .app-header .brand .cloud-word {font-size:19px;}
 .header-tools {grid-column:2;grid-row:1;gap:10px;}
 .app-header .language-select {font-size:14px;min-height:44px;max-width:110px;padding:8px;}
 .app-header .app-nav {grid-row:2;grid-column:1/-1;gap:24px;}
 .app-header .app-nav a {font-size:16px;min-height:44px;padding:8px 0;}
 .app-header .logout-link {font-size:18px;min-height:44px;}
 .logout-text {display:none;}
 .workspace-toolbar {height:96px;display:grid;grid-template-columns:1fr;padding:8px 12px;gap:6px;}
 .workspace-title .eyebrow {display:none;}
 .workspace-title h1 {font-size:21px;margin:0;}
 .workspace-controls {display:flex;gap:8px;}
 .workspace-controls .cc-button {flex:1;font-size:16px;min-height:44px;padding:8px 14px;justify-content:center;}
 .mobile-view-switch {height:60px;padding:8px 12px;gap:8px;}
 .mobile-view-switch button {font-size:15px;min-height:44px;}
 .map-workspace {height:calc(100dvh - 264px);min-height:300px;}
 .map-workspace.is-list-view {height:auto;min-height:calc(100dvh - 264px);}
 .map-workspace.is-list-view .workspace-sidebar {height:auto;min-height:calc(100dvh - 264px);}
 .workspace-job-list {overflow:visible;flex:none;}
 .sidebar-heading h2 {font-size:19px;}
 .text-button {font-size:15px;min-height:44px;}
 .sidebar-filter-fields label {font-size:14px;}
 .sidebar-filter-fields input,.sidebar-filter-fields select {font-size:16px;min-height:46px;padding:10px;}
 .sidebar-filters>.cc-button,.sidebar-footer .cc-button {font-size:16px;min-height:46px;}
 .sidebar-list-heading h2 {font-size:18px;}
 .sidebar-list-heading .count-pill {font-size:14px;min-height:28px;}
 .sidebar-sort {font-size:13px;}
 .job-route-link {padding:16px;}
 .job-card h3 {font-size:20px;}
 .job-area {font-size:17px;}
 .job-area small {font-size:14px;}
 .job-date,.job-task {font-size:14px;}
 .job-client {font-size:16px;}
 .job-open {font-size:16px;margin-top:12px;}
 .job-card-actions .action-link {font-size:15px;min-height:44px;padding:9px 10px;}
 .map-key {font-size:14px;padding:8px 10px;}
 .map-summary .eyebrow {font-size:11px;}
 .map-summary h2 {font-size:21px;}
 .map-summary p {font-size:14px;}
 .map-summary dt {font-size:13px;}
 .map-summary.is-job-summary dd {font-size:16px;}
 .maplibregl-ctrl-group button {width:44px;height:44px;}
 .sidebar-empty strong {font-size:18px;}
 .sidebar-empty p {font-size:16px;}
 .field input,.field select,.field textarea {font-size:16px;}
}
@media(max-width:380px) {.app-header .brand .cloud-word {display:none;}.app-header .app-nav a {font-size:16px;}}
@media(max-width:900px) {
 .account-details dt,.field label {font-size:14px;}
 .account-details dd,.profile-intro p,.detail-footer .cc-button {font-size:16px;}
 .detail-note,.detail-footer>span,.section-heading p,.field-hint {font-size:14px;}
 .auth-submit {font-size:17px;min-height:48px;}
 .auth-note,.auth-language .language-select {font-size:14px;}
}

.job-color-dot {display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--job-color);margin-right:7px;box-shadow:0 0 0 1px #081d2c35;}
.map-summary.is-job-summary {border-left:5px solid var(--job-color);}
.map-key .route-swatch {background:linear-gradient(90deg,#35ef65,#00cce4,#ffbb44,#ff66ba);}
@media(max-width:900px) {.sidebar-filter-fields {grid-template-columns:1fr 1fr;}.sidebar-filter-fields .wide {grid-column:1/-1;}.job-color-dot {width:13px;height:13px;}}

.additional-filters {grid-column:1/-1;}
.additional-filters summary {font-size:12px;color:var(--ink);cursor:pointer;padding:8px 0;}
.additional-filter-fields {display:grid;grid-template-columns:1fr 1fr;gap:12px 10px;margin-top:8px;}
@media(max-width:900px) {.additional-filters summary {font-size:16px;min-height:44px;padding:10px 0;}}

.implement-legend {position:absolute;top:62px;left:18px;max-width:calc(100% - 90px);max-height:22%;overflow:auto;display:flex;flex-wrap:wrap;gap:6px 12px;padding:8px 10px;background:#ffffffed;border-radius:7px;font-size:11px;pointer-events:auto;}
.implement-legend[hidden] {display:none;}
.implement-legend-item {display:inline-flex;align-items:center;color:var(--ink);overflow-wrap:anywhere;}
@media(max-width:900px) {.implement-legend {left:12px;top:62px;font-size:14px;}.implement-legend .job-color-dot {flex-shrink:0;}}

/* Mobile map drawers keep the geometry visible until details are requested. */
.map-summary>summary {display:none;}
.implement-legend-panel {position:absolute;top:62px;left:18px;max-width:calc(100% - 90px);z-index:2;}
.implement-legend-panel>summary {display:none;}
.implement-legend-panel[hidden] {display:none;}
.implement-legend-panel .implement-legend {position:static;max-width:none;max-height:140px;}
@media(max-width:900px) {
 .workspace-toolbar {height:52px;padding:4px 12px;}
 .workspace-title {display:none;}
 .mobile-view-switch {height:52px;padding:4px 12px;}
 .map-workspace {height:calc(100dvh - 212px);}
 .map-workspace.is-list-view,.map-workspace.is-list-view .workspace-sidebar {min-height:calc(100dvh - 212px);}
 .map-key {display:none;}
 .implement-legend-panel {top:12px;left:12px;max-width:calc(100% - 80px);background:#ffffffed;border:1px solid #dce7ee;border-radius:10px;box-shadow:0 3px 12px #081d2c20;}
 .implement-legend-panel>summary {display:flex;align-items:center;gap:16px;min-height:44px;padding:10px 14px;font-size:16px;font-weight:600;cursor:pointer;list-style:none;}
 .implement-legend-panel .implement-legend {max-height:120px;background:transparent;padding:0 14px 12px;}
 .map-summary,.map-summary.is-job-summary {left:12px;right:12px;bottom:24px;width:auto;max-width:none;max-height:65%;padding:0;border-radius:16px;pointer-events:auto;overflow-y:auto;overscroll-behavior:contain;background:#fffffffa;z-index:3;}
 .map-summary>summary {position:sticky;top:0;display:flex;align-items:center;gap:8px;min-height:58px;padding:18px 14px 10px;background:#fff;border-radius:16px;cursor:pointer;list-style:none;z-index:1;font-size:16px;font-weight:600;}
 .map-summary>summary::-webkit-details-marker,.implement-legend-panel>summary::-webkit-details-marker {display:none;}
 .drawer-handle {position:absolute;top:7px;left:calc(50% - 20px);width:40px;height:4px;background:#bfced7;border-radius:5px;}
 #drawer-parcel {color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;}
 .drawer-chevron {margin-left:auto;font-size:22px;line-height:1;}
 details[open]>summary .drawer-chevron {transform:rotate(180deg);}
 .drawer-content {padding:8px 16px 18px;}
 .map-summary:not([open])>.drawer-content {display:none;}
 .map-summary .eyebrow {margin-top:0;}
 .map-summary.is-job-summary dl {margin-top:12px;}
}
.filtered-area-summary {display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px;}
.filtered-area-summary strong {color:var(--ink);font-size:16px;white-space:nowrap;}
@media(max-width:900px) {
 .drawer-title {display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
 #drawer-label {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
 #drawer-parcel:empty {display:none;}
 #drawer-parcel {flex:none;}
 .drawer-area-total {font-size:17px;white-space:nowrap;color:#007b92;}
}
