.platform-confirm-stack[data-v-61949622]{display:flex;flex-direction:column;gap:18px}.platform-confirm-summary[data-v-61949622]{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;padding:18px;border-radius:18px;border:1px solid rgba(148,163,184,.18);background:#ffffffe0}.platform-confirm-summary.is-danger[data-v-61949622]{border-color:#da708047;background:#fff1f2f5}.platform-confirm-summary.is-warning[data-v-61949622]{border-color:#d6a3424d;background:#fffbebf5}.platform-confirm-summary.is-info[data-v-61949622]{border-color:#5b64cb3d;background:#eef2fff5}.platform-confirm-icon[data-v-61949622]{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;background:#0f172a14;color:#0f172ad1}.platform-confirm-summary.is-danger .platform-confirm-icon[data-v-61949622]{background:#da708024;color:#b64e62}.platform-confirm-summary.is-warning .platform-confirm-icon[data-v-61949622]{background:#d6a3422e;color:#9a6a12}.platform-confirm-summary.is-info .platform-confirm-icon[data-v-61949622]{background:#5b64cb24;color:#434db4}.platform-confirm-message[data-v-61949622]{color:#0f172ad6;font-size:14px;line-height:1.75;white-space:pre-wrap}/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.sticky{position:sticky}.top-3{top:calc(var(--spacing)*3)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.p-0{padding:calc(var(--spacing)*0)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--bg:#020617;--bg-secondary:#06101f;--panel:#0f172ae0;--panel-strong:#0f172af5;--panel-2:#111827;--border:#1e293b;--border-strong:#334155;--text:#e2e8f0;--text-soft:#cbd5e1;--muted:#94a3b8;--cyan:#202777;--cyan-soft:#2027771f;--emerald:#2d8b66;--amber:#d6a342;--rose:#da7080;--violet:#9680df;--sky:#5b64cb;--interactive-surface:#1e293b61;--interactive-surface-strong:#1e293bb8;--interactive-border:#94a3b82e;--interactive-border-strong:#94a3b847;--accent-border:#2027774d;--accent-border-strong:#20277775;--accent-surface:#2027771f;--accent-surface-soft:#20277714;--accent-surface-strong:#20277729;--accent-shadow-soft:0 0 0 1px #20277714;--accent-shadow:0 14px 30px #20277733;--danger-border:#da708057;--danger-border-strong:#da708080;--danger-surface:#da70801f;--danger-surface-strong:#da70802e;--danger-shadow:0 12px 28px #da70802e;--focus-ring:0 0 0 4px #2027771f;--scrollbar-track:#0f172ab8;--scrollbar-thumb:#94a3b87a;--scrollbar-thumb-hover:#20277766;--scrollbar-thumb-active:#2027778f;--shadow:0 12px 30px #00000047;--shadow-soft:0 8px 24px #02061747;--radius:20px;--font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-display:"Rajdhani","Noto Sans SC",sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--text);background:#f5f7fb;margin:0}html{scrollbar-color:var(--scrollbar-thumb)var(--scrollbar-track)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb)var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-corner{background:0 0}body:before{content:"";opacity:.18;pointer-events:none;z-index:-1;background-image:linear-gradient(#94a3b80d 1px,#0000 1px),linear-gradient(90deg,#94a3b80d 1px,#0000 1px);background-size:46px 46px;position:fixed;inset:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0f172af5;height:100vh;padding:24px;position:sticky;top:0;overflow-y:auto}.brand-mini{letter-spacing:.28em;text-transform:uppercase;color:var(--cyan);font-size:12px;font-family:var(--font-display);margin-bottom:10px}.brand-title,.topbar h2,.stat-value,.login-title,.numeric-display{font-family:var(--font-display);letter-spacing:.02em}.brand-title{margin:0;font-size:30px;font-weight:700}.brand-desc,.helper-text,.card-subtitle,.meta{color:var(--muted);font-size:14px;line-height:1.8}.brand-desc{margin-top:12px;margin-bottom:28px}.menu{flex-direction:column;gap:12px;padding-bottom:8px;display:flex}.menu-btn{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:16px;padding:14px 16px;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s;display:block}.menu-btn:hover{background:var(--interactive-surface-strong);border-color:var(--interactive-border-strong)}.menu-btn:focus-visible{border-color:var(--accent-border-strong);box-shadow:var(--focus-ring);outline:none}.menu-btn.active{color:#fff;background:#5b64cb3d;border-color:#5b64cb6b;box-shadow:inset 0 0 0 1px #ffffff0a,0 10px 24px #2027772e}.menu-tree-node{flex-direction:column;gap:8px;display:flex}.menu-tree-entry{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.menu-tree-entry.is-branch-only{box-shadow:none;background:0 0;border:none;border-radius:0;gap:8px;overflow:visible}.menu-tree-entry.is-branch-only:hover{background:0 0}.menu-tree-link,.menu-tree-label-btn{min-height:46px;color:var(--text-soft);background:0 0;border:1px solid #0000;border-radius:16px;justify-content:space-between;align-items:center;padding-right:14px;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s;display:flex}.menu-tree-link-label{min-width:0;font-weight:600;line-height:1.35}.menu-tree-link:hover,.menu-tree-label-btn:hover{background:var(--interactive-surface-strong);border-color:var(--interactive-border-strong);color:var(--text)}.menu-tree-link:focus-visible,.menu-tree-label-btn:focus-visible,.menu-tree-toggle:focus-visible{border-color:var(--accent-border-strong);box-shadow:var(--focus-ring);outline:none}.menu-tree-link.active,.menu-tree-label-btn.active{color:#fff;background:#5b64cb3d;border-color:#5b64cb75;box-shadow:inset 0 0 0 1px #ffffff0a,0 10px 24px #2027772e}.menu-tree-entry.is-branch-active:not(.is-branch-only)>.menu-tree-link,.menu-tree-entry.is-branch-active:not(.is-branch-only)>.menu-tree-label-btn{color:#fff;background:#5b64cb2e;border-color:#5b64cb57;box-shadow:inset 0 0 0 1px #ffffff08}.menu-tree-entry.is-branch-only>.menu-tree-link,.menu-tree-entry.is-branch-only>.menu-tree-label-btn{min-height:46px;color:var(--text-soft);box-shadow:none;background:0 0;border-color:#0000;border-radius:16px}.menu-tree-entry.is-branch-only>.menu-tree-link:hover,.menu-tree-entry.is-branch-only>.menu-tree-label-btn:hover{background:var(--interactive-surface-strong);border-color:var(--interactive-border-strong);color:var(--text)}.menu-tree-entry.is-branch-only.is-branch-active>.menu-tree-link,.menu-tree-entry.is-branch-only.is-branch-active>.menu-tree-label-btn{color:var(--text-soft);background:0 0;border-color:#0000}.menu-tree-entry.is-branch-only.is-branch-active{box-shadow:none;background:0 0;border-color:#0000}.menu-tree-toggle{width:46px;min-width:46px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s;display:inline-flex}.menu-tree-toggle:hover{background:var(--interactive-surface-strong);border-color:var(--interactive-border-strong);color:var(--text)}.menu-tree-entry.is-branch-active>.menu-tree-toggle{color:#fff}.menu-tree-entry.is-branch-only>.menu-tree-toggle{background:0 0;border-color:#0000;border-radius:16px;width:46px;min-width:46px}.menu-tree-entry.is-branch-only.is-branch-active>.menu-tree-toggle{color:var(--muted);background:0 0;border-color:#0000}.menu-tree-toggle-icon{font-size:14px;line-height:1;transition:transform .2s;display:inline-block;transform:rotate(0)}.menu-tree-toggle.expanded .menu-tree-toggle-icon{transform:rotate(90deg)}.menu-tree-children{border-left:1px solid #33415570;flex-direction:column;gap:8px;margin-left:12px;padding-left:12px;display:flex}.side-block{border:1px solid var(--border);box-shadow:var(--shadow);background:#020817f5;border-radius:22px;margin-top:24px;padding:16px}.main{flex-direction:column;min-width:0;max-height:100vh;display:flex}.topbar{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:space-between;gap:18px;padding:22px 28px;display:flex;position:sticky;top:0}.topbar,.content,.platform-dialog-panel{--text:#0f172a;--text-soft:#334155;--muted:#64748b;--border:#e5e7eb;--border-strong:#cbd5e1;--interactive-surface:#f8fafc;--interactive-surface-strong:#eef2f7;--interactive-border:#94a3b83d;--interactive-border-strong:#94a3b86b;color:var(--text)}.topbar small{color:var(--muted);margin-bottom:8px;font-size:13px;display:block}.topbar h2{color:var(--text);margin:0;font-size:30px}.top-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.search-chip,.admin-chip,.badge{border:1px solid var(--border);background:#fff;border-radius:16px;padding:10px 14px;font-size:13px}.badge{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.badge.cyan{color:var(--cyan);background:#2027771f;border-color:#20277747}.badge.emerald{color:var(--emerald);background:#2d8b661f;border-color:#2d8b6652}.badge.rose{color:var(--rose);background:#da70801f;border-color:#da70804d}.badge.amber{color:var(--amber);background:#d6a3421f;border-color:#d6a3424d}.badge.violet{color:var(--violet);background:#9680df1f;border-color:#9680df4d}.badge.sky{color:var(--sky);background:#5b64cb1f;border-color:#5b64cb47}.content{background:#f5f7fb;flex:1;min-height:0;padding:28px;overflow:hidden auto}.content.p-0{padding:0}.main.dashboard-mode{height:100vh;overflow:hidden}.page-shell{flex-direction:column;gap:18px;min-height:100%;display:flex}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.grid-main{grid-template-columns:1.4fr .9fr;gap:18px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:18px;height:100%;min-height:0;display:grid}.grid-2>*{align-self:stretch;min-width:0;min-height:0;max-height:100%}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.card,.stat-card{border:1px solid var(--border);background:#fff;border-radius:26px;padding:20px;position:relative;overflow:hidden;box-shadow:0 8px 24px #0f172a0f}.card:after,.stat-card:after,.login-form-card:after{content:"";pointer-events:none;background:linear-gradient(#ffffff08,#0000 24%);position:absolute;inset:0}.section-card{flex-direction:column;min-height:0;display:flex}.section-card-body{flex:1;min-height:0}.grid-2>.section-card{overflow:hidden}.grid-2>.section-card>.section-card-body{padding-right:4px;overflow:hidden auto}.platform-dialog-overlay{z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#020617ad;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.platform-dialog-panel{background:#fff;border:1px solid #334155e6;border-radius:26px;flex-direction:column;width:min(100%,960px);max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 24px 48px #0f172a29,0 0 0 1px #0f172a0a}.platform-dialog-header{border-bottom:1px solid #3341558c;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 18px;display:flex}.platform-dialog-title{font-family:var(--font-display);letter-spacing:.02em;font-size:24px;line-height:1.2}.platform-dialog-subtitle{color:var(--muted);margin-top:8px;line-height:1.7}.platform-dialog-close{border:1px solid var(--interactive-border);background:var(--interactive-surface);color:var(--text-soft);cursor:pointer;border-radius:12px;padding:10px 14px;transition:border-color .2s,background-color .2s,color .2s,transform .2s}.platform-dialog-close:hover{border-color:var(--interactive-border-strong);color:var(--text);background:#ffffff0a;transform:translateY(-1px)}.platform-dialog-body{flex:1;min-height:0;padding:24px;overflow-y:auto}.platform-dialog-fade-enter-active,.platform-dialog-fade-leave-active{transition:opacity .2s}.platform-dialog-fade-enter-from,.platform-dialog-fade-leave-to{opacity:0}.card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.card-title{margin:0;font-size:20px;line-height:1.3}.card-subtitle{margin-top:8px}.stat-title{color:var(--muted);justify-content:space-between;font-size:14px;display:flex}.stat-value{margin-top:16px;font-size:40px;font-weight:700;line-height:1}.stat-delta{color:var(--cyan);margin-top:8px;font-size:13px}.mock-map{border:1px solid var(--border);isolation:isolate;background-position:50%;background-size:cover;border-radius:24px;height:420px;position:relative;overflow:hidden}.mock-map:before{content:"";opacity:.16;z-index:0;background-image:linear-gradient(#94a3b840 1px,#0000 1px),linear-gradient(90deg,#94a3b840 1px,#0000 1px);background-size:38px 38px;position:absolute;inset:0}.map-node{z-index:2;color:#e5eef8;font-size:12px;position:absolute}.map-dot{background:var(--cyan);border-radius:999px;width:12px;height:12px;margin-bottom:8px;box-shadow:0 0 18px #2027776b}.line{transform-origin:0;background:linear-gradient(to right,var(--cyan),transparent);z-index:1;height:2px;position:absolute}.line.amber{background:linear-gradient(to right,var(--amber),transparent)}.bottom-tips{z-index:2;grid-template-columns:repeat(3,1fr);gap:10px;display:grid;position:absolute;bottom:16px;left:16px;right:16px}.tip-box,.mini-box{border:1px solid var(--border-strong);color:var(--text-soft);box-shadow:var(--shadow-soft);background:#020617c7;border-radius:16px;padding:12px;font-size:13px;line-height:1.7}.stack{flex-direction:column;gap:14px;display:flex}.item-box{border:1px solid var(--border);background:#020817f0;border-radius:18px;padding:16px}.permission-list{gap:12px}.permission-item{border-radius:16px;padding:14px 16px}.permission-item-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.permission-item-title{margin-bottom:6px;font-size:15px}.permission-item-meta{line-height:1.6}.permission-item-actions{margin-top:12px}.item-title{margin-bottom:8px;font-size:16px;font-weight:600}.pill-row,.btn-row{flex-wrap:wrap;gap:8px;display:flex}.filters{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:12px;margin-bottom:16px;display:grid}.field,.textarea,.select{border:1px solid var(--border);width:100%;min-height:52px;color:var(--text);background:#fff;border-radius:16px;outline:none;padding:14px 16px;font-size:14px;line-height:1.2;transition:border-color .2s,box-shadow .2s}.field::placeholder,.textarea::placeholder{color:#94a3b8;opacity:1}.field:focus,.textarea:focus,.select:focus{border-color:#2027776b;box-shadow:0 0 0 4px #2027771a}.filters .field{min-width:0}.filters .select{width:100%}.filters-actions{grid-column:1/-1;justify-content:flex-end;align-self:end}.filters-toolbar{grid-template-columns:minmax(260px,1.5fr) minmax(180px,220px) auto;align-items:end}.filters-toolbar .field-group{gap:6px}.filters-toolbar .field-label{color:var(--muted);padding-left:2px}.filters-toolbar .filters-actions{flex-wrap:nowrap;grid-column:auto;justify-content:flex-start}.filters-toolbar-compact{grid-template-columns:minmax(420px,1fr) minmax(280px,320px) auto;align-items:center;gap:16px;display:grid}.field-group-compact{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.field-group-compact-wide{min-width:0}.field-label-compact{white-space:nowrap;color:var(--text-soft);margin:0;padding:0;font-size:14px;line-height:1}.field-group-compact .field,.field-group-compact .select{min-width:0}.filters-toolbar-compact .filters-actions{flex-wrap:nowrap;grid-column:auto;justify-content:flex-end;margin-left:auto}.filters-toolbar-compact .filters-actions .btn{min-width:88px}.product-search-bar{grid-template-columns:repeat(2,minmax(260px,320px)) auto;align-items:center;gap:16px;display:grid}.product-search-item{grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.product-search-item-wide{min-width:0}.product-search-label{color:var(--text-soft);white-space:nowrap;margin:0;font-size:14px;line-height:1}.product-search-item .field,.product-search-item .select{min-width:0;min-height:42px;padding-top:10px;padding-bottom:10px}.product-search-item .select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='%23475569' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:42px}.product-search-actions{flex-wrap:nowrap;grid-column:auto;justify-content:flex-start;margin-left:0}.product-search-actions .btn{min-width:88px}.search-toolbar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.search-toolbar-item{flex:0 0 320px;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.search-toolbar-item-wide{flex-basis:360px}.search-toolbar-label{color:var(--text-soft);white-space:nowrap;margin:0;font-size:14px;line-height:1}.search-toolbar-item .field,.search-toolbar-item .select{min-width:0;min-height:42px;padding-top:10px;padding-bottom:10px}.search-toolbar-item .select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' stroke='%23475569' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:42px}.search-toolbar-actions{flex-wrap:nowrap;grid-column:auto;justify-content:flex-start;margin-left:0}.search-toolbar-actions .btn{min-width:88px}.table-wrap{border:1px solid var(--border);background:#fff;border-radius:18px;overflow:auto}.pagination-bar{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.pagination-summary{text-align:right;color:var(--muted);opacity:.88;font-size:12px}.pagination-actions{justify-content:flex-end}table{border-collapse:collapse;width:100%;min-width:920px;font-size:14px}tbody tr{transition:background-color .2s,box-shadow .2s}tbody tr:hover{background:#f8fafc}tbody tr.table-row-selected{background:#eef0ff;box-shadow:inset 3px 0 #20277773}tbody tr.table-row-selected:hover{background:#e7eaff}th,td{text-align:left;border-top:1px solid var(--border);vertical-align:middle;padding:14px 16px}thead th{color:var(--muted);z-index:2;box-shadow:inset 0 -1px 0 var(--border);background:#f8fafc;border-top:none;font-weight:500;position:sticky;top:0}.col-status,.col-visibility{white-space:nowrap;width:124px;min-width:124px}.col-actions{text-align:right;width:220px;min-width:220px}thead th.col-actions{z-index:3;text-align:right;box-shadow:inset 1px 0 0 var(--border),inset 0 -1px 0 var(--border);position:sticky;right:0}tbody td.col-actions{z-index:1;box-shadow:inset 1px 0 0 var(--border);background:#fff;position:sticky;right:0}tbody tr:hover td.col-actions{background:#f8fafc}tbody tr.table-row-selected td.col-actions{background:#e9ecff}.col-actions .btn-row{justify-content:flex-end;gap:14px}.col-actions .btn{color:#202777;background:0 0;border:none;border-radius:0;min-height:auto;padding:0;font-weight:600}.col-actions .btn:hover,.col-actions .btn:focus-visible{box-shadow:none;color:#202777;background:0 0;border-color:#0000;transform:none}.col-actions .btn.soft{color:#202777;background:0 0;border:none}.col-actions .btn.danger{color:#cf6273;background:0 0;border:none}.col-actions .btn.danger:hover,.col-actions .btn.danger:focus-visible{color:#bb5465}.cell-ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.btn{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:9px 14px;line-height:1.2;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s,opacity .2s;display:inline-flex}.btn:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 4px 12px #0f172a14}.btn:focus-visible{border-color:#202777;outline:none;box-shadow:0 0 0 4px #20277724}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{cursor:not-allowed;opacity:.52;box-shadow:none;transform:none}.btn:disabled:hover{background:#fff;border-color:#cbd5e1}.btn.primary{color:#fff;background:#202777;border-color:#0000;font-weight:700;box-shadow:0 10px 24px #11111129}.btn.primary:hover{background:#2b338f;box-shadow:0 14px 28px #2027773d}.btn.primary:disabled:hover{background:#202777;border-color:#0000}.btn.soft{color:#202777;background:#eef0ff;border-color:#c7ccf5;font-weight:600}.btn.soft:hover{background:#e2e6ff;border-color:#9ea7ef;box-shadow:0 6px 14px #2027771f}.btn.danger{color:#cf6273;background:#fff1f4;border-color:#efb3bc;font-weight:600}.btn.danger:hover{background:#ffe6eb;border-color:#e18b99;box-shadow:0 6px 14px #da708024}.btn.ghost{color:var(--muted)}.surface-selected{border-color:var(--accent-border-strong);background:var(--accent-surface-soft);box-shadow:var(--accent-shadow-soft)}.surface-selected-strong{border-color:var(--accent-border-strong);background:var(--accent-surface);box-shadow:var(--accent-shadow-soft)}.form-stack{flex-direction:column;gap:12px;display:flex}.field-group{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--text-soft);font-size:13px;line-height:1.4}.field-label.required:after{content:" *";color:var(--rose)}.form-tip{color:var(--muted);font-size:12px;line-height:1.6}.form-tip .required-mark{color:var(--rose);font-weight:700}.dialog-meta{border:1px solid var(--border);color:var(--text-soft);background:#f8fafc;border-radius:14px;padding:12px 14px;line-height:1.6}.dialog-section-title{color:var(--text);margin:6px 0 2px;font-size:14px;font-weight:700}.dialog-actions{justify-content:flex-end}.dialog-actions .btn{min-width:112px}.dialog-detail-panel{border:1px solid var(--border);background:#fff;border-radius:16px;padding:16px 18px}.dialog-detail-title{color:var(--text);font-size:15px;font-weight:700}.dialog-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:12px;display:grid}.dialog-detail-row{border-bottom:1px dashed var(--border);grid-template-columns:96px minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:10px 0;display:grid}.dialog-detail-row-wide{grid-column:1/-1}.dialog-detail-label{color:var(--muted);white-space:nowrap;font-size:12px;line-height:1.5}.dialog-detail-value{color:var(--text);word-break:break-all;font-size:14px;font-weight:600;line-height:1.6}.platform-dialog-panel .field-group{grid-template-columns:108px minmax(0,1fr);align-items:center;gap:10px;display:grid}.dialog-edit-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.dialog-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-top:12px;display:grid}.dialog-edit-grid>.subgrid-2,.dialog-edit-grid>.dialog-meta,.dialog-edit-grid>.dialog-section-title,.dialog-edit-grid>.btn-row,.dialog-edit-grid>.stack,.dialog-edit-grid>.field-group.dialog-detail-row-wide,.dialog-edit-grid>.dialog-detail-row-wide{grid-column:1/-1}.platform-dialog-panel .field-group .field-label{white-space:nowrap;text-align:right;margin:0;display:block}.platform-dialog-panel .field-group .field-label.required:before{content:"* ";color:var(--rose);font-weight:700}.platform-dialog-panel .field-group .field-label.required:after{content:none}.platform-dialog-panel .field-group .field,.platform-dialog-panel .field-group .select,.platform-dialog-panel .field-group .textarea{width:100%}.platform-dialog-panel .field-group .select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,#0000 50%);background-position:calc(100% - 18px) calc(50% + 1px),calc(100% - 12px) calc(50% + 1px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:42px}.platform-dialog-panel .field-group .textarea{min-height:88px}.drone-grid,.station-grid,.metric-grid{gap:16px;display:grid}.drone-grid{grid-template-columns:repeat(2,1fr)}.station-grid{grid-template-columns:repeat(3,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}.subgrid-2{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.summary-tile{background:#fff;border:1px solid #3341556b;border-radius:18px;padding:14px 16px;box-shadow:0 4px 14px #0f172a0d}.summary-label{color:var(--muted);font-size:13px;line-height:1.6}.summary-value{color:var(--text);font-size:26px;font-weight:700;font-family:var(--font-display);margin-top:8px;line-height:1}.summary-hint{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.6}.subpanel{background:#fff;border:1px solid #33415561;border-radius:16px;padding:14px;font-size:14px}.bars{border:1px solid var(--border);background:#fff;border-radius:18px;align-items:end;gap:12px;height:280px;padding:20px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;gap:10px;display:flex}.bar{background:linear-gradient(#202777f2,#5b64cb94);border-radius:16px 16px 0 0;width:100%;box-shadow:0 8px 20px #2027772e}.doc-block{border:1px dashed var(--border-strong);color:var(--text-soft);background:#fff;border-radius:18px;margin-top:18px;padding:18px;font-size:14px;line-height:1.8}.doc-block.success{color:var(--emerald);background:#2d8b661a;border-style:solid;border-color:#2d8b6657}.doc-block.error{color:var(--rose);background:#da70801a;border-style:solid;border-color:#da708057}.empty-state{border:1px dashed var(--border-strong);text-align:center;color:var(--muted);background:#fff;border-radius:18px;padding:28px}.login-shell{grid-template-columns:1.15fr .85fr;gap:0;min-height:100vh;display:grid}.login-art{background-position:50%;background-size:cover;border-right:1px solid #1e293bb8;flex-direction:column;justify-content:space-between;min-height:100vh;padding:56px 48px;display:flex;position:relative}.login-art:before{content:"";background:linear-gradient(135deg,#0206176b,#020617e0 65%);position:absolute;inset:0}.login-art-inner,.login-panel{z-index:1;position:relative}.login-title{max-width:560px;margin:0;font-size:56px;line-height:1.02}.login-panel{background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;padding:40px;display:flex;position:relative;overflow:hidden}.login-panel:before{content:"";pointer-events:none;background:linear-gradient(135deg,#0206172e,#0f172a61);position:absolute;inset:0}.login-form-card{border:1px solid var(--border);width:min(460px,100%);box-shadow:var(--shadow);background:#0f172aeb;border-radius:28px;padding:28px;position:relative;overflow:hidden}.login-form-card h2{font-size:30px;font-family:var(--font-display);margin:0}.login-form-card p{color:var(--muted);margin:10px 0 0;font-size:14px;line-height:1.8}.login-form-card .field,.login-form-card .textarea,.login-form-card .select{color:#0f172a;-webkit-text-fill-color:#0f172a;font-weight:500}.login-form-card .field::placeholder,.login-form-card .textarea::placeholder{color:#94a3b8}.auth-error{color:var(--rose);margin-top:6px;font-size:13px}.helper-grid,.hero-list{gap:12px;display:grid}.helper-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.status-inline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.logout-btn{min-width:92px}.form-label{color:var(--muted);margin-bottom:8px;font-size:13px;display:inline-flex}.demo-credentials{border-top:1px solid #3341556b;margin-top:18px;padding-top:18px}.demo-account{color:var(--text-soft);border-bottom:1px dashed #33415552;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.demo-account:last-child{border-bottom:none;padding-bottom:0}.section-spacing{flex-direction:column;gap:18px;display:flex}.action-note{color:var(--muted);margin-top:14px;font-size:13px}.text-right{text-align:right}.text-soft{color:var(--text-soft)}.high-emphasis{color:var(--cyan)}@media (max-width:1440px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:1280px){.app-shell,.grid-main,.grid-2,.drone-grid,.station-grid,.metric-grid,.login-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.main{max-height:none}.content{overflow:visible}.page-shell,.grid-2{height:auto}.grid-2>*{max-height:none}.grid-2>.section-card{overflow:hidden}.grid-2>.section-card>.section-card-body{padding-right:0;overflow:visible}.login-art{min-height:auto}}@media (max-width:768px){.app-shell,.grid-4,.grid-3,.bottom-tips,.summary-grid,.dialog-detail-grid,.dialog-edit-grid,.subgrid-2,.filters,.helper-grid{grid-template-columns:1fr}.filters-toolbar .filters-actions{flex-wrap:wrap;grid-column:1/-1}.filters-toolbar-compact{grid-template-columns:1fr;gap:12px}.field-group-compact,.field-group-compact-wide,.platform-dialog-panel .field-group{grid-template-columns:1fr;gap:6px}.dialog-detail-row{grid-template-columns:1fr;gap:4px}.filters-toolbar-compact .filters-actions{flex-wrap:wrap;justify-content:flex-start;margin-left:0}.product-search-bar{grid-template-columns:1fr;gap:12px}.product-search-item,.product-search-item-wide{grid-template-columns:1fr;gap:6px}.product-search-actions{flex-wrap:wrap;justify-content:flex-start;margin-left:0}.search-toolbar-item,.search-toolbar-item-wide{flex:100%;grid-template-columns:1fr;gap:6px}.search-toolbar-actions{flex-wrap:wrap}.content,.topbar,.sidebar,.login-art,.login-panel{padding:18px}.topbar h2{font-size:24px}.login-title{font-size:38px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
