:root {
    --app-brown: #3d2919;
    --app-ochre: #cd873f;
    --color-kumo-brand: var(--app-brown);
    --color-kumo-brand-hover: #583c25;
    --color-kumo-focus: #a06229;
    --color-kumo-tint: #f6eadc;
    --text-color-kumo-brand: var(--app-brown);
    --text-color-kumo-link: #87501f;
    --text-color-kumo-default: var(--app-brown);
    --color-kumo-base: #fffdf9;
    --color-kumo-elevated: #f7f1e9;
    --color-kumo-line: #ded3c6;
    --app-bg: #faf7f2;
    --app-muted: #76685a;
    font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 14px;
}
:root[data-mode="dark"] {
    --app-bg: #1b1612;
    --app-muted: #bbae9f;
    --color-kumo-brand: #805022;
    --color-kumo-brand-hover: #925d2a;
    --color-kumo-focus: var(--app-ochre);
    --color-kumo-tint: #392a1d;
    --text-color-kumo-brand: #e6b37d;
    --text-color-kumo-link: #e6b37d;
    --text-color-kumo-default: #f4eadf;
    --color-kumo-base: #231c16;
    --color-kumo-elevated: #2b221a;
    --color-kumo-line: #4b3b2d;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--app-bg); color: var(--text-color-kumo-default, var(--color-kumo-default)); }
[hidden], #app { display: none !important; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { text-decoration: none; }
svg { flex-shrink: 0; }
.app-shell { min-height: 100dvh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 0; width: 244px; background: var(--color-kumo-base); border-right: 1px solid var(--color-kumo-line); display: flex; flex-direction: column; padding: 30px 18px 20px; }
.brand { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 650; letter-spacing: -.5px; line-height: 1.2; }
.brand img { height: 42px; width: 42px; border-radius: 12px; }
.brand small { display: block; font-size: 13px; font-weight: 450; letter-spacing: 0; margin-top: 3px; color: var(--app-muted); }
.sidebar-caption { color: var(--app-muted); font-size: 10px; font-weight: 650; letter-spacing: 1.5px; margin: 42px 12px 14px; }
.sidebar nav { display: flex; flex-direction: column; gap: 5px; }
.sidebar .nav-button { justify-content: flex-start; width: 100%; height: 43px; padding: 0 12px; gap: 12px; font-size: 14px; color: var(--app-muted); border-radius: 8px; }
.sidebar .nav-button.selected { color: var(--color-kumo-brand); background: var(--color-kumo-tint); font-weight: 600; }
.sidebar-bottom { margin-top: auto; padding-top: 30px; border-top: 1px solid var(--color-kumo-line); }
.account-email { font-size: 12px; color: var(--app-muted); overflow-wrap: anywhere; margin: 0 8px 12px; }
.sidebar-bottom > button { width: 100%; }
.workspace { margin-left: 244px; min-width: 0; }
.topbar { height: 72px; padding: 0 38px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-kumo-line); background: var(--color-kumo-base); }
.topbar-label { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--app-muted); }
.breadcrumb-divider { display: inline-block; margin: 0 14px; opacity: .45; }
.mobile-menu { display: none !important; }
.page { padding: 36px 38px 60px; max-width: none; margin: auto; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
h1 { font-size: 30px; line-height: 1.2; font-weight: 650; letter-spacing: -1px; margin: 0; }
.page-heading p { color: var(--app-muted); margin: 10px 0 0; line-height: 1.6; }
.page-heading > button { flex-shrink: 0; }
.page > div > .container { padding: 0; width: 100%; max-width: none; }
.page .container > .row > div { width: 100%; margin-left: 0; }
.page .list-group > .page-add-source { display: none; }
.page > div > .container > .row > div > .list-group { display: flex; flex-direction: column; gap: 18px; }
.page .list-group > .row { background: var(--color-kumo-base); padding: 18px; border: 1px solid var(--color-kumo-line); border-radius: 10px; margin-top: 4px; }
.page .list-group > .row > div { margin-bottom: 0; }
.control-full { width: 100%; min-width: 0; }
.table-scroll { overflow: auto; width: 100%; max-width: 100%; border: 1px solid var(--color-kumo-line); border-radius: 10px; background: var(--color-kumo-base); }
.data-table { border-collapse: collapse; min-width: 580px; margin: 0; }
.data-table th { white-space: normal; font-size: 12px; color: var(--app-muted); font-weight: 550; background: var(--color-kumo-elevated); padding: 14px 16px; }
.data-table td { padding: 14px 16px; border-bottom: 1px solid var(--color-kumo-line); vertical-align: middle; font-size: 13px; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table td { white-space: normal; overflow-wrap: anywhere; }
.data-table td > button + button { margin-left: 6px; }
.data-table tbody tr:hover { background: var(--color-kumo-tint); }
.data-table td[colspan] { text-align: center; }
.list-action[aria-pressed="true"] { background: var(--color-kumo-tint); color: var(--text-color-kumo-brand); }
.list-group .list-action { justify-content: flex-start; }
.list-group:has(> .list-action[aria-pressed]) { display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--color-kumo-line); padding: 8px; border-radius: 8px; min-height: 150px; }
.list-group-item:not(button) { padding: 14px 0; border-bottom: 1px solid var(--color-kumo-line); }
.panel { padding: 24px; border: 1px solid var(--color-kumo-line); border-radius: 12px; }
.map-frame { border: 1px solid var(--color-kumo-line); border-radius: 10px; overflow: hidden; margin-bottom: 20px; isolation: isolate; }
.map-frame > div { width: 100%; height: 360px !important; border-radius: 0 !important; }
.app-dialog { max-height: calc(100dvh - 64px); display: flex; flex-direction: column; top: 32px !important; }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 24px; border-bottom: 1px solid var(--color-kumo-line); }
.dialog-heading h2, .confirm-dialog h2 { font-size: 20px; font-weight: 650; letter-spacing: -.4px; }
.dialog-content { padding: 24px; overflow-y: auto; overscroll-behavior: contain; }
.dialog-actions { padding: 16px 24px; border-top: 1px solid var(--color-kumo-line); background: var(--color-kumo-elevated); }
.modal-footer { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 8px; }
.modal-body img { max-width: 100%; object-fit: contain; border-radius: 8px; }
.modal-body ul { padding-left: 22px; line-height: 1.8; }
.modal-body h5, .modal-body h6 { font-size: 15px; font-weight: 600; margin: 18px 0 10px; }
.form-label, .login-form label { display: block; font-size: 13px; font-weight: 550; margin-bottom: 8px; }
.form-check { display: flex; align-items: center; gap: 10px; min-height: 36px; }
.form-check label { margin: 0; }
.rich-editor { min-height: 180px; padding: 14px; border: 1px solid var(--color-kumo-line); border-radius: 8px; background: var(--color-kumo-base); }
.rich-editor:focus { outline: 2px solid var(--color-kumo-brand); outline-offset: 2px; }
.rich-editor ul { list-style: disc; padding-left: 20px; }
.confirm-dialog { padding: 24px; }
.confirm-dialog p { margin-top: 14px; color: var(--app-muted); white-space: pre-line; }
.confirm-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.notification { position: fixed; bottom: 24px; right: 24px; max-width: min(500px, calc(100vw - 32px)); z-index: 100; }
.notification-content { display: flex; align-items: flex-start; gap: 12px; white-space: pre-line; }
.notification-content > span { flex: 1; }
.boot-loader { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 100dvh; }
.login-page { min-height: 100dvh; display: grid; grid-template-columns: 1fr 1fr; background: var(--color-kumo-base); padding: 18px; }
.login-story { background: var(--app-brown); color: #fff; border-radius: 16px; padding: 44px; display: flex; flex-direction: column; justify-content: space-between; min-height: calc(100dvh - 36px); }
.login-story .brand small { color: #e1bc92; }
.login-story h1 { color: var(--app-ochre); font-size: clamp(42px, 4.5vw, 70px); font-weight: 550; line-height: 1.08; letter-spacing: -2.5px; }
.login-story p { font-size: 17px; line-height: 1.8; color: #e8d5bf; white-space: pre-line; margin-top: 28px; }
.story-footer { font-size: 12px; color: #e1bc92; }
.login-form { display: flex; justify-content: center; align-items: center; padding: 60px 30px; }
.login-inner { width: 100%; max-width: 360px; }
.login-inner h2 { font-size: 28px; font-weight: 650; letter-spacing: -.8px; margin-bottom: 10px; }
.login-intro { color: var(--app-muted); line-height: 1.6; margin-bottom: 34px; }
.login-form label:not(:first-child) { margin-top: 22px; }
.login-form input { height: 42px; }
.login-form form > button { width: 100%; margin-top: 24px; height: 42px; }
.login-form form > button + button { margin-top: 8px; font-size: 13px; }
.login-footer { margin-top: 36px; font-size: 12px; text-align: center; color: var(--app-muted); }
.login-form [role="status"] { margin-top: 16px; font-size: 13px; line-height: 1.6; }
.row { display: flex; flex-wrap: wrap; gap: 12px; }
.row > div { min-width: 0; }
.col-12 { width: 100%; }
.d-flex, .btn-toolbar, .btn-group { display: flex; gap: 8px; }
.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-grow-1 { flex-grow: 1; }
.justify-content-between { justify-content: space-between; }
.justify-content-end { justify-content: flex-end; }
.justify-content-center { justify-content: center; }
.align-items-center { align-items: center; }
.text-muted { color: var(--app-muted); }
.text-end { text-align: right; }
.text-center { text-align: center; }
.small, small { font-size: 12px; }
.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 4px; }
.mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 18px; }
.mb-4 { margin-bottom: 24px; }
.mt-2 { margin-top: 8px; }
.mt-3 { margin-top: 16px; }
.me-1 { margin-right: 4px; }
.me-2 { margin-right: 8px; }
.gap-2 { gap: 8px; }
@media (min-width: 768px) {
    .row > .col-md-1 { flex: 1 1 45px; }
    .row > .col-md-2 { flex: 2 1 100px; }
    .row > .col-md-3 { flex: 3 1 130px; }
    .row > .col-md-4 { flex: 4 1 160px; }
    .row > .col-md-5 { flex: 5 1 180px; }
    .row > .col-md-6 { flex: 6 1 220px; }
    .row > [class*="col-md-"] { width: auto; }
    .row > .col-md-12 { width: 100%; }
}
@media (max-width: 1000px) {
    .sidebar { width: 216px; }
    .workspace { margin-left: 216px; }
    .page { padding: 28px 22px; }
    .topbar { padding: 0 22px; }
}
@media (max-width: 767px) {
    .sidebar { transform: translateX(-100%); transition: transform .18s ease; width: 260px; }
    .sidebar.is-open { transform: translateX(0); }
    .nav-backdrop { position: fixed; inset: 0; background: #0008; z-index: 19; }
    .workspace { margin-left: 0; }
    .mobile-menu { display: inline-flex !important; }
    .topbar { height: 60px; padding: 0 16px; }
    .page { padding: 24px 16px; }
    .page-heading { align-items: flex-start; flex-wrap: wrap; margin-bottom: 22px; }
    h1 { font-size: 27px; }
    .page-heading p { font-size: 13px; }
    .page .list-group > .row { padding: 14px; }
    .app-dialog { top: 12px !important; max-height: calc(100dvh - 24px); }
    .dialog-heading, .dialog-content, .dialog-actions { padding: 16px; }
    .modal-footer button { flex: 1; }
    .login-page { display: block; padding: 0; }
    .login-story { min-height: auto; border-radius: 0; padding: 30px 24px; }
    .login-story > div:nth-child(2), .story-footer { display: none; }
    .login-form { padding: 54px 24px; }
    .notification { bottom: 16px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0s !important; animation-duration: .01ms !important; } }
.data-table td > button { display: inline-flex; }
.data-table td[colspan="1"] { text-align: left; }
.login-form form > button { justify-content: center; }
.map-frame { position: relative; }
.map-frame > .map-canvas { height: 360px !important; }
.map-canvas > div { height: 100% !important; }
.map-frame > .map-controls { position: absolute; inset: 12px 12px auto; height: auto !important; display: flex; justify-content: space-between; align-items: flex-start; pointer-events: none; z-index: 500; width: auto; }
.map-controls > * { pointer-events: auto; }
.map-zoom { display: flex; flex-direction: column; gap: 6px; }
.topbar-status, .request-loader { display: flex; align-items: center; gap: 10px; }
.request-loader { color: var(--app-muted); font-size: 12px; }
.nav-dialog { top: 0 !important; left: 0 !important; transform: none !important; translate: none !important; border-radius: 0 !important; width: 280px !important; max-width: calc(100vw - 48px) !important; height: 100dvh; }
.nav-dialog .sidebar { position: static; transform: none; width: 100%; height: 100%; }
.nav-close { position: absolute; top: 8px; right: 8px; z-index: 1; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.data-table { min-width: 0; }
.data-table:has(th:nth-child(4)) { min-width: 580px; }
.date-control { width: 100%; justify-content: space-between; }
.date-popup { padding: 12px; }
.autocomplete-empty { padding: 12px; font-size: 13px; color: var(--app-muted); }
@media (max-width: 767px) { .dialog-content input, .dialog-content button, .page button { min-height: 40px; } }

:root[data-mode="dark"] .sidebar .nav-button.selected { color: var(--text-color-kumo-brand); }
input::placeholder, textarea::placeholder { color: var(--app-muted); }

.list-action:has(.material-description) { flex-direction: column; align-items: flex-start; height: auto; white-space: normal; text-align: left; }
.material-description { display: block; margin: 4px 0 0; font-size: 12px; font-weight: 400; line-height: 1.5; color: var(--app-muted); white-space: pre-line; }

.record-table { min-width: 0; width: 100%; }
.data-table { width: 100%; }
.table-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-top: 12px; }
.table-pagination > span { margin-right: auto; color: var(--app-muted); }
.app-dialog-large { width: min(1100px, calc(100vw - 48px)) !important; max-width: none !important; }
.app-dialog-wide { width: min(1600px, calc(100vw - 48px)) !important; max-width: none !important; }


/*# sourceMappingURL=main.e114712b89fea1cd245d.css.map*/