:root{--ui-bg:#f8fafc;--ui-surface:#fff;--ui-border:#e2e8f0;--ui-border-strong:#cbd5e1;--ui-text:#0f172a;--ui-text-muted:#64748b;--ui-text-faint:#94a3b8;--ui-accent:#1d4ed8;--ui-accent-hover:#1e40af;--ui-accent-soft:#eff6ff;--ui-success:#15803d;--ui-success-soft:#f0fdf4;--ui-danger:#b91c1c;--ui-danger-soft:#fef2f2;--ui-danger-border:#fecaca;--ui-warning:#b45309;--ui-warning-soft:#fffbeb;--ui-radius:6px;--ui-radius-sm:4px;--ui-shadow:0 1px 2px #0f172a0f, 0 4px 16px #0f172a14;--ui-font:system-ui, -apple-system, sans-serif;--ui-header-bg:#0f172a;--ui-header-text:#f1f5f9;--ui-header-text-muted:#94a3b8}.ui-appbar{background:var(--ui-header-bg);height:52px;color:var(--ui-header-text);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.ui-appbar-brand{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.ui-appbar-logo{object-fit:contain;background:#fff;border-radius:3px;flex-shrink:0;width:28px;height:28px}.ui-appbar-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ui-appbar-divider{background:#ffffff29;flex-shrink:0;align-self:stretch;width:1px;margin:11px 0}.ui-module-current,.ui-module-selector-btn{color:#fff;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.ui-module-current svg,.ui-module-selector-btn svg:first-child{color:#ffffff8c}.ui-module-current{padding:6px 4px}.ui-module-selector{flex-shrink:0;position:relative}.ui-module-selector-btn{border-radius:var(--ui-radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 8px}.ui-module-selector-btn:hover,.ui-module-selector-btn[aria-expanded=true]{background:#ffffff14}.ui-module-menu{background:var(--ui-surface);min-width:190px;color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);z-index:50;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0}.ui-module-menu-item{border-radius:var(--ui-radius-sm);width:100%;color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.ui-module-menu-item:hover{background:#f1f5f9}.ui-module-menu-check{width:13px;color:var(--ui-accent);flex-shrink:0;display:inline-flex}.ui-nav{flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.ui-nav-link{border-radius:var(--ui-radius-sm);color:var(--ui-header-text-muted);white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.ui-nav-link:hover{color:#fff;background:#ffffff0f}@media (width<=720px){.ui-appbar-title,.ui-nav-link-label{display:none}.ui-nav-link{padding:7px 9px}.ui-account-btn-role,.ui-appbar-divider{display:none}}.ui-nav-link.is-active{color:#fff;background:var(--ui-accent)}.ui-appbar-actions{flex-shrink:0;align-items:center;display:flex;position:relative}.ui-account-btn{border-radius:var(--ui-radius-sm);color:var(--ui-header-text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;max-width:220px;padding:5px 8px 5px 10px;font-size:13px;display:inline-flex}.ui-account-btn:hover,.ui-account-btn[aria-expanded=true]{background:#ffffff14}.ui-account-btn-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}.ui-account-btn-role{color:var(--ui-header-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.ui-account-menu{background:var(--ui-surface);width:260px;color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);z-index:50;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.ui-account-menu-header{border-bottom:1px solid var(--ui-border);margin-bottom:6px;padding:8px 10px 10px}.ui-account-menu-name{font-size:13.5px;font-weight:600}.ui-account-menu-email{color:var(--ui-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ui-account-menu-grants{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.ui-account-menu-item{border-radius:var(--ui-radius-sm);width:100%;color:var(--ui-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.ui-account-menu-item:hover{background:#f1f5f9}.ui-account-menu-item.is-danger{color:var(--ui-danger)}.ui-shell{font-family:var(--ui-font);color:var(--ui-text);background:var(--ui-bg);flex-direction:column;min-height:100%;display:flex}.ui-shell *{box-sizing:border-box}.ui-app-title{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.ui-title{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:600}.ui-panel-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-muted);margin:0 0 10px;font-size:11.5px;font-weight:600}.ui-subtitle{color:var(--ui-text-muted);margin:4px 0 0;font-size:13px;line-height:1.5}.ui-caption{color:var(--ui-text-muted);font-size:11.5px}.ui-header{padding:20px 28px 0}.ui-tabs{border-bottom:1px solid var(--ui-border);gap:4px;margin-top:18px;display:flex}.ui-tab{appearance:none;color:var(--ui-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:20px;padding:9px 4px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-block}.ui-tab:hover{color:var(--ui-text)}.ui-tab.is-active{color:var(--ui-accent);border-bottom-color:var(--ui-accent)}.ui-segmented{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);flex-shrink:0;display:inline-flex;overflow:hidden}.ui-segmented-btn{appearance:none;background:var(--ui-surface);color:var(--ui-text-muted);cursor:pointer;white-space:nowrap;border:none;padding:7px 14px;font-size:13px;font-weight:500}.ui-segmented-btn+.ui-segmented-btn{border-left:1px solid var(--ui-border)}.ui-segmented-btn:hover:not(.is-active){background:var(--ui-accent-soft);color:var(--ui-text)}.ui-segmented-btn.is-active{background:var(--ui-accent);color:#fff}.ui-tab:focus-visible,.ui-segmented-btn:focus-visible,.ui-btn:focus-visible,.ui-input:focus-visible,.ui-select:focus-visible,.ui-icon-btn:focus-visible,.ui-row-link:focus-visible,.ui-nav-link:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.ui-body{flex:1;min-width:0;padding:20px 28px 40px}.ui-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.ui-toolbar-spacer{flex:1}.ui-search{width:240px;position:relative}.ui-search svg{color:var(--ui-text-faint);pointer-events:none;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.ui-search .ui-input{width:100%;padding-left:30px}.ui-input,.ui-select,.ui-textarea{font:inherit;color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);padding:6px 10px;font-size:13px}.ui-input,.ui-select{height:32px}.ui-textarea{resize:vertical;min-height:72px;line-height:1.5}.ui-select{min-width:140px}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--ui-text-faint)}.ui-btn{font:inherit;border-radius:var(--ui-radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;height:32px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex}.ui-btn:disabled{cursor:not-allowed;opacity:.55}.ui-btn-primary{background:var(--ui-accent);color:#fff;border-color:var(--ui-accent)}.ui-btn-primary:hover:not(:disabled){background:var(--ui-accent-hover);border-color:var(--ui-accent-hover)}.ui-btn-default{background:var(--ui-surface);color:var(--ui-text);border-color:var(--ui-border-strong)}.ui-btn-default:hover:not(:disabled){background:#f1f5f9}.ui-btn-danger{background:var(--ui-surface);color:var(--ui-danger);border-color:var(--ui-danger-border)}.ui-btn-danger:hover:not(:disabled){background:var(--ui-danger-soft)}.ui-btn-danger-solid{background:var(--ui-danger);color:#fff;border-color:var(--ui-danger)}.ui-btn-danger-solid:hover:not(:disabled){background:#991b1b}.ui-icon-btn{appearance:none;border-radius:var(--ui-radius-sm);color:var(--ui-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.ui-icon-btn:hover:not(:disabled){color:var(--ui-text);background:#f1f5f9}.ui-icon-btn:disabled{cursor:not-allowed;opacity:.4}.ui-table-wrap{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);overflow-x:auto}.ui-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.ui-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-text-muted);border-bottom:1px solid var(--ui-border);white-space:nowrap;padding:10px 14px;font-size:11.5px;font-weight:500}.ui-table td{border-bottom:1px solid var(--ui-border);vertical-align:middle;padding:10px 14px}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr.is-clickable{cursor:pointer}.ui-table tbody tr.is-clickable:hover{background:#f8fafc}.ui-table tbody tr.is-disabled-row{color:var(--ui-text-faint)}.ui-table td.is-numeric,.ui-table th.is-numeric{text-align:right;font-variant-numeric:tabular-nums}.ui-cell-primary{color:var(--ui-text);font-weight:500}.ui-cell-muted{color:var(--ui-text-muted)}.ui-cell-mono{font-variant-numeric:tabular-nums;color:var(--ui-text-muted);font-size:12.5px}.ui-row-actions{justify-content:flex-end;gap:2px;display:flex}.ui-badge{letter-spacing:.02em;text-transform:uppercase;border:1px solid #0000;border-radius:3px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;font-weight:600;line-height:1.5;display:inline-flex}.ui-badge svg{width:11px;height:11px}.ui-badge-neutral{color:var(--ui-text-muted);border-color:var(--ui-border);background:#f1f5f9}.ui-badge-success{color:var(--ui-success);background:var(--ui-success-soft);border-color:#bbf7d0}.ui-badge-danger{color:var(--ui-danger);background:var(--ui-danger-soft);border-color:var(--ui-danger-border)}.ui-badge-warning{color:var(--ui-warning);background:var(--ui-warning-soft);border-color:#fde68a}.ui-grant-chip{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:#f8fafc;align-items:baseline;gap:5px;padding:4px 9px;font-size:12.5px;display:inline-flex}.ui-grant-chip .ui-grant-scope{color:var(--ui-text-muted)}.ui-grant-chip .ui-grant-role{color:var(--ui-text);font-weight:600}.ui-state{text-align:center;color:var(--ui-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:56px 24px;display:flex}.ui-state svg{color:var(--ui-text-faint)}.ui-spin{animation:.8s linear infinite ui-spin}@media (prefers-reduced-motion:reduce){.ui-spin{animation:none}}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-state-title{color:var(--ui-text);font-size:13.5px;font-weight:500}.ui-state-body{max-width:360px;font-size:12.5px;line-height:1.5}.ui-inline-error{color:var(--ui-danger);background:var(--ui-danger-soft);border:1px solid var(--ui-danger-border);border-radius:var(--ui-radius-sm);align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;display:flex}.ui-inline-error svg{flex-shrink:0}.ui-page-error{color:var(--ui-danger);background:var(--ui-danger-soft);border-bottom:1px solid var(--ui-danger-border);align-items:center;gap:8px;margin:0;padding:10px 16px;font-size:13px;display:flex}.ui-page-notice{color:var(--ui-text);background:#e0f2fe;border-bottom:1px solid #bae6fd;align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.ui-page-notice.is-warning{background:var(--ui-warning-soft);color:var(--ui-warning);border-bottom-color:#fde68a}.ui-dialog{border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);width:min(480px,100vw - 32px);color:var(--ui-text);font-family:var(--ui-font);padding:0}.ui-dialog.is-wide{width:min(640px,100vw - 32px)}.ui-dialog::backdrop{background:#0f172a66}.ui-dialog-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.ui-dialog-title{margin:0;font-size:15px;font-weight:600}.ui-dialog-description{color:var(--ui-text-muted);margin:3px 0 0;font-size:12.5px;line-height:1.5}.ui-dialog-body{flex-direction:column;gap:14px;max-height:60vh;padding:16px 20px;display:flex;overflow-y:auto}.ui-dialog-footer{border-top:1px solid var(--ui-border);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.ui-notice{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:#f8fafc;flex-direction:column;gap:6px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.ui-notice.is-success{background:var(--ui-success-soft);border-color:#bbf7d0}.ui-notice-title{align-items:center;gap:7px;font-weight:600;display:flex}.ui-notice.is-success .ui-notice-title{color:var(--ui-success)}.ui-notice details{margin-top:4px}.ui-notice summary{cursor:pointer;color:var(--ui-text);font-weight:500}.ui-notice ul{max-height:220px;margin:8px 0 0;padding-left:18px;overflow-y:auto}.ui-notice li{margin-bottom:3px}.ui-file-field{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ui-file-field input[type=file]{font:inherit;color:var(--ui-text-muted);font-size:13px}.ui-field{flex-direction:column;gap:5px;display:flex}.ui-field label{color:var(--ui-text);font-size:12.5px;font-weight:500}.ui-field-hint{color:var(--ui-text-muted);font-size:11.5px}.ui-field .ui-input,.ui-field .ui-select,.ui-field .ui-textarea{width:100%}.ui-field-required:after{content:" *";color:var(--ui-danger)}.ui-form-section{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);flex-direction:column;gap:14px;padding:16px;display:flex}.ui-form-section+.ui-form-section{margin-top:16px}.ui-form-section-title{margin:0;font-size:13px;font-weight:600}.ui-credential-box{border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);background:#f8fafc;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.ui-credential-row{align-items:center;gap:8px;display:flex}.ui-credential-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ui-text-muted);min-width:90px;font-size:11px;font-weight:600}.ui-credential-value{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);white-space:nowrap;flex:1;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;overflow-x:auto}.ui-warning-note{color:var(--ui-warning);background:var(--ui-warning-soft);border-radius:var(--ui-radius-sm);border:1px solid #fde68a;align-items:flex-start;gap:8px;padding:9px 11px;font-size:12px;line-height:1.5;display:flex}.ui-warning-note svg{flex-shrink:0;margin-top:1px}.ui-panel-backdrop{z-index:40;background:#0f172a59;position:fixed;inset:0}.ui-panel{background:var(--ui-surface);border-left:1px solid var(--ui-border);width:min(420px,100vw);box-shadow:var(--ui-shadow);z-index:41;font-family:var(--ui-font);color:var(--ui-text);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.ui-panel-header{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.ui-panel-body{flex-direction:column;flex:1;gap:22px;padding:18px 20px 32px;display:flex;overflow-y:auto}.ui-kv{grid-template-columns:110px 1fr;gap:8px 10px;font-size:13px;display:grid}.ui-kv dt{color:var(--ui-text-muted)}.ui-kv dd{color:var(--ui-text);word-break:break-word;margin:0}.ui-grant-list{flex-direction:column;gap:6px;display:flex}.ui-activity-list{flex-direction:column;display:flex}.ui-activity-item{border-bottom:1px solid var(--ui-border);gap:10px;padding:9px 0;font-size:12.5px;display:flex}.ui-activity-item:last-child{border-bottom:none}.ui-activity-icon{color:var(--ui-text-faint);flex-shrink:0;margin-top:1px}.ui-activity-text{color:var(--ui-text);line-height:1.5}.ui-activity-meta{color:var(--ui-text-muted);margin-top:1px;font-size:11.5px}@media (width<=640px){.ui-header,.ui-body{padding-left:16px;padding-right:16px}.ui-panel{width:100vw}.ui-kv{grid-template-columns:1fr;row-gap:4px}.ui-kv dt{text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;font-weight:600}}.year-picker{align-items:center;gap:8px;font-size:13px;display:flex;position:relative}.year-picker-button{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;min-width:96px;display:inline-flex}.year-picker-button:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.year-picker-panel{z-index:30;background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius);min-width:190px;box-shadow:var(--ui-shadow);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px;padding:10px 12px;display:grid;position:absolute;top:calc(100% + 4px);left:0}.year-picker-panel .ui-caption{grid-column:1/-1;margin-top:6px}.year-picker-option{cursor:pointer;align-items:center;gap:6px;padding:3px 0;display:flex}.year-swatch{border:1px solid #0f172a40;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.total-chip{background:var(--ui-accent-soft);border:1px solid var(--ui-border);border-radius:var(--ui-radius);max-width:100%;color:var(--ui-text);flex-direction:column;gap:2px;margin-left:auto;padding:4px 10px;font-size:12px;display:flex}.total-chip-main{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.total-chip-label{color:var(--ui-text-muted)}.total-chip-number{font-variant-numeric:tabular-nums;font-size:16px}.total-chip-years{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 12px;margin:0;padding:0;list-style:none;display:flex}.total-chip-years li{align-items:center;gap:5px;display:inline-flex}.total-chip-note{color:var(--ui-text-muted);font-size:11.5px}.facility-control{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:inline-flex}.ui-toggle-chip{font:inherit;height:32px;color:var(--ui-text);background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:0 12px 0 10px;font-size:13px;font-weight:400;display:inline-flex}.ui-toggle-chip:hover{background:#f1f5f9}.ui-toggle-chip[aria-checked=true]{color:var(--ui-accent);background:var(--ui-accent-soft);border-color:var(--ui-accent)}.ui-toggle-chip[aria-checked=true]:hover{background:#dbeafe}.ui-toggle-chip:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.ui-toggle-chip-check{flex-shrink:0}.facility-count{font-variant-numeric:tabular-nums;color:#475569;border:1px solid var(--ui-border);white-space:nowrap;cursor:help;background:#f1f5f9;border-radius:999px;align-items:center;height:24px;padding:0 9px;font-size:12px;display:inline-flex}.facility-count.is-warning{color:var(--ui-warning);background:var(--ui-warning-soft);cursor:default;border-color:#fde68a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ui-font,system-ui, -apple-system, sans-serif);color:var(--ui-text,#0f172a);background:var(--ui-bg,#f8fafc)}table{font-size:14px}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:2px solid var(--ui-accent,#1d4ed8);outline-offset:2px}.login-stage{--lg-deep:#0f4f8a;--lg-blue:#1b6cb5;--lg-cyan:#29a8e0;--lg-light:#6cc3ec;min-height:100dvh;font-family:var(--ui-font);color:var(--ui-text);background:linear-gradient(135deg,#e8f4fc 0%,#fff 100%);grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:center;display:grid;position:relative}.login-stage *{box-sizing:border-box}.login-art{justify-content:center;align-items:center;min-width:0;padding:24px 12px 24px 32px;display:flex}.gmap{width:100%;height:auto;max-height:90dvh;display:block;overflow:visible}.gmap-region{opacity:0;stroke:#fff;stroke-width:1.4px;stroke-linejoin:round;vector-effect:non-scaling-stroke;animation-duration:14s;animation-timing-function:ease-out;animation-iteration-count:infinite}.gmap-c0{fill:var(--lg-deep)}.gmap-c1{fill:var(--lg-blue)}.gmap-c2{fill:var(--lg-cyan)}.gmap-c3{fill:var(--lg-light)}.gmap-outline{fill:none;stroke:var(--lg-deep);stroke-width:5px;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:14s ease-out infinite gmap-draw}.gmap-label{opacity:0;fill:#fff;font-family:var(--ui-font);stroke:#0f4f8a99;stroke-width:5px;stroke-linejoin:round;paint-order:stroke fill;pointer-events:none;font-weight:700;animation-duration:14s;animation-timing-function:ease-out;animation-iteration-count:infinite}@keyframes gmap-draw{0%{stroke-dashoffset:1px;opacity:1}21.4%{stroke-dashoffset:0;opacity:1}95%{stroke-dashoffset:0;opacity:1}99%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:1px;opacity:0}}@keyframes gmap-r1{0%,22.9%{opacity:0}26.4%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r2{0%,27.1%{opacity:0}30.7%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r3{0%,31.4%{opacity:0}35%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r4{0%,35.7%{opacity:0}39.3%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r5{0%,40%{opacity:0}43.6%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r6{0%,44.3%{opacity:0}47.9%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r7{0%,48.6%{opacity:0}52.1%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r8{0%,52.9%{opacity:0}56.4%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r9{0%,57.1%{opacity:0}60.7%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}@keyframes gmap-r10{0%,61.4%{opacity:0}65%{opacity:1}87%{opacity:1}94.3%,to{opacity:0}}.gmap-r1{animation-name:gmap-r1}.gmap-r2{animation-name:gmap-r2}.gmap-r3{animation-name:gmap-r3}.gmap-r4{animation-name:gmap-r4}.gmap-r5{animation-name:gmap-r5}.gmap-r6{animation-name:gmap-r6}.gmap-r7{animation-name:gmap-r7}.gmap-r8{animation-name:gmap-r8}.gmap-r9{animation-name:gmap-r9}.gmap-r10{animation-name:gmap-r10}@media (prefers-reduced-motion:reduce){.gmap-region,.gmap-label{opacity:1;animation:none}.gmap-outline{stroke-dashoffset:0;opacity:1;animation:none}}.login-panel{justify-content:center;align-items:center;min-width:0;padding:24px 40px 24px 16px;display:flex}.login-card{background:var(--ui-surface);border:1px solid #e1e7f0;border-radius:20px;width:100%;max-width:440px;padding:40px 44px 30px;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0d,0 24px 56px #0f4f8a29}.login-card:before{content:"";background:linear-gradient(90deg, var(--lg-deep) 0%, var(--lg-blue) 35%, var(--lg-cyan) 70%, var(--lg-light) 100%);height:5px;position:absolute;inset:0 0 auto}.login-logo{object-fit:contain;width:140px;height:140px;margin:0 auto 14px;display:block}.login-title{text-align:center;letter-spacing:-.015em;color:var(--lg-deep);margin:0;font-size:24px;font-weight:700;line-height:1.2}.login-subtitle{text-align:center;color:#475569;margin:6px 0 26px;font-size:14px}.login-fields{flex-direction:column;gap:18px;display:flex}.login-fields .ui-field label{color:#1e293b;font-size:13px;font-weight:600}.login-fields .ui-input{border-color:#cbd5e1;border-radius:10px;width:100%;height:46px;padding:0 14px;font-size:15px}.login-fields .ui-input:focus-visible{outline:2px solid var(--lg-blue);outline-offset:1px;border-color:var(--lg-blue)}.login-submit{background:var(--lg-blue);border-color:var(--lg-blue);border-radius:10px;justify-content:center;gap:8px;width:100%;height:48px;margin-top:26px;font-size:15px;font-weight:600}.login-submit:hover:not(:disabled){background:var(--lg-deep);border-color:var(--lg-deep)}.login-feedback{min-height:62px;margin-top:14px}.login-notice{color:var(--lg-deep);background:#eaf4fc;border:1px solid #bfdcf2;border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.login-notice svg{flex-shrink:0;margin-top:1px}.login-help{text-align:center;color:#475569;margin:0;padding:12px 8px 0;font-size:13px;line-height:1.45}.login-error{color:#b91c1c;background:var(--ui-danger-soft);border:1px solid var(--ui-danger-border);border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.login-error svg{flex-shrink:0;margin-top:1px}.login-error.is-lockout{color:#92400e;background:var(--ui-warning-soft);border-color:#fcd34d;font-weight:600}.login-spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}.login-foot{text-align:center;color:#475569;border-top:1px solid #e8edf5;margin:12px 0 0;padding-top:16px;font-size:12.5px}.login-card.is-shaking{animation:.4s ease-in-out login-shake}@keyframes login-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.login-card.is-shaking{animation:none}.login-spinner{border-top-color:#ffffff73;border-right-color:#fff;animation:none}}.login-attribution{color:#475569;margin:0;font-size:11px;position:absolute;bottom:10px;left:16px}@media (width<=1199px){.gmap-label[font-size="26"]{display:none}}@media (width<=899px){.login-stage{justify-content:center;align-items:center;padding:24px 16px;display:flex}.login-art,.login-attribution{display:none}.login-panel{width:100%;padding:0}.login-card{padding:34px 28px 24px}.login-logo{width:124px;height:124px}.login-title{font-size:22px}}@media (width<=380px){.login-card{padding:30px 20px 20px}}.auth-shell{background:var(--ui-bg);min-height:100%;font-family:var(--ui-font);color:var(--ui-text);justify-content:center;align-items:center;padding:24px;display:flex}.auth-shell *{box-sizing:border-box}.auth-card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:8px;width:100%;max-width:380px;padding:32px 32px 28px;box-shadow:0 1px 2px #0f172a0f,0 12px 32px #0f172a1a}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px;display:flex}.auth-brand-logo{object-fit:contain;border-radius:12px;flex-shrink:0;width:64px;height:64px}.auth-eyebrow{text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px}.auth-title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600;line-height:1.3}.auth-subtitle{color:var(--ui-text-muted);text-align:center;margin:0 0 20px;font-size:13px;line-height:1.5}.auth-form-fields{flex-direction:column;gap:16px;display:flex}.auth-actions{flex-direction:column;gap:8px;margin-top:22px;display:flex}.auth-actions .ui-btn{justify-content:center;width:100%}
