:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#162033;background:#f6f8fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{letter-spacing:0}.route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:#64748b}.brand-logo{display:inline-flex;align-items:center;flex-shrink:0;line-height:0}.brand-logo img{display:block;width:auto;user-select:none;-webkit-user-drag:none}.brand-logo--full img{height:38px;max-width:190px;object-fit:contain}.brand-logo--small img{height:32px;width:32px;object-fit:contain}.sidebar__brand .brand-logo--full img{height:38px;max-width:185px}.sidebar__brand-link .brand-logo--full{flex:1;min-width:0}.sidebar__brand-link .brand-logo--full img{width:100%;max-width:185px}.shell.is-collapsed .sidebar__brand-link .brand-logo{flex:0 0 auto}.shell.is-collapsed .sidebar__brand .brand-logo--small img{height:34px;width:34px}.topbar__brand .brand-logo--small img{height:26px;width:26px}.brand-lockup .brand-logo--full img{height:40px;max-width:210px}@media(max-width:640px){.brand-lockup .brand-logo--full img{height:36px}}@media(prefers-reduced-motion:reduce){.brand-logo img{animation:none!important;transition:none!important}}.version-badge{--badge-accent: var(--l-brand, var(--fs-accent, #2563eb));--badge-text: var(--l-text-subtle, var(--fs-text-subtle, #94a3b8));--badge-text-strong: var(--l-text, var(--fs-text, #e2e8f0));--badge-bg: rgba(37, 99, 235, .08);--badge-border: rgba(37, 99, 235, .18);--badge-bg: color-mix(in srgb, var(--badge-accent) 10%, transparent);--badge-border: color-mix(in srgb, var(--badge-accent) 20%, transparent);display:inline-flex;align-items:center;gap:8px;padding:6px 10px;min-height:28px;border-radius:999px;border:1px solid var(--badge-border);background:linear-gradient(180deg,#ffffff14,#fff0),var(--badge-bg);color:var(--badge-text);font-size:11px;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;user-select:none;box-shadow:inset 0 1px #ffffff0f,0 1px 2px #0f172a14;backdrop-filter:blur(8px) saturate(120%);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background-color .14s ease}.version-badge:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff0f,0 6px 16px #0f172a1f}.version-badge__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 30% 30%,#ffffffe6,#fff0 40%),var(--badge-accent);box-shadow:0 0 0 3px #2563eb29,0 0 10px #2563eb2e;box-shadow:0 0 0 3px color-mix(in srgb,var(--badge-accent) 18%,transparent),0 0 10px color-mix(in srgb,var(--badge-accent) 28%,transparent)}.version-badge__label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.72}.version-badge__value{margin:0;padding:3px 7px;border-radius:999px;background:#ffffff0f;color:var(--badge-text-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:480px){.version-badge__label{display:none}}@media(prefers-reduced-motion:reduce){.version-badge{transition:none}.version-badge:hover{transform:none}}:root{--sb-width: 248px;--sb-width-collapsed: 70px;--tb-height: 58px;--l-bg: #f3f6fb;--l-card: #ffffff;--l-surface: #f8fafc;--l-surface-2: #f1f5f9;--l-hover: #eef2f8;--l-active: #e8edf8;--l-border: #e4e9f2;--l-border-strong: #c9d3e0;--l-border-subtle: #edf1f7;--l-text: #0d1526;--l-text-secondary: #3d5068;--l-text-muted: #5e7491;--l-text-subtle: #8fa3ba;--l-text-ghost: #b8cade;--l-brand: #2563eb;--l-brand-hover: #1d4ed8;--l-brand-soft: #eff6ff;--l-brand-soft-2: #dbeafe;--l-brand-border: #bfdbfe;--l-brand-deep: #1e3a8a;--l-brand-glow: rgba(37, 99, 235, .2);--l-brand-glow-strong: rgba(37, 99, 235, .35);--l-brand-gradient: linear-gradient(135deg, #2563eb 0%, #1e40af 60%, #1e3a8a 100%);--l-brand-gradient-45: linear-gradient(45deg, #3b82f6, #2563eb, #1e3a8a);--l-success: #10b981;--l-success-soft: #ecfdf5;--l-warning: #f59e0b;--l-danger: #dc2626;--l-danger-soft: #fef2f2;--l-danger-border: #fecaca;--sb-bg: #ffffff;--sb-border: #e4e9f2;--sb-nav-hover: #f0f4fb;--sb-nav-active-bg: #eff6ff;--sb-nav-active-color: #1d4ed8;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 14px;--r-full: 9999px;--sh-xs: 0 1px 2px rgba(13, 21, 38, .04);--sh-sm: 0 1px 3px rgba(13, 21, 38, .06), 0 1px 2px rgba(13, 21, 38, .04);--sh-md: 0 4px 14px rgba(13, 21, 38, .08), 0 1px 4px rgba(13, 21, 38, .04);--sh-lg: 0 12px 40px rgba(13, 21, 38, .12), 0 4px 12px rgba(13, 21, 38, .06);--sh-menu: 0 16px 48px rgba(13, 21, 38, .14), 0 4px 12px rgba(13, 21, 38, .08), 0 0 0 1px rgba(13, 21, 38, .06);--sh-brand: 0 3px 10px rgba(37, 99, 235, .3), 0 1px 3px rgba(37, 99, 235, .2);--sh-brand-strong: 0 6px 20px rgba(37, 99, 235, .4);--sh-tooltip: 0 6px 16px rgba(13, 21, 38, .18), 0 2px 6px rgba(13, 21, 38, .1);--sh-inner: inset 0 1px 2px rgba(13, 21, 38, .06);--ease: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(.33, 1, .68, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--dur-fast: .1s;--dur-normal: .18s;--dur-slow: .28s;--dur-sidebar: .24s}body{margin:0;background:var(--l-bg);color:var(--l-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}.shell{min-height:100svh;background:var(--l-bg)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;width:var(--sb-width);background:var(--sb-bg);border-right:1px solid var(--sb-border);transition:width var(--dur-sidebar) var(--ease);will-change:width}.sidebar:after{content:"";position:absolute;top:0;right:-1px;bottom:0;width:1px;background:linear-gradient(180deg,transparent 0%,var(--l-brand-border) 30%,var(--l-brand-border) 70%,transparent 100%);opacity:0;transition:opacity var(--dur-normal) var(--ease);pointer-events:none}.shell.is-collapsed .sidebar:after{opacity:.5}.shell.is-collapsed .sidebar{width:var(--sb-width-collapsed)}.sidebar__brand{display:flex;align-items:center;gap:12px;height:var(--tb-height);padding:0 16px;border-bottom:1px solid var(--sb-border);flex-shrink:0;transition:padding var(--dur-sidebar) var(--ease);position:relative}.sidebar__brand:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,transparent,var(--l-brand-border),transparent);opacity:.6}.sidebar__brand-link{display:flex;align-items:center;gap:11px;flex:1;min-width:0;text-decoration:none;color:inherit;border-radius:var(--r-md);padding:6px 8px;margin:-6px -8px;transition:background var(--dur-fast) ease}.sidebar__brand-link:hover{background:var(--l-surface)}.sidebar__brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-md);background:var(--l-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--sh-brand);transition:box-shadow var(--dur-normal) var(--ease),transform var(--dur-normal) var(--ease-spring);position:relative;overflow:hidden}.sidebar__brand-mark:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 60%);border-radius:inherit}.sidebar__brand-link:hover .sidebar__brand-mark{box-shadow:var(--sh-brand-strong);transform:scale(1.04)}.sidebar__brand-text{display:flex;flex-direction:column;min-width:0;overflow:hidden;opacity:1;transition:opacity var(--dur-normal) ease}.sidebar__brand-text strong{font-size:13.5px;font-weight:750;color:var(--l-text);line-height:1.25;letter-spacing:-.025em;white-space:nowrap}.sidebar__brand-text span{font-size:10.5px;color:var(--l-text-subtle);line-height:1.3;white-space:nowrap;letter-spacing:.01em}.shell.is-collapsed .sidebar__brand{padding:0;justify-content:center}.shell.is-collapsed .sidebar__brand:after{left:12px;right:12px}.shell.is-collapsed .sidebar__brand-link{flex:0;justify-content:center;padding:0;margin:0}.shell.is-collapsed .sidebar__brand-link:hover{background:transparent}.shell.is-collapsed .sidebar__brand-text{opacity:0;width:0;pointer-events:none}.sidebar__close{display:none;margin-left:auto;width:30px;height:30px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--l-text-muted);cursor:pointer;place-items:center;transition:all var(--dur-fast) ease;flex-shrink:0}.sidebar__close:hover{background:var(--l-hover);color:var(--l-text)}.sidebar__nav{flex:1;padding:16px 10px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--l-border-strong) transparent;transition:padding var(--dur-sidebar) var(--ease)}.sidebar__nav::-webkit-scrollbar{width:3px}.sidebar__nav::-webkit-scrollbar-track{background:transparent}.sidebar__nav::-webkit-scrollbar-thumb{background:var(--l-border-strong);border-radius:999px}.sidebar__nav::-webkit-scrollbar-thumb:hover{background:var(--l-text-subtle)}.shell.is-collapsed .sidebar__nav{padding:16px 7px}.nav-group{display:flex;flex-direction:column;gap:1px;margin-bottom:24px}.nav-group:last-child{margin-bottom:0}.nav-group__label{display:flex;align-items:center;gap:8px;padding:0 10px 8px;color:var(--l-text-ghost);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:opacity var(--dur-normal) ease}.shell.is-collapsed .nav-group{margin-bottom:16px;align-items:center;gap:1px}.shell.is-collapsed .nav-group__label{width:30px;height:1px;padding:0;margin:8px 0 12px;overflow:hidden;background:linear-gradient(90deg,transparent,var(--l-border),transparent);color:transparent;border-radius:1px;pointer-events:none}.shell.is-collapsed .nav-group:first-child .nav-group__label{display:none}.sidelink{position:relative;display:flex;align-items:center;gap:10px;height:37px;padding:0 10px;border-radius:var(--r-md);color:var(--l-text-muted);font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;transition:color var(--dur-fast) ease,background var(--dur-fast) ease;white-space:nowrap;overflow:hidden;letter-spacing:-.005em}.sidelink:hover{background:var(--sb-nav-hover);color:var(--l-text-secondary)}.sidelink.is-active{background:var(--sb-nav-active-bg);color:var(--sb-nav-active-color);font-weight:600}.sidelink.is-active:before{content:"";position:absolute;left:-10px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--l-brand);box-shadow:1px 0 6px #2563eb66}.sidelink__icon{display:grid;place-items:center;width:20px;height:20px;flex-shrink:0;opacity:.7;transition:opacity var(--dur-fast) ease,transform var(--dur-normal) var(--ease-spring)}.sidelink:hover .sidelink__icon{opacity:.9;transform:scale(1.05)}.sidelink.is-active .sidelink__icon{opacity:1}.sidelink__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;opacity:1;transition:opacity var(--dur-normal) ease}.sidelink__badge{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:17px;padding:0 5px;border-radius:var(--r-full);background:var(--l-surface-2);border:1px solid var(--l-border);color:var(--l-text-muted);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0;transition:opacity var(--dur-normal) ease}.sidelink.is-active .sidelink__badge{background:var(--l-brand);border-color:var(--l-brand);color:#fff;box-shadow:0 2px 6px var(--l-brand-glow)}.shell.is-collapsed .sidelink{justify-content:center;padding:0;width:42px;height:42px;margin:0 auto}.shell.is-collapsed .sidelink__label,.shell.is-collapsed .sidelink__badge{opacity:0;width:0;height:0;pointer-events:none;position:absolute;overflow:hidden}.shell.is-collapsed .sidelink.is-active{background:var(--sb-nav-active-bg);box-shadow:inset 0 0 0 1.5px var(--l-brand-border),0 2px 8px #2563eb14}.shell.is-collapsed .sidelink:hover:not(.is-active){background:var(--sb-nav-hover)}.shell.is-collapsed .sidelink:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 16px);top:50%;transform:translateY(-50%) translate(-8px);padding:6px 12px;border-radius:var(--r-md);background:var(--l-text);color:#fff;font-size:12px;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-normal) ease,transform var(--dur-normal) var(--ease);box-shadow:var(--sh-tooltip);z-index:50;letter-spacing:-.005em}.shell.is-collapsed .sidelink:before{content:"";position:absolute;left:calc(100% + 9px);top:50%;transform:translateY(-50%) translate(-8px);width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:6px solid var(--l-text);opacity:0;pointer-events:none;transition:opacity var(--dur-normal) ease,transform var(--dur-normal) var(--ease);z-index:50}.shell.is-collapsed .sidelink:hover:after,.shell.is-collapsed .sidelink:hover:before{opacity:1;transform:translateY(-50%) translate(0);transition-delay:.3s}.shell.is-collapsed .sidelink.is-active:before{display:none}.shell.is-collapsed .sidelink.is-active:hover:before{display:block;background:none;border:none;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:6px solid var(--l-text)}.sidebar-nav-group{position:relative;display:flex;flex-direction:column;gap:1px}.sidebar-subitems{display:flex;flex-direction:column;gap:1px;position:relative;padding-left:20px;margin-left:22px;max-height:0;overflow:hidden;opacity:0;transform:translateY(-6px);transition:max-height .24s var(--ease),opacity .18s ease,transform .24s var(--ease),padding .24s var(--ease)}.sidebar-subitems:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1.5px;background:linear-gradient(180deg,var(--l-brand-border) 0%,var(--l-border) 100%);border-radius:2px;transition:background var(--dur-normal) ease}.sidebar-nav-group:hover .sidebar-subitems,.sidebar-nav-group.is-active .sidebar-subitems{max-height:200px;opacity:1;transform:translateY(0);padding-top:4px;padding-bottom:4px}.sidebar-nav-group.is-active .sidebar-subitems:before{background:linear-gradient(180deg,var(--l-brand) 0%,var(--l-brand-border) 100%)}.sidebar-sublink{position:relative;display:flex;align-items:center;gap:9px;height:31px;padding:0 10px;border-radius:var(--r-sm);color:var(--l-text-muted);font-size:12.5px;font-weight:500;text-decoration:none;white-space:nowrap;transition:color var(--dur-fast) ease,background var(--dur-fast) ease;overflow:hidden}.sidebar-sublink svg{flex-shrink:0;color:var(--l-text-ghost);transition:color var(--dur-fast) ease,transform var(--dur-normal) var(--ease-spring)}.sidebar-sublink>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-sublink:hover{background:var(--sb-nav-hover);color:var(--l-text-secondary)}.sidebar-sublink:hover svg{color:var(--l-text-muted);transform:scale(1.1)}.sidebar-sublink.is-active{background:var(--sb-nav-active-bg);color:var(--sb-nav-active-color);font-weight:600}.sidebar-sublink.is-active svg{color:var(--l-brand)}.sidebar-sublink.is-active:before{content:"";position:absolute;left:-20px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--l-brand);box-shadow:0 0 0 2px var(--l-card),0 0 0 3px var(--l-brand-border);transition:box-shadow var(--dur-normal) ease}.shell.is-collapsed .sidebar-subitems{display:none}.sidebar__footer{padding:12px 10px 16px;border-top:1px solid var(--sb-border);flex-shrink:0;transition:padding var(--dur-sidebar) var(--ease);position:relative}.sidebar__footer:before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,transparent,var(--l-brand-border),transparent);opacity:.5}.sidebar__role-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;margin:0 0 10px 2px;border-radius:var(--r-full);background:linear-gradient(135deg,var(--l-brand-soft),var(--l-brand-soft-2));border:1px solid var(--l-brand-border);color:var(--l-brand);font-size:10.5px;font-weight:600;letter-spacing:.02em;transition:opacity var(--dur-normal) ease;white-space:nowrap}.sidebar__role-tag svg{flex-shrink:0}.shell.is-collapsed .sidebar__role-tag{display:none}.sidebar__footer .version-badge{display:flex;justify-content:center;margin-top:10px;opacity:.8}.shell.is-collapsed .sidebar__footer .version-badge{display:none}.sidebar__collapse{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:33px;padding:0 10px;border:1px solid var(--l-border);border-radius:var(--r-md);background:var(--l-surface);color:var(--l-text-muted);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--dur-fast) ease;letter-spacing:-.005em}.sidebar__collapse:hover{background:var(--l-hover);color:var(--l-text);border-color:var(--l-border-strong)}.sidebar__collapse:active{transform:scale(.98)}.shell.is-collapsed .sidebar__footer{padding:12px 8px 16px;display:flex;align-items:center;justify-content:center}.shell.is-collapsed .sidebar__collapse{width:42px;height:42px;padding:0;border-radius:var(--r-md)}.workspace{min-height:100svh;padding-left:var(--sb-width);transition:padding-left var(--dur-sidebar) var(--ease);display:flex;flex-direction:column;will-change:padding-left}.shell.is-collapsed .workspace{padding-left:var(--sb-width-collapsed)}.workspace--auth{padding-left:0}.workspace__content{flex:1;min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:var(--tb-height);padding:0 22px;background:#ffffffe0;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--l-border)}.topbar:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--l-brand-border) 30%,var(--l-brand-border) 70%,transparent 100%);opacity:.4}.topbar__left{display:flex;align-items:center;gap:12px}.topbar__menu{display:none;width:34px;height:34px;border:1px solid var(--l-border);border-radius:var(--r-md);background:var(--l-card);color:var(--l-text-secondary);cursor:pointer;place-items:center;transition:all var(--dur-fast) ease;flex-shrink:0}.topbar__menu:hover{background:var(--l-hover);color:var(--l-text);border-color:var(--l-border-strong)}.topbar__brand{display:none;align-items:center;gap:9px;text-decoration:none;color:var(--l-text)}.topbar__brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--l-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--sh-brand)}.topbar__brand span{font-size:13.5px;font-weight:700;letter-spacing:-.02em;color:var(--l-text)}.topbar__right{position:relative;display:flex;align-items:center;gap:6px}.topbar__icon-btn{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--l-text-muted);cursor:pointer;transition:all var(--dur-fast) ease;flex-shrink:0}.topbar__icon-btn:hover{background:var(--l-surface);border-color:var(--l-border);color:var(--l-text-secondary)}.topbar__icon-btn:active{transform:scale(.94)}.account{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px 0 5px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--l-text);font-family:inherit;cursor:pointer;transition:all var(--dur-fast) ease}.account:hover{background:var(--l-surface);border-color:var(--l-border)}.account.is-open{background:var(--l-surface);border-color:var(--l-border-strong);box-shadow:var(--sh-xs)}.account__avatar{position:relative;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--l-brand-gradient);color:#fff;font-size:11.5px;font-weight:700;flex-shrink:0;box-shadow:0 2px 6px #2563eb40;letter-spacing:-.01em;transition:box-shadow var(--dur-normal) ease}.account:hover .account__avatar{box-shadow:0 3px 10px #2563eb59}.account__online{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--l-success);border:2px solid var(--l-card);animation:onlinePulse 3s ease-in-out infinite}@keyframes onlinePulse{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 0 3px #10b98133}}.account__info{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.account__name{font-size:12.5px;font-weight:600;color:var(--l-text);line-height:1.3;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.account__role{font-size:10.5px;color:var(--l-text-subtle);line-height:1.2;font-weight:500}.account__chev{color:var(--l-text-ghost);transition:transform var(--dur-normal) var(--ease),color var(--dur-fast) ease;flex-shrink:0}.account:hover .account__chev{color:var(--l-text-muted)}.account__chev.is-open{transform:rotate(180deg);color:var(--l-text-secondary)}.account-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:290px;padding:6px;border-radius:var(--r-xl);background:var(--l-card);border:1px solid var(--l-border);box-shadow:var(--sh-menu);animation:menuSlideIn .18s var(--ease) both;transform-origin:top right;z-index:100}@keyframes menuSlideIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.account-menu__header{display:flex;align-items:center;gap:12px;padding:13px 14px;margin-bottom:2px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--l-surface) 0%,var(--l-brand-soft) 100%);border:1px solid var(--l-border-subtle);position:relative;overflow:hidden}.account-menu__header:before{content:"";position:absolute;top:-20px;right:-20px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,var(--l-brand-glow) 0%,transparent 70%);pointer-events:none}.account-menu__avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--l-brand-gradient);color:#fff;font-size:14px;font-weight:700;flex-shrink:0;letter-spacing:-.01em;box-shadow:0 3px 10px #2563eb4d;position:relative}.account-menu__avatar:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 60%)}.account-menu__id{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;overflow:hidden}.account-menu__id strong{font-size:13.5px;font-weight:700;color:var(--l-text);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.015em}.account-menu__id span{font-size:11.5px;color:var(--l-text-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu__badges{padding:8px 12px 2px}.account-menu__pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-full);background:var(--l-surface);border:1px solid var(--l-border);color:var(--l-text-secondary);font-size:11px;font-weight:600;letter-spacing:.01em}.account-menu__pill--admin{background:linear-gradient(135deg,var(--l-brand-soft),var(--l-brand-soft-2));border-color:var(--l-brand-border);color:var(--l-brand)}.account-menu__divider{height:1px;margin:5px 4px;background:var(--l-border);border-radius:1px}.account-menu__item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;border-radius:var(--r-md);background:transparent;color:var(--l-text-secondary);font-family:inherit;font-size:13px;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;transition:all var(--dur-fast) ease;letter-spacing:-.005em}.account-menu__item svg{color:var(--l-text-ghost);flex-shrink:0;transition:color var(--dur-fast) ease,transform var(--dur-normal) var(--ease-spring)}.account-menu__item:hover{background:var(--l-surface);color:var(--l-text)}.account-menu__item:hover svg{color:var(--l-text-muted);transform:scale(1.1)}.account-menu__item:active{transform:scale(.99)}.account-menu__item--danger{color:var(--l-danger)}.account-menu__item--danger svg{color:var(--l-danger);opacity:.7}.account-menu__item--danger:hover{background:var(--l-danger-soft);color:var(--l-danger)}.account-menu__item--danger:hover svg{color:var(--l-danger);opacity:1}.auth-topbar{width:100%;max-width:1200px;margin:0 auto;padding:28px 24px 8px}.brand-lockup{display:inline-flex;align-items:center;gap:16px}.brand-lockup__mark{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-xl);background:var(--l-brand-gradient);color:#fff;box-shadow:var(--sh-brand-strong);flex-shrink:0;position:relative;overflow:hidden}.brand-lockup__mark:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 60%)}.brand-lockup h1{margin:0;font-size:18px;font-weight:750;color:var(--l-text);letter-spacing:-.025em;line-height:1.2}.brand-lockup p{margin:3px 0 0;font-size:11px;color:var(--l-text-subtle);letter-spacing:.07em;text-transform:uppercase;font-weight:600}.mobile-overlay{display:none;position:fixed;inset:0;z-index:30;background:#0d15268c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:overlayIn .22s ease both}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@media(max-width:1024px){.workspace,.shell.is-collapsed .workspace{padding-left:0}.sidebar{transform:translate(-100%);transition:transform var(--dur-sidebar) var(--ease);width:var(--sb-width);box-shadow:var(--sh-lg)}.shell.mobile-open .sidebar{transform:translate(0)}.shell.mobile-open .mobile-overlay{display:block}.sidebar__close,.topbar__menu{display:grid}.topbar__brand{display:flex}.sidebar__collapse{display:none}.shell.is-collapsed .sidebar{width:var(--sb-width)}.shell.is-collapsed .sidebar__brand{padding:0 16px;justify-content:flex-start}.shell.is-collapsed .sidebar__brand-link{flex:1;justify-content:flex-start;padding:6px 8px;margin:-6px -8px}.shell.is-collapsed .sidebar__brand-link:hover{background:var(--l-surface)}.shell.is-collapsed .sidebar__brand-text{opacity:1;width:auto;pointer-events:auto}.shell.is-collapsed .sidebar__nav{padding:16px 10px}.shell.is-collapsed .nav-group{margin-bottom:24px;align-items:stretch;gap:1px}.shell.is-collapsed .nav-group__label{width:auto;height:auto;padding:0 10px 8px;margin:0;background:transparent;color:var(--l-text-ghost);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;display:flex}.shell.is-collapsed .nav-group:first-child .nav-group__label{display:flex}.shell.is-collapsed .sidelink{justify-content:flex-start;padding:0 10px;width:100%;height:37px;margin:0}.shell.is-collapsed .sidelink__label{opacity:1;width:auto;height:auto;pointer-events:auto;position:static}.shell.is-collapsed .sidelink__badge{opacity:1;width:auto;height:17px;pointer-events:auto;position:static}.shell.is-collapsed .sidelink.is-active:before{display:block}.shell.is-collapsed .sidelink.is-active{box-shadow:none}.shell.is-collapsed .sidelink:after,.shell.is-collapsed .sidelink:before{display:none}.shell.is-collapsed .sidebar-subitems{display:flex}.shell.is-collapsed .sidebar__footer{padding:12px 10px 16px;display:block}.shell.is-collapsed .sidebar__role-tag{display:inline-flex;margin-bottom:10px}.shell.is-collapsed .sidebar__collapse{display:none}}@media(max-width:640px){.topbar{padding:0 14px}.account__info{display:none}.account{padding:0 5px;gap:0;border:1px solid transparent}.account__chev{display:none}.account-menu{right:-4px;min-width:min(320px,calc(100vw - 20px))}.auth-topbar{padding:20px 16px 8px}.brand-lockup h1{font-size:16px}}:where(.sidelink,.sidebar-sublink,.sidebar__collapse,.sidebar__close,.sidebar__brand-link,.topbar__menu,.topbar__icon-btn,.account,.account-menu__item):focus-visible{outline:2px solid var(--l-brand);outline-offset:2px;border-radius:var(--r-sm)}@media print{.sidebar,.topbar,.mobile-overlay{display:none!important}.workspace,.shell.is-collapsed .workspace{padding-left:0!important}}:root{--a-bg: #f6f8fb;--a-card: #ffffff;--a-surface: #f8fafc;--a-hover: #f1f5f9;--a-border: #e5e9f0;--a-border-strong: #cbd5e1;--a-text: #0f172a;--a-text-secondary: #475569;--a-text-muted: #64748b;--a-text-subtle: #94a3b8;--a-brand: #2563eb;--a-brand-hover: #1d4ed8;--a-brand-soft: #eff6ff;--a-brand-border: #bfdbfe;--a-success: #059669;--a-warning: #b45309;--a-indigo: #4f46e5;--a-indigo-soft: #eef2ff;--a-indigo-border: #c7d2fe;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-md: 0 4px 12px rgba(15, 23, 42, .06), 0 2px 4px rgba(15, 23, 42, .03);--ease: cubic-bezier(.16, 1, .3, 1)}.admin-hub{width:100%;max-width:1200px;margin:0 auto;padding:28px 24px 48px;color:var(--a-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.admin-hub__hero{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--a-border)}.admin-hub__hero-text{flex:1;min-width:0}.admin-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:100px;background:var(--a-brand-soft);border:1px solid var(--a-brand-border);color:var(--a-brand);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1.4}.admin-eyebrow__dot{width:5px;height:5px;border-radius:50%;background:var(--a-brand);box-shadow:0 0 0 3px #2563eb26}.admin-hub__hero h1{margin:14px 0 6px;font-size:clamp(22px,2.4vw,26px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--a-text)}.admin-hub__hero p{margin:0;max-width:580px;color:var(--a-text-muted);font-size:13.5px;line-height:1.55}.admin-hub__search{display:flex;align-items:center;gap:8px;width:320px;height:40px;padding:0 12px;border-radius:var(--r-md);background:var(--a-card);border:1px solid var(--a-border);box-shadow:var(--sh-xs);transition:border-color .15s ease,box-shadow .15s ease;flex-shrink:0}.admin-hub__search:focus-within{border-color:var(--a-brand-border);box-shadow:0 0 0 3px #2563eb1a}.admin-hub__search svg{color:var(--a-text-subtle);flex-shrink:0}.admin-hub__search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--a-text);font-family:inherit;font-size:13px;outline:none}.admin-hub__search input::placeholder{color:var(--a-text-subtle)}.admin-hub__search kbd{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;background:var(--a-surface);border:1px solid var(--a-border);color:var(--a-text-muted);font-family:inherit;font-size:11px;font-weight:600;flex-shrink:0}.admin-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:20px}.admin-section{display:flex;flex-direction:column;padding:20px;border-radius:var(--r-lg);background:var(--a-card);border:1px solid var(--a-border);box-shadow:var(--sh-xs);color:var(--a-text);text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s var(--ease)}.admin-section:hover{border-color:var(--a-brand-border);box-shadow:var(--sh-md);transform:translateY(-2px)}.admin-section__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-section__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);transition:transform .2s var(--ease)}.admin-section:hover .admin-section__icon{transform:scale(1.05)}.admin-section__icon--blue{background:var(--a-brand-soft);color:var(--a-brand);border:1px solid var(--a-brand-border)}.admin-section__icon--indigo{background:var(--a-indigo-soft);color:var(--a-indigo);border:1px solid var(--a-indigo-border)}.admin-section__arrow{color:var(--a-text-subtle);transition:color .2s ease,transform .2s var(--ease)}.admin-section:hover .admin-section__arrow{color:var(--a-brand);transform:translate(3px,-3px)}.admin-section__body{flex:1;margin-bottom:20px}.admin-section__body h2{margin:0 0 6px;font-size:17px;font-weight:700;letter-spacing:-.015em;color:var(--a-text)}.admin-section__body p{margin:0;font-size:13px;line-height:1.55;color:var(--a-text-muted)}.admin-section__stats{display:flex;align-items:center;gap:16px;padding-top:16px;border-top:1px solid var(--a-border)}.admin-stat{display:flex;flex-direction:column;gap:2px;flex:1}.admin-stat__value{font-size:20px;font-weight:700;color:var(--a-text);line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.admin-stat__value--success{color:var(--a-success)}.admin-stat__value--warning{color:var(--a-warning)}.admin-stat__label{font-size:11.5px;font-weight:500;color:var(--a-text-muted);letter-spacing:.02em}.admin-stat-divider{width:1px;height:32px;background:var(--a-border);flex-shrink:0}.admin-quick{padding:18px 20px;border-radius:var(--r-lg);background:var(--a-card);border:1px solid var(--a-border);box-shadow:var(--sh-xs)}.admin-quick__title{margin:0 0 14px;font-size:11px;font-weight:600;color:var(--a-text-muted);letter-spacing:.06em;text-transform:uppercase}.admin-quick__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.admin-quick__item{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r-md);background:var(--a-surface);border:1px solid var(--a-border);color:var(--a-text-secondary);text-decoration:none;font-size:12.5px;font-weight:600;transition:all .15s ease}.admin-quick__item:hover{background:var(--a-brand-soft);border-color:var(--a-brand-border);color:var(--a-brand)}.admin-quick__item svg{flex-shrink:0;color:var(--a-text-muted);transition:color .15s ease}.admin-quick__item:hover svg{color:var(--a-brand)}.admin-quick__badge{position:absolute;top:6px;right:8px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:100px;background:var(--a-warning);color:#fff;font-size:10.5px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}@media(max-width:900px){.admin-hub__hero{flex-direction:column;align-items:stretch;gap:20px}.admin-hub__search{width:100%}.admin-quick__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.admin-hub{padding:20px 16px 40px}.admin-sections{grid-template-columns:1fr}.admin-section__stats{gap:12px}.admin-stat-divider{height:28px}}@media(max-width:480px){.admin-quick__grid{grid-template-columns:1fr}}.admin-hub__toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0}.admin-hub__refresh{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--a-card);border:1px solid var(--a-border);color:var(--a-text-muted);cursor:pointer;box-shadow:var(--sh-xs);transition:all .15s ease;flex-shrink:0}.admin-hub__refresh:hover:not(:disabled){background:var(--a-surface);border-color:var(--a-border-strong);color:var(--a-text)}.admin-hub__refresh:disabled{cursor:not-allowed;opacity:.6}.admin-hub__refresh:focus-visible{outline:none;border-color:var(--a-brand-border);box-shadow:0 0 0 3px #2563eb26}.admin-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:20px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.admin-alert svg{flex-shrink:0}.admin-alert span{flex:1}.admin-alert__retry{padding:4px 10px;border-radius:var(--r-sm);background:#fff;border:1px solid #fecaca;color:#b91c1c;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;flex-shrink:0}.admin-alert__retry:hover{background:#fef2f2;border-color:#f87171}.admin-stat__skeleton{display:block;width:40px;height:22px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--a-surface) 0%,var(--a-hover) 50%,var(--a-surface) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;margin-bottom:2px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:900px){.admin-hub__toolbar{width:100%}.admin-hub__search{flex:1}}:root{--loc-bg: #f4f7fb;--loc-card: #ffffff;--loc-surface: #f8fafc;--loc-surface-alt: #f1f5f9;--loc-hover: #f0f7ff;--loc-border: #e2e8f0;--loc-border-strong: #cbd5e1;--loc-text: #0f172a;--loc-text-secondary: #475569;--loc-text-muted: #64748b;--loc-text-subtle: #94a3b8;--loc-brand: #0f766e;--loc-brand-hover: #115e59;--loc-brand-deep: #134e4a;--loc-brand-soft: #f0fdfa;--loc-brand-border: #99f6e4;--loc-brand-glow: rgba(15, 118, 110, .18);--loc-brand-gradient: linear-gradient(135deg, #0f766e 0%, #134e4a 100%);--loc-primary: #2563eb;--loc-primary-hover: #1d4ed8;--loc-primary-deep: #1e3a8a;--loc-primary-soft: #eff6ff;--loc-primary-border: #bfdbfe;--loc-primary-glow: rgba(37, 99, 235, .18);--loc-primary-gradient: linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%);--loc-success: #059669;--loc-success-soft: #ecfdf5;--loc-success-border: #a7f3d0;--loc-warning: #d97706;--loc-warning-soft: #fffbeb;--loc-warning-border: #fde68a;--loc-danger: #dc2626;--loc-danger-soft: #fef2f2;--loc-danger-border: #fecaca;--loc-sky: #0284c7;--loc-sky-soft: #f0f9ff;--loc-sky-border: #bae6fd;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 16px;--loc-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--loc-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--loc-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--loc-sh-lg: 0 12px 48px rgba(15, 23, 42, .14), 0 4px 12px rgba(15, 23, 42, .06);--loc-sh-xl: 0 24px 64px rgba(15, 23, 42, .18), 0 6px 20px rgba(15, 23, 42, .08);--loc-sh-brand: 0 4px 14px var(--loc-brand-glow);--loc-sh-primary: 0 4px 14px var(--loc-primary-glow);--loc-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .05);--loc-ease: cubic-bezier(.16, 1, .3, 1);--loc-ease-out: cubic-bezier(.33, 1, .68, 1);--loc-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--loc-dur-fast: .12s;--loc-dur-normal: .2s;--loc-dur-slow: .34s}.locations-page{width:100%;max-width:1480px;margin:0 auto;padding:28px 28px 56px;color:var(--loc-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}.locations-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:20px 24px;border-radius:var(--r-2xl);background:var(--loc-card);border:1px solid var(--loc-border);box-shadow:var(--loc-sh-sm);overflow:hidden}.locations-head:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--loc-brand-gradient);border-radius:var(--r-2xl) var(--r-2xl) 0 0}.locations-head:after{content:"";position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(15,118,110,.07),transparent 70%);pointer-events:none}.locations-title{display:flex;align-items:center;gap:14px;min-width:0;position:relative;z-index:1}.locations-title-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-lg);background:var(--loc-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--loc-sh-brand)}.locations-title h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--loc-text)}.locations-title p{margin:3px 0 0;color:var(--loc-text-muted);font-size:13px;font-weight:400}.locations-actions{display:flex;align-items:center;gap:10px;position:relative;z-index:1}.loc-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:1px solid var(--loc-border-strong);border-radius:var(--r-md);background:var(--loc-card);color:var(--loc-text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--loc-dur-normal) var(--loc-ease);white-space:nowrap}.loc-btn:hover:not(:disabled){border-color:var(--loc-primary-border);background:var(--loc-primary-soft);color:var(--loc-primary)}.loc-btn:active:not(:disabled){transform:scale(.98)}.loc-btn:disabled{cursor:not-allowed;opacity:.55}.loc-btn--primary{border-color:var(--loc-primary);background:var(--loc-primary-gradient);color:#fff;box-shadow:var(--loc-sh-primary)}.loc-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--loc-primary-hover),var(--loc-primary-deep));border-color:var(--loc-primary-hover);color:#fff;box-shadow:0 6px 20px #2563eb4d;transform:translateY(-1px)}.loc-btn--primary:active:not(:disabled){transform:translateY(0) scale(.98)}.loc-btn--secondary{background:var(--loc-primary-soft);border-color:var(--loc-primary-border);color:var(--loc-primary)}.loc-btn--secondary:hover:not(:disabled){background:var(--loc-primary-border);color:var(--loc-primary-hover)}.loc-btn--danger{border-color:var(--loc-danger);background:var(--loc-danger);color:#fff}.loc-btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;color:#fff;box-shadow:0 4px 14px #dc262640;transform:translateY(-1px)}.loc-btn--ghost{border-color:transparent;background:transparent;color:var(--loc-text-secondary)}.loc-btn--ghost:hover:not(:disabled){background:var(--loc-surface-alt);border-color:var(--loc-border);color:var(--loc-text)}.loc-btn--sm{height:30px;padding:0 10px;font-size:12px;gap:5px}.loc-btn--full{width:100%}.loc-icon-btn{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--loc-border);border-radius:var(--r-sm);background:var(--loc-card);color:var(--loc-text-muted);cursor:pointer;transition:all var(--loc-dur-fast) var(--loc-ease)}.loc-icon-btn:hover:not(:disabled){border-color:var(--loc-primary-border);background:var(--loc-primary-soft);color:var(--loc-primary)}.loc-icon-btn:active{transform:scale(.92)}.loc-icon-btn--ghost{border-color:transparent;background:transparent}.loc-icon-btn--ghost:hover:not(:disabled){background:var(--loc-surface-alt);border-color:transparent}.loc-icon-btn--danger{color:var(--loc-danger)}.loc-icon-btn--danger:hover:not(:disabled){border-color:var(--loc-danger-border);background:var(--loc-danger-soft);color:var(--loc-danger)}.loc-toast,.loc-alert{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:11px 14px;border-radius:var(--r-lg);border:1px solid;font-size:13.5px;font-weight:500;animation:locAlertSlideIn var(--loc-dur-slow) var(--loc-ease) both;position:relative;overflow:hidden}@keyframes locAlertSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.loc-toast:after,.loc-alert:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:100%;border-radius:999px;background:currentColor;opacity:.3;animation:locAlertProgress 4s linear forwards}@keyframes locAlertProgress{0%{width:100%}to{width:0}}.loc-toast span,.loc-alert span{flex:1;min-width:0}.loc-toast button,.loc-alert button{display:grid;place-items:center;width:26px;height:26px;margin-left:auto;flex-shrink:0;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:inherit;cursor:pointer;opacity:.7;transition:all var(--loc-dur-fast) var(--loc-ease)}.loc-toast button:hover,.loc-alert button:hover{opacity:1;background:#0000000f}.loc-toast{border-color:var(--loc-success-border);background:var(--loc-success-soft);color:var(--loc-success)}.loc-alert{border-color:var(--loc-danger-border);background:var(--loc-danger-soft);color:var(--loc-danger)}.locations-table-panel{overflow:hidden;border:1px solid var(--loc-border);border-radius:var(--r-2xl);background:var(--loc-card);box-shadow:var(--loc-sh-sm);transition:box-shadow var(--loc-dur-slow) var(--loc-ease)}.locations-table-panel:hover{box-shadow:var(--loc-sh-md)}.locations-toolbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--loc-border);background:var(--loc-surface);flex-wrap:wrap}.loc-search{display:flex;align-items:center;gap:8px;min-width:260px;max-width:420px;flex:1;height:38px;padding:0 12px;border:1px solid var(--loc-border-strong);border-radius:var(--r-lg);background:var(--loc-card);transition:all var(--loc-dur-normal) var(--loc-ease);box-shadow:var(--loc-sh-inner)}.loc-search:focus-within{border-color:var(--loc-primary);box-shadow:0 0 0 3px var(--loc-primary-glow),var(--loc-sh-inner)}.loc-search svg{color:var(--loc-text-muted);flex-shrink:0;transition:color var(--loc-dur-fast) var(--loc-ease)}.loc-search:focus-within svg{color:var(--loc-primary)}.loc-search input{min-width:0;flex:1;height:100%;border:0;outline:none;color:var(--loc-text);font:inherit;font-size:13.5px;background:transparent}.loc-search input::placeholder{color:var(--loc-text-subtle)}.loc-filters{display:flex;align-items:center;gap:8px;color:var(--loc-text-muted);flex-wrap:wrap}.loc-filters>svg{color:var(--loc-text-subtle);flex-shrink:0}.loc-filters select{height:38px;min-width:154px;padding:0 12px;border:1px solid var(--loc-border-strong);border-radius:var(--r-lg);background:var(--loc-card);color:var(--loc-text-secondary);font:inherit;font-size:13px;font-weight:500;outline:none;cursor:pointer;box-shadow:var(--loc-sh-inner);transition:all var(--loc-dur-normal) var(--loc-ease);appearance:auto}.loc-filters select:focus{border-color:var(--loc-primary);box-shadow:0 0 0 3px var(--loc-primary-glow)}.loc-filters select:hover{border-color:var(--loc-primary-border)}.locations-table-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--loc-border);background:var(--loc-surface);color:var(--loc-text-muted);font-size:12.5px;font-weight:500}.locations-table-meta strong{color:var(--loc-text);font-weight:700}.locations-table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.locations-table-wrap::-webkit-scrollbar{height:10px}.locations-table-wrap::-webkit-scrollbar-track{background:var(--loc-surface)}.locations-table-wrap::-webkit-scrollbar-thumb{background:var(--loc-border-strong);border-radius:999px;border:2px solid var(--loc-surface)}.locations-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--loc-text-subtle)}.locations-table{width:100%;min-width:1400px;border-collapse:collapse;font-size:12.5px}.locations-table thead{position:sticky;top:0;z-index:2}.locations-table th{padding:11px 14px;border-bottom:2px solid var(--loc-border);background:var(--loc-surface);color:var(--loc-text-muted);font-size:11px;font-weight:700;text-align:left;vertical-align:middle;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.locations-table td{padding:11px 14px;border-bottom:1px solid var(--loc-border);text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--loc-dur-fast) var(--loc-ease)}.loc-th-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:var(--r-xs);transition:color var(--loc-dur-fast) var(--loc-ease)}.loc-th-btn:hover{color:var(--loc-primary)}.loc-th-btn.is-active{color:inherit}.loc-th-btn.is-active .loc-th-sort{color:var(--loc-primary);opacity:1}.loc-th-sort{display:inline-grid;place-items:center;color:var(--loc-text-subtle);opacity:.45;flex-shrink:0;transition:opacity var(--loc-dur-fast) var(--loc-ease)}.loc-th-btn:hover .loc-th-sort{opacity:.8}.loc-th-label{display:inline-block}.loc-th-actions{color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.locations-table tbody tr{transition:background var(--loc-dur-fast) var(--loc-ease)}.locations-table tbody tr:nth-child(odd){background:#f7faff}.locations-table tbody tr:nth-child(2n){background:var(--loc-card)}.locations-table tbody tr:hover{background:var(--loc-hover)}.locations-table tbody tr.is-selected{background:var(--loc-primary-soft)}.locations-table tbody tr.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--loc-primary)}.locations-table tbody tr:last-child td{border-bottom:none}.loc-link--name{max-width:100%;padding:0;border:0;background:transparent;color:var(--loc-primary);font:inherit;font-size:12.5px;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--loc-dur-fast) var(--loc-ease)}.loc-link--name:hover{color:var(--loc-primary-hover)}.loc-type-cell{display:flex;align-items:center}.loc-type-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--r-md);background:var(--loc-primary-soft);color:var(--loc-primary);border:1px solid var(--loc-primary-border);flex-shrink:0;transition:all var(--loc-dur-fast) var(--loc-ease);box-sizing:border-box}.loc-type-icon:hover{background:var(--loc-primary);color:#fff;border-color:var(--loc-primary);transform:scale(1.05)}.loc-type-icon svg{display:block}.loc-address-cell{color:var(--loc-text-secondary);font-size:12.5px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-org-cell{color:var(--loc-text);font-size:12.5px;font-weight:500}.loc-position-cell{display:inline-block;color:var(--loc-text-secondary);font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:nowrap;padding:3px 8px;background:var(--loc-surface-alt);border-radius:var(--r-sm);border:1px solid var(--loc-border)}.loc-meta-cell{color:var(--loc-text-muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.loc-row-actions{display:flex;align-items:center;gap:4px}.loc-row-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--loc-text-muted);cursor:pointer;transition:all var(--loc-dur-fast) var(--loc-ease)}.loc-row-actions button:hover{border-color:var(--loc-primary-border);background:var(--loc-primary-soft);color:var(--loc-primary)}.loc-row-actions .loc-icon-btn--danger:hover{border-color:var(--loc-danger-border);background:var(--loc-danger-soft);color:var(--loc-danger)}.loc-row-actions button:active{transform:scale(.92)}.loc-readonly-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--loc-surface-alt);border:1px solid var(--loc-border);color:var(--loc-text-subtle);font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.loc-status{display:inline-flex;align-items:center;gap:5px;min-width:82px;justify-content:center;padding:4px 10px;border-radius:999px;border:1px solid var(--loc-border-strong);background:var(--loc-surface);color:var(--loc-text-secondary);font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.loc-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.loc-status--active{border-color:var(--loc-success-border);background:var(--loc-success-soft);color:var(--loc-success)}.loc-status--active:before{animation:locStatusDotPulse 1.6s ease-in-out infinite}@keyframes locStatusDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}.loc-status--inactive{border-color:var(--loc-border-strong);background:var(--loc-surface-alt);color:var(--loc-text-muted)}.loc-status--maintenance{border-color:var(--loc-warning-border);background:var(--loc-warning-soft);color:var(--loc-warning)}.loc-status--deployed{border-color:var(--loc-brand-border);background:var(--loc-brand-soft);color:var(--loc-brand)}.loc-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:var(--loc-text-muted);font-size:13px;font-weight:500}.loc-empty--large{flex-direction:column;gap:10px;min-height:240px;padding:32px 20px;text-align:center}.loc-empty--large svg{display:grid;place-items:center;width:52px;height:52px;padding:12px;border-radius:var(--r-lg);background:var(--loc-surface-alt);color:var(--loc-text-subtle);margin-bottom:4px}.loc-empty--large strong{color:var(--loc-text-secondary);font-size:14px;font-weight:600}.loc-empty--large span{color:var(--loc-text-subtle);font-size:12.5px;max-width:320px}.locations-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--loc-border);background:var(--loc-surface);flex-wrap:wrap}.loc-pagination-info{color:var(--loc-text-muted);font-size:12.5px;font-weight:500}.loc-pagination-info strong{color:var(--loc-text);font-weight:700}.loc-pagination-controls{display:flex;align-items:center;gap:4px}.loc-page-arrow,.loc-page-btn{display:grid;place-items:center;min-width:32px;height:32px;padding:0 6px;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-card);color:var(--loc-text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all var(--loc-dur-fast) var(--loc-ease);font-variant-numeric:tabular-nums}.loc-page-arrow:hover:not(:disabled),.loc-page-btn:hover:not(.is-active):not(:disabled){border-color:var(--loc-primary-border);background:var(--loc-primary-soft);color:var(--loc-primary)}.loc-page-btn.is-active{border-color:var(--loc-primary);background:var(--loc-primary-gradient);color:#fff;box-shadow:var(--loc-sh-primary)}.loc-page-arrow:disabled,.loc-page-btn:disabled{opacity:.4;cursor:not-allowed}.loc-page-ellipsis{color:var(--loc-text-subtle);font-size:12px;padding:0 4px;user-select:none}.loc-drawer-backdrop{position:fixed;inset:0;z-index:59;background:#0f172a4d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:locBackdropIn var(--loc-dur-normal) var(--loc-ease) both}@keyframes locBackdropIn{0%{opacity:0}to{opacity:1}}.loc-drawer{position:fixed;top:20px;right:20px;bottom:20px;z-index:60;display:flex;width:min(440px,calc(100vw - 40px));flex-direction:column;overflow:hidden;border:1px solid var(--loc-border);border-radius:var(--r-2xl);background:var(--loc-card);box-shadow:var(--loc-sh-xl);animation:locDrawerIn var(--loc-dur-slow) var(--loc-ease) both}@keyframes locDrawerIn{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}.loc-drawer__header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 20px;background:var(--loc-primary-gradient);color:#fff;position:relative;overflow:hidden}.loc-drawer__header:before,.loc-drawer__header:after{content:"";position:absolute;border-radius:50%;background:#ffffff0f;pointer-events:none}.loc-drawer__header:before{width:120px;height:120px;top:-40px;right:-20px}.loc-drawer__header:after{width:80px;height:80px;bottom:-30px;left:20px}.loc-drawer__header-content{position:relative;z-index:1;min-width:0;flex:1}.loc-drawer__eyebrow{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#ffffffe6;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:10px}.loc-drawer h2{margin:0 0 10px;color:#fff;font-size:18px;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;line-height:1.3}.loc-drawer__header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.loc-drawer__header .loc-status{background:#ffffff2e!important;border-color:#ffffff4d!important;color:#fff!important;backdrop-filter:blur(4px)}.loc-drawer__type-tag{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:11.5px;font-weight:600;backdrop-filter:blur(4px)}.loc-drawer__header .loc-icon-btn,.loc-drawer__header .loc-icon-btn--ghost{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border:1px solid rgba(255,255,255,.25);border-radius:var(--r-md);background:#ffffff1a;color:#fff;cursor:pointer;transition:background var(--loc-dur-fast) var(--loc-ease);position:relative;z-index:1}.loc-drawer__header .loc-icon-btn:hover{background:#ffffff38;border-color:#ffffff59;color:#fff}.loc-drawer__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.loc-drawer__section{padding:18px;border-top:1px solid var(--loc-border)}.loc-drawer__section:first-child{border-top:none}.loc-drawer__section-title{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--loc-text);font-size:13px;font-weight:700;letter-spacing:-.01em}.loc-drawer__section-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--loc-primary);border-radius:2px;flex-shrink:0}.loc-detail-list{margin:0;display:grid;gap:8px}.loc-detail-list div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:8px;align-items:baseline;padding:8px;border-radius:var(--r-md);transition:background var(--loc-dur-fast) var(--loc-ease)}.loc-detail-list div:hover{background:var(--loc-surface)}.loc-detail-list dt{color:var(--loc-text-muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.loc-detail-list dd{min-width:0;margin:0;color:var(--loc-text);font-size:13px;font-weight:500;overflow-wrap:anywhere}.loc-coordinates{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:var(--loc-brand-soft);border:1px solid var(--loc-brand-border);color:var(--loc-brand);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.loc-coordinates svg{color:var(--loc-brand);flex-shrink:0}.loc-drawer__actions{flex-shrink:0;padding:14px 18px 18px;border-top:1px solid var(--loc-border);background:var(--loc-card)}.loc-drawer__actions .loc-btn{width:100%;height:40px;font-size:14px}.loc-modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:locBackdropIn var(--loc-dur-normal) var(--loc-ease) both}.loc-modal{width:min(720px,100%);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--loc-border);border-radius:var(--r-2xl);background:var(--loc-card);box-shadow:var(--loc-sh-xl);animation:locModalIn var(--loc-dur-slow) var(--loc-ease) both}.loc-modal--wide{width:min(880px,100%)}@keyframes locModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.loc-modal>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;border-bottom:1px solid var(--loc-border);background:var(--loc-card);position:sticky;top:0;z-index:2;border-radius:var(--r-2xl) var(--r-2xl) 0 0}.loc-modal__title{margin:0;color:var(--loc-primary);font-size:18px;font-weight:700;letter-spacing:-.01em}.loc-modal__close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--loc-text-muted);cursor:pointer;transition:all var(--loc-dur-fast) var(--loc-ease)}.loc-modal__close:hover{background:var(--loc-surface-alt);color:var(--loc-text)}.loc-form{display:block;padding:20px 24px 0}.loc-form__row{display:grid;gap:16px;margin-bottom:16px}.loc-form__row--4{grid-template-columns:repeat(4,minmax(0,1fr))}.loc-form__row--3{grid-template-columns:repeat(3,minmax(0,1fr))}.loc-form__row--2{grid-template-columns:repeat(2,minmax(0,1fr))}.loc-form__divider{height:1px;margin:4px 0 18px;background:var(--loc-border)}.loc-form__hint{margin:4px 0 10px;color:var(--loc-text-muted);font-size:12.5px;font-weight:500}.loc-field{display:flex;flex-direction:column;gap:6px;min-width:0}.loc-field--full{grid-column:1 / -1}.loc-field>span{display:flex;align-items:center;gap:2px;color:var(--loc-text);font-size:12.5px;font-weight:600}.loc-field__required{color:var(--loc-danger);font-style:normal;font-size:13px;line-height:1;margin-left:2px}.loc-field input,.loc-field select,.loc-field textarea{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid var(--loc-border-strong);border-radius:var(--r-md);background:var(--loc-card);color:var(--loc-text);font:inherit;font-size:13px;outline:none;transition:all var(--loc-dur-normal) var(--loc-ease);box-shadow:var(--loc-sh-inner)}.loc-field input::placeholder{color:var(--loc-text-subtle)}.loc-field textarea{height:auto;min-height:80px;padding:9px 11px;resize:vertical;font-family:inherit;line-height:1.5}.loc-field input:hover,.loc-field select:hover,.loc-field textarea:hover{border-color:var(--loc-primary-border)}.loc-field input:focus,.loc-field select:focus,.loc-field textarea:focus{border-color:var(--loc-primary);box-shadow:0 0 0 3px var(--loc-primary-glow),var(--loc-sh-inner)}.loc-field [aria-invalid=true]{border-color:var(--loc-danger);box-shadow:0 0 0 3px #dc26261a}.loc-field small{display:flex;align-items:center;gap:4px;color:var(--loc-danger);font-size:11.5px;font-weight:500}.loc-form__map{position:relative;height:340px;width:100%;margin-bottom:20px;border-radius:var(--r-md);border:1px solid var(--loc-border);overflow:hidden;box-shadow:var(--loc-sh-inner);background:#dfe8ef;z-index:0}.loc-form__map-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;width:100%;color:var(--loc-text-muted);font-size:13px;font-weight:500}.loc-form__map .leaflet-container{height:100%!important;width:100%!important;border-radius:var(--r-md);font-family:inherit;background:#dfe8ef;cursor:crosshair;position:absolute!important;inset:0}.loc-form__map .leaflet-container,.loc-form__map .leaflet-container *{box-sizing:content-box}.loc-form__map .leaflet-tile,.loc-form__map img.leaflet-tile{max-width:none!important;max-height:none!important;width:256px!important;height:256px!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;filter:none!important}.loc-form__map .leaflet-marker-icon{filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 4px 8px rgba(15,23,42,.5))}.loc-form__map .leaflet-control-zoom{border:none!important;box-shadow:var(--loc-sh-md)!important;border-radius:var(--r-md)!important;overflow:hidden;margin:12px!important}.loc-form__map .leaflet-control-zoom a{width:32px!important;height:32px!important;line-height:32px!important;border:1px solid var(--loc-border)!important;background:var(--loc-card)!important;color:var(--loc-text-secondary)!important;font-size:18px!important;font-weight:600!important;transition:all var(--loc-dur-fast) var(--loc-ease)}.loc-form__map .leaflet-control-zoom a:hover{background:var(--loc-primary-soft)!important;color:var(--loc-primary)!important}.loc-form__map .leaflet-control-attribution{background:#ffffffe6!important;font-size:10px!important;padding:2px 6px!important;border-radius:var(--r-xs) 0 0 0}.loc-form__actions{display:flex;align-items:center;gap:10px;padding-top:16px;padding-bottom:20px;margin-top:4px;border-top:1px solid var(--loc-border)}.loc-confirm{width:min(480px,100%);padding:0;border:1px solid var(--loc-border);border-radius:var(--r-2xl);background:var(--loc-card);box-shadow:var(--loc-sh-xl);overflow:hidden;animation:locModalIn var(--loc-dur-slow) var(--loc-ease) both;display:block;text-align:left}.loc-confirm>svg{display:grid;place-items:center;width:52px;height:52px;padding:14px;border-radius:var(--r-lg);background:var(--loc-danger-soft);color:var(--loc-danger);border:1px solid var(--loc-danger-border);margin:28px 28px 18px}.loc-confirm h2{margin:0 28px 8px;color:var(--loc-text);font-size:19px;font-weight:700;letter-spacing:-.02em}.loc-confirm p{margin:0 28px 20px;color:var(--loc-text-secondary);font-size:14px;line-height:1.55}.loc-confirm p strong{color:var(--loc-text);font-weight:700}.loc-confirm footer{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px 24px;border-top:1px solid var(--loc-border);background:var(--loc-surface)}.is-spinning{animation:locSpin .7s linear infinite}@keyframes locSpin{to{transform:rotate(360deg)}}:where(.locations-page button,.locations-page a,.locations-page select,.locations-page input,.locations-page [tabindex]):focus-visible{outline:2px solid var(--loc-primary);outline-offset:2px}@media(max-width:900px){.loc-form__row--4{grid-template-columns:repeat(2,1fr)}.loc-form__row--3{grid-template-columns:1fr}}@media(max-width:960px){.locations-page{padding:20px 16px 40px}.locations-head{flex-direction:column;align-items:stretch;padding:18px}.locations-actions{justify-content:flex-start;flex-wrap:wrap}.locations-toolbar{flex-direction:column;align-items:stretch;padding:12px 14px}.loc-search{min-width:0;max-width:none;width:100%}.loc-filters{width:100%}.loc-filters select{flex:1 1 140px;min-width:0}.loc-drawer{inset:10px;width:auto}.loc-detail-list div{grid-template-columns:1fr;gap:2px}}@media(max-width:600px){.locations-title{gap:12px}.locations-title-icon{width:38px;height:38px}.locations-title h1{font-size:18px}.loc-modal{border-radius:var(--r-xl)}.loc-modal>header{border-radius:var(--r-xl) var(--r-xl) 0 0}.loc-modal-backdrop{padding:12px}.loc-form__row--4,.loc-form__row--3,.loc-form__row--2{grid-template-columns:1fr}.loc-form{padding:16px}.loc-form__map{height:240px}.loc-pagination-info{text-align:center;width:100%}.loc-pagination-controls{justify-content:center;width:100%}}@media print{.locations-toolbar,.locations-pagination,.loc-row-actions,.locations-actions,.loc-drawer,.loc-drawer-backdrop{display:none!important}.locations-table-panel{box-shadow:none;border:1px solid #ccc}.locations-table th,.locations-table td{font-size:10px;padding:6px 8px}}:root{--ea-bg: #f6f8fb;--ea-card: #ffffff;--ea-surface: #f8fafc;--ea-hover: #f1f5f9;--ea-border: #e5e9f0;--ea-border-strong: #cbd5e1;--ea-border-focus: #93c5fd;--ea-text: #0f172a;--ea-text-secondary: #475569;--ea-text-muted: #64748b;--ea-text-subtle: #94a3b8;--ea-brand: #2563eb;--ea-brand-hover: #1d4ed8;--ea-brand-soft: #eff6ff;--ea-brand-border: #bfdbfe;--ea-success: #059669;--ea-success-soft: #ecfdf5;--ea-success-border: #a7f3d0;--ea-warning: #b45309;--ea-warning-soft: #fffbeb;--ea-warning-border: #fde68a;--ea-danger: #b91c1c;--ea-danger-soft: #fef2f2;--ea-danger-border: #fecaca;--ea-info: #4f46e5;--ea-info-soft: #eef2ff;--ea-info-border: #c7d2fe;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15)}.ea{width:100%;max-width:1400px;margin:0 auto;padding:24px 24px 48px;color:var(--ea-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.ea-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ea-border)}.ea-hero__text{flex:1;min-width:0}.ea-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);color:var(--ea-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.ea-back:hover{background:var(--ea-surface);color:var(--ea-text)}.ea-hero__title-row{display:flex;align-items:flex-start;gap:14px}.ea-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--ea-brand-soft);border:1px solid var(--ea-brand-border);color:var(--ea-brand);flex-shrink:0}.ea-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.ea-hero p{margin:0;max-width:580px;color:var(--ea-text-muted);font-size:13px;line-height:1.55}.ea-hero__actions{display:flex;gap:8px;flex-shrink:0}.ea-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.ea-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.ea-btn--sm{height:32px;padding:0 12px;font-size:12.5px}.ea-btn--primary{background:var(--ea-brand);color:#fff;border-color:var(--ea-brand);box-shadow:var(--sh-xs);min-width:130px}.ea-btn--primary:hover:not(:disabled){background:var(--ea-brand-hover);border-color:var(--ea-brand-hover);box-shadow:var(--sh-sm)}.ea-btn--secondary{background:var(--ea-card);color:var(--ea-text);border-color:var(--ea-border-strong)}.ea-btn--secondary:hover:not(:disabled){background:var(--ea-surface)}.ea-btn:disabled{cursor:not-allowed;opacity:.6}.ea-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.ea-alert svg{flex-shrink:0}.ea-alert--success{background:var(--ea-success-soft);border:1px solid var(--ea-success-border);color:var(--ea-success)}.ea-alert--error{background:var(--ea-danger-soft);border:1px solid var(--ea-danger-border);color:var(--ea-danger)}.ea-alert__close{margin-left:auto;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-sm);background:transparent;color:currentColor;cursor:pointer;opacity:.6;transition:opacity .12s ease,background .12s ease}.ea-alert__close:hover{opacity:1;background:#0000000f}.ea-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:20px;border:1px solid var(--ea-border);border-radius:var(--r-md);background:var(--ea-surface)}.ea-tabs button{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ea-text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.ea-tabs button:hover:not(.is-active){color:var(--ea-text)}.ea-tabs button.is-active{background:var(--ea-card);color:var(--ea-brand);box-shadow:var(--sh-xs)}.ea-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:100px;background:var(--ea-hover);color:var(--ea-text-secondary);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.ea-tabs button.is-active .ea-tab-count{background:var(--ea-brand-soft);color:var(--ea-brand)}.ea-history{display:flex;flex-direction:column;gap:16px}.ea-stats{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.ea-stat{display:flex;flex-direction:column;gap:10px;min-width:0;padding:12px 14px;border-radius:var(--r-lg);background:var(--ea-card);border:1px solid var(--ea-border);box-shadow:var(--sh-xs);color:var(--ea-text-secondary);font:inherit;cursor:pointer;text-align:left;transition:all .15s ease}.ea-stat:hover{border-color:var(--ea-border-strong);transform:translateY(-1px);box-shadow:var(--sh-sm)}.ea-stat__head{display:flex;align-items:center;gap:6px;min-width:0}.ea-stat__dot{width:8px;height:8px;border-radius:50%;background:var(--ea-text-subtle);flex-shrink:0}.ea-stat__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:600;color:var(--ea-text-muted);letter-spacing:.01em}.ea-stat__value{font-size:22px;font-weight:700;color:var(--ea-text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.ea-stat--sent .ea-stat__dot,.ea-stat--delivered .ea-stat__dot{background:var(--ea-success)}.ea-stat--failed .ea-stat__dot,.ea-stat--bounced .ea-stat__dot,.ea-stat--rejected .ea-stat__dot{background:var(--ea-danger)}.ea-stat--queued .ea-stat__dot,.ea-stat--processing .ea-stat__dot{background:var(--ea-brand)}.ea-stat.is-active{border-color:var(--ea-brand);background:var(--ea-brand-soft);box-shadow:0 0 0 3px #2563eb14}.ea-stat.is-active .ea-stat__label,.ea-stat.is-active .ea-stat__value{color:var(--ea-brand-hover)}.ea-panel{background:var(--ea-card);border:1px solid var(--ea-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden}.ea-toolbar{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--ea-border);background:var(--ea-surface)}.ea-search{position:relative;display:flex;align-items:center;flex:1;max-width:460px;height:36px;padding:0 12px 0 34px;border-radius:var(--r-md);background:var(--ea-card);border:1px solid var(--ea-border);transition:all .15s ease}.ea-search:focus-within{border-color:var(--ea-border-focus);box-shadow:var(--sh-focus)}.ea-search__icon{position:absolute;left:12px;color:var(--ea-text-subtle);pointer-events:none}.ea-search input{width:100%;height:100%;border:0;background:transparent;color:var(--ea-text);font-family:inherit;font-size:13px;outline:none}.ea-search input::placeholder{color:var(--ea-text-subtle)}.ea-search__clear{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-sm);background:var(--ea-hover);color:var(--ea-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.ea-search__clear:hover{background:var(--ea-border-strong);color:var(--ea-text)}.ea-select{position:relative;display:flex;align-items:center;height:36px}.ea-select__icon{position:absolute;left:10px;color:var(--ea-text-subtle);pointer-events:none}.ea-select select{height:36px;padding:0 30px;border-radius:var(--r-md);background:var(--ea-card);border:1px solid var(--ea-border);color:var(--ea-text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center}.ea-select select:hover{border-color:var(--ea-border-strong)}.ea-select select:focus{outline:none;border-color:var(--ea-border-focus);box-shadow:var(--sh-focus)}.ea-table-wrap{overflow-x:auto}.ea-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:13px}.ea-table th,.ea-table td{padding:12px 16px;border-bottom:1px solid var(--ea-border);text-align:left;vertical-align:middle}.ea-table tbody tr:last-child td{border-bottom:0}.ea-table tbody tr{transition:background .12s ease}.ea-table tbody tr:hover{background:var(--ea-surface)}.ea-table th{background:var(--ea-surface);color:var(--ea-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding-top:10px;padding-bottom:10px}.ea-th-center{text-align:center}.ea-recipient{display:flex;align-items:center;gap:10px;min-width:0}.ea-recipient__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--ea-brand);font-size:11px;font-weight:700;flex-shrink:0}.ea-recipient__info{display:flex;flex-direction:column;gap:1px;min-width:0}.ea-recipient__info strong{color:var(--ea-text);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ea-recipient__info span{color:var(--ea-text-muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ea-event{display:flex;flex-direction:column;gap:2px;min-width:0}.ea-event strong{color:var(--ea-text);font-size:12.5px;font-weight:600}.ea-event span{color:var(--ea-text-muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.ea-attempts{text-align:center}.ea-attempts__val{display:inline-block;font-size:13px;font-weight:600;color:var(--ea-text);font-variant-numeric:tabular-nums}.ea-attempts__val small{font-size:11px;font-weight:500;color:var(--ea-text-muted)}.ea-muted{color:var(--ea-text-muted);font-size:12.5px;white-space:nowrap}.ea-error{max-width:260px;color:var(--ea-danger);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ea-table-state{padding:60px 20px!important;text-align:center!important}.ea-table-state>*{display:block;margin:0 auto}.ea-table-state svg{color:var(--ea-text-subtle);margin-bottom:10px}.ea-table-state span{color:var(--ea-text-secondary);font-size:13px;font-weight:600}.ea-table-state small{display:block;margin-top:4px;color:var(--ea-text-muted);font-size:12px}.ea-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:100px;font-size:11px;font-weight:600;letter-spacing:.01em;border:1px solid transparent}.ea-status--sent,.ea-status--delivered{background:var(--ea-success-soft);color:var(--ea-success);border-color:var(--ea-success-border)}.ea-status--failed,.ea-status--bounced,.ea-status--rejected{background:var(--ea-danger-soft);color:var(--ea-danger);border-color:var(--ea-danger-border)}.ea-status--queued,.ea-status--processing{background:var(--ea-brand-soft);color:var(--ea-brand);border-color:var(--ea-brand-border)}.ea-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--ea-surface);border-top:1px solid var(--ea-border)}.ea-pagination__info{color:var(--ea-text-muted);font-size:12.5px}.ea-pagination__info strong{color:var(--ea-text);font-weight:700;font-variant-numeric:tabular-nums}.ea-pagination__total{margin-left:6px;color:var(--ea-text-subtle)}.ea-pagination__actions{display:flex;gap:6px}.ea-templates{display:grid;grid-template-columns:260px minmax(0,1fr) 380px;gap:16px;align-items:start}.ea-tpl-list{background:var(--ea-card);border:1px solid var(--ea-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden;position:sticky;top:24px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.ea-tpl-list__head{padding:14px 16px;border-bottom:1px solid var(--ea-border);background:var(--ea-surface)}.ea-tpl-list__head h3{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:700;color:var(--ea-text-muted);text-transform:uppercase;letter-spacing:.06em}.ea-tpl-list__scroll{padding:8px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:2px}.ea-tpl-list__state{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 12px;color:var(--ea-text-muted);font-size:12.5px}.ea-tpl-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:0;border-radius:var(--r-md);background:transparent;color:var(--ea-text-secondary);font:inherit;text-align:left;cursor:pointer;transition:all .12s ease}.ea-tpl-item svg{color:var(--ea-text-subtle);flex-shrink:0;margin-top:1px;transition:color .12s ease}.ea-tpl-item:hover{background:var(--ea-surface);color:var(--ea-text)}.ea-tpl-item:hover svg{color:var(--ea-text-secondary)}.ea-tpl-item.is-active{background:var(--ea-brand-soft);color:var(--ea-brand-hover)}.ea-tpl-item.is-active svg{color:var(--ea-brand)}.ea-tpl-item--new svg{color:var(--ea-info)}.ea-tpl-item__body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.ea-tpl-item__title{font-size:12.5px;font-weight:600;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ea-tpl-item__meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ea-text-muted)}.ea-tpl-item__culture{display:inline-flex;align-items:center;padding:1px 5px;border-radius:var(--r-sm);background:var(--ea-hover);color:var(--ea-text-secondary);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ea-tpl-item__badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600}.ea-tpl-item__badge.is-published{color:var(--ea-success)}.ea-tpl-item__badge.is-draft{color:var(--ea-warning)}.ea-tpl-editor{background:var(--ea-card);border:1px solid var(--ea-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden;display:flex;flex-direction:column}.ea-tpl-editor__head{padding:18px 20px;border-bottom:1px solid var(--ea-border)}.ea-tpl-editor__head h3{margin:0 0 3px;font-size:14px;font-weight:600;color:var(--ea-text);letter-spacing:-.005em}.ea-tpl-editor__head p{margin:0;font-size:12.5px;color:var(--ea-text-muted);line-height:1.5}.ea-tpl-editor__head code{padding:1px 5px;border-radius:4px;background:var(--ea-hover);color:var(--ea-brand-hover);font-family:SF Mono,Monaco,Consolas,monospace;font-size:11.5px}.ea-tpl-editor__body{padding:20px;display:flex;flex-direction:column;gap:16px}.ea-tpl-editor__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;background:var(--ea-surface);border-top:1px solid var(--ea-border)}.ea-tpl-meta{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:12px;align-items:end;padding-bottom:16px;border-bottom:1px solid var(--ea-border)}.ea-field{display:flex;flex-direction:column;gap:6px}.ea-field label{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ea-text-secondary);letter-spacing:.01em}.ea-field__label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.ea-field__hint{font-size:11px;color:var(--ea-text-subtle);font-variant-numeric:tabular-nums}.ea-input-wrap{display:flex;align-items:center;height:38px;padding:0 12px;border-radius:var(--r-md);background:var(--ea-card);border:1px solid var(--ea-border);transition:all .15s ease}.ea-input-wrap:hover{border-color:var(--ea-border-strong)}.ea-input-wrap:focus-within{border-color:var(--ea-border-focus);box-shadow:var(--sh-focus)}.ea-input-wrap input,.ea-input-wrap select{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--ea-text);font-family:inherit;font-size:13px;outline:none}.ea-input-wrap select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 0 center;padding-right:20px}.ea-input-wrap input::placeholder{color:var(--ea-text-subtle)}.ea-textarea-wrap{padding:10px 12px;border-radius:var(--r-md);background:var(--ea-card);border:1px solid var(--ea-border);transition:all .15s ease}.ea-textarea-wrap:hover{border-color:var(--ea-border-strong)}.ea-textarea-wrap:focus-within{border-color:var(--ea-border-focus);box-shadow:var(--sh-focus)}.ea-textarea-wrap textarea{width:100%;border:0;background:transparent;color:var(--ea-text);font-family:inherit;font-size:13px;line-height:1.55;outline:none;resize:vertical;min-height:80px}.ea-textarea-wrap--mono textarea{font-family:SF Mono,Monaco,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.6}.ea-field--switch{display:flex;align-items:end;height:38px}.ea-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.ea-switch input{position:absolute;opacity:0;pointer-events:none}.ea-switch__track{position:relative;width:36px;height:20px;border-radius:100px;background:var(--ea-border-strong);transition:background .15s ease;flex-shrink:0}.ea-switch__track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s ease}.ea-switch input:checked+.ea-switch__track{background:var(--ea-brand)}.ea-switch input:checked+.ea-switch__track:after{transform:translate(16px)}.ea-switch input:focus-visible+.ea-switch__track{box-shadow:var(--sh-focus)}.ea-switch__label{font-size:12.5px;font-weight:600;color:var(--ea-text-secondary)}.ea-vars{padding:14px;border-radius:var(--r-md);background:var(--ea-surface);border:1px solid var(--ea-border)}.ea-vars__head{display:flex;align-items:center;gap:6px;margin-bottom:10px}.ea-vars__head svg{color:var(--ea-info)}.ea-vars__head strong{font-size:12px;font-weight:700;color:var(--ea-text)}.ea-vars__hint{margin-left:auto;font-size:11px;color:var(--ea-text-muted);font-weight:500}.ea-vars__list{display:flex;flex-wrap:wrap;gap:6px}.ea-var-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--r-sm);background:var(--ea-card);border:1px solid var(--ea-border);color:var(--ea-info);font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s ease}.ea-var-chip:hover{background:var(--ea-info-soft);border-color:var(--ea-info-border);transform:translateY(-1px)}.ea-preview{background:var(--ea-card);border:1px solid var(--ea-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden;position:sticky;top:24px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.ea-preview__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--ea-border);background:var(--ea-surface)}.ea-preview__head h3{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:700;color:var(--ea-text-muted);text-transform:uppercase;letter-spacing:.06em}.ea-preview__toggle{display:inline-flex;gap:2px;padding:2px;border-radius:var(--r-sm);background:var(--ea-card);border:1px solid var(--ea-border)}.ea-preview__toggle button{padding:3px 10px;border:0;border-radius:4px;background:transparent;color:var(--ea-text-muted);font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s ease}.ea-preview__toggle button.is-active{background:var(--ea-brand);color:#fff}.ea-preview__body{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.ea-preview__meta{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:var(--r-md);background:var(--ea-surface);border:1px solid var(--ea-border)}.ea-preview__meta-label{font-size:10.5px;font-weight:700;color:var(--ea-text-muted);text-transform:uppercase;letter-spacing:.06em}.ea-preview__subject{color:var(--ea-text);font-size:13px;font-weight:600;line-height:1.4;word-break:break-word}.ea-preview__html{padding:16px;border:1px solid var(--ea-border);border-radius:var(--r-md);background:#fff;color:var(--ea-text);font-size:13px;line-height:1.55;overflow-x:auto}.ea-preview__text{margin:0;padding:14px;border-radius:var(--r-md);background:#0f172a;color:#e2e8f0;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.ea-preview__empty{padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.ea-preview__empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ea-brand-soft);border:1px solid var(--ea-brand-border);color:var(--ea-brand);margin-bottom:6px}.ea-preview__empty strong{color:var(--ea-text);font-size:14px;font-weight:600}.ea-preview__empty p{margin:0;color:var(--ea-text-muted);font-size:12.5px;line-height:1.55;max-width:260px}.ea-preview__empty em{font-style:normal;font-weight:600;color:var(--ea-text-secondary)}@media(max-width:1280px){.ea-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.ea-templates{grid-template-columns:240px minmax(0,1fr)}.ea-preview{grid-column:1 / -1;position:static;max-height:600px}}@media(max-width:900px){.ea-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.ea-templates{grid-template-columns:1fr}.ea-tpl-list{position:static;max-height:300px}.ea-tpl-meta{grid-template-columns:1fr 1fr}.ea-tpl-meta .ea-field--switch{grid-column:1 / -1}}@media(max-width:768px){.ea-hero{flex-direction:column;align-items:stretch;gap:16px}.ea-hero__actions{justify-content:flex-end}.ea-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ea-toolbar{flex-direction:column;align-items:stretch}.ea-search{max-width:none}.ea-pagination{flex-direction:column;gap:10px;align-items:stretch}.ea-pagination__actions{justify-content:space-between}.ea-tpl-meta{grid-template-columns:1fr}}@media(max-width:600px){.ea{padding:20px 16px 40px}.ea-stats{grid-template-columns:1fr 1fr}}:root{--gf-bg: #f6f8fb;--gf-card: #ffffff;--gf-surface: #f8fafc;--gf-hover: #f1f5f9;--gf-border: #e5e9f0;--gf-border-strong: #cbd5e1;--gf-border-focus: #93c5fd;--gf-text: #0f172a;--gf-text-secondary: #475569;--gf-text-muted: #64748b;--gf-text-subtle: #94a3b8;--gf-brand: #2563eb;--gf-brand-hover: #1d4ed8;--gf-brand-soft: #eff6ff;--gf-brand-border: #bfdbfe;--gf-indigo: #4f46e5;--gf-indigo-soft: #eef2ff;--gf-indigo-border: #c7d2fe;--gf-success: #059669;--gf-success-soft: #ecfdf5;--gf-success-border: #a7f3d0;--gf-warning: #b45309;--gf-warning-soft: #fffbeb;--gf-warning-border: #fde68a;--gf-danger: #b91c1c;--gf-danger-soft: #fef2f2;--gf-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15)}.gf{width:100%;max-width:1200px;margin:0 auto;padding:24px 24px 48px;color:var(--gf-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.gf-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--gf-border)}.gf-hero__text{flex:1;min-width:0}.gf-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);background:transparent;color:var(--gf-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.gf-back:hover{background:var(--gf-surface);color:var(--gf-text)}.gf-hero__title-row{display:flex;align-items:flex-start;gap:14px}.gf-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--gf-indigo-soft);border:1px solid var(--gf-indigo-border);color:var(--gf-indigo);flex-shrink:0}.gf-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.gf-hero p{margin:0;max-width:580px;color:var(--gf-text-muted);font-size:13px;line-height:1.55}.gf-hero__actions{display:flex;gap:8px;flex-shrink:0}.gf-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.gf-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.gf-btn--primary{background:var(--gf-brand);color:#fff;border-color:var(--gf-brand);box-shadow:var(--sh-xs);min-width:130px}.gf-btn--primary:hover:not(:disabled){background:var(--gf-brand-hover);border-color:var(--gf-brand-hover);box-shadow:var(--sh-sm)}.gf-btn--secondary{background:var(--gf-card);color:var(--gf-text);border-color:var(--gf-border-strong)}.gf-btn--secondary:hover:not(:disabled){background:var(--gf-surface)}.gf-btn--ghost{background:transparent;color:var(--gf-text-muted);border-color:transparent}.gf-btn--ghost:hover:not(:disabled){background:var(--gf-surface);color:var(--gf-text)}.gf-btn:disabled{cursor:not-allowed;opacity:.6}.gf-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.gf-alert svg{flex-shrink:0}.gf-alert--success{background:var(--gf-success-soft);border:1px solid var(--gf-success-border);color:var(--gf-success)}.gf-alert--error{background:var(--gf-danger-soft);border:1px solid var(--gf-danger-border);color:var(--gf-danger)}.gf-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.gf-panel{border-radius:var(--r-lg);background:var(--gf-card);border:1px solid var(--gf-border);box-shadow:var(--sh-xs);overflow:hidden}.gf-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.gf-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 20px;color:var(--gf-text-muted);font-size:13px;font-weight:500}.gf-form{display:flex;flex-direction:column}.gf-section{padding:20px 24px}.gf-section__head{margin-bottom:18px}.gf-section__head h3{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--gf-text);letter-spacing:-.005em}.gf-section__head p{margin:0;font-size:12.5px;color:var(--gf-text-muted);line-height:1.4}.gf-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.gf-field:last-child{margin-bottom:0}.gf-field__label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.gf-field label{font-size:12.5px;font-weight:600;color:var(--gf-text-secondary);letter-spacing:.005em}.gf-counter{font-size:11px;font-weight:500;color:var(--gf-text-subtle);font-variant-numeric:tabular-nums;transition:color .15s ease}.gf-counter.is-over{color:var(--gf-danger);font-weight:600}.gf-hint{font-size:11.5px;color:var(--gf-text-muted);line-height:1.4;margin-top:2px}.gf-input-wrap{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:var(--r-md);background:var(--gf-card);border:1px solid var(--gf-border);transition:all .15s ease}.gf-input-wrap:hover{border-color:var(--gf-border-strong)}.gf-input-wrap:focus-within{border-color:var(--gf-border-focus);box-shadow:var(--sh-focus)}.gf-input-icon{color:var(--gf-text-subtle);flex-shrink:0}.gf-input-wrap input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--gf-text);font-family:inherit;font-size:13.5px;outline:none}.gf-input-wrap input::placeholder{color:var(--gf-text-subtle)}.gf-textarea-wrap{display:flex;gap:8px;padding:10px 12px;border-radius:var(--r-md);background:var(--gf-card);border:1px solid var(--gf-border);transition:all .15s ease}.gf-textarea-wrap:hover{border-color:var(--gf-border-strong)}.gf-textarea-wrap:focus-within{border-color:var(--gf-border-focus);box-shadow:var(--sh-focus)}.gf-textarea-icon{color:var(--gf-text-subtle);flex-shrink:0;margin-top:3px}.gf-textarea-wrap textarea{flex:1;min-width:0;border:0;background:transparent;color:var(--gf-text);font-family:inherit;font-size:13.5px;line-height:1.55;outline:none;resize:vertical;min-height:80px;max-height:240px}.gf-textarea-wrap textarea::placeholder{color:var(--gf-text-subtle)}.gf-form__actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 24px;background:var(--gf-surface);border-top:1px solid var(--gf-border)}.gf-form__actions-right{display:flex;gap:8px}.gf-preview,.gf-others,.gf-members-cta{padding:18px 20px;border-radius:var(--r-lg);background:var(--gf-card);border:1px solid var(--gf-border);box-shadow:var(--sh-xs)}.gf-side__title{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 0 14px;font-size:11px;font-weight:600;color:var(--gf-text-muted);letter-spacing:.06em;text-transform:uppercase}.gf-side__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:100px;background:var(--gf-surface);border:1px solid var(--gf-border);color:var(--gf-text-secondary);font-size:10.5px;font-weight:700;letter-spacing:0;text-transform:none;font-variant-numeric:tabular-nums}.gf-preview__card{border-radius:var(--r-md);background:var(--gf-surface);border:1px solid var(--gf-border);overflow:hidden}.gf-preview__head{padding:14px 14px 0}.gf-preview__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--gf-indigo-soft);border:1px solid var(--gf-indigo-border);color:var(--gf-indigo)}.gf-preview__body{padding:12px 14px 14px}.gf-preview__name{font-size:14px;font-weight:700;color:var(--gf-text);line-height:1.3;letter-spacing:-.01em;margin-bottom:6px;word-break:break-word}.gf-preview__desc{margin:0;font-size:12.5px;color:var(--gf-text-secondary);line-height:1.5;word-break:break-word}.gf-preview__desc--muted{color:var(--gf-text-subtle);font-style:italic}.gf-preview__foot{padding:10px 14px;border-top:1px solid var(--gf-border);background:var(--gf-card)}.gf-preview__note{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--gf-warning);letter-spacing:.01em}.gf-preview__note:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gf-warning)}.gf-members-cta__header{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.gf-members-cta__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--gf-brand-soft);border:1px solid var(--gf-brand-border);color:var(--gf-brand);flex-shrink:0}.gf-members-cta__body{flex:1;min-width:0;padding-top:1px}.gf-members-cta__title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--gf-text);letter-spacing:-.005em}.gf-members-cta__desc{margin:0;font-size:12px;color:var(--gf-text-muted);line-height:1.45}.gf-members-cta__count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;border-radius:100px;background:var(--gf-brand-soft);border:1px solid var(--gf-brand-border);color:var(--gf-brand);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}.gf-members-cta__btn{width:100%;position:relative}.gf-members-cta__arrow{margin-left:auto;opacity:.55;transition:transform .15s ease,opacity .15s ease}.gf-members-cta__btn:hover .gf-members-cta__arrow{transform:translate(2px);opacity:1}.gf-others__list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:4px}.gf-others__item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);background:transparent;color:var(--gf-text-secondary);font-size:12.5px;font-weight:500;text-decoration:none;transition:all .12s ease}.gf-others__item svg{color:var(--gf-text-subtle);flex-shrink:0;transition:color .12s ease}.gf-others__item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gf-others__item:hover{background:var(--gf-surface);color:var(--gf-text)}.gf-others__item:hover svg{color:var(--gf-brand)}.gf-others__hint{display:flex;align-items:center;gap:6px;margin:0;padding-top:12px;border-top:1px solid var(--gf-border);font-size:11.5px;color:var(--gf-text-muted);line-height:1.4}.gf-others__hint svg{color:var(--gf-text-subtle);flex-shrink:0}@media(max-width:1024px){.gf-grid{grid-template-columns:1fr}.gf-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}}@media(max-width:768px){.gf-hero{flex-direction:column;align-items:stretch;gap:16px}.gf-hero__actions{justify-content:flex-end}.gf-form__actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.gf-form__actions-right{justify-content:stretch}.gf-form__actions-right .gf-btn{flex:1}}@media(max-width:600px){.gf{padding:20px 16px 40px}.gf-section{padding:18px 16px}.gf-form__actions{padding:14px 16px}.gf-side{grid-template-columns:1fr}}:root{--gm-card: #ffffff;--gm-surface: #f8fafc;--gm-hover: #f1f5f9;--gm-border: #e5e9f0;--gm-border-strong: #cbd5e1;--gm-border-focus: #93c5fd;--gm-text: #0f172a;--gm-text-secondary: #475569;--gm-text-muted: #64748b;--gm-text-subtle: #94a3b8;--gm-brand: #2563eb;--gm-brand-hover: #1d4ed8;--gm-brand-soft: #eff6ff;--gm-brand-border: #bfdbfe;--gm-success: #059669;--gm-success-soft: #ecfdf5;--gm-success-border: #a7f3d0;--gm-warning: #b45309;--gm-warning-soft: #fffbeb;--gm-warning-border: #fde68a;--gm-danger: #b91c1c;--gm-danger-soft: #fef2f2;--gm-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--sh-xs: 0 1px 2px rgba(15,23,42,.04);--sh-sm: 0 1px 3px rgba(15,23,42,.05),0 1px 2px rgba(15,23,42,.03);--sh-focus: 0 0 0 3px rgba(37,99,235,.15)}.gm{width:100%;max-width:1100px;margin:0 auto;padding:24px 24px 56px;color:var(--gm-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.gm-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--gm-border)}.gm-hero__text{flex:1;min-width:0}.gm-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);color:var(--gm-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.gm-back:hover{background:var(--gm-surface);color:var(--gm-text)}.gm-hero__title-row{display:flex;align-items:flex-start;gap:14px}.gm-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--gm-brand-soft);border:1px solid var(--gm-brand-border);color:var(--gm-brand);flex-shrink:0}.gm-hero h1{margin:0 0 4px;font-size:clamp(18px,2vw,22px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.gm-hero__count{font-size:14px;font-weight:500;color:var(--gm-text-muted)}.gm-hero p{margin:0;font-size:13px;color:var(--gm-text-muted);line-height:1.5}.gm-hero__actions{display:flex;gap:8px;flex-shrink:0}.gm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid transparent;text-decoration:none;transition:all .15s ease}.gm-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.gm-btn:disabled{opacity:.55;cursor:not-allowed}.gm-btn--primary{background:var(--gm-brand);color:#fff;border-color:var(--gm-brand);box-shadow:var(--sh-xs)}.gm-btn--primary:hover:not(:disabled){background:var(--gm-brand-hover);border-color:var(--gm-brand-hover)}.gm-btn--secondary{background:var(--gm-card);color:var(--gm-text);border-color:var(--gm-border-strong)}.gm-btn--secondary:hover:not(:disabled){background:var(--gm-surface)}.gm-btn--ghost{background:transparent;color:var(--gm-text-muted);border-color:transparent}.gm-btn--ghost:hover:not(:disabled){background:var(--gm-surface);color:var(--gm-text)}.gm-btn--danger{background:var(--gm-danger-soft);color:var(--gm-danger);border-color:var(--gm-danger-border)}.gm-btn--danger:hover:not(:disabled){background:#fee2e2}.gm-btn--icon{width:36px;padding:0;background:var(--gm-card);color:var(--gm-text-muted);border-color:var(--gm-border)}.gm-btn--icon:hover:not(:disabled){background:var(--gm-surface);color:var(--gm-text)}.gm-btn--sm{height:28px;padding:0 10px;font-size:12px;gap:4px}.gm-toast{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:14px;border-radius:var(--r-md);background:var(--gm-success-soft);border:1px solid var(--gm-success-border);color:var(--gm-success);font-size:13px;font-weight:500;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.gm-alert{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:14px;border-radius:var(--r-md);background:var(--gm-danger-soft);border:1px solid var(--gm-danger-border);color:var(--gm-danger);font-size:13px;font-weight:500}.gm-alert span{flex:1}.gm-alert__dismiss{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.7;flex-shrink:0}.gm-alert__dismiss:hover{opacity:1;background:#0000000f}.gm-add-panel{margin-bottom:16px;border-radius:var(--r-lg);background:var(--gm-card);border:1px solid var(--gm-brand-border);box-shadow:var(--sh-sm);overflow:hidden}.gm-add-panel__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--gm-brand-soft);border-bottom:1px solid var(--gm-brand-border)}.gm-add-panel__title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--gm-brand)}.gm-add-panel__close{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:50%;background:transparent;color:var(--gm-brand);cursor:pointer;opacity:.7}.gm-add-panel__close:hover{opacity:1;background:#2563eb1a}.gm-add-panel__error{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--gm-danger-soft);border-bottom:1px solid var(--gm-danger-border);color:var(--gm-danger);font-size:12.5px;font-weight:500}.gm-add-panel__body{display:flex;align-items:flex-end;gap:12px;padding:16px;flex-wrap:wrap}.gm-add-panel__field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:180px}.gm-add-panel__field label{font-size:12px;font-weight:600;color:var(--gm-text-secondary)}.gm-select{height:38px;padding:0 30px 0 10px;border-radius:var(--r-md);background:var(--gm-card);border:1px solid var(--gm-border);color:var(--gm-text);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s ease}.gm-select:hover{border-color:var(--gm-border-strong)}.gm-select:focus{outline:none;border-color:var(--gm-border-focus);box-shadow:var(--sh-focus)}.gm-select--sm{height:30px;font-size:12px}.gm-panel{border-radius:var(--r-lg);background:var(--gm-card);border:1px solid var(--gm-border);box-shadow:var(--sh-xs);overflow:hidden}.gm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--gm-border);background:var(--gm-surface)}.gm-search{display:flex;align-items:center;gap:8px;flex:1;max-width:380px;height:34px;padding:0 10px;border-radius:var(--r-md);background:var(--gm-card);border:1px solid var(--gm-border);transition:all .15s ease}.gm-search:focus-within{border-color:var(--gm-border-focus);box-shadow:var(--sh-focus)}.gm-search svg{color:var(--gm-text-subtle);flex-shrink:0}.gm-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--gm-text);font-family:inherit;font-size:13px;outline:none}.gm-search input::placeholder{color:var(--gm-text-subtle)}.gm-search__clear{display:grid;place-items:center;width:18px;height:18px;border:0;border-radius:50%;background:var(--gm-hover);color:var(--gm-text-muted);cursor:pointer;flex-shrink:0}.gm-search__clear:hover{background:var(--gm-border-strong)}.gm-toolbar__meta{font-size:12px;font-weight:500;color:var(--gm-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.gm-table-wrap{overflow-x:auto}.gm-table{width:100%;border-collapse:collapse;font-size:13px}.gm-th{padding:10px 16px;background:var(--gm-surface);color:var(--gm-text-muted);font-size:11px;font-weight:600;text-align:left;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gm-border);white-space:nowrap}.gm-th--right{text-align:right}.gm-tr{transition:background .1s ease}.gm-tr:hover{background:#f8faff}.gm-td{padding:12px 16px;border-bottom:1px solid var(--gm-border);vertical-align:middle}.gm-tr:last-child .gm-td{border-bottom:0}.gm-td--right{text-align:right}.gm-td--empty{padding:48px 16px;text-align:center}.gm-member{display:flex;align-items:center;gap:12px}.gm-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--gm-brand);font-size:12px;font-weight:700;flex-shrink:0;border:1px solid var(--gm-brand-border)}.gm-member__info{display:flex;flex-direction:column;gap:1px;min-width:0}.gm-member__name{font-size:13px;font-weight:600;color:var(--gm-text)}.gm-member__email{font-size:12px;color:var(--gm-text-muted)}.gm-role-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:11.5px;font-weight:600;background:var(--gm-surface);border:1px solid var(--gm-border-strong);color:var(--gm-text-muted)}.gm-role-badge--owner{background:var(--gm-warning-soft);border-color:var(--gm-warning-border);color:var(--gm-warning)}.gm-role-edit{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gm-confirm{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}.gm-confirm__label{font-size:12px;font-weight:600;color:var(--gm-danger)}.gm-actions{display:inline-flex;gap:4px;justify-content:flex-end}.gm-action{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--gm-border);border-radius:var(--r-sm);background:var(--gm-card);color:var(--gm-text-muted);cursor:pointer;transition:all .15s ease}.gm-action:hover:not(:disabled){background:var(--gm-surface);color:var(--gm-text);border-color:var(--gm-border-strong)}.gm-action:disabled{opacity:.4;cursor:not-allowed}.gm-action--danger:hover:not(:disabled){background:var(--gm-danger-soft);color:var(--gm-danger);border-color:var(--gm-danger-border)}.gm-empty{display:inline-flex;align-items:center;gap:8px;color:var(--gm-text-muted);font-size:13px;font-weight:500}.gm-empty--large{flex-direction:column;gap:10px;padding:16px}.gm-empty__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--gm-surface);border:1px solid var(--gm-border);color:var(--gm-text-subtle)}.gm-empty--large strong{font-size:14px;font-weight:600;color:var(--gm-text)}.gm-empty--large p{margin:0;font-size:12.5px;color:var(--gm-text-muted)}.gm-pagination{display:flex;align-items:center;justify-content:center;gap:4px;padding:14px 16px;border-top:1px solid var(--gm-border);background:var(--gm-surface)}.gm-page-btn{display:grid;place-items:center;min-width:32px;height:32px;padding:0 6px;border-radius:var(--r-sm);border:1px solid var(--gm-border);background:var(--gm-card);color:var(--gm-text-secondary);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;font-variant-numeric:tabular-nums}.gm-page-btn:hover:not(:disabled):not(.is-active){background:var(--gm-surface);border-color:var(--gm-border-strong)}.gm-page-btn.is-active{background:var(--gm-brand);border-color:var(--gm-brand);color:#fff;font-weight:700}.gm-page-btn:disabled{opacity:.4;cursor:not-allowed}.gm-page-ellipsis{display:grid;place-items:center;min-width:32px;height:32px;color:var(--gm-text-subtle);font-size:13px}@media(max-width:768px){.gm-hero{flex-direction:column;align-items:stretch;gap:16px}.gm-hero__actions{justify-content:flex-end}.gm-toolbar{flex-direction:column;align-items:stretch;gap:10px}.gm-search{max-width:none}.gm-add-panel__body{flex-direction:column}.gm-add-panel__field{min-width:0;width:100%}}@media(max-width:600px){.gm{padding:16px 14px 40px}}:root{--ag-bg: #f6f8fb;--ag-card: #ffffff;--ag-surface: #f8fafc;--ag-hover: #f1f5f9;--ag-border: #e5e9f0;--ag-border-strong: #cbd5e1;--ag-text: #0f172a;--ag-text-secondary: #475569;--ag-text-muted: #64748b;--ag-text-subtle: #94a3b8;--ag-brand: #2563eb;--ag-brand-hover: #1d4ed8;--ag-brand-soft: #eff6ff;--ag-brand-border: #bfdbfe;--ag-indigo: #4f46e5;--ag-indigo-soft: #eef2ff;--ag-indigo-border: #c7d2fe;--ag-success: #059669;--ag-success-soft: #ecfdf5;--ag-success-border: #a7f3d0;--ag-danger: #b91c1c;--ag-danger-soft: #fef2f2;--ag-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-md: 0 4px 12px rgba(15, 23, 42, .06);--ease: cubic-bezier(.16, 1, .3, 1)}.ag{width:100%;max-width:1280px;margin:0 auto;padding:24px 24px 48px;color:var(--ag-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.ag-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ag-border)}.ag-hero__text{flex:1;min-width:0}.ag-hero__back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);background:transparent;color:var(--ag-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.ag-hero__back:hover{background:var(--ag-surface);color:var(--ag-text)}.ag-hero__title-row{display:flex;align-items:flex-start;gap:14px}.ag-hero__title-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--ag-indigo-soft);border:1px solid var(--ag-indigo-border);color:var(--ag-indigo);flex-shrink:0}.ag-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.ag-hero p{margin:0;max-width:580px;color:var(--ag-text-muted);font-size:13px;line-height:1.55}.ag-hero__actions{display:flex;gap:8px;flex-shrink:0}.ag-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.ag-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.ag-btn--primary{background:var(--ag-brand);color:#fff;border-color:var(--ag-brand);box-shadow:var(--sh-xs)}.ag-btn--primary:hover:not(:disabled){background:var(--ag-brand-hover);border-color:var(--ag-brand-hover);box-shadow:var(--sh-sm)}.ag-btn--secondary{background:var(--ag-card);color:var(--ag-text);border-color:var(--ag-border-strong)}.ag-btn--secondary:hover:not(:disabled){background:var(--ag-surface)}.ag-btn--icon{width:36px;padding:0;background:var(--ag-card);color:var(--ag-text-muted);border-color:var(--ag-border);box-shadow:var(--sh-xs)}.ag-btn--icon:hover:not(:disabled){background:var(--ag-surface);color:var(--ag-text);border-color:var(--ag-border-strong)}.ag-btn:disabled{cursor:not-allowed;opacity:.6}.ag-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.ag-alert svg{flex-shrink:0}.ag-alert span{flex:1}.ag-alert--success{background:var(--ag-success-soft);border:1px solid var(--ag-success-border);color:var(--ag-success)}.ag-alert--error{background:var(--ag-danger-soft);border:1px solid var(--ag-danger-border);color:var(--ag-danger)}.ag-alert__close,.ag-alert__retry{padding:4px 10px;border-radius:var(--r-sm);background:transparent;border:1px solid currentColor;color:inherit;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;flex-shrink:0;opacity:.7}.ag-alert__close{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0}.ag-alert__close:hover,.ag-alert__retry:hover{opacity:1;background:#0000000a}.ag-panel{border-radius:var(--r-lg);background:var(--ag-card);border:1px solid var(--ag-border);box-shadow:var(--sh-xs);overflow:hidden}.ag-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--ag-border);background:var(--ag-surface)}.ag-search{display:flex;align-items:center;gap:8px;flex:1;max-width:420px;height:36px;padding:0 12px;border-radius:var(--r-md);background:var(--ag-card);border:1px solid var(--ag-border);transition:all .15s ease}.ag-search:focus-within{border-color:var(--ag-brand-border);box-shadow:0 0 0 3px #2563eb1a}.ag-search svg{color:var(--ag-text-subtle);flex-shrink:0}.ag-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--ag-text);font-family:inherit;font-size:13px;outline:none}.ag-search input::placeholder{color:var(--ag-text-subtle)}.ag-search__clear{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:var(--ag-hover);color:var(--ag-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.ag-search__clear:hover{background:var(--ag-border-strong);color:var(--ag-text)}.ag-meta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ag-text-muted);font-variant-numeric:tabular-nums}.ag-filters{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--ag-border);flex-wrap:wrap}.ag-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 12px;border-radius:100px;background:var(--ag-surface);border:1px solid var(--ag-border);color:var(--ag-text-secondary);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.ag-filter:hover:not(.is-active){background:var(--ag-hover);border-color:var(--ag-border-strong);color:var(--ag-text)}.ag-filter__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:100px;background:var(--ag-card);border:1px solid var(--ag-border);color:var(--ag-text-muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.ag-filter.is-active{background:var(--ag-brand-soft);border-color:var(--ag-brand-border);color:var(--ag-brand)}.ag-filter.is-active .ag-filter__count{background:var(--ag-brand);border-color:var(--ag-brand);color:#fff}.ag-filter--success.is-active{background:var(--ag-success-soft);border-color:var(--ag-success-border);color:var(--ag-success)}.ag-filter--success.is-active .ag-filter__count{background:var(--ag-success);border-color:var(--ag-success)}.ag-filter--muted.is-active{background:var(--ag-surface);border-color:var(--ag-border-strong);color:var(--ag-text)}.ag-filter--muted.is-active .ag-filter__count{background:var(--ag-text-muted);border-color:var(--ag-text-muted);color:#fff}.ag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:16px}.ag-card{display:flex;flex-direction:column;padding:18px;border-radius:var(--r-lg);background:var(--ag-card);border:1px solid var(--ag-border);color:var(--ag-text);text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s var(--ease)}.ag-card:hover{border-color:var(--ag-brand-border);box-shadow:var(--sh-md);transform:translateY(-2px)}.ag-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.ag-card__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--ag-indigo-soft);border:1px solid var(--ag-indigo-border);color:var(--ag-indigo);transition:transform .2s var(--ease)}.ag-card:hover .ag-card__icon{transform:scale(1.05)}.ag-card__badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:100px;font-size:11.5px;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums}.ag-card__badge--active{background:var(--ag-success-soft);color:var(--ag-success);border:1px solid var(--ag-success-border)}.ag-card__badge--empty{background:var(--ag-surface);color:var(--ag-text-muted);border:1px solid var(--ag-border-strong)}.ag-card__body{flex:1;margin-bottom:14px}.ag-card__title{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--ag-text);line-height:1.3;letter-spacing:-.01em;word-break:break-word}.ag-card__desc{margin:0;font-size:12.5px;color:var(--ag-text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ag-card__desc--muted{color:var(--ag-text-subtle);font-style:italic}.ag-card__members{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:10px 12px;border-radius:var(--r-md);background:var(--ag-surface);border:1px solid var(--ag-border);margin-bottom:12px}.ag-avatars{display:flex;align-items:center}.ag-avatar{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--ag-brand);font-size:10.5px;font-weight:700;letter-spacing:-.01em;border:2px solid var(--ag-card);margin-left:-6px;flex-shrink:0;transition:transform .15s ease}.ag-avatar:first-child{margin-left:0}.ag-card:hover .ag-avatar{transform:translateY(-1px)}.ag-avatar--more{background:var(--ag-surface);color:var(--ag-text-muted);border-color:var(--ag-border)}.ag-owner-note{font-size:11px;font-weight:600;color:var(--ag-text-muted);white-space:nowrap;letter-spacing:.01em}.ag-no-members{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ag-text-subtle);font-style:italic}.ag-card__foot{padding-top:12px;border-top:1px solid var(--ag-border)}.ag-card__cta{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ag-brand);transition:color .15s ease}.ag-card:hover .ag-card__cta{color:var(--ag-brand-hover)}.ag-empty{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:8px;padding:60px 20px;color:var(--ag-text-muted);font-size:13px;font-weight:500}.ag-empty--large{flex-direction:column;gap:12px}.ag-empty__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ag-surface);border:1px solid var(--ag-border);color:var(--ag-text-subtle)}.ag-empty--large strong{font-size:14px;font-weight:600;color:var(--ag-text)}.ag-empty--large p{margin:0;font-size:12.5px;color:var(--ag-text-muted);max-width:280px;text-align:center}@media(max-width:900px){.ag-hero{flex-direction:column;align-items:stretch;gap:16px}.ag-hero__actions{justify-content:flex-end}.ag-toolbar{flex-direction:column;align-items:stretch;gap:12px}.ag-search{max-width:none}.ag-meta{text-align:left}}@media(max-width:640px){.ag{padding:20px 16px 40px}.ag-hero__title-row{gap:12px}.ag-hero__title-icon{width:36px;height:36px}.ag-grid{grid-template-columns:1fr;padding:12px}.ag-filters{padding:12px;gap:6px}.ag-filter{font-size:12px}}.ag-pagination{display:flex;align-items:center;justify-content:center;gap:4px;padding:14px 16px;border-top:1px solid var(--ag-border);background:var(--ag-surface)}.ag-page-btn{display:grid;min-width:32px;height:32px;place-items:center;padding:0 7px;border:1px solid var(--ag-border);border-radius:var(--r-sm);background:var(--ag-card);color:var(--ag-text-secondary);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums;transition:all .15s ease}.ag-page-btn:hover:not(:disabled):not(.is-active){border-color:var(--ag-border-strong);background:var(--ag-hover);color:var(--ag-text)}.ag-page-btn.is-active{border-color:var(--ag-brand);background:var(--ag-brand);color:#fff}.ag-page-btn:disabled{cursor:not-allowed;opacity:.45}.ag-page-ellipsis{display:grid;min-width:32px;height:32px;place-items:center;color:var(--ag-text-subtle);font-size:13px}:root{--uf-bg: #f6f8fb;--uf-card: #ffffff;--uf-surface: #f8fafc;--uf-hover: #f1f5f9;--uf-border: #e5e9f0;--uf-border-strong: #cbd5e1;--uf-border-focus: #93c5fd;--uf-text: #0f172a;--uf-text-secondary: #475569;--uf-text-muted: #64748b;--uf-text-subtle: #94a3b8;--uf-brand: #2563eb;--uf-brand-hover: #1d4ed8;--uf-brand-soft: #eff6ff;--uf-brand-border: #bfdbfe;--uf-success: #059669;--uf-success-soft: #ecfdf5;--uf-success-border: #a7f3d0;--uf-warning: #b45309;--uf-warning-soft: #fffbeb;--uf-warning-border: #fde68a;--uf-danger: #b91c1c;--uf-danger-soft: #fef2f2;--uf-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15)}.uf{width:100%;max-width:1200px;margin:0 auto;padding:24px 24px 48px;color:var(--uf-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.uf-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--uf-border)}.uf-hero__text{flex:1;min-width:0}.uf-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);background:transparent;color:var(--uf-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.uf-back:hover{background:var(--uf-surface);color:var(--uf-text)}.uf-hero__title-row{display:flex;align-items:flex-start;gap:14px}.uf-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--uf-brand-soft);border:1px solid var(--uf-brand-border);color:var(--uf-brand);flex-shrink:0}.uf-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.uf-hero p{margin:0;max-width:580px;color:var(--uf-text-muted);font-size:13px;line-height:1.55}.uf-hero__actions{display:flex;gap:8px;flex-shrink:0}.uf-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.uf-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.uf-btn--primary{background:var(--uf-brand);color:#fff;border-color:var(--uf-brand);box-shadow:var(--sh-xs);min-width:130px}.uf-btn--primary:hover:not(:disabled){background:var(--uf-brand-hover);border-color:var(--uf-brand-hover);box-shadow:var(--sh-sm)}.uf-btn--secondary{background:var(--uf-card);color:var(--uf-text);border-color:var(--uf-border-strong)}.uf-btn--secondary:hover:not(:disabled){background:var(--uf-surface)}.uf-btn--ghost{background:transparent;color:var(--uf-text-muted);border-color:transparent}.uf-btn--ghost:hover:not(:disabled){background:var(--uf-surface);color:var(--uf-text)}.uf-btn:disabled{cursor:not-allowed;opacity:.6}.uf-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.uf-alert svg{flex-shrink:0}.uf-alert--success{background:var(--uf-success-soft);border:1px solid var(--uf-success-border);color:var(--uf-success)}.uf-alert--error{background:var(--uf-danger-soft);border:1px solid var(--uf-danger-border);color:var(--uf-danger)}.uf-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.uf-panel{border-radius:var(--r-lg);background:var(--uf-card);border:1px solid var(--uf-border);box-shadow:var(--sh-xs);overflow:hidden}.uf-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.uf-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 20px;color:var(--uf-text-muted);font-size:13px;font-weight:500}.uf-form{display:flex;flex-direction:column}.uf-section{padding:20px 24px;border-bottom:1px solid var(--uf-border)}.uf-section:last-of-type{border-bottom:0}.uf-section__head{margin-bottom:16px}.uf-section__head h3{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--uf-text);letter-spacing:-.005em}.uf-section__head p{margin:0;font-size:12.5px;color:var(--uf-text-muted);line-height:1.4}.uf-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.uf-field:last-child{margin-bottom:0}.uf-field label{font-size:12.5px;font-weight:600;color:var(--uf-text-secondary);letter-spacing:.005em}.uf-hint{font-size:11.5px;color:var(--uf-text-muted);line-height:1.4;margin-top:2px}.uf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.uf-row:last-child{margin-bottom:0}.uf-row .uf-field{margin-bottom:0}.uf-input-wrap{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:var(--r-md);background:var(--uf-card);border:1px solid var(--uf-border);transition:all .15s ease}.uf-input-wrap:hover{border-color:var(--uf-border-strong)}.uf-input-wrap:focus-within{border-color:var(--uf-border-focus);box-shadow:var(--sh-focus)}.uf-input-icon{color:var(--uf-text-subtle);flex-shrink:0}.uf-input-wrap input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--uf-text);font-family:inherit;font-size:13.5px;outline:none}.uf-input-wrap input::placeholder{color:var(--uf-text-subtle)}.uf-input-wrap--has-action{padding-right:4px}.uf-input-action{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--uf-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.uf-input-action:hover{background:var(--uf-surface);color:var(--uf-text)}.uf-select{height:40px;padding:0 32px 0 12px;border-radius:var(--r-md);background:var(--uf-card);border:1px solid var(--uf-border);color:var(--uf-text);font-family:inherit;font-size:13.5px;font-weight:500;cursor:pointer;transition:all .15s ease;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.uf-select:hover{border-color:var(--uf-border-strong)}.uf-select:focus{outline:none;border-color:var(--uf-border-focus);box-shadow:var(--sh-focus)}.uf-select:disabled{background-color:var(--uf-surface);color:var(--uf-text-subtle);cursor:not-allowed}.uf-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:var(--r-md);background:var(--uf-surface);border:1px solid var(--uf-border);cursor:pointer}.uf-toggle-row__info{display:flex;flex-direction:column;gap:2px;min-width:0}.uf-toggle-row__info strong{font-size:13px;font-weight:600;color:var(--uf-text)}.uf-toggle-row__info span{font-size:12px;color:var(--uf-text-muted);line-height:1.4}.uf-toggle{position:relative;display:inline-block;width:40px;height:22px;border:0;padding:0;border-radius:100px;background:var(--uf-border-strong);cursor:pointer;flex-shrink:0;transition:background .2s ease}.uf-toggle:focus-visible{outline:none;box-shadow:var(--sh-focus)}.uf-toggle__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a33;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.uf-toggle.is-on{background:var(--uf-brand)}.uf-toggle.is-on .uf-toggle__thumb{transform:translate(18px)}.uf-form__actions{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 24px;background:var(--uf-surface);border-top:1px solid var(--uf-border)}.uf-form__actions-right{display:flex;gap:8px}.uf-preview,.uf-guide{padding:18px 20px;border-radius:var(--r-lg);background:var(--uf-card);border:1px solid var(--uf-border);box-shadow:var(--sh-xs)}.uf-side__title{margin:0 0 14px;font-size:11px;font-weight:600;color:var(--uf-text-muted);letter-spacing:.06em;text-transform:uppercase}.uf-preview__card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 16px;border-radius:var(--r-md);background:var(--uf-surface);border:1px solid var(--uf-border)}.uf-preview__avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--uf-brand);font-size:18px;font-weight:700;letter-spacing:-.01em;border:2px solid var(--uf-card);box-shadow:0 0 0 1px var(--uf-brand-border);margin-bottom:12px}.uf-preview__name{font-size:14px;font-weight:600;color:var(--uf-text);line-height:1.3;margin-bottom:2px;word-break:break-word}.uf-preview__email{font-size:12px;color:var(--uf-text-muted);line-height:1.3;margin-bottom:12px;word-break:break-all}.uf-preview__badges{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:12px}.uf-preview__groups{display:flex;flex-direction:column;gap:4px;width:100%;margin-top:4px}.uf-preview__group{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--r-sm);background:var(--uf-card);border:1px solid var(--uf-border);color:var(--uf-text);font-size:12px;font-weight:500}.uf-preview__group svg{color:var(--uf-text-muted);flex-shrink:0}.uf-preview__group-role{color:var(--uf-text-muted);font-weight:400}.uf-group-row{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:var(--r-md);background:var(--uf-surface);border:1px solid var(--uf-border);margin-bottom:10px}.uf-group-row .uf-row{margin-bottom:0}.uf-btn--sm{height:28px;padding:0 10px;font-size:12px;gap:5px}.uf-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:600;line-height:1.5;letter-spacing:.01em;white-space:nowrap}.uf-pill__dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.uf-pill--role{background:var(--uf-brand-soft);color:var(--uf-brand);border:1px solid var(--uf-brand-border)}.uf-pill--active{background:var(--uf-success-soft);color:var(--uf-success);border:1px solid var(--uf-success-border)}.uf-pill--inactive{background:var(--uf-surface);color:var(--uf-text-muted);border:1px solid var(--uf-border-strong)}.uf-pill--approved{background:var(--uf-success-soft);color:var(--uf-success);border:1px solid var(--uf-success-border)}.uf-pill--pending{background:var(--uf-warning-soft);color:var(--uf-warning);border:1px solid var(--uf-warning-border)}.uf-guide__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.uf-guide__list li{display:flex;gap:10px;align-items:flex-start}.uf-guide__marker{width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--uf-brand);flex-shrink:0;box-shadow:0 0 0 3px var(--uf-brand-soft)}.uf-guide__list strong{display:block;font-size:12.5px;font-weight:600;color:var(--uf-text);line-height:1.3;margin-bottom:2px}.uf-guide__list p{margin:0;font-size:11.5px;color:var(--uf-text-muted);line-height:1.5}@media(max-width:1024px){.uf-grid{grid-template-columns:1fr}.uf-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}}@media(max-width:768px){.uf-hero{flex-direction:column;align-items:stretch;gap:16px}.uf-hero__actions{justify-content:flex-end}.uf-row{grid-template-columns:1fr}.uf-form__actions{flex-direction:column-reverse;align-items:stretch;gap:10px}.uf-form__actions-right{justify-content:stretch}.uf-form__actions-right .uf-btn{flex:1}}@media(max-width:600px){.uf{padding:20px 16px 40px}.uf-section{padding:18px 16px}.uf-form__actions{padding:14px 16px}.uf-side{grid-template-columns:1fr}}:root{--au-bg: #f6f8fb;--au-card: #ffffff;--au-surface: #f8fafc;--au-hover: #f1f5f9;--au-row-hover: #f8faff;--au-border: #e5e9f0;--au-border-strong: #cbd5e1;--au-text: #0f172a;--au-text-secondary: #475569;--au-text-muted: #64748b;--au-text-subtle: #94a3b8;--au-brand: #2563eb;--au-brand-hover: #1d4ed8;--au-brand-soft: #eff6ff;--au-brand-border: #bfdbfe;--au-success: #059669;--au-success-soft: #ecfdf5;--au-success-border: #a7f3d0;--au-warning: #b45309;--au-warning-soft: #fffbeb;--au-warning-border: #fde68a;--au-danger: #b91c1c;--au-danger-soft: #fef2f2;--au-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-md: 0 4px 12px rgba(15, 23, 42, .06)}.au{width:100%;max-width:1280px;margin:0 auto;padding:24px 24px 48px;color:var(--au-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.au-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--au-border)}.au-hero__text{flex:1;min-width:0}.au-hero__back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);background:transparent;color:var(--au-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.au-hero__back:hover{background:var(--au-surface);color:var(--au-text)}.au-hero__title-row{display:flex;align-items:flex-start;gap:14px}.au-hero__title-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--au-brand-soft);border:1px solid var(--au-brand-border);color:var(--au-brand);flex-shrink:0}.au-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--au-text)}.au-hero p{margin:0;max-width:580px;color:var(--au-text-muted);font-size:13px;line-height:1.55}.au-hero__actions{display:flex;gap:8px;flex-shrink:0}.au-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.au-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.au-btn--primary{background:var(--au-brand);color:#fff;border-color:var(--au-brand);box-shadow:var(--sh-xs)}.au-btn--primary:hover:not(:disabled){background:var(--au-brand-hover);border-color:var(--au-brand-hover);box-shadow:var(--sh-sm)}.au-btn--secondary{background:var(--au-card);color:var(--au-text);border-color:var(--au-border-strong)}.au-btn--secondary:hover:not(:disabled){background:var(--au-surface)}.au-btn--icon{width:36px;padding:0;background:var(--au-card);color:var(--au-text-muted);border-color:var(--au-border);box-shadow:var(--sh-xs)}.au-btn--icon:hover:not(:disabled){background:var(--au-surface);color:var(--au-text);border-color:var(--au-border-strong)}.au-btn:disabled{cursor:not-allowed;opacity:.6}.au-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.au-alert svg{flex-shrink:0}.au-alert span{flex:1}.au-alert--success{background:var(--au-success-soft);border:1px solid var(--au-success-border);color:var(--au-success)}.au-alert--error{background:var(--au-danger-soft);border:1px solid var(--au-danger-border);color:var(--au-danger)}.au-alert__close,.au-alert__retry{padding:4px 10px;border-radius:var(--r-sm);background:transparent;border:1px solid currentColor;color:inherit;font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;flex-shrink:0;opacity:.7}.au-alert__close{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0}.au-alert__close:hover,.au-alert__retry:hover{opacity:1;background:#0000000a}.au-panel{border-radius:var(--r-lg);background:var(--au-card);border:1px solid var(--au-border);box-shadow:var(--sh-xs);overflow:hidden}.au-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--au-border);background:var(--au-surface)}.au-search{display:flex;align-items:center;gap:8px;flex:1;max-width:420px;height:36px;padding:0 12px;border-radius:var(--r-md);background:var(--au-card);border:1px solid var(--au-border);transition:all .15s ease}.au-search:focus-within{border-color:var(--au-brand-border);box-shadow:0 0 0 3px #2563eb1a}.au-search svg{color:var(--au-text-subtle);flex-shrink:0}.au-search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--au-text);font-family:inherit;font-size:13px;outline:none}.au-search input::placeholder{color:var(--au-text-subtle)}.au-search__clear{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:var(--au-hover);color:var(--au-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.au-search__clear:hover{background:var(--au-border-strong);color:var(--au-text)}.au-filter-select{height:36px;min-width:160px;padding:0 32px 0 12px;border:1px solid var(--au-border);border-radius:var(--r-md);background:var(--au-card);color:var(--au-text-secondary);font:inherit;font-size:13px;outline:none}.au-filter-select:focus{border-color:var(--au-brand-border);box-shadow:0 0 0 3px #2563eb1a}.au-meta__label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--au-text-muted);font-variant-numeric:tabular-nums}.au-filters{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--au-border);flex-wrap:wrap}.au-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 12px;border-radius:100px;background:var(--au-surface);border:1px solid var(--au-border);color:var(--au-text-secondary);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.au-filter:hover:not(.is-active){background:var(--au-hover);border-color:var(--au-border-strong);color:var(--au-text)}.au-filter__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:100px;background:var(--au-card);border:1px solid var(--au-border);color:var(--au-text-muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.au-filter.is-active{background:var(--au-brand-soft);border-color:var(--au-brand-border);color:var(--au-brand)}.au-filter.is-active .au-filter__count{background:var(--au-brand);border-color:var(--au-brand);color:#fff}.au-filter--success.is-active{background:var(--au-success-soft);border-color:var(--au-success-border);color:var(--au-success)}.au-filter--success.is-active .au-filter__count{background:var(--au-success);border-color:var(--au-success)}.au-filter--warning.is-active{background:var(--au-warning-soft);border-color:var(--au-warning-border);color:var(--au-warning)}.au-filter--warning.is-active .au-filter__count{background:var(--au-warning);border-color:var(--au-warning)}.au-filter--danger.is-active{background:var(--au-danger-soft);border-color:var(--au-danger-border);color:var(--au-danger)}.au-filter--danger.is-active .au-filter__count{background:var(--au-danger);border-color:var(--au-danger)}.au-table-wrap{overflow-x:auto}.au-table{width:100%;min-width:1060px;border-collapse:collapse;font-size:13px}.au-th{padding:10px 16px;background:var(--au-surface);color:var(--au-text-muted);font-size:11px;font-weight:600;text-align:left;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--au-border);white-space:nowrap}.au-th--right{text-align:right}.au-tr{transition:background .1s ease}.au-tr:hover{background:var(--au-row-hover)}.au-td{padding:12px 16px;border-bottom:1px solid var(--au-border);vertical-align:middle;color:var(--au-text)}.au-tr:last-child .au-td{border-bottom:0}.au-td--right{text-align:right}.au-td--empty{padding:48px 16px;text-align:center}.au-user{display:flex;align-items:center;gap:12px}.au-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:var(--au-brand);font-size:12px;font-weight:700;letter-spacing:-.01em;flex-shrink:0;border:1px solid var(--au-brand-border)}.au-user__info{display:flex;flex-direction:column;gap:1px;min-width:0}.au-user__name{font-size:13px;font-weight:600;color:var(--au-text);line-height:1.3}.au-user__email{font-size:12px;color:var(--au-text-muted);line-height:1.3}.au-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-size:11.5px;font-weight:600;line-height:1.4;letter-spacing:.01em;white-space:nowrap}.au-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.au-badge--role{background:var(--au-brand-soft);color:var(--au-brand);border:1px solid var(--au-brand-border)}.au-badge--active{background:var(--au-success-soft);color:var(--au-success);border:1px solid var(--au-success-border)}.au-badge--inactive{background:var(--au-surface);color:var(--au-text-muted);border:1px solid var(--au-border-strong)}.au-badge--warning{background:var(--au-warning-soft);color:var(--au-warning);border:1px solid var(--au-warning-border)}.au-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-family:inherit;font-size:11.5px;font-weight:600;line-height:1.4;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.au-chip:disabled{cursor:not-allowed;opacity:.6}.au-chip--approved{background:var(--au-success-soft);color:var(--au-success);border-color:var(--au-success-border)}.au-chip--approved:hover:not(:disabled){background:#d1fae5}.au-chip--pending{background:var(--au-warning-soft);color:var(--au-warning);border-color:var(--au-warning-border)}.au-chip--pending:hover:not(:disabled){background:#fef3c7}.au-groups{display:flex;flex-wrap:wrap;gap:4px}.au-group{font-size:12.5px;font-weight:500;color:var(--au-text-secondary);padding:2px 7px;border-radius:100px;background:var(--au-surface);border:1px solid var(--au-border);white-space:nowrap}.au-muted{font-size:12.5px;color:var(--au-text-subtle);font-style:italic}.au-actions{display:inline-flex;gap:4px;justify-content:flex-end}.au-action{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--au-border);border-radius:var(--r-sm);background:var(--au-card);color:var(--au-text-muted);text-decoration:none;cursor:pointer;transition:all .15s ease}.au-action:hover:not(:disabled){background:var(--au-surface);color:var(--au-text);border-color:var(--au-border-strong)}.au-action:disabled{opacity:.4;cursor:not-allowed}.au-action--primary:hover:not(:disabled){background:var(--au-brand-soft);color:var(--au-brand);border-color:var(--au-brand-border)}.au-action--success:hover:not(:disabled){background:var(--au-success-soft);color:var(--au-success);border-color:var(--au-success-border)}.au-empty{display:inline-flex;align-items:center;gap:8px;color:var(--au-text-muted);font-size:13px;font-weight:500}.au-empty--large{flex-direction:column;gap:12px;padding:20px}.au-empty__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--au-surface);border:1px solid var(--au-border);color:var(--au-text-subtle)}.au-empty--large strong{font-size:14px;font-weight:600;color:var(--au-text)}.au-empty--large p{margin:0;font-size:12.5px;color:var(--au-text-muted);max-width:280px}@media(max-width:900px){.au-hero{flex-direction:column;align-items:stretch;gap:16px}.au-hero__actions{justify-content:flex-end}.au-toolbar{flex-direction:column;align-items:stretch;gap:12px}.au-search{max-width:none}.au-meta{text-align:left}}@media(max-width:640px){.au{padding:20px 16px 40px}.au-hero__title-row{gap:12px}.au-hero__title-icon{width:36px;height:36px}.au-filters{padding:12px;gap:6px}.au-filter{font-size:12px;padding:4px 8px 4px 10px}.au-filter__count{min-width:18px;height:16px;font-size:10.5px}}:root{--d-bg: #f6f8fb;--d-card: #ffffff;--d-surface: #f8fafc;--d-hover: #f1f5f9;--d-border: #e5e9f0;--d-border-strong: #cbd5e1;--d-text: #0f172a;--d-text-secondary: #475569;--d-text-muted: #64748b;--d-text-subtle: #94a3b8;--d-brand: #2563eb;--d-brand-hover: #1d4ed8;--d-brand-soft: #eff6ff;--d-brand-border: #bfdbfe;--d-success: #059669;--d-success-soft: #ecfdf5;--d-success-border: #a7f3d0;--d-warning: #b45309;--d-warning-soft: #fffbeb;--d-warning-border: #fde68a;--d-danger: #b91c1c;--d-danger-soft: #fef2f2;--d-danger-border: #fecaca;--d-indigo: #4f46e5;--d-indigo-soft: #eef2ff;--d-amber: #d97706;--d-amber-soft: #fffbeb;--d-teal: #0d9488;--d-teal-soft: #f0fdfa;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-md: 0 4px 8px rgba(15, 23, 42, .04), 0 2px 4px rgba(15, 23, 42, .03);--ease: cubic-bezier(.16, 1, .3, 1)}.dash{width:100%;max-width:1280px;margin:0 auto;padding:28px 24px 48px;color:var(--d-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}.dash-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--d-border)}.dash-hero__text{flex:1;min-width:0}.dash-eyebrow{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:100px;background:var(--d-brand-soft);border:1px solid var(--d-brand-border);color:var(--d-brand);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1.4}.dash-eyebrow__dot{width:5px;height:5px;border-radius:50%;background:var(--d-brand);box-shadow:0 0 0 3px #2563eb26}.dash-hero h1{margin:14px 0 6px;font-size:clamp(22px,2.4vw,26px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--d-text)}.dash-hero p{margin:0;max-width:580px;color:var(--d-text-muted);font-size:13.5px;line-height:1.55}.dash-hero__actions{display:flex;gap:8px;flex-shrink:0}.dash-btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.dash-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb40}.dash-btn--primary{background:var(--d-brand);color:#fff;border-color:var(--d-brand);box-shadow:var(--sh-xs)}.dash-btn--primary:hover{background:var(--d-brand-hover);border-color:var(--d-brand-hover);box-shadow:var(--sh-sm)}.dash-btn--secondary{background:var(--d-card);color:var(--d-text);border-color:var(--d-border);box-shadow:var(--sh-xs)}.dash-btn--secondary:hover{background:var(--d-surface);border-color:var(--d-border-strong)}.dash-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:20px;background:var(--d-danger-soft);border:1px solid var(--d-danger-border);color:var(--d-danger)}.dash-alert svg{flex-shrink:0;margin-top:1px}.dash-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.dash-kpi{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-lg);background:var(--d-card);border:1px solid var(--d-border);box-shadow:var(--sh-xs);transition:box-shadow .2s ease,transform .2s var(--ease)}.dash-kpi:hover{box-shadow:var(--sh-md);transform:translateY(-1px)}.dash-kpi__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);flex-shrink:0}.dash-kpi__icon--blue{background:var(--d-brand-soft);color:var(--d-brand)}.dash-kpi__icon--indigo{background:var(--d-indigo-soft);color:var(--d-indigo)}.dash-kpi__icon--amber{background:var(--d-amber-soft);color:var(--d-amber)}.dash-kpi__icon--teal{background:var(--d-teal-soft);color:var(--d-teal)}.dash-kpi__body{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-kpi__label{font-size:12px;font-weight:500;color:var(--d-text-muted);line-height:1.3}.dash-kpi__value{font-size:22px;font-weight:700;line-height:1.1;color:var(--d-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.dash-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.dash-main,.dash-side{display:flex;flex-direction:column;gap:16px;min-width:0}.dash-side{position:sticky;top:24px}.dash-card{padding:18px 20px 20px;border-radius:var(--r-lg);background:var(--d-card);border:1px solid var(--d-border);box-shadow:var(--sh-xs);transition:box-shadow .2s ease}.dash-card:hover{box-shadow:var(--sh-sm)}.dash-card--compact{padding:14px 16px 16px}.dash-card--muted{background:var(--d-surface)}.dash-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--d-border)}.dash-card__head-left{display:flex;align-items:center;gap:10px}.dash-card__head h2{margin:0;font-size:14px;font-weight:600;color:var(--d-text);letter-spacing:-.005em}.dash-card__icon{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-sm);background:var(--d-brand-soft);color:var(--d-brand);flex-shrink:0}.dash-card__title{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:11px;font-weight:600;color:var(--d-text-muted);letter-spacing:.06em;text-transform:uppercase}.dash-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:100px;font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.01em}.dash-pill--success{background:var(--d-success-soft);color:var(--d-success);border:1px solid var(--d-success-border)}.dash-details{display:flex;flex-direction:column}.dash-detail{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--d-border);min-height:44px}.dash-detail:last-child{border-bottom:0;padding-bottom:0}.dash-detail:first-child{padding-top:0}.dash-detail__label{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--d-text-muted)}.dash-detail__label svg{color:var(--d-text-subtle);flex-shrink:0}.dash-detail__value{font-size:13px;font-weight:500;color:var(--d-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-detail__value--mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:12px;color:var(--d-text-secondary);font-variant-numeric:tabular-nums}.dash-role-badges{display:inline-flex;flex-wrap:wrap;gap:6px}.dash-role-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:100px;background:var(--d-brand-soft);border:1px solid var(--d-brand-border);color:var(--d-brand);font-size:11.5px;font-weight:600;letter-spacing:.01em;line-height:1.5}.dash-nav-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.dash-nav-tile{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--d-border);border-radius:var(--r-md);background:var(--d-card);color:var(--d-text);text-decoration:none;transition:all .15s ease}.dash-nav-tile:hover{border-color:var(--d-brand-border);background:var(--d-brand-soft)}.dash-nav-tile__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);background:var(--d-brand-soft);color:var(--d-brand);flex-shrink:0;transition:background .15s ease}.dash-nav-tile:hover .dash-nav-tile__icon{background:#dbeafe}.dash-nav-tile__body{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-nav-tile__body strong{font-size:13.5px;font-weight:600;color:var(--d-text);line-height:1.3}.dash-nav-tile__body span{font-size:12px;color:var(--d-text-muted);line-height:1.4}.dash-nav-tile__arrow{color:var(--d-text-subtle);flex-shrink:0;transition:color .15s ease,transform .15s ease}.dash-nav-tile:hover .dash-nav-tile__arrow{color:var(--d-brand);transform:translate(2px,-2px)}.dash-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);font-size:12.5px;font-weight:500;line-height:1.4}.dash-status__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.dash-status__dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;opacity:.4;animation:dot-pulse 2s ease-in-out infinite}@keyframes dot-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.6);opacity:0}}.dash-status--ok{background:var(--d-success-soft);border:1px solid var(--d-success-border);color:var(--d-success)}.dash-status--ok .dash-status__dot,.dash-status--ok .dash-status__dot:after{background:var(--d-success)}.dash-status--error{background:var(--d-danger-soft);border:1px solid var(--d-danger-border);color:var(--d-danger)}.dash-status--error .dash-status__dot,.dash-status--error .dash-status__dot:after{background:var(--d-danger)}.dash-tip{margin:0;padding:10px 12px;border-radius:var(--r-md);background:var(--d-warning-soft);border:1px solid var(--d-warning-border);color:var(--d-warning);font-size:12.5px;font-weight:500;line-height:1.55}.dash-help{margin:0 0 10px;font-size:12.5px;color:var(--d-text-muted);line-height:1.55}.dash-link{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--d-brand);text-decoration:none;transition:color .15s ease}.dash-link:hover{color:var(--d-brand-hover);text-decoration:underline}@media(max-width:1100px){.dash-grid{grid-template-columns:1fr}.dash-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}}@media(max-width:900px){.dash-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dash-hero{flex-direction:column;align-items:flex-start;gap:16px}.dash-hero__actions{width:100%}.dash-btn{flex:1;justify-content:center}.dash-detail{grid-template-columns:1fr;gap:4px;padding:12px 0}}@media(max-width:600px){.dash{padding:20px 16px 40px}.dash-kpis,.dash-nav-grid,.dash-side{grid-template-columns:1fr}}:root{--ns-bg: #f6f8fb;--ns-card: #ffffff;--ns-surface: #f8fafc;--ns-hover: #f1f5f9;--ns-border: #e5e9f0;--ns-border-strong: #cbd5e1;--ns-border-focus: #93c5fd;--ns-text: #0f172a;--ns-text-secondary: #475569;--ns-text-muted: #64748b;--ns-text-subtle: #94a3b8;--ns-brand: #2563eb;--ns-brand-hover: #1d4ed8;--ns-brand-soft: #eff6ff;--ns-brand-border: #bfdbfe;--ns-success: #059669;--ns-success-soft: #ecfdf5;--ns-success-border: #a7f3d0;--ns-warning: #b45309;--ns-warning-soft: #fffbeb;--ns-warning-border: #fde68a;--ns-danger: #b91c1c;--ns-danger-soft: #fef2f2;--ns-danger-border: #fecaca;--ns-info: #4f46e5;--ns-info-soft: #eef2ff;--ns-info-border: #c7d2fe;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--sh-lg: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 10px 10px -5px rgba(15, 23, 42, .04);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15)}.ns{width:100%;max-width:1100px;margin:0 auto;padding:24px 24px 48px;color:var(--ns-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.ns-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ns-border)}.ns-hero__text{flex:1;min-width:0}.ns-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);color:var(--ns-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.ns-back:hover{background:var(--ns-surface);color:var(--ns-text)}.ns-hero__title-row{display:flex;align-items:flex-start;gap:14px}.ns-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--ns-brand-soft);border:1px solid var(--ns-brand-border);color:var(--ns-brand);flex-shrink:0}.ns-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.ns-hero p{margin:0;max-width:580px;color:var(--ns-text-muted);font-size:13px;line-height:1.55}.ns-hero__actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.ns-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.ns-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.ns-btn--primary{background:var(--ns-brand);color:#fff;border-color:var(--ns-brand);box-shadow:var(--sh-xs);min-width:140px}.ns-btn--primary:hover:not(:disabled){background:var(--ns-brand-hover);border-color:var(--ns-brand-hover);box-shadow:var(--sh-sm)}.ns-btn--secondary{background:var(--ns-card);color:var(--ns-text);border-color:var(--ns-border-strong)}.ns-btn--secondary:hover:not(:disabled){background:var(--ns-surface)}.ns-btn--ghost{background:transparent;color:var(--ns-text-muted);border-color:transparent}.ns-btn--ghost:hover:not(:disabled){background:var(--ns-surface);color:var(--ns-text)}.ns-btn:disabled{cursor:not-allowed;opacity:.6}.ns-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.ns-alert svg{flex-shrink:0}.ns-alert--success{background:var(--ns-success-soft);border:1px solid var(--ns-success-border);color:var(--ns-success)}.ns-alert--error{background:var(--ns-danger-soft);border:1px solid var(--ns-danger-border);color:var(--ns-danger)}.ns-alert__close{margin-left:auto;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-sm);background:transparent;color:currentColor;cursor:pointer;opacity:.6;transition:all .12s ease}.ns-alert__close:hover{opacity:1;background:#0000000f}.ns-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.ns-stat{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-lg);background:var(--ns-card);border:1px solid var(--ns-border);box-shadow:var(--sh-xs)}.ns-stat--pending{border-color:var(--ns-warning-border);background:var(--ns-warning-soft)}.ns-stat__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);flex-shrink:0}.ns-stat__icon--brand{background:var(--ns-brand-soft);color:var(--ns-brand)}.ns-stat__icon--success{background:var(--ns-success-soft);color:var(--ns-success)}.ns-stat__icon--warning{background:var(--ns-warning-soft);color:var(--ns-warning)}.ns-stat__icon--pending{background:#b4530926;color:var(--ns-warning)}.ns-stat__body{display:flex;flex-direction:column;gap:2px;min-width:0}.ns-stat__label{font-size:11.5px;font-weight:600;color:var(--ns-text-muted);letter-spacing:.01em}.ns-stat--pending .ns-stat__label{color:var(--ns-warning)}.ns-stat__value{font-size:20px;font-weight:700;color:var(--ns-text);font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:-.02em}.ns-stat--pending .ns-stat__value{color:var(--ns-warning)}.ns-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 20px;border-radius:var(--r-lg);background:var(--ns-card);border:1px solid var(--ns-border);color:var(--ns-text-muted);font-size:13px;font-weight:500}.ns-list{display:flex;flex-direction:column;gap:12px}.ns-card{background:var(--ns-card);border:1px solid var(--ns-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}.ns-card:hover{box-shadow:var(--sh-sm)}.ns-card--protected{background:linear-gradient(to right,var(--ns-brand-soft) 0%,var(--ns-card) 60%);border-color:var(--ns-brand-border)}.ns-card--modified{border-color:var(--ns-warning-border);box-shadow:0 0 0 3px #b4530914}.ns-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--ns-border)}.ns-card__title{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.ns-card__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--ns-surface);border:1px solid var(--ns-border);color:var(--ns-text-muted);flex-shrink:0}.ns-card__icon--protected{background:var(--ns-brand-soft);border-color:var(--ns-brand-border);color:var(--ns-brand)}.ns-card__title h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 4px;font-size:15px;font-weight:600;color:var(--ns-text);letter-spacing:-.005em}.ns-card__title p{margin:0;font-size:13px;color:var(--ns-text-muted);line-height:1.5}.ns-card__status{flex-shrink:0}.ns-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:100px;font-size:10.5px;font-weight:600;letter-spacing:.02em}.ns-tag--protected{background:var(--ns-brand-soft);border:1px solid var(--ns-brand-border);color:var(--ns-brand-hover)}.ns-tag--modified{background:var(--ns-warning-soft);border:1px solid var(--ns-warning-border);color:var(--ns-warning)}.ns-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:600;border:1px solid transparent}.ns-pill__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ns-pill--on{background:var(--ns-success-soft);border-color:var(--ns-success-border);color:var(--ns-success)}.ns-pill--off{background:var(--ns-surface);border-color:var(--ns-border);color:var(--ns-text-muted)}.ns-card__body{display:flex;flex-direction:column}.ns-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;cursor:pointer;transition:background .12s ease;border-bottom:1px solid var(--ns-border)}.ns-toggle-row:last-child{border-bottom:0}.ns-toggle-row:hover:not(.is-disabled){background:var(--ns-surface)}.ns-toggle-row.is-disabled{cursor:not-allowed;opacity:.55}.ns-toggle-row__info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.ns-toggle-row__icon{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--ns-surface);color:var(--ns-text-muted);flex-shrink:0}.ns-toggle-row__info>div{display:flex;flex-direction:column;gap:2px;min-width:0}.ns-toggle-row__info strong{font-size:13px;font-weight:600;color:var(--ns-text)}.ns-toggle-row__info span{font-size:12px;color:var(--ns-text-muted);line-height:1.4}.ns-switch{position:relative;flex-shrink:0}.ns-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.ns-switch__track{display:block;position:relative;width:40px;height:22px;border-radius:100px;background:var(--ns-border-strong);transition:background .15s ease}.ns-switch__track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s ease}.ns-switch input:checked+.ns-switch__track{background:var(--ns-brand)}.ns-switch input:checked+.ns-switch__track:after{transform:translate(18px)}.ns-switch input:focus-visible+.ns-switch__track{box-shadow:var(--sh-focus)}.ns-switch input:disabled+.ns-switch__track{opacity:.6}.ns-modal-overlay{position:fixed;inset:0;background:#0f172a80;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;animation:ns-fade .18s ease}@keyframes ns-fade{0%{opacity:0}to{opacity:1}}.ns-modal{background:var(--ns-card);border-radius:var(--r-xl);width:100%;max-width:620px;max-height:calc(100vh - 40px);box-shadow:var(--sh-lg);overflow:hidden;display:flex;flex-direction:column;animation:ns-slide .22s cubic-bezier(.16,1,.3,1)}@keyframes ns-slide{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ns-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--ns-border)}.ns-modal__head-content{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.ns-modal__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--ns-info-soft);border:1px solid var(--ns-info-border);color:var(--ns-info);flex-shrink:0}.ns-modal__head h2{margin:0 0 3px;font-size:16px;font-weight:700;color:var(--ns-text);letter-spacing:-.01em}.ns-modal__head p{margin:0;font-size:12.5px;color:var(--ns-text-muted);line-height:1.5}.ns-modal__close{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-md);background:transparent;color:var(--ns-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.ns-modal__close:hover:not(:disabled){background:var(--ns-hover);color:var(--ns-text)}.ns-modal__body{padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;flex:1}.ns-modal__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;background:var(--ns-surface);border-top:1px solid var(--ns-border)}.ns-field{display:flex;flex-direction:column;gap:6px}.ns-field label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ns-text-secondary);letter-spacing:.01em}.ns-field__label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.ns-field__hint{font-size:11px;color:var(--ns-text-muted);font-variant-numeric:tabular-nums;margin-top:2px}.ns-input-wrap{position:relative;display:flex;align-items:center;height:38px;padding:0 12px;border-radius:var(--r-md);background:var(--ns-card);border:1px solid var(--ns-border);transition:all .15s ease}.ns-input-wrap:hover{border-color:var(--ns-border-strong)}.ns-input-wrap:focus-within{border-color:var(--ns-border-focus);box-shadow:var(--sh-focus)}.ns-input-wrap input,.ns-input-wrap select{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--ns-text);font-family:inherit;font-size:13.5px;outline:none}.ns-input-wrap select{cursor:pointer;appearance:none;padding-right:20px}.ns-input-wrap__chevron{position:absolute;right:12px;color:var(--ns-text-subtle);pointer-events:none}.ns-input-wrap input::placeholder{color:var(--ns-text-subtle)}.ns-textarea-wrap{padding:10px 12px;border-radius:var(--r-md);background:var(--ns-card);border:1px solid var(--ns-border);transition:all .15s ease}.ns-textarea-wrap:hover{border-color:var(--ns-border-strong)}.ns-textarea-wrap:focus-within{border-color:var(--ns-border-focus);box-shadow:var(--sh-focus)}.ns-textarea-wrap textarea{width:100%;border:0;background:transparent;color:var(--ns-text);font-family:inherit;font-size:13px;line-height:1.55;outline:none;resize:vertical;min-height:80px}.ns-textarea-wrap--mono textarea{font-family:SF Mono,Monaco,Consolas,Courier New,monospace;font-size:12.5px;line-height:1.6}.ns-textarea-wrap textarea::placeholder{color:var(--ns-text-subtle)}.ns-callout{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:var(--r-md);background:var(--ns-brand-soft);border:1px solid var(--ns-brand-border);color:var(--ns-brand-hover)}.ns-callout svg{flex-shrink:0;margin-top:1px}.ns-callout p{margin:0;font-size:12px;line-height:1.5;color:var(--ns-brand-hover)}@media(max-width:768px){.ns-hero{flex-direction:column;align-items:stretch;gap:16px}.ns-hero__actions{flex-wrap:wrap}.ns-btn--primary{flex:1;min-width:0}.ns-stats{grid-template-columns:repeat(2,1fr)}.ns-card__head{flex-direction:column;align-items:stretch;gap:12px}.ns-card__status{align-self:flex-start}.ns-toggle-row{padding:12px 16px}.ns-modal{max-width:100%}.ns-modal__head,.ns-modal__body,.ns-modal__foot{padding-left:18px;padding-right:18px}}@media(max-width:600px){.ns{padding:20px 16px 40px}.ns-stats{grid-template-columns:1fr}.ns-modal-overlay{padding:0;align-items:flex-end}.ns-modal{max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0}}*,*:before,*:after{box-sizing:border-box}:root{--fs-bg: #f8fafc;--fs-deep: #eef2f7;--fs-surface: #f1f5f9;--fs-card: #ffffff;--fs-elevated: #ffffff;--fs-border: #e2e8f0;--fs-border-hover: #cbd5e1;--fs-border-focus: #93c5fd;--fs-text-primary: #0f172a;--fs-text-secondary: #475569;--fs-text-tertiary: #64748b;--fs-text-subtle: #94a3b8;--fs-text-inverse: #ffffff;--fs-accent: #2563eb;--fs-accent-bright: #1d4ed8;--fs-accent-dim: #1e40af;--fs-accent-soft: #eff6ff;--fs-accent-border: #bfdbfe;--fs-accent-glow: rgba(37, 99, 235, .1);--fs-accent-glow-strong: rgba(37, 99, 235, .18);--fs-violet: #7c3aed;--fs-violet-soft: #f5f3ff;--fs-danger: #b91c1c;--fs-danger-bg: #fef2f2;--fs-danger-border: #fecaca;--fs-success: #059669;--fs-success-bg: #ecfdf5;--fs-success-border: #a7f3d0;--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 24px;--r-card: 20px;--r-pill: 100px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-card: 0 1px 3px rgba(15, 23, 42, .03), 0 4px 12px rgba(15, 23, 42, .04), 0 12px 32px rgba(15, 23, 42, .06);--shadow-card-hover: 0 2px 6px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06), 0 24px 48px rgba(15, 23, 42, .08);--shadow-button: 0 1px 2px rgba(37, 99, 235, .15), 0 4px 12px rgba(37, 99, 235, .2);--shadow-input-focus: 0 0 0 4px rgba(37, 99, 235, .1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .36s}.auth-shell{position:relative;display:flex;flex-direction:column;min-height:100svh;overflow:hidden;background:var(--fs-bg);color:var(--fs-text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.auth-shell:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='g' width='60' height='60' patternUnits='userSpaceOnUse'%3E%3Cpath d='M60 0H0v60' fill='none' stroke='%230f172a' stroke-width='0.3' opacity='0.03'/%3E%3C/pattern%3E%3C/defs%3E%3Crect fill='url(%23g)' width='60' height='60'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.auth-shell__orb{position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(80px);will-change:transform}.auth-shell__orb--1{width:600px;height:600px;top:-10%;left:-5%;background:radial-gradient(circle,rgba(37,99,235,.08) 0%,rgba(37,99,235,.02) 50%,transparent 70%);animation:orb-float-1 20s ease-in-out infinite}.auth-shell__orb--2{width:500px;height:500px;bottom:-10%;right:-5%;background:radial-gradient(circle,rgba(124,58,237,.07) 0%,rgba(124,58,237,.02) 50%,transparent 70%);animation:orb-float-2 24s ease-in-out infinite}@keyframes orb-float-1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,30px) scale(1.05)}66%{transform:translate(-20px,50px) scale(.95)}}@keyframes orb-float-2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-30px,-40px) scale(.95)}66%{transform:translate(40px,-20px) scale(1.05)}}.auth-topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;width:min(1200px,calc(100% - 48px));margin:0 auto;padding:28px 0 0}.brand-lockup{display:inline-flex;align-items:center;gap:14px;text-decoration:none}.brand-mark{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--fs-accent) 0%,var(--fs-accent-dim) 100%);box-shadow:0 1px 2px #2563eb2e,0 4px 16px #2563eb38;transition:transform var(--duration-normal) var(--ease-spring)}.brand-mark__ring{position:absolute;inset:-3px;border-radius:calc(var(--r-md) + 3px);border:1.5px solid rgba(37,99,235,.15);opacity:0;transition:opacity var(--duration-normal) ease}.brand-lockup:hover .brand-mark{transform:scale(1.06) rotate(-2deg)}.brand-lockup:hover .brand-mark__ring{opacity:1}.brand-mark span{color:#fff;font-size:20px;font-weight:800;line-height:1;letter-spacing:-.02em}.brand-text h1{margin:0;font-size:16px;font-weight:700;line-height:1.2;color:var(--fs-text-primary);letter-spacing:-.015em}.brand-text p{margin:2px 0 0;font-size:11px;font-weight:600;color:var(--fs-text-subtle);letter-spacing:.06em;text-transform:uppercase}.topbar-meta{display:flex;align-items:center}.system-status{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:var(--fs-success-bg);border:1px solid var(--fs-success-border);cursor:default}.system-status__dot{width:6px;height:6px;border-radius:50%;background:var(--fs-success);box-shadow:0 0 8px #05966980;animation:status-blink 2.4s ease-in-out infinite}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.4}}.system-status__label{font-size:11px;font-weight:600;color:var(--fs-success);letter-spacing:.02em}.auth-page{position:relative;z-index:2;display:grid;grid-template-columns:1fr minmax(340px,440px);gap:80px;align-items:center;width:min(1200px,calc(100% - 48px));margin:0 auto;padding:48px 0 60px;flex:1}.auth-copy{padding:20px 0}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--r-pill);background:var(--fs-accent-soft);border:1px solid var(--fs-accent-border);color:var(--fs-accent);font-size:11.5px;font-weight:650;letter-spacing:.05em;text-transform:uppercase}.eyebrow__dot{width:6px;height:6px;border-radius:50%;background:var(--fs-accent);box-shadow:0 0 8px #2563eb80;animation:eyebrow-pulse 2.4s ease-in-out infinite}@keyframes eyebrow-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.auth-copy h2{max-width:560px;margin:28px 0 20px;font-size:clamp(30px,4.2vw,48px);font-weight:800;line-height:1.08;letter-spacing:-.035em;color:var(--fs-text-primary)}.auth-copy h2 em{font-style:normal;background:linear-gradient(135deg,var(--fs-accent) 0%,var(--fs-violet) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-copy>p{max-width:440px;margin:0;font-size:15px;line-height:1.7;color:var(--fs-text-secondary)}.auth-features{display:flex;flex-direction:column;gap:10px;margin-top:36px;padding-top:32px;border-top:1px solid var(--fs-border)}.auth-feature{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--r-md);border:1px solid transparent;transition:background var(--duration-normal) ease,border-color var(--duration-normal) ease}.auth-feature:hover{background:#2563eb08;border-color:var(--fs-border)}.auth-feature-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--fs-accent-soft);border:1px solid var(--fs-accent-border);color:var(--fs-accent);flex-shrink:0;transition:transform var(--duration-normal) var(--ease-spring)}.auth-feature:hover .auth-feature-icon{transform:scale(1.08)}.auth-feature-content{display:flex;flex-direction:column;gap:2px;min-width:0}.auth-feature-title{font-size:13.5px;font-weight:650;color:var(--fs-text-primary);letter-spacing:-.01em}.auth-feature-desc{font-size:12.5px;color:var(--fs-text-tertiary);line-height:1.4}.auth-trust{display:flex;align-items:center;gap:12px;margin-top:32px;padding:16px 18px;border-radius:var(--r-md);background:var(--fs-surface);border:1px solid var(--fs-border)}.auth-trust__avatars{display:flex;flex-shrink:0}.auth-trust__avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;border:2px solid var(--fs-surface);line-height:1}.auth-trust__avatar+.auth-trust__avatar{margin-left:-8px}.auth-trust__text{font-size:13px;color:var(--fs-text-tertiary);line-height:1.4}.auth-trust__text strong{color:var(--fs-text-primary);font-weight:700}.auth-card{display:flex;flex-direction:column;gap:20px;padding:32px;border-radius:var(--r-card);background:var(--fs-card);border:1px solid var(--fs-border);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-slow) ease;animation:card-enter .6s var(--ease-out) both;animation-delay:.1s}@keyframes card-enter{0%{opacity:0;transform:translateY(20px) scale(.97)}}.auth-card:hover{box-shadow:var(--shadow-card-hover)}.auth-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:var(--r-md);background:var(--fs-surface);border:1px solid var(--fs-border)}.tab-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--fs-text-tertiary);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:color var(--duration-fast) ease,background var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform var(--duration-fast) var(--ease-spring);user-select:none;outline:none}.tab-button:hover:not(.active){color:var(--fs-text-primary);background:#0f172a08}.tab-button:active:not(.active){transform:scale(.97)}.tab-button:focus-visible{box-shadow:0 0 0 2px var(--fs-accent)}.tab-button.active{background:var(--fs-card);color:var(--fs-text-primary);border-color:var(--fs-border);box-shadow:0 1px 3px #0f172a0f,0 1px 1px #0f172a0a}.tab-button .tab-icon{font-size:14px;opacity:.6;transition:opacity var(--duration-fast) ease,color var(--duration-fast) ease}.tab-button.active .tab-icon{opacity:1;color:var(--fs-accent)}.auth-form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;font-weight:600;color:var(--fs-text-secondary);letter-spacing:.01em}.field .field-hint{font-size:12px;font-weight:400;color:var(--fs-text-tertiary)}.input-frame{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:10px;min-height:46px;padding:0 14px;border-radius:var(--r-md);border:1.5px solid var(--fs-border);background:var(--fs-card);color:var(--fs-text-tertiary);transition:border-color var(--duration-normal) ease,box-shadow var(--duration-normal) ease,background var(--duration-normal) ease}.input-frame:hover{border-color:var(--fs-border-hover)}.input-frame:focus-within{border-color:var(--fs-accent);box-shadow:var(--shadow-input-focus);background:var(--fs-card)}.input-frame .input-icon{color:var(--fs-text-subtle);font-size:15px;transition:color var(--duration-normal) ease}.input-frame:focus-within .input-icon{color:var(--fs-accent)}.input-frame input{width:100%;min-width:0;padding:12px 0;border:0;outline:0;background:transparent;color:var(--fs-text-primary);caret-color:var(--fs-accent);font-family:inherit;font-size:14px;font-weight:500}.input-frame input:-webkit-autofill,.input-frame input:-webkit-autofill:hover,.input-frame input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fs-text-primary);caret-color:var(--fs-accent);transition:background-color 9999s ease-in-out 0s;box-shadow:0 0 0 1000px var(--fs-card) inset}.input-frame input::placeholder{color:var(--fs-text-subtle);font-weight:400}.input-frame.has-action{grid-template-columns:18px 1fr auto}.input-frame .input-action{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--r-xs);background:transparent;color:var(--fs-text-tertiary);cursor:pointer;transition:color var(--duration-fast) ease,background var(--duration-fast) ease}.input-frame .input-action:hover{color:var(--fs-text-primary);background:var(--fs-surface)}.primary-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin-top:4px;padding:0 20px;border:0;border-radius:var(--r-md);background:linear-gradient(135deg,var(--fs-accent) 0%,var(--fs-accent-dim) 100%);color:#fff;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-button);transition:transform var(--duration-normal) var(--ease-spring),box-shadow var(--duration-normal) ease,opacity var(--duration-fast) ease;overflow:hidden;outline:none}.primary-button:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 50%);opacity:0;transition:opacity var(--duration-normal) ease}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #2563eb33,0 12px 32px #2563eb47}.primary-button:hover:not(:disabled):before{opacity:1}.primary-button:active:not(:disabled){transform:translateY(0) scale(.985)}.primary-button:focus-visible{box-shadow:var(--shadow-button),0 0 0 3px #2563eb40}.primary-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.auth-divider{display:flex;align-items:center;gap:16px;color:var(--fs-text-subtle);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--fs-border)}.inline-message{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;animation:message-enter .35s var(--ease-out) both}@keyframes message-enter{0%{opacity:0;transform:translateY(-6px)}}.inline-message:not(.error){background:var(--fs-accent-soft);border:1px solid var(--fs-accent-border);color:var(--fs-accent)}.inline-message.error{background:var(--fs-danger-bg);border:1px solid var(--fs-danger-border);color:var(--fs-danger)}.inline-message .message-icon{flex-shrink:0;margin-top:1px}.auth-card-footer{display:flex;justify-content:center;padding-top:4px}.auth-card-footer a,.auth-card-footer button{background:none;border:none;color:var(--fs-accent);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;transition:color var(--duration-fast) ease}.auth-card-footer a:hover,.auth-card-footer button:hover{color:var(--fs-accent-bright);text-decoration:underline}.account-action-page{position:relative;z-index:2;display:grid;min-height:100svh;place-items:center;width:min(460px,calc(100% - 32px));margin:0 auto;padding:40px 0}.account-action-card{width:100%;text-align:center}.account-action-card h1{margin:0;font-size:24px;line-height:1.2}.account-action-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto;border-radius:var(--r-md);background:var(--fs-accent-soft);color:var(--fs-accent);border:1px solid var(--fs-accent-border)}.account-action-link{text-decoration:none}.auth-secondary-link{color:var(--fs-accent);font-size:13px;font-weight:600;text-decoration:none}.auth-secondary-link:hover{color:var(--fs-accent-bright);text-decoration:underline}.spin{animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.primary-button:disabled .btn-text{opacity:0}.primary-button:disabled .btn-loader{position:absolute;display:flex;align-items:center;gap:8px}.auth-status-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;margin:-4px -4px 0;border-radius:0 0 calc(var(--r-card) - 4px) calc(var(--r-card) - 4px);background:var(--fs-success-bg);border-top:1px solid var(--fs-success-border);font-size:11px;font-weight:600;color:var(--fs-success);letter-spacing:.04em;text-transform:uppercase}.auth-status-bar .status-dot{width:5px;height:5px;border-radius:50%;background:var(--fs-success);box-shadow:0 0 6px #05966999;animation:status-blink 2s ease-in-out infinite}.auth-footer{position:relative;z-index:2;padding:20px 0;border-top:1px solid var(--fs-border);background:#f8fafc99;backdrop-filter:blur(8px)}.auth-footer__inner{display:flex;align-items:center;justify-content:space-between;width:min(1200px,calc(100% - 48px));margin:0 auto}.auth-footer p{margin:0;font-size:12px;color:var(--fs-text-subtle);font-weight:500}@media(max-width:960px){.auth-page{grid-template-columns:1fr;gap:36px;padding:36px 0 48px}.auth-copy{text-align:center;padding:0}.auth-copy h2,.auth-copy>p{max-width:520px;margin-left:auto;margin-right:auto}.auth-features{max-width:400px;margin-left:auto;margin-right:auto}.auth-feature{text-align:left}.auth-trust{max-width:400px;margin-left:auto;margin-right:auto;justify-content:center}.auth-card{max-width:460px;margin:0 auto;width:100%}.topbar-meta{display:none}}@media(max-width:600px){.auth-topbar,.auth-page{width:calc(100% - 32px)}.auth-footer__inner{width:calc(100% - 32px);flex-direction:column;gap:12px;text-align:center}.auth-topbar{padding-top:20px}.auth-page{gap:28px;padding:24px 0 32px}.auth-copy h2{font-size:26px}.auth-card{padding:22px;border-radius:var(--r-lg)}.auth-tabs{grid-template-columns:1fr;gap:2px}.brand-text h1{font-size:15px}.auth-trust{flex-direction:column;text-align:center;gap:8px}}@media(max-width:380px){.auth-topbar,.auth-page{width:calc(100% - 24px)}.auth-card{padding:16px}.auth-footer__inner{width:calc(100% - 24px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.auth-shell__orb{display:none}}:root{--dl-bg: #f4f7fb;--dl-card: #ffffff;--dl-surface: #f8fafc;--dl-hover: #f1f5f9;--dl-border: #e2e8f0;--dl-border-strong: #cbd5e1;--dl-text: #0f172a;--dl-text-secondary: #475569;--dl-text-muted: #64748b;--dl-text-subtle: #94a3b8;--dl-primary: #2563eb;--dl-primary-hover: #1d4ed8;--dl-primary-soft: #eff6ff;--dl-primary-border: #bfdbfe;--dl-primary-deep: #1e3a8a;--dl-primary-glow: rgba(37, 99, 235, .18);--dl-primary-glow-strong: rgba(37, 99, 235, .35);--dl-primary-gradient: linear-gradient(135deg, #2563eb, #1e40af, #1e3a8a);--dl-brand: #0d9488;--dl-brand-dark: #0f766e;--dl-brand-soft: #f0fdfa;--dl-brand-border: #99f6e4;--dl-success: #059669;--dl-success-soft: #ecfdf5;--dl-success-border: #a7f3d0;--dl-warning: #d97706;--dl-warning-soft: #fffbeb;--dl-warning-border: #fde68a;--dl-danger: #dc2626;--dl-danger-soft: #fef2f2;--dl-danger-border: #fecaca;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 16px;--dl-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--dl-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--dl-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--dl-sh-lg: 0 12px 48px rgba(15, 23, 42, .12), 0 4px 12px rgba(15, 23, 42, .06);--dl-sh-primary: 0 4px 14px var(--dl-primary-glow);--dl-sh-primary-strong: 0 6px 24px var(--dl-primary-glow-strong);--dl-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .06);--dl-sh-card-hover: 0 8px 32px rgba(15, 23, 42, .1), 0 2px 8px rgba(15, 23, 42, .05);--dl-ease: cubic-bezier(.16, 1, .3, 1);--dl-ease-out: cubic-bezier(.33, 1, .68, 1);--dl-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dl-ease-smooth: cubic-bezier(.4, 0, .2, 1);--dl-dur-fast: .12s;--dl-dur-normal: .2s;--dl-dur-slow: .35s}.dl-detail-page{width:100%;max-width:1380px;margin:0 auto;padding:32px 28px 56px;color:var(--dl-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}.dl-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;padding:20px 24px;border-radius:var(--r-xl);background:var(--dl-card);border:1px solid var(--dl-border);box-shadow:var(--dl-sh-sm);overflow:hidden}.dl-head:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--dl-primary-gradient);border-radius:var(--r-xl) var(--r-xl) 0 0}.dl-head__left,.dl-head__right{display:flex;align-items:center;gap:12px;min-width:0}.dl-head__right{gap:10px;flex-shrink:0}.dl-back-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-card);color:var(--dl-text-secondary);cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease);flex-shrink:0}.dl-back-btn:hover{background:var(--dl-primary-soft);border-color:var(--dl-primary-border);color:var(--dl-primary);box-shadow:var(--dl-sh-primary);transform:translate(-2px)}.dl-back-btn:active{transform:translate(-1px) scale(.97)}.dl-crumb-link{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--dl-primary);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:color var(--dl-dur-fast) var(--dl-ease);position:relative;flex-shrink:0}.dl-crumb-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--dl-primary);border-radius:1px;transition:width var(--dl-dur-normal) var(--dl-ease)}.dl-crumb-link:hover{color:var(--dl-primary-hover)}.dl-crumb-link:hover:after{width:100%}.dl-crumb-link svg{color:var(--dl-primary);flex-shrink:0}.dl-crumb-sep{color:var(--dl-text-subtle);flex-shrink:0}.dl-head__title{min-width:0;margin:0;color:var(--dl-text);font-size:21px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-group-chip{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--dl-primary-border);background:var(--dl-primary-soft);color:var(--dl-primary);font-size:12.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.dl-status{display:inline-flex;align-items:center;gap:6px;min-width:92px;justify-content:center;padding:5px 14px;border-radius:999px;border:1px solid var(--dl-border-strong);background:var(--dl-surface);color:var(--dl-text-secondary);font-size:12.5px;font-weight:700;letter-spacing:.02em;transition:all var(--dl-dur-normal) var(--dl-ease);height:30px}.dl-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.dl-status--active,.dl-status--bound{border-color:var(--dl-success-border);background:var(--dl-success-soft);color:var(--dl-success)}.dl-status--active:before{animation:dl-statusPulse 1.5s var(--dl-ease-smooth) infinite}@keyframes dl-statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.dl-status--inactive,.dl-status--unbound{border-color:var(--dl-border-strong);background:var(--dl-surface);color:var(--dl-text-muted)}.dl-status--maintenance{border-color:var(--dl-warning-border);background:var(--dl-warning-soft);color:var(--dl-warning)}.dl-status--deployed{border-color:var(--dl-brand-border, rgba(59, 130, 246, .35));background:var(--dl-brand-soft, rgba(59, 130, 246, .12));color:var(--dl-brand, #3b82f6)}.dl-metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:22px 28px 24px}.dl-metric-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;min-height:92px;border-radius:var(--r-md);border:1px solid var(--dl-border);background:var(--dl-surface);box-shadow:var(--dl-sh-xs);transition:box-shadow var(--dl-dur-slow) var(--dl-ease),border-color var(--dl-dur-slow) var(--dl-ease),transform var(--dl-dur-fast) var(--dl-ease-spring)}.dl-metric-card:hover{box-shadow:var(--dl-sh-sm);border-color:var(--dl-primary-border);transform:translateY(-2px)}.dl-metric-card__label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dl-text-muted)}.dl-metric-card__value{font-size:20px;font-weight:700;color:var(--dl-text);overflow-wrap:anywhere}.dl-metric-card__state{margin-top:auto;font-size:11px;font-weight:600;color:var(--dl-text-muted)}.dl-metric-empty{padding:8px 2px}.dl-tabs{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));width:min(720px,100%);margin-bottom:24px;padding:4px;border-radius:var(--r-lg);border:1px solid var(--dl-border);background:var(--dl-surface);box-shadow:var(--dl-sh-inner)}.dl-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--dl-text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease);position:relative}.dl-tab:hover:not(.is-active){background:var(--dl-hover);color:var(--dl-text-secondary)}.dl-tab.is-active{background:var(--dl-primary-gradient);color:#fff;border-color:transparent;box-shadow:var(--dl-sh-primary-strong)}.dl-tab.is-active svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.dl-tab:active{transform:scale(.98)}.dl-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-card);color:var(--dl-text-secondary);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease);letter-spacing:-.005em}.dl-btn:hover:not(:disabled){background:var(--dl-hover);border-color:var(--dl-border-strong);color:var(--dl-text);transform:translateY(-1px)}.dl-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.dl-btn--primary{background:var(--dl-primary-gradient);border-color:transparent;color:#fff;box-shadow:var(--dl-sh-primary)}.dl-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--dl-primary-hover),var(--dl-primary-deep));border-color:var(--dl-primary-hover);color:#fff;box-shadow:var(--dl-sh-primary-strong);transform:translateY(-1px)}.dl-map-panel{display:block;animation:dl-tabFadeIn var(--dl-dur-slow) var(--dl-ease-out) both}@keyframes dl-tabFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dl-map-card{position:relative;width:100%;min-height:520px;max-height:520px;overflow:hidden;border:1px solid var(--dl-border);border-radius:var(--r-xl);background:#aadaff;box-shadow:var(--dl-sh-sm);cursor:grab;touch-action:none;user-select:none;transition:box-shadow var(--dl-dur-slow) var(--dl-ease),border-color var(--dl-dur-slow) var(--dl-ease)}.dl-map-card:hover{box-shadow:var(--dl-sh-card-hover);border-color:var(--dl-primary-border)}.dl-map-card:active{cursor:grabbing}.dl-map-card--empty{display:grid;place-items:center;cursor:default}.dl-map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center;color:var(--dl-text-muted)}.dl-map-empty svg{color:var(--dl-text-subtle)}.dl-map-empty strong{color:var(--dl-text-secondary);font-size:15px}.dl-map-empty span{max-width:380px;color:var(--dl-text-subtle);font-size:12.5px;line-height:1.5}.dl-map-tiles{position:absolute;inset:0;background:#e8eef5;overflow:hidden}.dl-map-tiles img{position:absolute;image-rendering:auto;user-select:none;-webkit-user-drag:none}.dl-map-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:none;z-index:3;filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 4px 8px rgba(15,23,42,.55));animation:dl-pinDrop .5s var(--dl-ease-spring) both}.dl-map-pin svg{display:block;animation:dl-pinFloat 3s ease-in-out infinite}@keyframes dl-pinDrop{0%{opacity:0;transform:translate(-50%,-140%)}60%{opacity:1;transform:translate(-50%,-95%)}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes dl-pinFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.dl-map-legend{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-md);background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--dl-text-secondary);font-size:12px;font-weight:600;box-shadow:var(--dl-sh-md);border:1px solid var(--dl-border);z-index:5;max-width:calc(100% - 120px)}.dl-map-legend span:not(.dl-map-marker){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-map-marker{width:10px;height:10px;border-radius:50%;background:var(--dl-primary);box-shadow:0 0 0 3px var(--dl-primary-glow);animation:dl-markerPulse 2s var(--dl-ease-smooth) infinite;flex-shrink:0}@keyframes dl-markerPulse{0%,to{box-shadow:0 0 0 3px var(--dl-primary-glow)}50%{box-shadow:0 0 0 6px var(--dl-primary-glow)}}.dl-map-zoom{position:absolute;right:14px;bottom:14px;display:grid;gap:4px;padding:6px;border-radius:var(--r-lg);background:#fffffff0;border:1px solid var(--dl-border);box-shadow:var(--dl-sh-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10}.dl-map-zoom button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-card);color:var(--dl-text-secondary);cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease)}.dl-map-zoom button:hover:not(:disabled){background:var(--dl-primary-soft);border-color:var(--dl-primary-border);color:var(--dl-primary);box-shadow:var(--dl-sh-primary);transform:scale(1.05)}.dl-map-zoom button:active:not(:disabled){transform:scale(.95)}.dl-map-zoom button:disabled{opacity:.35;cursor:not-allowed}.dl-map-zoom-level{text-align:center;font-size:10px;font-weight:700;color:var(--dl-text-muted);padding:2px 0;font-variant-numeric:tabular-nums}.dl-map-footnote{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--dl-text-subtle);font-size:11.5px}.dl-map-footnote svg{flex-shrink:0}.dl-general-panel{display:flex;flex-direction:column;gap:22px;animation:dl-tabFadeIn var(--dl-dur-slow) var(--dl-ease-out) both}.dl-card{border:1px solid var(--dl-border);border-radius:var(--r-xl);background:var(--dl-card);box-shadow:var(--dl-sh-sm);overflow:hidden;transition:box-shadow var(--dl-dur-slow) var(--dl-ease),border-color var(--dl-dur-slow) var(--dl-ease)}.dl-card:hover{box-shadow:var(--dl-sh-card-hover);border-color:var(--dl-primary-border)}.dl-card__head{padding:22px 28px 18px;border-bottom:1px solid var(--dl-border);background:linear-gradient(180deg,var(--dl-surface) 0%,var(--dl-card) 100%)}.dl-card__head h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:17px;font-weight:700;color:var(--dl-text);letter-spacing:-.02em}.dl-card__head h2 svg{color:var(--dl-primary);opacity:.85}.dl-card__head p{margin:0;color:var(--dl-text-muted);font-size:13px;line-height:1.45}.dl-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:22px 28px 24px}.dl-detail{display:grid;gap:8px;min-height:78px;padding:16px 18px;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-surface);transition:all var(--dl-dur-normal) var(--dl-ease);position:relative;overflow:hidden}.dl-detail:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--dl-primary-gradient);transition:width var(--dl-dur-slow) var(--dl-ease)}.dl-detail:hover{border-color:var(--dl-primary-border);box-shadow:var(--dl-sh-sm);transform:translateY(-1px)}.dl-detail:hover:before{width:100%}.dl-detail.is-wide{grid-column:1 / -1}.dl-detail__label{color:var(--dl-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.dl-detail__value{color:var(--dl-text);font-size:13.5px;font-weight:600;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.dl-detail__value.is-mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.dl-muted-text{color:var(--dl-text-subtle);font-style:italic;font-weight:500}.dl-user-value{display:flex;align-items:center;gap:10px}.dl-user-value__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--dl-primary-gradient);color:#fff;flex-shrink:0;box-shadow:var(--dl-sh-primary)}.dl-user-value__text{display:flex;flex-direction:column;min-width:0;gap:1px}.dl-user-value__text strong{color:var(--dl-text);font-size:13px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.dl-user-value__text span{color:var(--dl-text-muted);font-size:11.5px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-parse-review{display:flex;flex-direction:column;gap:20px;padding:22px 28px 24px}.dl-parse-review__section{padding-top:16px;border-top:1px solid var(--dl-border)}.dl-parse-review__section:first-child{padding-top:0;border-top:0}.dl-parse-review__head{display:flex;align-items:center;gap:7px;margin:0 0 12px;color:var(--dl-text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.dl-parse-review .dl-detail-grid{grid-template-columns:minmax(170px,.42fr) minmax(0,1fr)}.dl-parse-review__sensors{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.dl-sensor-detail{padding:12px 14px;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-surface)}.dl-sensor-detail__name{margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid var(--dl-border);color:var(--dl-text);font-size:12px;font-weight:700}.dl-sensor-detail__row{display:flex;flex-direction:column;gap:2px;padding:5px 0}.dl-sensor-detail__row+.dl-sensor-detail__row{border-top:1px dashed var(--dl-border)}.dl-sensor-detail__label{color:var(--dl-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.dl-sensor-detail__value{color:var(--dl-text);font-size:13px;font-weight:600;word-break:break-word;overflow-wrap:anywhere}.dl-parse-review .dl-json-viewer{max-height:320px;margin:0}.dl-json-body{padding:22px 28px 24px}.dl-json-viewer{max-height:480px;margin:0;padding:16px 18px;overflow:auto;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-surface);color:var(--dl-text-secondary);font-family:Cascadia Code,JetBrains Mono,Consolas,monospace;font-size:12.5px;line-height:1.6;white-space:pre;tab-size:2;-webkit-font-smoothing:antialiased}.dl-json-viewer::-webkit-scrollbar{width:10px;height:10px}.dl-json-viewer::-webkit-scrollbar-thumb{background:var(--dl-border-strong);border-radius:999px;border:2px solid var(--dl-surface)}.dl-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:22px;animation:dl-tabFadeIn var(--dl-dur-slow) var(--dl-ease-out) both}.dl-metric-card__icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--dl-primary-soft);border:1px solid var(--dl-primary-border);color:var(--dl-primary);flex-shrink:0}.dl-parse-review__head svg{color:var(--dl-primary);flex-shrink:0}.dl-parse-review__head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.dl-parse-review__head-row .dl-parse-review__head{margin:0}.dl-parse-review__actions{display:flex;gap:8px;flex-shrink:0}.dl-sensor-detail__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid var(--dl-border)}.dl-sensor-detail__name{margin:0;color:var(--dl-text);font-size:12px;font-weight:700}.dl-sensor-detail__badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.dl-sensor-detail__badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.dl-sensor-detail__badge.is-on{background:var(--dl-success-soft);border:1px solid var(--dl-success-border);color:var(--dl-success)}.dl-sensor-detail__badge.is-off{background:var(--dl-danger-soft);border:1px solid var(--dl-danger-border);color:var(--dl-danger)}.dl-sensor-detail__badge.is-unknown{background:var(--dl-surface);border:1px solid var(--dl-border-strong);color:var(--dl-text-muted)}.dl-timeline{display:flex;flex-direction:column;padding:22px 24px 24px}.dl-timeline__item{position:relative;display:flex;gap:14px;padding-bottom:22px}.dl-timeline__item:last-child{padding-bottom:0}.dl-timeline__item:not(:last-child):before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:1.5px;background:var(--dl-border)}.dl-timeline__dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--dl-primary-soft);border:1px solid var(--dl-primary-border);color:var(--dl-primary);flex-shrink:0;z-index:1}.dl-timeline__body{display:flex;flex-direction:column;gap:3px;min-width:0;padding-top:2px}.dl-timeline__body strong{color:var(--dl-text);font-size:12.5px;font-weight:700}.dl-timeline__body span{color:var(--dl-text-secondary);font-size:12.5px;font-weight:600;overflow-wrap:anywhere}.dl-timeline__body time{color:var(--dl-text-muted);font-size:11.5px;font-variant-numeric:tabular-nums}.dl-sensor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px 28px 24px}.dl-sensor-item{min-width:0;padding:12px 14px;border:1px solid var(--dl-border);border-radius:var(--r-md);background:var(--dl-surface);transition:all var(--dl-dur-normal) var(--dl-ease)}.dl-sensor-item:hover{border-color:var(--dl-primary-border);box-shadow:var(--dl-sh-sm)}.dl-sensor-item span{display:block;margin-bottom:4px;color:var(--dl-text-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dl-sensor-item strong{display:block;color:var(--dl-text);font-size:14px;font-weight:650;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.dl-empty-state{display:grid;place-items:center;grid-column:1 / -1;min-height:120px;border:1px dashed var(--dl-border-strong);border-radius:var(--r-lg);color:var(--dl-text-muted);font-size:13px;background:var(--dl-surface)}.dl-chart-panel{padding:22px 28px 24px}.dl-chart-wrap{width:100%;overflow-x:auto}.dl-chart{display:block;width:100%;min-width:560px;height:auto}.dl-chart-grid{stroke:var(--dl-border);stroke-width:1;stroke-dasharray:3 4}.dl-chart-axis{fill:var(--dl-text-subtle);font-size:10px;font-family:inherit}.dl-chart-line{stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;fill:none}.dl-chart-line--temp{stroke:#f59e0b}.dl-chart-line--hum{stroke:#0ea5e9}.dl-chart-dot--temp{fill:#f59e0b}.dl-chart-dot--hum{fill:#0ea5e9}.dl-chart-legend{display:flex;align-items:center;gap:18px;margin-top:12px;color:var(--dl-text-muted);font-size:12px;font-weight:600}.dl-chart-legend span{display:inline-flex;align-items:center;gap:7px}.dl-chart-key{width:10px;height:10px;border-radius:3px}.dl-chart-key--temp{background:#f59e0b}.dl-chart-key--hum{background:#0ea5e9}.dl-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:480px;padding:48px 24px;border:1px solid var(--dl-border);border-radius:var(--r-xl);background:var(--dl-card);color:var(--dl-text-muted);font-size:14px;font-weight:500;text-align:center;box-shadow:var(--dl-sh-sm)}.dl-state__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--dl-danger-soft);color:var(--dl-danger);margin-bottom:4px;box-shadow:0 4px 14px #dc262626}.dl-state strong{color:var(--dl-text);font-size:17px;font-weight:700;letter-spacing:-.02em}.dl-state p{margin:0 0 8px;color:var(--dl-text-muted);font-size:13px;line-height:1.5;max-width:360px}.dl-state--error{color:var(--dl-text-secondary)}.is-spinning{animation:dl-spin .8s linear infinite}@keyframes dl-spin{to{transform:rotate(360deg)}}:where(.dl-btn,.dl-back-btn,.dl-crumb-link,.dl-tab,.dl-map-zoom button):focus-visible{outline:2px solid var(--dl-primary);outline-offset:2px;border-radius:var(--r-sm)}@media(max-width:1100px){.dl-metric-strip,.dl-sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dl-detail-grid{grid-template-columns:1fr}}@media(max-width:720px){.dl-detail-page{padding:20px 16px 40px}.dl-head{padding:18px;flex-direction:column;align-items:stretch;gap:14px}.dl-head__left,.dl-head__right{width:100%}.dl-head__right{justify-content:flex-start;flex-wrap:wrap}.dl-head__title{font-size:18px}.dl-tabs{grid-template-columns:1fr;width:100%}.dl-map-card{min-height:380px;max-height:380px}.dl-map-legend{left:12px;bottom:12px;padding:8px 12px;font-size:11px;max-width:calc(100% - 110px)}.dl-card__head{padding:18px 20px 14px}.dl-card__head h2{font-size:15px}.dl-detail-grid,.dl-sensor-grid,.dl-chart-panel,.dl-metric-grid{padding:18px 20px 20px;gap:12px}.dl-detail{padding:14px 16px;min-height:auto}.dl-metric-strip{grid-template-columns:1fr}}@media(max-width:480px){.dl-detail-page{padding:16px 12px 32px}.dl-head{padding:14px}.dl-head__title{font-size:16px}.dl-crumb-link{font-size:14px}.dl-tab{font-size:12.5px;padding:0 10px}.dl-map-card{min-height:300px;max-height:300px}}@media print{.dl-tabs,.dl-map-legend,.dl-map-zoom,.dl-map-footnote,.dl-back-btn{display:none!important}.dl-map-card,.dl-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.dl-head:before{display:none}}@keyframes dl-live-pulse{0%{box-shadow:0 0 #10b98166}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.dl-general-panel>.dl-rt-card{margin-bottom:4px}.dl-chart-toggles{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px 4px}.dl-chart-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit;box-shadow:0 1px 2px #0f172a0a}.dl-chart-toggle:hover{border-color:#cbd5e1;background:#f8fafc;box-shadow:0 2px 4px #0f172a0f}.dl-chart-toggle.is-off{opacity:.4;text-decoration:line-through;background:#f8fafc}.dl-chart-toggle__dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.dl-chart-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:12px 16px 16px}.dl-chart-stat{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.dl-chart-stat__label{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.dl-chart-stat__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dl-chart-stat__latest{font-size:20px;font-weight:700;color:#0f172a;letter-spacing:-.02em}.dl-chart-stat__range{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums}.dl-chart-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 24px #0f172a1f,0 2px 8px #0f172a0f;padding:12px 14px;font-size:12px;min-width:170px;z-index:100}.dl-chart-tooltip__time{font-weight:700;color:#0f172a;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #f1f5f9;font-size:12.5px}.dl-chart-tooltip__row{display:flex;align-items:center;gap:8px;padding:3px 0}.dl-chart-tooltip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dl-chart-tooltip__name{color:#64748b;flex:1;font-weight:500}.dl-chart-tooltip__value{color:#0f172a;font-variant-numeric:tabular-nums;font-weight:700}.dl-chart-panel .recharts-wrapper{font-family:inherit}.dl-chart-panel .recharts-cartesian-grid line{stroke:#f1f5f9}.dl-chart-panel .recharts-text{fill:#94a3b8}.dl-chart-panel .recharts-tooltip-wrapper{outline:none}.dl-live-badge{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:1px solid;line-height:1;vertical-align:middle}.dl-live-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.dl-live-badge.is-live{background:var(--dl-success-soft);border-color:var(--dl-success-border);color:var(--dl-success)}.dl-live-badge.is-live:before{animation:dl-statusPulse 1.5s infinite}.dl-live-badge.is-offline{background:var(--dl-danger-soft);border-color:var(--dl-danger-border);color:var(--dl-danger)}.dl-live-badge.is-offline:before{animation:none;opacity:.9}.dl-metric-card.is-offline{border-color:var(--dl-danger-border);background:linear-gradient(135deg,#fff,#fef2f2);box-shadow:0 1px 3px #dc262614}.dl-metric-card.is-offline .dl-metric-card__value{color:var(--dl-text-subtle)}.dl-metric-card__state.is-offline{color:var(--dl-danger);font-weight:700}.is-offline-card{border-color:var(--dl-danger-border)!important;box-shadow:0 4px 16px #dc262614!important}.dl-metric-card.is-live{border-color:var(--dl-success-border)}.loc-table--wide{min-width:1560px}.loc-status--bound,.loc-status--unbound{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.loc-status--bound:before,.loc-status--unbound:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.loc-status--bound{background:var(--loc-brand-soft);border:1px solid var(--loc-brand-border);color:var(--loc-brand)}.loc-status--bound:before{background:var(--loc-brand)}.loc-status--unbound{background:var(--loc-surface);border:1px solid var(--loc-border-strong);color:var(--loc-text-muted)}.loc-status--unbound:before{background:var(--loc-text-muted)}.dl-type-cell{display:inline-flex;align-items:center;gap:7px;color:var(--loc-text);font-weight:600;font-size:12px}.dl-type-cell i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--loc-bg-muted);color:var(--loc-primary);flex-shrink:0}.dl-battery-cell{display:inline-flex;align-items:center;gap:5px;color:var(--loc-text-muted);font-size:12px;font-variant-numeric:tabular-nums}.dl-battery-cell svg{color:var(--loc-primary);flex-shrink:0}.dl-visible-box{margin-top:14px;padding:12px 14px;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-bg-muted)}.dl-visible-box>strong{display:block;margin-bottom:8px;color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dl-visible-box>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 14px}.dl-check{display:flex;align-items:center;gap:8px;color:var(--loc-text);font-size:12.5px;cursor:pointer;user-select:none}.dl-check input{accent-color:var(--loc-primary)}.dl-check:has(input:disabled){color:var(--loc-text-muted);cursor:not-allowed;opacity:.75}.dl-select{position:relative;min-width:0}.dl-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid var(--loc-border-strong);border-radius:var(--r-md);background:var(--loc-card);color:var(--loc-text);font:inherit;font-size:13px;text-align:left;outline:none;cursor:pointer;transition:all var(--loc-dur-normal) var(--loc-ease);box-shadow:var(--loc-sh-inner)}.dl-select__trigger:hover:not(:disabled){border-color:var(--loc-primary-border)}.dl-select__trigger:focus-visible,.dl-select__trigger[aria-expanded=true]{border-color:var(--loc-primary);box-shadow:0 0 0 3px var(--loc-primary-glow),var(--loc-sh-inner)}.dl-select__trigger:disabled{background:var(--loc-surface-alt);color:var(--loc-text-subtle);cursor:not-allowed}.dl-select__trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-select__placeholder{color:var(--loc-text-subtle)}.dl-select__trigger>svg{color:var(--loc-text-subtle);flex-shrink:0;transition:transform var(--loc-dur-fast) var(--loc-ease)}.dl-select__trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.dl-select__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;margin:0;padding:4px;list-style:none;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-card);box-shadow:var(--loc-sh-lg);max-height:220px;overflow:auto}.dl-select__option{display:block;width:100%;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--loc-text);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--loc-dur-fast) var(--loc-ease),color var(--loc-dur-fast) var(--loc-ease)}.dl-select__option:hover{background:var(--loc-primary-soft);color:var(--loc-primary)}.dl-select__option.is-selected{background:var(--loc-primary-soft);color:var(--loc-primary);font-weight:600}.loc-detail-list--drawer{gap:2px}.loc-detail-list--drawer div{grid-template-columns:118px minmax(0,1fr);padding:5px 8px}.loc-detail-list--drawer div:hover{background:transparent}a.loc-btn{text-decoration:none}.loc-search button{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--loc-text-subtle);cursor:pointer;transition:all var(--loc-dur-fast) var(--loc-ease);flex-shrink:0}.loc-search button:hover{background:var(--loc-bg-muted);color:var(--loc-text)}.loc-modal__subtitle{margin:4px 0 0;color:var(--loc-text-muted);font-size:12.5px}.dl-modal-title-actions{display:flex;align-items:center;gap:10px}.dl-json-field{display:block;margin-top:14px}.dl-json-field>span{display:block;margin-bottom:6px;color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dl-json-field textarea{width:100%;min-height:260px;resize:vertical;padding:12px 14px;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-bg-muted);color:var(--loc-text);font-family:Cascadia Code,JetBrains Mono,Consolas,monospace;font-size:12px;line-height:1.55;tab-size:2;outline:none;transition:border-color var(--loc-dur-fast) var(--loc-ease),box-shadow var(--loc-dur-fast) var(--loc-ease)}.dl-json-field textarea:hover{border-color:var(--loc-border-strong)}.dl-json-field textarea:focus{border-color:var(--loc-primary);box-shadow:0 0 0 3px var(--loc-primary-soft)}.dl-import-preview{margin-top:14px;padding:12px 14px;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-surface)}.dl-import-preview>strong{display:block;margin-bottom:6px;color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dl-import-preview .loc-detail-list{gap:2px}.dl-import-preview .loc-detail-list div{grid-template-columns:minmax(130px,.5fr) minmax(0,1fr);padding:4px 8px}.dl-import-preview .loc-detail-list div:hover{background:transparent}.dl-parse-bar{display:flex;align-items:center;gap:10px;margin-top:12px}.dl-parse-bar__hint{color:var(--loc-text-muted);font-size:12px}.dl-parse-hint{display:flex;align-items:center;gap:8px;margin-top:12px;padding:12px 14px;border:1px dashed var(--loc-border);border-radius:var(--r-md);color:var(--loc-text-muted);font-size:13px}.dl-parse-error{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:12px 14px;border:1px solid var(--dl-danger-border);border-radius:var(--r-md);background:var(--dl-danger-soft);color:var(--dl-danger);font-size:13px}.dl-parse-error strong{font-size:13px}.dl-parse-sections{display:flex;flex-direction:column;gap:12px;margin-top:12px}.dl-parse-section{border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-surface);overflow:hidden}.dl-parse-section__head{padding:8px 14px;margin:0;color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--loc-surface-alt);border-bottom:1px solid var(--loc-border)}.dl-parse-section .loc-detail-list{gap:2px}.dl-parse-section .loc-detail-list div{grid-template-columns:minmax(150px,.5fr) minmax(0,1fr);padding:4px 14px}.dl-parse-section .loc-detail-list div:hover{background:transparent}.dl-parse-section .dl-json-viewer{margin:0;border:0;border-radius:0;max-height:260px}.dl-inline-code{display:inline-block;max-width:260px;padding:2px 7px;border:1px solid var(--loc-border);border-radius:6px;background:var(--loc-bg-muted);color:var(--loc-text-muted);font-family:Cascadia Code,JetBrains Mono,Consolas,monospace;font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.dl-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:16px}.dl-profile-card{padding:14px 16px;border:1px solid var(--loc-border);border-radius:var(--r-lg);background:var(--loc-card);transition:border-color var(--loc-dur-fast) var(--loc-ease),transform var(--loc-dur-fast) var(--loc-ease)}.dl-profile-card:hover{border-color:var(--loc-border-strong);transform:translateY(-1px)}.dl-profile-card div{display:flex;align-items:center;justify-content:space-between;gap:10px}.dl-profile-card strong{color:var(--loc-text);font-size:13.5px;font-weight:600}.dl-profile-card span{color:var(--loc-text-muted);font-size:11.5px;font-weight:600}.dl-realtime-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #d1fae5;border-radius:12px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5)}.dl-realtime-strip--drawer{margin:0 16px 12px;padding:12px;border-radius:10px}.dl-realtime-strip--general{padding:16px}.dl-realtime-strip__live{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.dl-live-dot{width:8px;height:8px;border-radius:50%;background:#9ca3af}.dl-live-dot.is-live{background:#10b981;box-shadow:0 0 0 4px #10b98133;animation:dl-live-pulse 1.5s infinite}.dl-realtime-strip__label{font-weight:700}.dl-realtime-strip__time{color:#6b7280;font-weight:400;font-size:12px}.dl-realtime-strip__metrics{display:flex;flex-wrap:wrap;gap:8px}.dl-realtime-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#fff;border:1px solid #e5e7eb;font-size:12px;font-weight:500}.loc-drawer__body{padding-top:14px}.dl-rt-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px 18px;margin:0 16px 6px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px #0f172a0f,0 1px 2px #0f172a0a}.dl-rt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;min-height:22px}.dl-rt-label{color:#64748b;font-weight:500}.dl-rt-value{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:#0f172a}.dl-rt-value--status{color:#0f172a}.dl-status-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8;flex-shrink:0}.dl-status-dot.is-online{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.dl-status-dot.is-offline{background:#ef4444;box-shadow:0 0 0 3px #ef444426}.dl-rt-icon{color:#0ea5e9}.dl-rssi-bars{display:inline-flex;align-items:flex-end;gap:2px;height:13px}.dl-rssi-bars i{width:3px;background:#0ea5e9;border-radius:1px}.dl-rssi-bars i:nth-child(1){height:4px}.dl-rssi-bars i:nth-child(2){height:7px}.dl-rssi-bars i:nth-child(3){height:10px}.dl-rssi-bars i:nth-child(4){height:13px}.loc-drawer__divider{height:1px;background:#e5e7eb;margin:4px 0}.dl-cap-badges{display:flex;flex-wrap:wrap;gap:4px;max-width:320px}.dl-cap-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;line-height:1.4}.dl-cap-badge--sensor{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.dl-cap-badge--meta{background:#f0fdfa;border:1px solid #99f6e4;color:#0f766e}.dl-cap-badge--more{background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b}.dl-col-filter-row td{padding:4px 6px}.dl-col-filter{width:100%;min-width:60px;padding:4px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:11.5px;color:#334155;background:#f8fafc;outline:none;transition:border-color .15s ease;font-family:inherit}.dl-col-filter:focus{border-color:#93c5fd;background:#fff;box-shadow:0 0 0 2px #3b82f61a}.dl-interval-input{display:flex;align-items:center;gap:6px}.dl-interval-input input{flex:1;min-width:0;height:36px;padding:0 11px;border:1px solid var(--loc-border-strong);border-radius:var(--r-md);background:var(--loc-card);color:var(--loc-text);font:inherit;font-size:13px;outline:none}.dl-interval-input input:disabled{background:var(--loc-surface-alt);color:var(--loc-text-subtle)}.dl-interval-input span{color:var(--loc-text-muted);font-size:12px;font-weight:600;white-space:nowrap}.loc-form__section{margin-top:14px;padding:14px;border:1px solid var(--loc-border);border-radius:var(--r-md);background:var(--loc-surface)}.loc-form__section-title{display:block;margin-bottom:12px;color:var(--loc-text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.dl-toggle{display:flex;align-items:center;gap:8px;color:var(--loc-text);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none}.dl-toggle input{accent-color:var(--loc-primary);width:16px;height:16px}.dl-assigned-chips{display:flex;flex-wrap:wrap;gap:6px}.dl-assigned-chip{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--loc-border);border-radius:999px;background:var(--loc-bg-muted);color:var(--loc-primary);font-size:11px;font-weight:600;text-decoration:none}.dl-assigned-chip:hover{background:var(--loc-primary-soft)}.dl-detail-tabs{display:flex;gap:6px;padding:12px 16px;border-bottom:1px solid var(--loc-border);background:var(--loc-card)}.dl-detail-tab{padding:7px 14px;border:1px solid transparent;border-radius:6px;background:var(--loc-bg-muted);color:var(--loc-text-muted);font-size:12.5px;font-weight:600;cursor:pointer}.dl-detail-tab.is-active{background:var(--loc-primary);color:#fff;border-color:var(--loc-primary)}.dl-detail-section{padding:16px}.dl-detail-section h3{margin:0 0 12px;color:var(--loc-text);font-size:14px;font-weight:700}.dl-profile-modal{border:1.5px solid #93c5fd;box-shadow:0 12px 40px #2563eb1f,var(--loc-sh-lg)}.dl-profile-modal .loc-modal__title{color:#0ea5e9;font-weight:700;font-size:16px}.dl-config-card{border:1.5px solid #93c5fd;border-radius:8px;background:#fff;padding:14px 16px;display:flex;flex-direction:column;gap:14px;box-shadow:0 1px 3px #2563eb0f}.dl-config-card__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dl-config-card__intervals{display:grid;grid-template-columns:1fr;gap:10px;max-width:320px}.dl-config-card__intervals .loc-field{margin:0}.dl-toggle-switch{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:12.5px;font-weight:600;color:var(--loc-text)}.dl-toggle-switch input{position:absolute;opacity:0;pointer-events:none}.dl-toggle-switch__track{width:32px;height:18px;border-radius:999px;background:#e5e7eb;border:1px solid #d1d5db;position:relative;transition:background .16s ease,border-color .16s ease;flex-shrink:0}.dl-toggle-switch__track:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .16s ease}.dl-toggle-switch input:checked+.dl-toggle-switch__track{background:#0ea5e9;border-color:#0ea5e9}.dl-toggle-switch input:checked+.dl-toggle-switch__track:after{transform:translate(14px)}.loc-drawer__header h2{color:#0ea5e9}.dl-drawer-config{border:1.5px solid #93c5fd;border-radius:8px;background:#fff;padding:12px 14px;margin-bottom:12px}.dl-drawer-config .loc-detail-list--drawer div{padding:4px 0}.dl-drawer-config .loc-field input,.dl-drawer-config .dl-select__trigger{height:32px;font-size:12.5px}.dl-assigned-chip{border-color:#93c5fd!important;background:#eff6ff!important;color:#2563eb!important;gap:4px}.dl-assigned-chip svg{color:#2563eb}.dl-detail-page{background:#f8fafc;min-height:60vh}.dl-detail-page__breadcrumb{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-bottom:1px solid #f1f5f9;font-size:13px}.dl-detail-page__breadcrumb a,.dl-detail-page__breadcrumb button{color:#0ea5e9;text-decoration:none;font-weight:600;background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.dl-detail-tabs--enhanced{background:#fff;padding:0 16px;gap:0;border-bottom:2px solid #e2e8f0}.dl-detail-tab--enhanced{border:none;border-bottom:2.5px solid transparent;background:transparent;border-radius:0;padding:10px 18px 11px;color:#64748b;display:inline-flex;align-items:center;gap:6px}.dl-detail-tab--enhanced.is-active{background:#0ea5e9;color:#fff;border-bottom-color:#0ea5e9;border-radius:4px 4px 0 0}.dl-detail-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:18px 20px;box-shadow:0 1px 2px #0f172a0a;margin:16px}.dl-detail-card__title{font-size:13px;font-weight:700;color:#0ea5e9;margin:0 0 14px}.dl-profile-required .loc-field__required{color:#ef4444}.dl-profile-hint{font-size:11.5px;color:#64748b;margin-top:4px}.dl-profile-hint a{color:#2563eb;text-decoration:none;font-weight:600}.dl-col-head{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%}.dl-col-search-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:transparent;color:#94a3b8;cursor:pointer;flex-shrink:0;transition:all .12s ease}.dl-col-search-btn:hover{background:#f1f5f9;color:#3b82f6}.dl-col-search-btn.is-open{background:#dbeafe;color:#2563eb}.dl-col-filter-row td{padding:4px 6px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dl-col-filter{width:100%;min-width:60px;padding:4px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:11.5px;color:#334155;background:#fff;outline:none;transition:border-color .15s ease;font-family:inherit}.dl-col-filter:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f61a}.dl-col-filter::placeholder{color:#cbd5e1}.asset-detail .dl-tabs{grid-template-columns:repeat(4,minmax(140px,1fr))}.asset-detail .dl-tabs .dl-tab{gap:7px}.asset-detail .dl-map-card{min-height:520px;max-height:520px}.asset-env-grid{display:grid;grid-template-columns:280px 1fr;gap:22px}@media(max-width:900px){.asset-env-grid{grid-template-columns:1fr}}.asset-sensor-list{display:grid;gap:6px;padding:18px 22px 22px}.asset-sensor-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--r-md);font-size:13px;border:1px solid var(--dl-border);cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease);background:var(--dl-surface)}.asset-sensor-item.is-active{background:var(--dl-primary-gradient);color:#fff;border-color:transparent;box-shadow:var(--dl-sh-primary-strong)}.asset-sensor-item:not(.is-active):hover{background:var(--dl-primary-soft);border-color:var(--dl-primary-border);color:var(--dl-primary);box-shadow:var(--dl-sh-sm);transform:translateY(-1px)}.asset-sensor-item__left{display:flex;align-items:center;gap:10px;font-weight:600}.asset-sensor-item__left svg{opacity:.8}.asset-sensor-item strong{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.asset-chart-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.asset-chart-meta{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--dl-text-muted)}.asset-bound-grid{display:grid;grid-template-columns:1fr 44px 1fr;gap:16px;align-items:start}@media(max-width:900px){.asset-bound-grid{grid-template-columns:1fr;gap:12px}.asset-bound-grid>div:nth-child(2){order:0;transform:none;padding-top:0!important;display:grid;place-items:center;padding:4px 0}.asset-bound-grid>div:nth-child(2) .asset-bind-btn{transform:rotate(90deg)}.asset-bound-grid>div:nth-child(2) .asset-bind-btn>svg{transform:rotate(-90deg)}}.asset-bound-card{border:1.5px solid #7ec8e8;border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a0a;overflow:hidden;display:flex;flex-direction:column;min-height:280px}.asset-bound-card .dl-card__head{background:#fff;padding:10px 14px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:42px}.asset-bound-card .dl-card__head h2{color:#1e293b;font-size:12px;font-weight:700;margin:0;display:flex;align-items:center;gap:6px;letter-spacing:-.01em}.asset-bound-table-head{display:grid;align-items:center;padding:8px 14px;background:#fff;border-bottom:1px solid #e2e8f0;font-size:10.5px;font-weight:600;color:#64748b;letter-spacing:.02em;column-gap:0}.asset-bound-table-head span{padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;font-size:10.5px}.asset-bound-table-head span:first-child{padding-left:0}.asset-bound-table-head span+span{border-left:1px solid #e2e8f0}.asset-bound-col-head{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;width:100%}.asset-bound-search-btn{display:grid;place-items:center;width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;color:#94a3b8;cursor:pointer;flex-shrink:0;transition:all .12s ease}.asset-bound-search-btn:hover{background:#f1f5f9;color:#64748b}.asset-bound-search-btn.is-open{background:#eff6ff;color:#0ea5e9;border:1px solid #bfdbfe}.asset-bound-filter-row{display:grid;align-items:center;padding:6px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;column-gap:0}.asset-bound-filter-row span{padding:0 6px}.asset-bound-filter-row span:first-child{padding-left:0}.asset-bound-filter-row span+span{border-left:1px solid transparent}.asset-bound-col-filter{width:100%;height:26px;padding:0 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:11px;background:#fff;color:#334155;outline:none;font-family:inherit}.asset-bound-col-filter::placeholder{color:#94a3b8}.asset-bound-col-filter:focus{border-color:#0ea5e9;box-shadow:0 0 0 2px #0ea5e91f}.asset-bound-row{display:grid;padding:8px 14px;font-size:12px;align-items:center;border-top:1px solid #f1f5f9;color:#334155;column-gap:0;min-height:34px}.asset-bound-row span,.asset-bound-row>div{padding:0 10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.asset-bound-row span:first-child,.asset-bound-row>input[type=checkbox]{padding-left:0}.asset-bound-row span+span{border-left:1px solid #f1f5f9}.asset-bound-row input[type=checkbox]+span{border-left:none!important}.asset-bound-row:nth-child(2n){background:#f0f7ff}.asset-bound-row:nth-child(odd){background:#fff}.asset-bound-row:hover{background:#e0f2fe}.asset-bound-scroll{flex:1;min-height:160px;max-height:360px;overflow-y:auto;overflow-x:hidden}.asset-bound-search{height:28px;padding:0 28px 0 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:11.5px;width:160px;background:#fff;font-family:inherit;color:#334155;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.asset-bound-search::placeholder{color:#94a3b8}.asset-bound-search:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91f}.asset-bound-scroll::-webkit-scrollbar{width:6px}.asset-bound-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.asset-bound-scroll::-webkit-scrollbar-track{background:transparent}.asset-bound-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid #f1f5f9;background:#fff;font-size:11px;color:#64748b}.asset-bound-pagination__info{font-variant-numeric:tabular-nums}.asset-bound-pagination__controls{display:inline-flex;align-items:center;gap:6px}.asset-bound-page-btn{min-width:26px;height:26px;padding:0 6px;border:1px solid var(--dl-border);border-radius:6px;background:#fff;color:var(--dl-text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease}.asset-bound-page-btn:hover:not(:disabled){border-color:var(--dl-primary-border);background:var(--dl-primary-soft);color:var(--dl-primary)}.asset-bound-page-btn:disabled{opacity:.4;cursor:not-allowed}.asset-bound-page-btn.is-active{background:var(--dl-primary);border-color:var(--dl-primary);color:#fff}.asset-bind-btn{width:30px;height:30px;border-radius:4px;border:none;display:grid;place-items:center;cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease);transform:rotate(45deg);box-shadow:0 1px 4px #00000026}.asset-bind-btn>svg{transform:rotate(-45deg)}.asset-bind-btn.is-ready{background:#64748b;color:#fff}.asset-bind-btn:not(.is-ready){background:#cbd5e1;color:#fff}.asset-bind-btn:hover:not(:disabled){transform:rotate(45deg) scale(1.06)}.asset-bind-btn:disabled{opacity:.55;cursor:not-allowed}.loc-confirm{position:relative;background:var(--dl-card);border:1px solid var(--dl-border);border-radius:var(--r-xl);padding:28px 32px 24px;box-shadow:var(--dl-sh-lg);max-width:420px;width:92%;animation:dl-tabFadeIn var(--dl-dur-slow) var(--dl-ease-out) both}.loc-confirm h3{margin:0 0 6px}.loc-confirm p{margin:0}.loc-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 18px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--dl-dur-normal) var(--dl-ease)}.loc-btn--primary{background:var(--dl-primary-gradient);border:1px solid transparent;color:#fff;box-shadow:var(--dl-sh-primary)}.loc-btn--primary:hover{box-shadow:var(--dl-sh-primary-strong);transform:translateY(-1px)}.loc-btn--secondary{background:var(--dl-card);border:1px solid var(--dl-border);color:var(--dl-text-secondary)}.loc-btn--secondary:hover{background:var(--dl-hover);border-color:var(--dl-border-strong)}.loc-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#0f172a73;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.loc-toast,.loc-alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;margin-bottom:14px}.loc-toast{background:var(--dl-success-soft);border:1px solid var(--dl-success-border);color:var(--dl-success)}.loc-alert{background:var(--dl-danger-soft);border:1px solid var(--dl-danger-border);color:var(--dl-danger)}.loc-toast button,.loc-alert button{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;opacity:.6}.loc-toast button:hover,.loc-alert button:hover{opacity:1}.asset-map-pin-tooltip{position:absolute;left:50%;bottom:100%;transform:translate(-50%) translateY(-12px);background:var(--dl-card);border:1px solid var(--dl-border);border-radius:var(--r-md);box-shadow:var(--dl-sh-lg);padding:12px 14px;font-size:12px;white-space:nowrap;pointer-events:auto;z-index:20;animation:dl-tabFadeIn .15s var(--dl-ease-out) both}.asset-map-pin:hover .asset-map-pin-tooltip{pointer-events:auto}.asset-map-pin-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--dl-card)}.asset-map-pin-tooltip .tt-serial{font-weight:700;color:var(--dl-primary);margin-bottom:2px}.asset-map-pin-tooltip .tt-coord{color:var(--dl-text-secondary);font-variant-numeric:tabular-nums}.asset-map-pin-tooltip .tt-asset{color:var(--dl-text-muted);font-size:11px;margin-top:2px}.asset-map-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;z-index:3;cursor:pointer;transition:z-index 0s}.asset-map-pin:hover{z-index:10}.asset-map-pin:hover .asset-map-pin__icon{transform:rotate(-45deg) scale(1.15);box-shadow:0 6px 20px #0ea5e980}.asset-map-pin__icon{width:30px;height:30px;background:var(--dl-primary);border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:3px solid #ffffff;box-shadow:0 4px 12px #0ea5e959;display:grid;place-items:center;transition:all var(--dl-dur-normal) var(--dl-ease)}.asset-map-pin__icon svg{transform:rotate(45deg);color:#fff}.asset-map-pin--fallback .asset-map-pin__icon{background:#8b5cf6;box-shadow:0 4px 12px #8b5cf659}.asset-map-empty-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#fff9;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:5}.asset-map-empty-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 32px;text-align:center;background:var(--dl-card);border:1px solid var(--dl-border);border-radius:var(--r-xl);box-shadow:var(--dl-sh-md)}.asset-map-empty-card svg{color:var(--dl-text-subtle)}.asset-map-empty-card strong{color:var(--dl-text-secondary);font-size:15px}.asset-map-empty-card span{max-width:320px;color:var(--dl-text-subtle);font-size:12.5px;line-height:1.5}.asset-loc-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.asset-loc-status--located{background:var(--dl-success-soft);border:1px solid var(--dl-success-border);color:var(--dl-success)}.asset-loc-status--ooc{background:var(--dl-surface);border:1px solid var(--dl-border-strong);color:var(--dl-text-muted)}.dl-btn--sm{height:28px;padding:0 10px;font-size:11.5px;border-radius:var(--r-sm)}.asset-chart-asset-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:var(--dl-surface);border:1px solid var(--dl-border);font-size:11.5px;font-weight:600;color:var(--dl-text-muted)}:root{--ld-bg: #f4f7fb;--ld-card: #ffffff;--ld-surface: #f8fafc;--ld-surface-elevated: #ffffff;--ld-hover: #f1f5f9;--ld-active: #e8edf5;--ld-border: #e2e8f0;--ld-border-strong: #cbd5e1;--ld-border-subtle: #f1f5f9;--ld-text: #0f172a;--ld-text-secondary: #475569;--ld-text-muted: #64748b;--ld-text-subtle: #94a3b8;--ld-text-ghost: #c1cbd8;--ld-primary: #2563eb;--ld-primary-hover: #1d4ed8;--ld-primary-soft: #eff6ff;--ld-primary-border: #bfdbfe;--ld-primary-deep: #1e3a8a;--ld-primary-glow: rgba(37, 99, 235, .18);--ld-primary-glow-strong: rgba(37, 99, 235, .35);--ld-primary-gradient: linear-gradient(135deg, #2563eb, #1e40af, #1e3a8a);--ld-primary-gradient-soft: linear-gradient(135deg, #eff6ff, #dbeafe);--ld-brand: #0d9488;--ld-brand-dark: #0f766e;--ld-brand-soft: #f0fdfa;--ld-brand-border: #99f6e4;--ld-brand-glow: rgba(13, 148, 136, .18);--ld-success: #059669;--ld-success-soft: #ecfdf5;--ld-success-border: #a7f3d0;--ld-warning: #d97706;--ld-warning-soft: #fffbeb;--ld-warning-border: #fde68a;--ld-danger: #dc2626;--ld-danger-soft: #fef2f2;--ld-danger-border: #fecaca;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 16px;--r-2xl: 20px;--ld-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--ld-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--ld-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--ld-sh-lg: 0 12px 48px rgba(15, 23, 42, .12), 0 4px 12px rgba(15, 23, 42, .06);--ld-sh-xl: 0 20px 60px rgba(15, 23, 42, .15), 0 6px 16px rgba(15, 23, 42, .08);--ld-sh-primary: 0 4px 14px var(--ld-primary-glow);--ld-sh-primary-strong: 0 6px 24px var(--ld-primary-glow-strong);--ld-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .06);--ld-sh-card-hover: 0 8px 32px rgba(15, 23, 42, .1), 0 2px 8px rgba(15, 23, 42, .05);--ld-ease: cubic-bezier(.16, 1, .3, 1);--ld-ease-out: cubic-bezier(.33, 1, .68, 1);--ld-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ld-ease-smooth: cubic-bezier(.4, 0, .2, 1);--ld-dur-fast: .12s;--ld-dur-normal: .2s;--ld-dur-slow: .35s}.location-detail-page{width:100%;max-width:1380px;margin:0 auto;padding:32px 28px 56px;color:var(--ld-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}.ld-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;padding:20px 24px;border-radius:var(--r-xl);background:var(--ld-card);border:1px solid var(--ld-border);box-shadow:var(--ld-sh-sm);overflow:hidden}.ld-head:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ld-primary-gradient);border-radius:var(--r-xl) var(--r-xl) 0 0}.ld-head__left,.ld-head__right{display:flex;align-items:center;gap:12px;min-width:0}.ld-head__right{gap:10px;flex-shrink:0}.ld-back-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--ld-border);border-radius:var(--r-md);background:var(--ld-card);color:var(--ld-text-secondary);cursor:pointer;transition:all var(--ld-dur-normal) var(--ld-ease);flex-shrink:0}.ld-back-btn:hover{background:var(--ld-primary-soft);border-color:var(--ld-primary-border);color:var(--ld-primary);box-shadow:var(--ld-sh-primary);transform:translate(-2px)}.ld-back-btn:active{transform:translate(-1px) scale(.97)}.ld-crumb-link{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--ld-primary);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:color var(--ld-dur-fast) var(--ld-ease);position:relative;flex-shrink:0}.ld-crumb-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--ld-primary);border-radius:1px;transition:width var(--ld-dur-normal) var(--ld-ease)}.ld-crumb-link:hover{color:var(--ld-primary-hover)}.ld-crumb-link:hover:after{width:100%}.ld-crumb-link svg{color:var(--ld-primary);flex-shrink:0}.ld-crumb-sep{color:var(--ld-text-subtle);flex-shrink:0}.ld-head__title{min-width:0;margin:0;color:var(--ld-text);font-size:21px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ld-group-chip{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--ld-primary-border);background:var(--ld-primary-soft);color:var(--ld-primary);font-size:12.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.ld-status{display:inline-flex;align-items:center;gap:6px;min-width:92px;justify-content:center;padding:5px 14px;border-radius:999px;border:1px solid var(--ld-border-strong);background:var(--ld-surface);color:var(--ld-text-secondary);font-size:12.5px;font-weight:700;letter-spacing:.02em;transition:all var(--ld-dur-normal) var(--ld-ease);height:30px}.ld-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.ld-status--active{border-color:var(--ld-success-border);background:var(--ld-success-soft);color:var(--ld-success)}.ld-status--active:before{animation:ld-statusPulse 1.5s var(--ld-ease-smooth) infinite}@keyframes ld-statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.ld-status--inactive{border-color:var(--ld-border-strong);background:var(--ld-surface);color:var(--ld-text-muted)}.ld-status--maintenance{border-color:var(--ld-warning-border);background:var(--ld-warning-soft);color:var(--ld-warning)}.ld-tabs{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));width:min(520px,100%);margin-bottom:24px;padding:4px;border-radius:var(--r-lg);border:1px solid var(--ld-border);background:var(--ld-surface);box-shadow:var(--ld-sh-inner)}.ld-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--ld-text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--ld-dur-normal) var(--ld-ease);position:relative}.ld-tab:hover:not(.is-active){background:var(--ld-hover);color:var(--ld-text-secondary)}.ld-tab.is-active{background:var(--ld-primary-gradient);color:#fff;border-color:transparent;box-shadow:var(--ld-sh-primary-strong)}.ld-tab.is-active svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.ld-tab:active{transform:scale(.98)}.ld-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border:1px solid var(--ld-border);border-radius:var(--r-md);background:var(--ld-card);color:var(--ld-text-secondary);font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:all var(--ld-dur-normal) var(--ld-ease);letter-spacing:-.005em}.ld-btn:hover:not(:disabled){background:var(--ld-hover);border-color:var(--ld-border-strong);color:var(--ld-text);transform:translateY(-1px)}.ld-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.ld-btn--primary{background:var(--ld-primary-gradient);border-color:transparent;color:#fff;box-shadow:var(--ld-sh-primary)}.ld-btn--primary:hover:not(:disabled){color:#fff;box-shadow:var(--ld-sh-primary-strong)}.ld-btn--secondary{background:var(--ld-card);border-color:var(--ld-border)}.ld-btn--secondary:hover:not(:disabled){background:var(--ld-primary-soft);border-color:var(--ld-primary-border);color:var(--ld-primary)}.ld-btn--full{width:100%}.ld-map-panel{display:block;animation:ld-tabFadeIn var(--ld-dur-slow) var(--ld-ease-out) both}@keyframes ld-tabFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ld-map-card{position:relative;width:100%;min-height:520px;max-height:520px;overflow:hidden;border:1px solid var(--ld-border);border-radius:var(--r-xl);background:#aadaff;box-shadow:var(--ld-sh-sm);cursor:grab;touch-action:none;user-select:none;transition:box-shadow var(--ld-dur-slow) var(--ld-ease),border-color var(--ld-dur-slow) var(--ld-ease)}.ld-map-card:hover{box-shadow:var(--ld-sh-card-hover);border-color:var(--ld-primary-border)}.ld-map-card:active{cursor:grabbing}.ld-map-tiles{position:absolute;inset:0;background:#e8eef5;overflow:hidden}.ld-map-tiles img{position:absolute;image-rendering:auto;user-select:none;-webkit-user-drag:none}.ld-map-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:none;z-index:3;filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 4px 8px rgba(15,23,42,.55));animation:ld-pinDrop .5s var(--ld-ease-spring) both}.ld-map-pin svg{display:block;animation:ld-pinFloat 3s ease-in-out infinite}@keyframes ld-pinDrop{0%{opacity:0;transform:translate(-50%,-140%)}60%{opacity:1;transform:translate(-50%,-95%)}to{opacity:1;transform:translate(-50%,-100%)}}@keyframes ld-pinFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.ld-map-legend{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-md);background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ld-text-secondary);font-size:12px;font-weight:600;box-shadow:var(--ld-sh-md);border:1px solid var(--ld-border);z-index:5;max-width:calc(100% - 120px)}.ld-map-legend span:not(.ld-map-marker){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ld-map-marker{width:10px;height:10px;border-radius:50%;background:var(--ld-primary);box-shadow:0 0 0 3px var(--ld-primary-glow);animation:ld-markerPulse 2s var(--ld-ease-smooth) infinite;flex-shrink:0}@keyframes ld-markerPulse{0%,to{box-shadow:0 0 0 3px var(--ld-primary-glow)}50%{box-shadow:0 0 0 6px var(--ld-primary-glow)}}.ld-map-zoom{position:absolute;right:14px;bottom:14px;display:grid;gap:4px;padding:6px;border-radius:var(--r-lg);background:#fffffff0;border:1px solid var(--ld-border);box-shadow:var(--ld-sh-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10}.ld-map-zoom button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--ld-border);border-radius:var(--r-md);background:var(--ld-card);color:var(--ld-text-secondary);cursor:pointer;transition:all var(--ld-dur-normal) var(--ld-ease)}.ld-map-zoom button:hover:not(:disabled){background:var(--ld-primary-soft);border-color:var(--ld-primary-border);color:var(--ld-primary);box-shadow:var(--ld-sh-primary);transform:scale(1.05)}.ld-map-zoom button:active:not(:disabled){transform:scale(.95)}.ld-map-zoom button:disabled{opacity:.35;cursor:not-allowed}.ld-map-zoom-level{text-align:center;font-size:10px;font-weight:700;color:var(--ld-text-muted);padding:2px 0;font-variant-numeric:tabular-nums}.ld-map-footnote{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--ld-text-subtle);font-size:11.5px}.ld-map-footnote svg{flex-shrink:0}.ld-general-panel{display:flex;flex-direction:column;gap:22px;animation:ld-tabFadeIn var(--ld-dur-slow) var(--ld-ease-out) both}.ld-card{border:1px solid var(--ld-border);border-radius:var(--r-xl);background:var(--ld-card);box-shadow:var(--ld-sh-sm);overflow:hidden;transition:box-shadow var(--ld-dur-slow) var(--ld-ease),border-color var(--ld-dur-slow) var(--ld-ease)}.ld-card:hover{box-shadow:var(--ld-sh-card-hover);border-color:var(--ld-primary-border)}.ld-card__head{padding:22px 28px 18px;border-bottom:1px solid var(--ld-border);background:linear-gradient(180deg,var(--ld-surface) 0%,var(--ld-card) 100%)}.ld-card__head h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:17px;font-weight:700;color:var(--ld-text);letter-spacing:-.02em}.ld-card__head h2 svg{color:var(--ld-primary);opacity:.85}.ld-card__head p{margin:0;color:var(--ld-text-muted);font-size:13px;line-height:1.45}.ld-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:22px 28px 24px}.ld-detail{display:grid;gap:8px;min-height:78px;padding:16px 18px;border:1px solid var(--ld-border);border-radius:var(--r-md);background:var(--ld-surface);transition:all var(--ld-dur-normal) var(--ld-ease);position:relative;overflow:hidden}.ld-detail:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--ld-primary-gradient);transition:width var(--ld-dur-slow) var(--ld-ease)}.ld-detail:hover{border-color:var(--ld-primary-border);box-shadow:var(--ld-sh-sm);transform:translateY(-1px)}.ld-detail:hover:before{width:100%}.ld-detail.is-wide{grid-column:1 / -1}.ld-detail__label{color:var(--ld-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.ld-detail__value{color:var(--ld-text);font-size:13.5px;font-weight:600;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.ld-detail__value.is-mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.ld-muted-text{color:var(--ld-text-subtle);font-style:italic;font-weight:500}.ld-user-value{display:flex;align-items:center;gap:10px}.ld-user-value__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ld-primary-gradient);color:#fff;flex-shrink:0;box-shadow:var(--ld-sh-primary)}.ld-user-value__text{display:flex;flex-direction:column;min-width:0;gap:1px}.ld-user-value__text strong{color:var(--ld-text);font-size:13px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.ld-user-value__text span{color:var(--ld-text-muted);font-size:11.5px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ld-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:480px;padding:48px 24px;border:1px solid var(--ld-border);border-radius:var(--r-xl);background:var(--ld-card);color:var(--ld-text-muted);font-size:14px;font-weight:500;text-align:center;box-shadow:var(--ld-sh-sm)}.ld-state__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ld-danger-soft);color:var(--ld-danger);margin-bottom:4px;box-shadow:0 4px 14px #dc262626}.ld-state strong{color:var(--ld-text);font-size:17px;font-weight:700;letter-spacing:-.02em}.ld-state p{margin:0 0 8px;color:var(--ld-text-muted);font-size:13px;line-height:1.5;max-width:360px}.ld-state--error{color:var(--ld-text-secondary)}.is-spinning{animation:ld-spin .8s linear infinite}@keyframes ld-spin{to{transform:rotate(360deg)}}:where(.ld-btn,.ld-back-btn,.ld-crumb-link,.ld-tab,.ld-map-zoom button):focus-visible{outline:2px solid var(--ld-primary);outline-offset:2px;border-radius:var(--r-sm)}@media(max-width:1100px){.ld-detail-grid{grid-template-columns:1fr}}@media(max-width:720px){.location-detail-page{padding:20px 16px 40px}.ld-head{padding:18px;flex-direction:column;align-items:stretch;gap:14px}.ld-head__left,.ld-head__right{width:100%}.ld-head__right{justify-content:flex-start;flex-wrap:wrap}.ld-head__title{font-size:18px}.ld-tabs{grid-template-columns:1fr;width:100%}.ld-map-card{min-height:380px;max-height:380px}.ld-map-legend{left:12px;bottom:12px;padding:8px 12px;font-size:11px;max-width:calc(100% - 110px)}.ld-card__head{padding:18px 20px 14px}.ld-card__head h2{font-size:15px}.ld-detail-grid{padding:18px 20px 20px;gap:12px}.ld-detail{padding:14px 16px;min-height:auto}}@media(max-width:480px){.location-detail-page{padding:16px 12px 32px}.ld-head{padding:14px}.ld-head__title{font-size:16px}.ld-crumb-link{font-size:14px}.ld-tab{font-size:12.5px;padding:0 10px}.ld-map-card{min-height:300px;max-height:300px}}@media print{.ld-tabs,.ld-map-legend,.ld-map-zoom,.ld-map-footnote,.ld-back-btn{display:none!important}.ld-map-card,.ld-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.ld-head:before{display:none}}:root{--rd-bg: #f4f7fb;--rd-card: #ffffff;--rd-surface: #f8fafc;--rd-hover: #f1f5f9;--rd-border: #e2e8f0;--rd-border-strong: #cbd5e1;--rd-border-subtle: #f1f5f9;--rd-text: #0f172a;--rd-text-secondary: #475569;--rd-text-muted: #64748b;--rd-text-subtle: #94a3b8;--rd-text-ghost: #c1cbd8;--rd-primary: #0f766e;--rd-primary-hover: #0d6560;--rd-primary-soft: #f0fdfa;--rd-primary-border: #99f6e4;--rd-primary-deep: #134e4a;--rd-primary-glow: rgba(15, 118, 110, .18);--rd-primary-glow-strong: rgba(15, 118, 110, .35);--rd-primary-gradient: linear-gradient(135deg, #0f766e, #0d9488, #134e4a);--rd-accent: #2563eb;--rd-accent-soft: #eff6ff;--rd-accent-border: #bfdbfe;--rd-accent-glow: rgba(37, 99, 235, .18);--rd-origin: #2563eb;--rd-origin-soft: #eff6ff;--rd-origin-border: #bfdbfe;--rd-origin-glow: rgba(37, 99, 235, .25);--rd-dest: #dc2626;--rd-dest-soft: #fef2f2;--rd-dest-border: #fecaca;--rd-dest-glow: rgba(220, 38, 38, .25);--rd-waypoint: #0d9488;--rd-waypoint-soft: #f0fdfa;--rd-waypoint-border: #99f6e4;--rd-waypoint-glow: rgba(13, 148, 136, .25);--rd-road: #2563eb;--rd-success: #059669;--rd-success-soft: #ecfdf5;--rd-success-border: #a7f3d0;--rd-warning: #d97706;--rd-warning-soft: #fffbeb;--rd-warning-border: #fde68a;--rd-danger: #dc2626;--rd-danger-soft: #fef2f2;--rd-danger-border: #fecaca;--rd-r-xs: 4px;--rd-r-sm: 6px;--rd-r-md: 10px;--rd-r-lg: 14px;--rd-r-xl: 16px;--rd-r-2xl: 20px;--rd-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--rd-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--rd-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--rd-sh-lg: 0 12px 48px rgba(15, 23, 42, .12), 0 4px 12px rgba(15, 23, 42, .06);--rd-sh-xl: 0 20px 60px rgba(15, 23, 42, .15), 0 6px 16px rgba(15, 23, 42, .08);--rd-sh-primary: 0 4px 14px var(--rd-primary-glow);--rd-sh-primary-strong: 0 6px 24px var(--rd-primary-glow-strong);--rd-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .06);--rd-sh-card-hover: 0 8px 32px rgba(15, 23, 42, .1), 0 2px 8px rgba(15, 23, 42, .05);--rd-ease: cubic-bezier(.16, 1, .3, 1);--rd-ease-out: cubic-bezier(.33, 1, .68, 1);--rd-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--rd-ease-smooth: cubic-bezier(.4, 0, .2, 1);--rd-dur-fast: .12s;--rd-dur-normal: .2s;--rd-dur-slow: .35s}.rd-page{width:100%;max-width:1380px;margin:0 auto;padding:32px 28px 56px;color:var(--rd-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}.rd-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:20px 24px;border-radius:var(--rd-r-xl);background:var(--rd-card);border:1px solid var(--rd-border);box-shadow:var(--rd-sh-sm);overflow:hidden}.rd-head:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--rd-primary-gradient);border-radius:var(--rd-r-xl) var(--rd-r-xl) 0 0}.rd-head__left,.rd-head__right{display:flex;align-items:center;gap:12px;min-width:0}.rd-head__right{gap:10px;flex-shrink:0;flex-wrap:wrap}.rd-back-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--rd-border);border-radius:var(--rd-r-md);background:var(--rd-card);color:var(--rd-text-secondary);cursor:pointer;transition:all var(--rd-dur-normal) var(--rd-ease);flex-shrink:0}.rd-back-btn:hover{background:var(--rd-primary-soft);border-color:var(--rd-primary-border);color:var(--rd-primary);box-shadow:var(--rd-sh-primary);transform:translate(-2px)}.rd-back-btn:active{transform:translate(-1px) scale(.97)}.rd-crumb-link{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--rd-primary);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:color var(--rd-dur-fast) var(--rd-ease);position:relative;flex-shrink:0}.rd-crumb-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--rd-primary);border-radius:1px;transition:width var(--rd-dur-normal) var(--rd-ease)}.rd-crumb-link:hover{color:var(--rd-primary-hover)}.rd-crumb-link:hover:after{width:100%}.rd-crumb-link svg{color:var(--rd-primary);flex-shrink:0}.rd-crumb-sep{color:var(--rd-text-subtle);flex-shrink:0}.rd-head__title{min-width:0;margin:0;color:var(--rd-text);font-size:21px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.rd-chip--group{border:1px solid var(--rd-primary-border);background:var(--rd-primary-soft);color:var(--rd-primary)}.rd-chip--mode{border:1px solid var(--rd-accent-border);background:var(--rd-accent-soft);color:var(--rd-accent)}.rd-meta-bar{display:flex;align-items:center;gap:0;margin-bottom:20px;padding:16px 24px;border-radius:var(--rd-r-xl);background:var(--rd-card);border:1px solid var(--rd-border);box-shadow:var(--rd-sh-xs);overflow-x:auto;scrollbar-width:none}.rd-meta-bar::-webkit-scrollbar{display:none}.rd-meta-item{display:flex;align-items:center;gap:10px;padding:0 28px 0 0;white-space:nowrap}.rd-meta-item:first-child{padding-left:0}.rd-meta-item__icon{color:var(--rd-primary);opacity:.8;flex-shrink:0}.rd-meta-item__label{color:var(--rd-text-muted);font-size:12px;font-weight:600}.rd-meta-item strong{color:var(--rd-text);font-size:14px;font-weight:700;letter-spacing:-.01em}.rd-meta-divider{width:1px;height:28px;background:var(--rd-border);margin:0 28px 0 0;flex-shrink:0}.rd-status{display:inline-flex;align-items:center;gap:6px;min-width:92px;justify-content:center;padding:5px 14px;border-radius:999px;border:1px solid var(--rd-border-strong);background:var(--rd-surface);color:var(--rd-text-secondary);font-size:12.5px;font-weight:700;letter-spacing:.02em;height:30px}.rd-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.rd-status--active{border-color:var(--rd-success-border);background:var(--rd-success-soft);color:var(--rd-success)}.rd-status--active:before{animation:rd-statusPulse 1.5s var(--rd-ease-smooth) infinite}@keyframes rd-statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.rd-status--inactive{border-color:var(--rd-border-strong);background:var(--rd-surface);color:var(--rd-text-muted)}.rd-status--maintenance{border-color:var(--rd-warning-border);background:var(--rd-warning-soft);color:var(--rd-warning)}.rd-tabs{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));width:min(520px,100%);margin-bottom:24px;padding:4px;border-radius:var(--rd-r-lg);border:1px solid var(--rd-border);background:var(--rd-surface);box-shadow:var(--rd-sh-inner)}.rd-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--rd-r-md);background:transparent;color:var(--rd-text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--rd-dur-normal) var(--rd-ease)}.rd-tab:hover:not(.is-active){background:var(--rd-hover);color:var(--rd-text-secondary)}.rd-tab.is-active{background:var(--rd-primary-gradient);color:#fff;border-color:transparent;box-shadow:var(--rd-sh-primary-strong)}.rd-tab.is-active svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.rd-tab:active{transform:scale(.98)}.rd-tab-content{animation:rd-fadeIn var(--rd-dur-slow) var(--rd-ease-out) both}@keyframes rd-fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rd-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border:1px solid var(--rd-border);border-radius:var(--rd-r-md);background:var(--rd-card);color:var(--rd-text-secondary);font-family:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all var(--rd-dur-normal) var(--rd-ease)}.rd-btn:hover:not(:disabled){background:var(--rd-hover);border-color:var(--rd-border-strong);color:var(--rd-text);transform:translateY(-1px)}.rd-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.rd-btn--primary{background:var(--rd-primary-gradient);border-color:transparent;color:#fff;box-shadow:var(--rd-sh-primary)}.rd-btn--primary:hover:not(:disabled){color:#fff;box-shadow:var(--rd-sh-primary-strong)}.rd-map-panel{display:flex;flex-direction:column;gap:16px}.rd-map-card-wrap{border:1px solid var(--rd-border);border-radius:var(--rd-r-xl);background:var(--rd-card);box-shadow:var(--rd-sh-sm);overflow:hidden;padding:22px;transition:box-shadow var(--rd-dur-slow) var(--rd-ease),border-color var(--rd-dur-slow) var(--rd-ease)}.rd-map-card-wrap:hover{box-shadow:var(--rd-sh-card-hover);border-color:var(--rd-primary-border)}.rd-map-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.rd-map-header__left{display:inline-flex;align-items:center;gap:10px}.rd-map-header__left h2{margin:0;color:var(--rd-text);font-size:17px;font-weight:700;letter-spacing:-.02em}.rd-map-header__icon{color:var(--rd-primary);flex-shrink:0}.rd-map-header__right{display:inline-flex;align-items:center;gap:10px}.rd-map-mode-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;border:1px solid var(--rd-primary-border);background:var(--rd-primary-soft);color:var(--rd-primary);font-size:12px;font-weight:600}.rd-map-link{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--rd-primary-border);border-radius:999px;font-size:12px;font-weight:600;color:var(--rd-primary);text-decoration:none;background:var(--rd-primary-soft);transition:all var(--rd-dur-normal) var(--rd-ease)}.rd-map-link:hover{background:var(--rd-primary);color:#fff;border-color:var(--rd-primary);box-shadow:var(--rd-sh-primary);transform:translateY(-1px)}.rd-map-link:active{transform:translateY(0) scale(.98)}.rd-map-route-label{margin:0 0 4px;color:var(--rd-text);font-size:14px;font-weight:600;letter-spacing:-.01em}.rd-map-meta{margin:0 0 14px;color:var(--rd-text-muted);font-size:12.5px;font-weight:500}.rd-map-canvas{position:relative;width:100%;min-height:520px;max-height:520px;overflow:hidden;border:1px solid var(--rd-border);border-radius:var(--rd-r-lg);background:#aadaff;touch-action:none;cursor:grab;user-select:none;transition:border-color var(--rd-dur-normal) var(--rd-ease)}.rd-map-canvas:hover{border-color:var(--rd-primary-border)}.rd-map-canvas:active{cursor:grabbing}.rd-map-tiles{position:absolute;inset:0;background:#e8eef5;overflow:hidden}.rd-map-tiles img{position:absolute;image-rendering:auto;user-select:none;-webkit-user-drag:none}.rd-map-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.rd-map-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rd-map-route--road{stroke:#fbbf24;stroke-width:4px;opacity:.95;stroke-dasharray:12 8;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45));animation:dashScroll 1.5s linear infinite}.rd-map-route--air{stroke:#38bdf8;stroke-width:3.5px;stroke-dasharray:12 8;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45));animation:dashScroll 1.5s linear infinite}.rd-map-route--sea{stroke:#0ea5e9;stroke-width:3.5px;stroke-dasharray:16 7 4 7;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45))}@keyframes dashScroll{to{stroke-dashoffset:-20}}.rd-map-marker{position:absolute;display:grid;place-items:center;width:30px;height:30px;margin:-30px 0 0 -15px;cursor:pointer;z-index:3;filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 3px 6px rgba(15,23,42,.55));transition:transform var(--rd-dur-normal) var(--rd-ease-spring),filter var(--rd-dur-normal) var(--rd-ease)}.rd-map-marker__icon{width:30px;height:30px;fill:currentColor;stroke:#fff;stroke-width:2;paint-order:stroke}.rd-map-marker--origin{color:#2563eb}.rd-map-marker--waypoint{color:#f59e0b}.rd-map-marker--destination{color:#ef4444}.rd-map-marker:hover,.rd-map-marker:focus-visible{z-index:5;outline:none;transform:translateY(-4px) scale(1.1);filter:drop-shadow(0 6px 12px rgba(15,23,42,.4))}.rd-map-tooltip{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%) scale(.92);min-width:170px;padding:10px 14px;border-radius:var(--rd-r-md);background:var(--rd-card);border:1px solid var(--rd-border);box-shadow:var(--rd-sh-lg);color:var(--rd-text);text-align:center;pointer-events:none;opacity:0;transition:opacity var(--rd-dur-normal) var(--rd-ease),transform var(--rd-dur-normal) var(--rd-ease-spring);white-space:pre-line;z-index:4}.rd-map-tooltip:after{content:"";position:absolute;top:100%;left:50%;width:10px;height:10px;margin-left:-5px;margin-top:-5px;background:var(--rd-card);border-right:1px solid var(--rd-border);border-bottom:1px solid var(--rd-border);transform:rotate(45deg)}.rd-map-marker:hover .rd-map-tooltip,.rd-map-marker:focus-visible .rd-map-tooltip{opacity:1;transform:translate(-50%) scale(1)}.rd-map-tooltip strong{display:block;font-size:13px;font-weight:700;color:var(--rd-text);margin-bottom:3px;overflow-wrap:anywhere}.rd-map-tooltip small{display:block;font-size:11px;font-weight:500;color:var(--rd-text-muted);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.4}.rd-map-tooltip__coords{display:block;font-size:11px;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums;color:var(--rd-text-subtle)}.rd-map-legend{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-radius:var(--rd-r-md);background:#fffffff0;border:1px solid var(--rd-border);box-shadow:var(--rd-sh-md);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10;font-size:11px;font-weight:600;color:var(--rd-text-secondary)}.rd-map-legend-item{display:flex;align-items:center;gap:8px}.rd-map-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.rd-map-legend-dot--origin{background:#2563eb}.rd-map-legend-dot--waypoint{background:#f59e0b}.rd-map-legend-dot--destination{background:#ef4444}.rd-map-legend-swatch{width:14px;height:4px;border-radius:2px;background:#fbbf24;flex-shrink:0}.rd-map-legend-swatch--road{background:#fbbf24}.rd-map-legend-swatch--air{background:repeating-linear-gradient(90deg,#38bdf8 0,#38bdf8 10px,transparent 10px,transparent 16px);box-shadow:none}.rd-map-legend-swatch--sea{background:#0ea5e9;box-shadow:none}.rd-map-zoom{position:absolute;right:14px;bottom:14px;display:grid;gap:4px;padding:6px;border-radius:var(--rd-r-lg);background:#fffffff0;border:1px solid var(--rd-border);box-shadow:var(--rd-sh-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10}.rd-map-zoom button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--rd-border);border-radius:var(--rd-r-md);background:var(--rd-card);color:var(--rd-text-secondary);cursor:pointer;transition:all var(--rd-dur-normal) var(--rd-ease)}.rd-map-zoom button:hover:not(:disabled){background:var(--rd-primary-soft);border-color:var(--rd-primary-border);color:var(--rd-primary);box-shadow:var(--rd-sh-primary);transform:scale(1.05)}.rd-map-zoom button:active:not(:disabled){transform:scale(.95)}.rd-map-zoom button:disabled{opacity:.35;cursor:not-allowed}.rd-map-zoom-level{text-align:center;font-size:10px;font-weight:700;color:var(--rd-text-muted);padding:2px 0;font-variant-numeric:tabular-nums}.rd-map-footnote{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--rd-text-subtle);font-size:11.5px}.rd-map-footnote svg{flex-shrink:0}.rd-node-strip{display:flex;gap:12px;padding-bottom:4px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--rd-border-strong) transparent}.rd-node-strip::-webkit-scrollbar{height:5px}.rd-node-strip::-webkit-scrollbar-track{background:transparent}.rd-node-strip::-webkit-scrollbar-thumb{background:var(--rd-border-strong);border-radius:3px}.rd-node-card{min-width:210px;max-width:280px;padding:14px 16px;border:1px solid var(--rd-border);border-radius:var(--rd-r-lg);background:var(--rd-card);box-shadow:var(--rd-sh-xs);transition:all var(--rd-dur-normal) var(--rd-ease);position:relative;overflow:hidden;flex-shrink:0}.rd-node-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--rd-border-strong);transition:background var(--rd-dur-normal) var(--rd-ease)}.rd-node-card:hover{border-color:var(--rd-primary-border);box-shadow:var(--rd-sh-sm);transform:translateY(-3px)}.rd-node-card--origin{border-color:var(--rd-origin-border);background:var(--rd-origin-soft)}.rd-node-card--origin:before{background:var(--rd-origin)}.rd-node-card--dest{border-color:var(--rd-dest-border);background:var(--rd-dest-soft)}.rd-node-card--dest:before{background:var(--rd-dest)}.rd-node-card--waypoint{border-color:var(--rd-waypoint-border);background:var(--rd-waypoint-soft)}.rd-node-card--waypoint:before{background:var(--rd-waypoint)}.rd-node-card__badge{display:inline-block;margin-bottom:8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--rd-text-muted)}.rd-node-card--origin .rd-node-card__badge{color:var(--rd-origin)}.rd-node-card--dest .rd-node-card__badge{color:var(--rd-dest)}.rd-node-card--waypoint .rd-node-card__badge{color:var(--rd-waypoint)}.rd-node-card__name{display:block;margin-bottom:4px;color:var(--rd-text);font-size:13.5px;font-weight:700;letter-spacing:-.01em;line-height:1.35}.rd-node-card__addr{display:block;color:var(--rd-text-secondary);font-size:12px;font-weight:500;line-height:1.4;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-node-card__coords{display:block;color:var(--rd-text-subtle);font-size:11px;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.rd-general-panel{display:flex;flex-direction:column;gap:22px}.rd-card{border:1px solid var(--rd-border);border-radius:var(--rd-r-xl);background:var(--rd-card);box-shadow:var(--rd-sh-sm);overflow:hidden;transition:box-shadow var(--rd-dur-slow) var(--rd-ease),border-color var(--rd-dur-slow) var(--rd-ease)}.rd-card:hover{box-shadow:var(--rd-sh-card-hover);border-color:var(--rd-primary-border)}.rd-card__head{padding:22px 28px 18px;border-bottom:1px solid var(--rd-border);background:linear-gradient(180deg,var(--rd-surface) 0%,var(--rd-card) 100%)}.rd-card__head h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:17px;font-weight:700;color:var(--rd-text);letter-spacing:-.02em}.rd-card__head h2 svg{color:var(--rd-primary);opacity:.85}.rd-card__head p{margin:0;color:var(--rd-text-muted);font-size:13px;line-height:1.45}.rd-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:22px 28px 24px}.rd-detail{display:grid;gap:8px;min-height:78px;padding:16px 18px;border:1px solid var(--rd-border);border-radius:var(--rd-r-md);background:var(--rd-surface);transition:all var(--rd-dur-normal) var(--rd-ease);position:relative;overflow:hidden}.rd-detail:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--rd-primary-gradient);transition:width var(--rd-dur-slow) var(--rd-ease)}.rd-detail:hover{border-color:var(--rd-primary-border);box-shadow:var(--rd-sh-sm);transform:translateY(-1px)}.rd-detail:hover:before{width:100%}.rd-detail.is-wide{grid-column:1 / -1}.rd-detail__label{color:var(--rd-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rd-detail__value{color:var(--rd-text);font-size:13.5px;font-weight:600;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.rd-detail__value.is-mono{font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.rd-muted{color:var(--rd-text-subtle);font-style:italic;font-weight:500}.rd-user-value{display:flex;align-items:center;gap:10px}.rd-user-value__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--rd-primary-gradient);color:#fff;flex-shrink:0;box-shadow:var(--rd-sh-primary)}.rd-user-value__text{display:flex;flex-direction:column;min-width:0;gap:1px}.rd-user-value__text strong{color:var(--rd-text);font-size:13px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.rd-user-value__text span{color:var(--rd-text-muted);font-size:11.5px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-chain{padding:24px 28px 28px;display:flex;flex-direction:column}.rd-chain-node{display:flex;gap:18px;min-height:90px}.rd-chain-node__track{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0;padding-top:2px}.rd-chain-node__dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--rd-waypoint);background:var(--rd-card);flex-shrink:0;position:relative;z-index:2;transition:all var(--rd-dur-normal) var(--rd-ease);box-shadow:0 0 0 3px var(--rd-waypoint-glow)}.rd-chain-node--origin .rd-chain-node__dot{border-color:var(--rd-origin);background:var(--rd-origin);box-shadow:0 0 0 4px var(--rd-origin-glow)}.rd-chain-node--destination .rd-chain-node__dot{border-color:var(--rd-dest);background:var(--rd-dest);box-shadow:0 0 0 4px var(--rd-dest-glow)}.rd-chain-node:hover .rd-chain-node__dot{transform:scale(1.3)}.rd-chain-node__line{width:2px;flex:1;background:linear-gradient(180deg,var(--rd-primary-border),var(--rd-border));margin:5px 0;border-radius:1px;position:relative;overflow:visible}.rd-chain-node__dist{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;color:var(--rd-text-subtle);white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--rd-card);padding:1px 4px;border-radius:3px;border:1px solid var(--rd-border)}.rd-chain-node__content{flex:1;min-width:0;padding:0 0 28px;display:flex;flex-direction:column;gap:4px}.rd-chain-node:last-child .rd-chain-node__content{padding-bottom:0}.rd-chain-node__label{color:var(--rd-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rd-chain-node--origin .rd-chain-node__label{color:var(--rd-origin)}.rd-chain-node--destination .rd-chain-node__label{color:var(--rd-dest)}.rd-chain-node--waypoint .rd-chain-node__label{color:var(--rd-waypoint)}.rd-chain-node__name{color:var(--rd-text);font-size:15px;font-weight:700;letter-spacing:-.01em;line-height:1.3}.rd-chain-node__addr{color:var(--rd-text-secondary);font-size:12.5px;font-weight:500;line-height:1.4}.rd-chain-node__coords{color:var(--rd-text-subtle);font-size:11.5px;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.rd-chain-node__seg-dist{display:inline-flex;align-items:center;margin-top:4px;padding:3px 10px;border-radius:999px;border:1px solid var(--rd-primary-border);background:var(--rd-primary-soft);color:var(--rd-primary);font-size:11px;font-weight:600;width:fit-content;font-variant-numeric:tabular-nums}.rd-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:480px;padding:48px 24px;border:1px solid var(--rd-border);border-radius:var(--rd-r-xl);background:var(--rd-card);color:var(--rd-text-muted);font-size:14px;font-weight:500;text-align:center;box-shadow:var(--rd-sh-sm)}.rd-state__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--rd-danger-soft);color:var(--rd-danger);margin-bottom:4px;box-shadow:0 4px 14px #dc262626}.rd-state strong{color:var(--rd-text);font-size:17px;font-weight:700;letter-spacing:-.02em}.rd-state p{margin:0 0 8px;color:var(--rd-text-muted);font-size:13px;line-height:1.5;max-width:360px}.rd-state--error{color:var(--rd-text-secondary)}.rd-skeleton-head{height:74px;border-radius:var(--rd-r-xl);margin-bottom:16px;background:linear-gradient(90deg,var(--rd-surface) 0%,var(--rd-hover) 40%,var(--rd-surface) 80%);background-size:300% 100%;animation:rd-shimmer 1.8s var(--rd-ease-smooth) infinite}.rd-skeleton-meta{height:58px;border-radius:var(--rd-r-xl);margin-bottom:20px;background:linear-gradient(90deg,var(--rd-surface) 0%,var(--rd-hover) 40%,var(--rd-surface) 80%);background-size:300% 100%;animation:rd-shimmer 1.8s var(--rd-ease-smooth) infinite;animation-delay:.1s}.rd-skeleton-card{border:1px solid var(--rd-border);border-radius:var(--rd-r-xl);background:var(--rd-card);padding:24px;box-shadow:var(--rd-sh-sm)}.rd-skeleton-bar{height:14px;border-radius:var(--rd-r-sm);background:linear-gradient(90deg,var(--rd-surface) 0%,var(--rd-hover) 40%,var(--rd-surface) 80%);background-size:300% 100%;animation:rd-shimmer 1.8s var(--rd-ease-smooth) infinite;margin-bottom:14px}.rd-skeleton-bar:last-child{margin-bottom:0}.rd-skeleton-bar--lg{height:20px;width:65%;margin-bottom:18px}.rd-skeleton-bar--sm{width:40%}.rd-skeleton-bar--md{width:55%}.rd-skeleton-bar--xl{height:200px;width:100%}@keyframes rd-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.rd-spinning{animation:rd-spin .8s linear infinite}@keyframes rd-spin{to{transform:rotate(360deg)}}:where(.rd-btn,.rd-back-btn,.rd-crumb-link,.rd-tab,.rd-map-zoom button,.rd-map-link,.rd-map-marker):focus-visible{outline:2px solid var(--rd-primary);outline-offset:2px;border-radius:var(--rd-r-sm)}@media(max-width:1100px){.rd-detail-grid{grid-template-columns:1fr}}@media(max-width:720px){.rd-page{padding:20px 16px 40px}.rd-head{padding:18px;flex-direction:column;align-items:stretch;gap:14px}.rd-head__left,.rd-head__right{width:100%}.rd-head__right{justify-content:flex-start;flex-wrap:wrap}.rd-head__title{font-size:18px}.rd-meta-bar{padding:14px 18px;gap:0}.rd-meta-item{padding:0 18px 0 0}.rd-meta-item strong{font-size:13px}.rd-meta-divider{margin:0 18px 0 0}.rd-tabs{grid-template-columns:1fr;width:100%}.rd-map-canvas{min-height:380px;max-height:380px}.rd-map-legend{display:none}.rd-map-header{flex-direction:column;align-items:flex-start;gap:10px}.rd-map-header__right{width:100%;justify-content:space-between}.rd-node-strip{gap:10px}.rd-node-card{min-width:180px}.rd-card__head{padding:18px 20px 14px}.rd-card__head h2{font-size:15px}.rd-detail-grid{padding:18px 20px 20px;gap:12px}.rd-detail{padding:14px 16px;min-height:auto}.rd-chain{padding:18px 20px 22px}.rd-chain-node{gap:14px}.rd-chain-node__content{padding-bottom:22px}.rd-chain-node__name{font-size:14px}}@media(max-width:480px){.rd-page{padding:16px 12px 32px}.rd-head{padding:14px}.rd-head__title{font-size:16px}.rd-crumb-link{font-size:14px}.rd-tab{font-size:12.5px;padding:0 10px}.rd-map-canvas{min-height:280px;max-height:280px}.rd-node-card{min-width:160px;padding:12px 14px}.rd-chain-node{gap:12px}.rd-chain-node__track{width:22px}.rd-chain-node__dot{width:13px;height:13px;border-width:2.5px}.rd-meta-bar{flex-wrap:wrap;gap:12px}.rd-meta-divider{display:none}.rd-meta-item{padding:0}}@media print{.rd-tabs,.rd-map-legend,.rd-map-zoom,.rd-map-footnote,.rd-back-btn,.rd-node-strip,.rd-map-link{display:none!important}.rd-map-card-wrap,.rd-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.rd-head:before{display:none}.rd-chain-node__line{background:#999}.rd-chain-node__dot{box-shadow:none}}:root{--rt-bg: #f4f7fb;--rt-card: #ffffff;--rt-surface: #f8fafc;--rt-surface-alt: #f1f5f9;--rt-hover: #f0f7ff;--rt-border: #e2e8f0;--rt-border-strong: #cbd5e1;--rt-text: #0f172a;--rt-text-secondary: #475569;--rt-text-muted: #64748b;--rt-text-subtle: #94a3b8;--rt-brand: #4f46e5;--rt-brand-hover: #4338ca;--rt-brand-deep: #312e81;--rt-brand-soft: #eef2ff;--rt-brand-border: #c7d2fe;--rt-brand-glow: rgba(79, 70, 229, .18);--rt-brand-gradient: linear-gradient(135deg, #4f46e5 0%, #312e81 100%);--rt-primary: #2563eb;--rt-primary-hover: #1d4ed8;--rt-primary-deep: #1e3a8a;--rt-primary-soft: #eff6ff;--rt-primary-border: #bfdbfe;--rt-primary-glow: rgba(37, 99, 235, .18);--rt-primary-gradient: linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%);--rt-success: #059669;--rt-success-soft: #ecfdf5;--rt-success-border: #a7f3d0;--rt-warning: #d97706;--rt-warning-soft: #fffbeb;--rt-warning-border: #fde68a;--rt-danger: #dc2626;--rt-danger-soft: #fef2f2;--rt-danger-border: #fecaca;--rt-sky: #0284c7;--rt-sky-soft: #f0f9ff;--rt-sky-border: #bae6fd;--rt-teal: #0f766e;--rt-teal-soft: #f0fdfa;--rt-teal-border: #99f6e4;--rt-r-xs: 4px;--rt-r-sm: 6px;--rt-r-md: 8px;--rt-r-lg: 10px;--rt-r-xl: 12px;--rt-r-2xl: 16px;--rt-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--rt-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--rt-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--rt-sh-lg: 0 12px 48px rgba(15, 23, 42, .14), 0 4px 12px rgba(15, 23, 42, .06);--rt-sh-xl: 0 24px 64px rgba(15, 23, 42, .18), 0 6px 20px rgba(15, 23, 42, .08);--rt-sh-brand: 0 4px 14px var(--rt-brand-glow);--rt-sh-primary: 0 4px 14px var(--rt-primary-glow);--rt-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .05);--rt-ease: cubic-bezier(.16, 1, .3, 1);--rt-ease-out: cubic-bezier(.33, 1, .68, 1);--rt-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--rt-dur-fast: .12s;--rt-dur-normal: .2s;--rt-dur-slow: .34s}.routes-page{width:100%;max-width:1480px;margin:0 auto;padding:28px 28px 56px;color:var(--rt-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}.routes-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:20px 24px;border-radius:var(--rt-r-2xl);background:var(--rt-card);border:1px solid var(--rt-border);box-shadow:var(--rt-sh-sm);overflow:hidden}.routes-head:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--rt-brand-gradient);border-radius:var(--rt-r-2xl) var(--rt-r-2xl) 0 0}.routes-head:after{content:"";position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(79,70,229,.07),transparent 70%);pointer-events:none}.routes-title{display:flex;align-items:center;gap:14px;min-width:0;position:relative;z-index:1}.routes-title-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--rt-r-lg);background:var(--rt-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--rt-sh-brand)}.routes-title h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--rt-text)}.routes-title p{margin:3px 0 0;color:var(--rt-text-muted);font-size:13px;font-weight:400}.routes-actions{display:flex;align-items:center;gap:10px;position:relative;z-index:1}.route-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:1px solid var(--rt-border-strong);border-radius:var(--rt-r-md);background:var(--rt-card);color:var(--rt-text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--rt-dur-normal) var(--rt-ease);white-space:nowrap}.route-btn:hover:not(:disabled){border-color:var(--rt-primary-border);background:var(--rt-primary-soft);color:var(--rt-primary)}.route-btn:active:not(:disabled){transform:scale(.98)}.route-btn:disabled{cursor:not-allowed;opacity:.55}.route-btn--primary{border-color:var(--rt-primary);background:var(--rt-primary-gradient);color:#fff;box-shadow:var(--rt-sh-primary)}.route-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--rt-primary-hover),var(--rt-primary-deep));border-color:var(--rt-primary-hover);color:#fff;box-shadow:0 6px 20px #2563eb4d;transform:translateY(-1px)}.route-btn--primary:active:not(:disabled){transform:translateY(0) scale(.98)}.route-btn--secondary{background:var(--rt-primary-soft);border-color:var(--rt-primary-border);color:var(--rt-primary)}.route-btn--secondary:hover:not(:disabled){background:var(--rt-primary-border);color:var(--rt-primary-hover)}.route-btn--danger{border-color:var(--rt-danger);background:var(--rt-danger);color:#fff}.route-btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;color:#fff;box-shadow:0 4px 14px #dc262640;transform:translateY(-1px)}.route-btn--ghost{border-color:transparent;background:transparent;color:var(--rt-text-secondary)}.route-btn--ghost:hover:not(:disabled){background:var(--rt-surface-alt);border-color:var(--rt-border);color:var(--rt-text)}.route-btn--sm{height:30px;padding:0 10px;font-size:12px;gap:5px}.route-btn--full{width:100%}.route-icon-btn{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--rt-border);border-radius:var(--rt-r-sm);background:var(--rt-card);color:var(--rt-text-muted);cursor:pointer;transition:all var(--rt-dur-fast) var(--rt-ease)}.route-icon-btn:hover:not(:disabled){border-color:var(--rt-primary-border);background:var(--rt-primary-soft);color:var(--rt-primary)}.route-icon-btn:active{transform:scale(.92)}.route-icon-btn--ghost{border-color:transparent;background:transparent}.route-icon-btn--ghost:hover:not(:disabled){background:var(--rt-surface-alt);border-color:transparent}.route-icon-btn--danger{color:var(--rt-danger)}.route-icon-btn--danger:hover:not(:disabled){border-color:var(--rt-danger-border);background:var(--rt-danger-soft);color:var(--rt-danger)}.route-toast,.route-alert{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:11px 14px;border-radius:var(--rt-r-lg);border:1px solid;font-size:13.5px;font-weight:500;animation:rtAlertSlideIn var(--rt-dur-slow) var(--rt-ease) both;position:relative;overflow:hidden}@keyframes rtAlertSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.route-toast:after,.route-alert:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:100%;border-radius:999px;background:currentColor;opacity:.3;animation:rtAlertProgress 4s linear forwards}@keyframes rtAlertProgress{0%{width:100%}to{width:0}}.route-toast span,.route-alert span{flex:1;min-width:0}.route-toast button,.route-alert button{display:grid;place-items:center;width:26px;height:26px;margin-left:auto;flex-shrink:0;border:1px solid transparent;border-radius:var(--rt-r-sm);background:transparent;color:inherit;cursor:pointer;opacity:.7;transition:all var(--rt-dur-fast) var(--rt-ease)}.route-toast button:hover,.route-alert button:hover{opacity:1;background:#0000000f}.route-toast{border-color:var(--rt-success-border);background:var(--rt-success-soft);color:var(--rt-success)}.route-alert{border-color:var(--rt-danger-border);background:var(--rt-danger-soft);color:var(--rt-danger)}.routes-table-panel{overflow:hidden;border:1px solid var(--rt-border);border-radius:var(--rt-r-2xl);background:var(--rt-card);box-shadow:var(--rt-sh-sm);transition:box-shadow var(--rt-dur-slow) var(--rt-ease)}.routes-table-panel:hover{box-shadow:var(--rt-sh-md)}.routes-toolbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--rt-border);background:var(--rt-surface);flex-wrap:wrap}.route-search{display:flex;align-items:center;gap:8px;min-width:260px;max-width:420px;flex:1;height:38px;padding:0 12px;border:1px solid var(--rt-border-strong);border-radius:var(--rt-r-lg);background:var(--rt-card);transition:all var(--rt-dur-normal) var(--rt-ease);box-shadow:var(--rt-sh-inner)}.route-search:focus-within{border-color:var(--rt-primary);box-shadow:0 0 0 3px var(--rt-primary-glow),var(--rt-sh-inner)}.route-search svg{color:var(--rt-text-muted);flex-shrink:0;transition:color var(--rt-dur-fast) var(--rt-ease)}.route-search:focus-within svg{color:var(--rt-primary)}.route-search input{min-width:0;flex:1;height:100%;border:0;outline:none;color:var(--rt-text);font:inherit;font-size:13.5px;background:transparent}.route-search input::placeholder{color:var(--rt-text-subtle)}.route-filters{display:flex;align-items:center;gap:8px;color:var(--rt-text-muted);flex-wrap:wrap}.route-filters>svg{color:var(--rt-text-subtle);flex-shrink:0}.route-filters select{height:38px;min-width:154px;padding:0 12px;border:1px solid var(--rt-border-strong);border-radius:var(--rt-r-lg);background:var(--rt-card);color:var(--rt-text-secondary);font:inherit;font-size:13px;font-weight:500;outline:none;cursor:pointer;box-shadow:var(--rt-sh-inner);transition:all var(--rt-dur-normal) var(--rt-ease);appearance:auto}.route-filters select:focus{border-color:var(--rt-primary);box-shadow:0 0 0 3px var(--rt-primary-glow)}.route-filters select:hover{border-color:var(--rt-primary-border)}.routes-table-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--rt-border);background:var(--rt-surface);color:var(--rt-text-muted);font-size:12.5px;font-weight:500}.routes-table-meta strong{color:var(--rt-text);font-weight:700}.route-readonly-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--rt-surface-alt);border:1px solid var(--rt-border);color:var(--rt-text-subtle);font-size:10.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.routes-table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.routes-table-wrap::-webkit-scrollbar{height:10px}.routes-table-wrap::-webkit-scrollbar-track{background:var(--rt-surface)}.routes-table-wrap::-webkit-scrollbar-thumb{background:var(--rt-border-strong);border-radius:999px;border:2px solid var(--rt-surface)}.routes-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--rt-text-subtle)}.routes-table{width:100%;min-width:1400px;border-collapse:collapse;font-size:12.5px}.routes-table thead{position:sticky;top:0;z-index:2}.routes-table th{padding:11px 14px;border-bottom:2px solid var(--rt-border);background:var(--rt-surface);color:var(--rt-text-muted);font-size:11px;font-weight:700;text-align:left;vertical-align:middle;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.routes-table td{padding:11px 14px;border-bottom:1px solid var(--rt-border);text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--rt-dur-fast) var(--rt-ease)}.rt-th-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:var(--rt-r-xs);transition:color var(--rt-dur-fast) var(--rt-ease)}.rt-th-btn:hover{color:var(--rt-primary)}.rt-th-btn.is-active{color:inherit}.rt-th-btn.is-active .rt-th-sort{color:var(--rt-primary);opacity:1}.rt-th-sort{display:inline-grid;place-items:center;color:var(--rt-text-subtle);opacity:.45;flex-shrink:0;transition:opacity var(--rt-dur-fast) var(--rt-ease)}.rt-th-btn:hover .rt-th-sort{opacity:.8}.rt-th-label{display:inline-block}.route-th-actions{color:var(--rt-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.routes-table tbody tr{transition:background var(--rt-dur-fast) var(--rt-ease)}.routes-table tbody tr:nth-child(odd){background:#f7faff}.routes-table tbody tr:nth-child(2n){background:var(--rt-card)}.routes-table tbody tr:hover{background:var(--rt-hover)}.routes-table tbody tr.is-selected{background:var(--rt-primary-soft)}.routes-table tbody tr.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--rt-primary)}.routes-table tbody tr:last-child td{border-bottom:none}.route-link--name{max-width:100%;padding:0;border:0;background:transparent;color:var(--rt-primary);font:inherit;font-size:12.5px;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--rt-dur-fast) var(--rt-ease);display:block}.route-link--name:hover{color:var(--rt-primary-hover)}.route-row-sub{display:block;margin-top:2px;color:var(--rt-text-subtle);font-size:11px;font-weight:500}.rt-type-chip{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.rt-type-chip--icon{width:28px;height:28px;padding:0;border-radius:var(--rt-r-md)}.rt-type-chip svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.rt-type-chip--standard{background:var(--rt-brand-soft);color:var(--rt-brand);border:1px solid var(--rt-brand-border)}.rt-type-chip--express{background:var(--rt-warning-soft);color:var(--rt-warning);border:1px solid var(--rt-warning-border)}.rt-type-chip--custom{background:var(--rt-teal-soft);color:var(--rt-teal);border:1px solid var(--rt-teal-border)}.rt-type-chip--cold{background:var(--rt-sky-soft);color:var(--rt-sky);border:1px solid var(--rt-sky-border)}.rt-travel-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--rt-r-sm);background:var(--rt-surface-alt);border:1px solid var(--rt-border);color:var(--rt-text-secondary);font-size:11px;font-weight:600;white-space:nowrap}.rt-location-cell{display:flex;align-items:center;gap:6px;max-width:200px}.rt-location-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.rt-location-dot--origin{background:var(--rt-success);box-shadow:0 0 0 2px var(--rt-success-border)}.rt-location-dot--destination{background:var(--rt-danger);box-shadow:0 0 0 2px var(--rt-danger-border)}.rt-location-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rt-text);font-size:12.5px;font-weight:500}.rt-address-cell{color:var(--rt-text-secondary);font-size:12.5px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-org-cell{color:var(--rt-text);font-size:12.5px;font-weight:500}.rt-meta-cell{color:var(--rt-text-muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.rt-distance-cell{display:inline-block;padding:3px 8px;border-radius:var(--rt-r-sm);background:var(--rt-surface-alt);border:1px solid var(--rt-border);color:var(--rt-text-secondary);font-size:11.5px;font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:nowrap}.route-row-actions{display:flex;align-items:center;gap:4px}.route-row-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--rt-r-sm);background:transparent;color:var(--rt-text-muted);cursor:pointer;transition:all var(--rt-dur-fast) var(--rt-ease)}.route-row-actions button:hover{border-color:var(--rt-primary-border);background:var(--rt-primary-soft);color:var(--rt-primary)}.route-row-actions .route-icon-btn--danger:hover{border-color:var(--rt-danger-border);background:var(--rt-danger-soft);color:var(--rt-danger)}.route-row-actions button:active{transform:scale(.92)}.rt-status{display:inline-flex;align-items:center;gap:5px;min-width:82px;justify-content:center;padding:4px 10px;border-radius:999px;border:1px solid var(--rt-border-strong);background:var(--rt-surface);color:var(--rt-text-secondary);font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.rt-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.rt-status--active{border-color:var(--rt-success-border);background:var(--rt-success-soft);color:var(--rt-success)}.rt-status--active:before{animation:rtStatusDotPulse 1.6s ease-in-out infinite}@keyframes rtStatusDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}.rt-status--inactive{border-color:var(--rt-border-strong);background:var(--rt-surface-alt);color:var(--rt-text-muted)}.rt-status--maintenance{border-color:var(--rt-warning-border);background:var(--rt-warning-soft);color:var(--rt-warning)}.route-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:var(--rt-text-muted);font-size:13px;font-weight:500}.route-empty--large{flex-direction:column;gap:10px;min-height:240px;padding:32px 20px;text-align:center}.route-empty--large svg{display:grid;place-items:center;width:52px;height:52px;padding:12px;border-radius:var(--rt-r-lg);background:var(--rt-surface-alt);color:var(--rt-text-subtle);margin-bottom:4px}.route-empty--large strong{color:var(--rt-text-secondary);font-size:14px;font-weight:600}.route-empty--large span{color:var(--rt-text-subtle);font-size:12.5px;max-width:320px}.routes-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--rt-border);background:var(--rt-surface);flex-wrap:wrap}.routes-pagination-info{color:var(--rt-text-muted);font-size:12.5px;font-weight:500}.routes-pagination-info strong{color:var(--rt-text);font-weight:700}.routes-pagination-controls{display:flex;align-items:center;gap:4px}.rt-page-arrow,.route-page-btn{display:grid;place-items:center;min-width:32px;height:32px;padding:0 6px;border:1px solid var(--rt-border);border-radius:var(--rt-r-md);background:var(--rt-card);color:var(--rt-text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all var(--rt-dur-fast) var(--rt-ease);font-variant-numeric:tabular-nums}.rt-page-arrow:hover:not(:disabled),.route-page-btn:hover:not(.is-active):not(:disabled){border-color:var(--rt-primary-border);background:var(--rt-primary-soft);color:var(--rt-primary)}.route-page-btn.is-active{border-color:var(--rt-primary);background:var(--rt-primary-gradient);color:#fff;box-shadow:var(--rt-sh-primary)}.rt-page-arrow:disabled,.route-page-btn:disabled{opacity:.4;cursor:not-allowed}.route-page-ellipsis{color:var(--rt-text-subtle);font-size:12px;padding:0 4px;user-select:none}.route-drawer-backdrop{position:fixed;inset:0;z-index:59;background:#0f172a4d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:rtBackdropIn var(--rt-dur-normal) var(--rt-ease) both}@keyframes rtBackdropIn{0%{opacity:0}to{opacity:1}}.route-drawer{position:fixed;top:20px;right:20px;bottom:20px;z-index:60;display:flex;width:min(460px,calc(100vw - 40px));flex-direction:column;overflow:hidden;border:1px solid var(--rt-border);border-radius:var(--rt-r-2xl);background:var(--rt-card);box-shadow:var(--rt-sh-xl);animation:rtDrawerIn var(--rt-dur-slow) var(--rt-ease) both}@keyframes rtDrawerIn{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}.route-drawer__header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 20px;background:var(--rt-brand-gradient);color:#fff;position:relative;overflow:hidden}.route-drawer__header:before,.route-drawer__header:after{content:"";position:absolute;border-radius:50%;background:#ffffff0f;pointer-events:none}.route-drawer__header:before{width:120px;height:120px;top:-40px;right:-20px}.route-drawer__header:after{width:80px;height:80px;bottom:-30px;left:20px}.route-drawer__header-content{position:relative;z-index:1;min-width:0;flex:1}.route-drawer__eyebrow{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#ffffffe6;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:10px}.route-drawer h2{margin:0 0 10px;color:#fff;font-size:18px;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;line-height:1.3}.route-drawer__header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.route-drawer__header .rt-status{background:#ffffff2e!important;border-color:#ffffff4d!important;color:#fff!important;backdrop-filter:blur(4px)}.route-drawer__type-tag{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:999px;background:#ffffff2e;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:11.5px;font-weight:600;backdrop-filter:blur(4px)}.route-drawer__header .route-icon-btn,.route-drawer__header .route-icon-btn--ghost{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border:1px solid rgba(255,255,255,.25);border-radius:var(--rt-r-md);background:#ffffff1a;color:#fff;cursor:pointer;transition:background var(--rt-dur-fast) var(--rt-ease);position:relative;z-index:1}.route-drawer__header .route-icon-btn:hover{background:#ffffff38;border-color:#ffffff59;color:#fff}.route-drawer__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.route-drawer-diagram{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;margin:0;padding:18px 20px;background:var(--rt-brand-soft);border-bottom:1px solid var(--rt-brand-border)}.route-drawer-diagram__rail{display:flex;flex-direction:column;align-items:center;gap:0;padding:2px 0}.route-drawer-diagram__rail span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:10px;font-weight:800;flex-shrink:0}.route-drawer-diagram__rail span:first-child{background:var(--rt-success);color:#fff;box-shadow:0 0 0 3px var(--rt-success-border)}.route-drawer-diagram__rail span:last-child{background:var(--rt-danger);color:#fff;box-shadow:0 0 0 3px var(--rt-danger-border)}.route-drawer-diagram__rail i{flex:1;min-height:18px;border-left:2px dashed var(--rt-text-subtle)}.route-drawer-diagram__rail svg{color:var(--rt-brand);flex-shrink:0;margin:4px 0}.route-drawer-diagram__content{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-width:0;padding:2px 0}.route-drawer-diagram__content strong{color:var(--rt-text);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-drawer-diagram__content span{color:var(--rt-text-muted);font-size:11.5px;font-weight:500;padding:4px 0}.route-drawer__section{padding:18px;border-top:1px solid var(--rt-border)}.route-drawer__section:first-child{border-top:none}.route-drawer__section h3{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--rt-text);font-size:13px;font-weight:700;letter-spacing:-.01em}.route-drawer__section h3:before{content:"";display:inline-block;width:3px;height:14px;background:var(--rt-primary);border-radius:2px;flex-shrink:0}.route-detail-list{margin:0;display:grid;gap:8px}.route-detail-list div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:8px;align-items:baseline;padding:8px;border-radius:var(--rt-r-md);transition:background var(--rt-dur-fast) var(--rt-ease)}.route-detail-list div:hover{background:var(--rt-surface)}.route-detail-list dt{color:var(--rt-text-muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.route-detail-list dd{min-width:0;margin:0;color:var(--rt-text);font-size:13px;font-weight:500;overflow-wrap:anywhere}.route-inline-link{display:inline;padding:0;border:0;background:transparent;color:var(--rt-primary);font:inherit;font-weight:600;cursor:pointer;transition:color var(--rt-dur-fast) var(--rt-ease)}.route-inline-link:hover{color:var(--rt-primary-hover)}.route-drawer-address{display:block;margin-top:2px;color:var(--rt-text-muted);font-size:11.5px}.route-drawer__actions{flex-shrink:0;display:flex;gap:10px;padding:14px 18px 18px;border-top:1px solid var(--rt-border);background:var(--rt-card)}.route-drawer__actions .route-btn{height:40px;font-size:14px}.route-drawer__actions .route-btn--full{flex:1}.route-drawer__map{padding:14px;border-bottom:1px solid var(--rt-border)}.route-drawer__map .route-map-canvas{height:220px;border-radius:var(--rt-r-md)}.route-modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:rtBackdropIn var(--rt-dur-normal) var(--rt-ease) both}.route-modal{width:min(720px,100%);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--rt-border);border-radius:var(--rt-r-2xl);background:var(--rt-card);box-shadow:var(--rt-sh-xl);animation:rtModalIn var(--rt-dur-slow) var(--rt-ease) both}.route-modal--wide{width:min(900px,100%)}@keyframes rtModalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.route-modal>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 24px;border-bottom:1px solid var(--rt-border);background:var(--rt-card);position:sticky;top:0;z-index:2;border-radius:var(--rt-r-2xl) var(--rt-r-2xl) 0 0}.route-modal>header h2{margin:0;color:var(--rt-primary);font-size:18px;font-weight:700;letter-spacing:-.01em}.route-modal>header button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--rt-r-sm);background:transparent;color:var(--rt-text-muted);cursor:pointer;transition:all var(--rt-dur-fast) var(--rt-ease)}.route-modal>header button:hover{background:var(--rt-surface-alt);color:var(--rt-text)}.route-form{display:block;padding:20px 24px 0}.route-form-grid{display:grid;gap:16px;margin-bottom:16px}.route-form-grid--top{grid-template-columns:repeat(4,minmax(0,1fr))}.route-form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.route-form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.route-form-divider{height:1px;margin:4px 0 18px;background:var(--rt-border)}.route-form-hint{margin:4px 0 10px;color:var(--rt-text-muted);font-size:12.5px;font-weight:500}.route-field{display:flex;flex-direction:column;gap:6px;min-width:0}.route-field--full{grid-column:1 / -1}.route-field>span{display:flex;align-items:center;gap:2px;color:var(--rt-text);font-size:12.5px;font-weight:600}.route-field em{color:var(--rt-danger);font-style:normal;font-size:13px;line-height:1;margin-left:2px}.route-field input,.route-field select,.route-field textarea{width:100%;min-width:0;height:36px;padding:0 11px;border:1px solid var(--rt-border-strong);border-radius:var(--rt-r-md);background:var(--rt-card);color:var(--rt-text);font:inherit;font-size:13px;outline:none;transition:all var(--rt-dur-normal) var(--rt-ease);box-shadow:var(--rt-sh-inner)}.route-field input::placeholder{color:var(--rt-text-subtle)}.route-field input:hover,.route-field select:hover,.route-field textarea:hover{border-color:var(--rt-primary-border)}.route-field input:focus,.route-field select:focus,.route-field textarea:focus{border-color:var(--rt-primary);box-shadow:0 0 0 3px var(--rt-primary-glow),var(--rt-sh-inner)}.route-field [aria-invalid=true]{border-color:var(--rt-danger);box-shadow:0 0 0 3px #dc26261a}.route-field small{display:flex;align-items:center;gap:4px;color:var(--rt-danger);font-size:11.5px;font-weight:500}.route-builder-layout{display:grid;grid-template-columns:minmax(200px,.45fr) minmax(0,1fr);gap:20px;align-items:start;margin-bottom:8px}.route-builder-rail{display:flex;flex-direction:column;gap:0}.route-point-field{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding-bottom:14px}.route-point-field:not(:last-child):before{content:"";position:absolute;left:13px;top:24px;bottom:0;border-left:2px dashed var(--rt-border-strong)}.route-point-field__marker{position:relative;z-index:1;display:grid;place-items:center;width:24px;height:24px;margin-top:2px;border-radius:50%;font-size:11px;font-weight:800;flex-shrink:0;transition:all var(--rt-dur-normal) var(--rt-ease)}.route-point-field:first-child .route-point-field__marker{background:var(--rt-success);color:#fff;border:2px solid var(--rt-success-border);box-shadow:0 2px 8px #05966940}.route-point-field:not(:first-child):not(:last-child) .route-point-field__marker{background:var(--rt-card);color:var(--rt-text-muted);border:2px solid var(--rt-border-strong)}.route-point-field:last-child .route-point-field__marker{background:var(--rt-danger);color:#fff;border:2px solid var(--rt-danger-border);box-shadow:0 2px 8px #dc262640}.route-point-field label{display:flex;flex-direction:column;gap:5px;min-width:0}.route-point-field label>span{display:flex;align-items:center;gap:2px;color:var(--rt-text-secondary);font-size:11.5px;font-weight:700}.route-point-field em{color:var(--rt-danger);font-style:normal;margin-left:2px}.route-point-field select{width:100%;height:32px;padding:0 8px;border:1px solid var(--rt-border-strong);border-radius:var(--rt-r-sm);background:var(--rt-card);color:var(--rt-text);font:inherit;font-size:12px;outline:none;transition:all var(--rt-dur-normal) var(--rt-ease);box-shadow:var(--rt-sh-inner)}.route-point-field select:focus{border-color:var(--rt-primary);box-shadow:0 0 0 3px var(--rt-primary-glow)}.route-point-field select:hover:not(:disabled){border-color:var(--rt-primary-border)}.route-point-field small{color:var(--rt-danger);font-size:10.5px;font-weight:600}.route-waypoint-picker{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto;padding:6px;border:1px solid var(--rt-border);border-radius:var(--rt-r-sm);background:var(--rt-surface)}.route-waypoint-picker--rail{border:0;padding:0;background:transparent;max-height:100px}.route-waypoint-picker label{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--rt-r-xs);cursor:pointer;font-size:11.5px;font-weight:500;color:var(--rt-text-secondary);transition:background var(--rt-dur-fast) var(--rt-ease)}.route-waypoint-picker label:hover:not(.is-disabled){background:var(--rt-primary-soft)}.route-waypoint-picker label.is-disabled{cursor:not-allowed;opacity:.45}.route-waypoint-picker input[type=checkbox]{width:14px;height:14px;accent-color:var(--rt-primary);flex-shrink:0}.route-waypoint-empty{display:flex;align-items:center;gap:8px;color:var(--rt-text-muted);font-size:12px;padding:8px 4px}.route-builder-map{position:relative;min-height:340px;border-radius:var(--rt-r-lg);overflow:hidden;border:1px solid var(--rt-border);box-shadow:var(--rt-sh-inner);background:#dbeafe}.route-builder-map .route-map-canvas{height:340px;border-radius:var(--rt-r-lg)}.route-builder-map-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:340px;color:var(--rt-text-muted);text-align:center;font-size:12.5px;font-weight:500;background:var(--rt-surface);border-radius:var(--rt-r-lg)}.route-builder-map-empty svg{color:var(--rt-text-subtle);opacity:.6}.route-form footer{display:flex;align-items:center;gap:10px;padding-top:16px;padding-bottom:20px;margin-top:4px;border-top:1px solid var(--rt-border)}.route-map-canvas{position:relative;height:420px;width:100%;overflow:hidden;background:#dbeafe;touch-action:none;cursor:grab;user-select:none}.route-map-canvas:active{cursor:grabbing}.route-map-tiles{position:absolute;inset:0}.route-map-tiles img{position:absolute;max-width:none!important;max-height:none!important;user-select:none;pointer-events:none;image-rendering:auto}.route-map-overlay{position:absolute;inset:0;pointer-events:none}.route-map-overlay polyline{stroke:var(--rt-primary);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 6px rgba(15,23,42,.45))}.route-map-route--road{stroke:#fbbf24;stroke-width:4}.route-map-route--air{stroke:#38bdf8;stroke-width:3;stroke-dasharray:10 6}.route-map-route--sea{stroke:#0ea5e9;stroke-width:3.5;stroke-dasharray:16 7 4 7}.route-map-marker{position:absolute;z-index:3;display:grid;place-items:center;width:34px;height:34px;margin:-30px 0 0 -17px;cursor:default;filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 4px 8px rgba(15,23,42,.5));transition:transform var(--rt-dur-fast) var(--rt-ease)}.route-map-marker:hover{transform:scale(1.15)}.route-map-marker--origin{color:#2563eb}.route-map-marker--waypoint{color:#f59e0b}.route-map-marker--destination{color:#ef4444}.route-map-tooltip{position:absolute;left:50%;bottom:calc(100% + 8px);display:none;min-width:180px;padding:10px 12px;border:1px solid var(--rt-border);border-radius:var(--rt-r-lg);background:#fffffff7;color:var(--rt-text);box-shadow:var(--rt-sh-md);transform:translate(-50%);z-index:10}.route-map-marker:hover .route-map-tooltip,.route-map-marker:focus .route-map-tooltip{display:grid;gap:3px}.route-map-tooltip strong{display:block;font-size:12.5px;font-weight:700;color:var(--rt-text)}.route-map-tooltip span{display:block;color:var(--rt-text-muted);font-size:11px;font-weight:600;text-transform:capitalize}.route-map-tooltip small{display:block;color:var(--rt-text-subtle);font-size:10.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.route-map-legend{position:absolute;left:12px;bottom:12px;z-index:4;display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--rt-border);border-radius:var(--rt-r-md);background:#fffffff0;box-shadow:var(--rt-sh-sm);backdrop-filter:blur(4px);flex-wrap:wrap}.route-map-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--rt-text-secondary);font-size:11px;font-weight:600}.route-map-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}.route-map-legend .is-origin{background:#2563eb}.route-map-legend .is-waypoint{background:#f59e0b}.route-map-legend .is-destination{background:#ef4444}.route-map-zoom{position:absolute;top:12px;right:12px;z-index:4;display:flex;flex-direction:column;gap:2px;padding:4px;border:1px solid var(--rt-border);border-radius:var(--rt-r-md);background:#fffffff0;box-shadow:var(--rt-sh-sm);backdrop-filter:blur(4px)}.route-map-zoom button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:var(--rt-r-sm);background:transparent;color:var(--rt-text-secondary);cursor:pointer;transition:all var(--rt-dur-fast) var(--rt-ease)}.route-map-zoom button:hover:not(:disabled){background:var(--rt-primary-soft);color:var(--rt-primary)}.route-map-zoom button:disabled{opacity:.35;cursor:not-allowed}.route-map-zoom button:active:not(:disabled){transform:scale(.9)}.route-confirm{width:min(480px,100%);padding:0;border:1px solid var(--rt-border);border-radius:var(--rt-r-2xl);background:var(--rt-card);box-shadow:var(--rt-sh-xl);overflow:hidden;animation:rtModalIn var(--rt-dur-slow) var(--rt-ease) both;display:block;text-align:left}.route-confirm>svg{display:grid;place-items:center;width:52px;height:52px;padding:14px;border-radius:var(--rt-r-lg);background:var(--rt-danger-soft);color:var(--rt-danger);border:1px solid var(--rt-danger-border);margin:28px 28px 18px}.route-confirm h2{margin:0 28px 8px;color:var(--rt-text);font-size:19px;font-weight:700;letter-spacing:-.02em}.route-confirm p{margin:0 28px 20px;color:var(--rt-text-secondary);font-size:14px;line-height:1.55}.route-confirm p strong{color:var(--rt-text);font-weight:700}.route-confirm footer{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px 24px;border-top:1px solid var(--rt-border);background:var(--rt-surface)}.is-spinning{animation:rtSpin .7s linear infinite}@keyframes rtSpin{to{transform:rotate(360deg)}}:where(.routes-page button,.routes-page a,.routes-page select,.routes-page input,.routes-page [tabindex]):focus-visible{outline:2px solid var(--rt-primary);outline-offset:2px}@media(max-width:960px){.routes-page{padding:20px 16px 40px}.routes-head{flex-direction:column;align-items:stretch;padding:18px}.routes-actions{justify-content:flex-start;flex-wrap:wrap}.routes-toolbar{flex-direction:column;align-items:stretch;padding:12px 14px}.route-search{min-width:0;max-width:none;width:100%}.route-filters{width:100%}.route-filters select{flex:1 1 140px;min-width:0}.route-drawer{inset:10px;width:auto}.route-detail-list div{grid-template-columns:1fr;gap:2px}.route-builder-layout{grid-template-columns:1fr}.route-builder-map{min-height:260px}.route-builder-map .route-map-canvas{height:260px}}@media(max-width:700px){.route-form-grid--top{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.routes-title{gap:12px}.routes-title-icon{width:38px;height:38px}.routes-title h1{font-size:18px}.route-modal{border-radius:var(--rt-r-xl)}.route-modal>header{border-radius:var(--rt-r-xl) var(--rt-r-xl) 0 0}.route-modal-backdrop{padding:12px}.route-form-grid--top,.route-form-grid--3,.route-form-grid--2{grid-template-columns:1fr}.route-form{padding:16px}.route-map-canvas{height:280px}.routes-pagination-info{text-align:center;width:100%}.routes-pagination-controls{justify-content:center;width:100%}}@media print{.routes-toolbar,.routes-pagination,.route-row-actions,.routes-actions,.route-drawer,.route-drawer-backdrop,.route-map-zoom,.route-map-legend{display:none!important}.routes-table-panel{box-shadow:none;border:1px solid #ccc}.routes-table th,.routes-table td{font-size:10px;padding:6px 8px}}:root{--sd-bg: #f4f7fb;--sd-card: #ffffff;--sd-surface: #f8fafc;--sd-surface-elevated: #ffffff;--sd-hover: #f1f5f9;--sd-active: #e8edf5;--sd-border: #e2e8f0;--sd-border-strong: #cbd5e1;--sd-border-subtle: #f1f5f9;--sd-text: #0f172a;--sd-text-secondary: #475569;--sd-text-muted: #64748b;--sd-text-subtle: #94a3b8;--sd-text-ghost: #c1cbd8;--sd-brand: #2563eb;--sd-brand-hover: #1d4ed8;--sd-brand-soft: #eff6ff;--sd-brand-border: #bfdbfe;--sd-brand-deep: #1e3a8a;--sd-brand-glow: rgba(37, 99, 235, .18);--sd-brand-glow-strong: rgba(37, 99, 235, .35);--sd-brand-gradient: linear-gradient(135deg, #2563eb, #1e40af, #1e3a8a);--sd-brand-gradient-soft: linear-gradient(135deg, #eff6ff, #dbeafe);--sd-success: #059669;--sd-success-soft: #ecfdf5;--sd-success-border: #a7f3d0;--sd-success-glow: rgba(5, 150, 105, .15);--sd-warning: #d97706;--sd-warning-soft: #fffbeb;--sd-warning-border: #fde68a;--sd-danger: #dc2626;--sd-danger-soft: #fef2f2;--sd-danger-border: #fecaca;--sd-teal: #0d9488;--sd-teal-soft: #f0fdfa;--sd-purple: #7c3aed;--sd-purple-soft: #f5f3ff;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 16px;--r-2xl: 20px;--sd-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sd-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--sd-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--sd-sh-lg: 0 12px 48px rgba(15, 23, 42, .12), 0 4px 12px rgba(15, 23, 42, .06);--sd-sh-xl: 0 20px 60px rgba(15, 23, 42, .15), 0 6px 16px rgba(15, 23, 42, .08);--sd-sh-brand: 0 4px 14px var(--sd-brand-glow);--sd-sh-brand-strong: 0 6px 24px var(--sd-brand-glow-strong);--sd-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .06);--sd-sh-card-hover: 0 8px 32px rgba(15, 23, 42, .1), 0 2px 8px rgba(15, 23, 42, .05);--sd-ease: cubic-bezier(.16, 1, .3, 1);--sd-ease-out: cubic-bezier(.33, 1, .68, 1);--sd-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--sd-ease-smooth: cubic-bezier(.4, 0, .2, 1);--sd-dur-fast: .12s;--sd-dur-normal: .2s;--sd-dur-slow: .35s}.shipment-detail-page{width:100%;max-width:1380px;margin:0 auto;padding:32px 28px 56px;color:var(--sd-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}.shipment-detail-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;padding:20px 24px;border-radius:var(--r-xl);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-sh-sm);overflow:hidden}.shipment-detail-head:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--sd-brand-gradient);border-radius:var(--r-xl) var(--r-xl) 0 0}.shipment-detail-title,.shipment-detail-badges{display:flex;align-items:center;gap:12px;min-width:0}.shipment-detail-title>svg{flex:0 0 auto;color:var(--sd-brand)}.shipment-detail-title>button:first-child{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--sd-border);border-radius:var(--r-md);background:var(--sd-card);color:var(--sd-text-secondary);cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-detail-title>button:first-child:hover{background:var(--sd-brand-soft);border-color:var(--sd-brand-border);color:var(--sd-brand);box-shadow:var(--sd-sh-brand);transform:translate(-2px)}.shipment-detail-title>button:first-child:active{transform:translate(-1px) scale(.97)}.shipment-breadcrumb{padding:0;border:0;background:transparent;color:var(--sd-brand);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:color var(--sd-dur-fast) var(--sd-ease);position:relative}.shipment-breadcrumb:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--sd-brand);border-radius:1px;transition:width var(--sd-dur-normal) var(--sd-ease)}.shipment-breadcrumb:hover{color:var(--sd-brand-hover)}.shipment-breadcrumb:hover:after{width:100%}.shipment-detail-title h1{min-width:0;margin:0;color:var(--sd-text);font-size:21px;font-weight:700;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-detail-badges{gap:10px}.shipment-detail-badges>span:not(.shipment-status-badge){display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:999px;border:1px solid var(--sd-brand-border);background:var(--sd-brand-soft);color:var(--sd-brand);font-size:12.5px;font-weight:600;letter-spacing:.01em}.shipment-detail-tabs{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));width:min(660px,100%);margin-bottom:24px;padding:4px;border-radius:var(--r-lg);border:1px solid var(--sd-border);background:var(--sd-surface);box-shadow:var(--sd-sh-inner)}.shipment-detail-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--sd-text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease);position:relative}.shipment-detail-tabs button:hover:not(.is-active){background:var(--sd-hover);color:var(--sd-text-secondary)}.shipment-detail-tabs button.is-active{background:var(--sd-brand-gradient);color:#fff;border-color:transparent;box-shadow:var(--sd-sh-brand-strong)}.shipment-detail-tabs button.is-active svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.shipment-detail-tabs button:active{transform:scale(.98)}.shipment-detail-layout{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start}.shipment-detail-sensors{position:sticky;top:20px;align-self:start}@media(max-width:900px){.shipment-detail-layout{grid-template-columns:1fr}.shipment-detail-sensors{position:static}}.shipment-tab-content{animation:tabFadeIn var(--sd-dur-slow) var(--sd-ease-out) both}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.shipment-status-card,.shipment-map-card,.shipment-general-card{border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);box-shadow:var(--sd-sh-sm);transition:box-shadow var(--sd-dur-slow) var(--sd-ease),border-color var(--sd-dur-slow) var(--sd-ease)}.shipment-status-card:hover,.shipment-map-card:hover,.shipment-general-card:hover{box-shadow:var(--sd-sh-card-hover);border-color:var(--sd-brand-border)}.shipment-status-card h2,.shipment-map-card h2,.shipment-general-card h2{margin:0;color:var(--sd-text);font-size:17px;font-weight:700;letter-spacing:-.02em}.shipment-status-card{padding:28px 30px;position:relative;overflow:hidden}.shipment-status-card:after{content:"";position:absolute;top:-60px;right:-60px;width:180px;height:180px;border-radius:50%;background:var(--sd-brand-glow);opacity:.15;pointer-events:none;filter:blur(40px)}.shipment-progress{margin:4px 0 32px;padding-top:8px;position:relative;z-index:1}.shipment-progress-track{position:relative;height:24px;margin-bottom:4px}.shipment-progress-track__line,.shipment-progress-track__fill{position:absolute;top:9px;left:0;height:5px;border-radius:999px}.shipment-progress-track__line{width:100%;background:linear-gradient(90deg,#e8ecf4,#dde3ef);box-shadow:var(--sd-sh-inner)}.shipment-progress-track__fill{width:0;background:var(--sd-brand-gradient);box-shadow:0 2px 10px var(--sd-brand-glow-strong),0 0 20px var(--sd-brand-glow);transition:width .7s var(--sd-ease-out);position:relative}.shipment-progress-track__fill:after{content:"";position:absolute;right:0;top:50%;width:12px;height:12px;margin-top:-6px;margin-right:-6px;border-radius:50%;background:var(--sd-brand);box-shadow:0 0 0 4px var(--sd-brand-glow-strong),0 0 12px var(--sd-brand-glow-strong);animation:progressPulse 2s var(--sd-ease-smooth) infinite}@keyframes progressPulse{0%,to{box-shadow:0 0 0 4px var(--sd-brand-glow-strong),0 0 12px var(--sd-brand-glow-strong)}50%{box-shadow:0 0 0 8px var(--sd-brand-glow),0 0 24px var(--sd-brand-glow-strong)}}.shipment-progress-pin{position:absolute;top:1px;display:grid;place-items:center;width:22px;height:22px;margin-left:-11px;border:3px solid var(--sd-card);border-radius:50%;background:#c7cedb;color:#fff;font-size:9px;font-weight:800;line-height:1;box-shadow:var(--sd-sh-sm);transition:transform var(--sd-dur-normal) var(--sd-ease-spring),box-shadow var(--sd-dur-normal) var(--sd-ease);z-index:2}.shipment-progress-pin:hover{transform:scale(1.2);box-shadow:var(--sd-sh-md)}.shipment-progress-pin--current{background:var(--sd-brand);box-shadow:0 0 0 5px var(--sd-brand-glow)}.shipment-progress-pin--source,.shipment-progress-pin--destination{background:var(--sd-brand-deep)}.shipment-progress-pin--waypoint{background:var(--sd-teal)}.shipment-progress-stops{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0 0}.shipment-progress-stop{display:grid;gap:6px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--sd-border);background:var(--sd-surface);min-width:0;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-progress-stop:hover{border-color:var(--sd-brand-border);box-shadow:var(--sd-sh-sm)}.shipment-progress-stop--source{border-left:3px solid var(--sd-brand-deep)}.shipment-progress-stop--current{border-left:3px solid var(--sd-brand);background:var(--sd-brand-soft)}.shipment-progress-stop--waypoint{border-left:3px solid var(--sd-teal)}.shipment-progress-stop--destination{border-left:3px solid var(--sd-danger)}.shipment-progress-stop strong{color:var(--sd-text);font-size:12px;font-weight:700;letter-spacing:-.005em;text-transform:uppercase}.shipment-progress-stop small{color:var(--sd-text-muted);font-size:12px;overflow-wrap:anywhere;line-height:1.4}.shipment-progress-stop--current strong{color:var(--sd-brand)}.shipment-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;position:relative;z-index:1}.shipment-map-card{overflow:hidden;padding:22px}.shipment-map-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.shipment-map-card>header>div{display:inline-flex;align-items:center;gap:10px;min-width:0}.shipment-map-card>header>div>svg{color:var(--sd-brand);flex-shrink:0}.shipment-map-link{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--sd-brand-border);border-radius:999px;font-size:12px;font-weight:600;color:var(--sd-brand);text-decoration:none;background:var(--sd-brand-soft);transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-map-link:hover{background:var(--sd-brand);color:#fff;border-color:var(--sd-brand);box-shadow:var(--sd-sh-brand);transform:translateY(-1px)}.shipment-map-link:active{transform:translateY(0) scale(.98)}.shipment-map-actions{display:inline-flex;align-items:center;gap:10px}.shipment-map-mode-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;border:1px solid var(--sd-brand-border);background:var(--sd-brand-soft);color:var(--sd-brand);font-size:12px;font-weight:600}.shipment-map-route-label{margin:0 0 4px;color:var(--sd-text);font-size:14px;font-weight:600;letter-spacing:-.01em}.shipment-map-meta{margin:0 0 14px;color:var(--sd-text-muted);font-size:12.5px;font-weight:500}.shipment-map-note{margin:0 0 12px;padding:8px 12px;border-radius:var(--r-md);background:var(--sd-warning-soft);border:1px solid var(--sd-warning-border);color:var(--sd-warning);font-size:12px;font-weight:600}.shipment-map-zoom{position:absolute;right:14px;bottom:14px;display:grid;gap:4px;padding:6px;border-radius:var(--r-lg);background:#fffffff0;border:1px solid var(--sd-border);box-shadow:var(--sd-sh-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10}.shipment-map-zoom button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--sd-border);border-radius:var(--r-md);background:var(--sd-card);color:var(--sd-text-secondary);cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-map-zoom button:hover:not(:disabled){background:var(--sd-brand-soft);border-color:var(--sd-brand-border);color:var(--sd-brand);box-shadow:var(--sd-sh-brand);transform:scale(1.05)}.shipment-map-zoom button:active:not(:disabled){transform:scale(.95)}.shipment-map-zoom button:disabled{opacity:.35;cursor:not-allowed}.shipment-map-zoom-level{text-align:center;font-size:10px;font-weight:700;color:var(--sd-text-muted);padding:2px 0;font-variant-numeric:tabular-nums}.shipment-map-canvas{position:relative;width:100%;min-height:520px;max-height:520px;overflow:hidden;border:1px solid var(--sd-border);border-radius:var(--r-lg);background:#aadaff;aspect-ratio:16 / 8;touch-action:none;cursor:grab;user-select:none;transition:border-color var(--sd-dur-normal) var(--sd-ease)}.shipment-map-canvas:hover{border-color:var(--sd-brand-border)}.shipment-map-canvas:active{cursor:grabbing}.shipment-map-tiles{position:absolute;inset:0;background:#e8eef5;overflow:hidden}.shipment-map-tiles img{position:absolute;image-rendering:auto;user-select:none;-webkit-user-drag:none}.shipment-map-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.shipment-map-route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.shipment-map-route--road{stroke:#fbbf24;stroke-width:4px;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45))}.shipment-map-route--air{stroke:#38bdf8;stroke-width:3.5px;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45))}.shipment-map-route--sea{stroke:#0ea5e9;stroke-width:3.5px;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.85)) drop-shadow(0 2px 4px rgba(15,23,42,.45))}.shipment-map-asset-destination-route{stroke:#0ea5e9;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 10;vector-effect:non-scaling-stroke;opacity:.95;filter:drop-shadow(0 0 3px rgba(255,255,255,.9)) drop-shadow(0 2px 4px rgba(15,23,42,.38))}.shipment-map-marker{position:absolute;display:grid;place-items:center;width:30px;height:30px;margin:-30px 0 0 -15px;cursor:pointer;z-index:3;color:var(--sd-brand);filter:drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 3px 6px rgba(15,23,42,.55));transition:transform var(--sd-dur-normal) var(--sd-ease-spring),filter var(--sd-dur-normal) var(--sd-ease)}.shipment-map-marker__icon{width:30px;height:30px;fill:currentColor;stroke:#fff;stroke-width:2;paint-order:stroke}.shipment-map-marker--source{color:#2563eb}.shipment-map-marker--waypoint{color:#f59e0b}.shipment-map-marker--destination{color:#ef4444}.shipment-map-marker:hover,.shipment-map-marker:focus-visible{z-index:5;outline:none;transform:translateY(-4px) scale(1.1);filter:drop-shadow(0 6px 12px rgba(15,23,42,.4))}.shipment-map-tooltip{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%) scale(.92);min-width:170px;padding:10px 14px;border-radius:var(--r-md);background:var(--sd-card);border:1px solid var(--sd-border);box-shadow:var(--sd-sh-lg);color:var(--sd-text);text-align:center;pointer-events:none;opacity:0;transition:opacity var(--sd-dur-normal) var(--sd-ease),transform var(--sd-dur-normal) var(--sd-ease-spring);white-space:pre-line;z-index:4}.shipment-map-tooltip:after{content:"";position:absolute;top:100%;left:50%;width:10px;height:10px;margin-left:-5px;margin-top:-5px;background:var(--sd-card);border-right:1px solid var(--sd-border);border-bottom:1px solid var(--sd-border);transform:rotate(45deg)}.shipment-map-marker:hover .shipment-map-tooltip,.shipment-map-marker:focus-visible .shipment-map-tooltip{opacity:1;transform:translate(-50%) scale(1)}.shipment-map-tooltip strong{display:block;font-size:13px;font-weight:700;color:var(--sd-text);margin-bottom:3px;overflow-wrap:anywhere}.shipment-map-tooltip small{display:block;font-size:11px;font-weight:500;color:var(--sd-text-muted);font-variant-numeric:tabular-nums}.shipment-map-footnote{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--sd-text-subtle);font-size:11.5px}.shipment-map-footnote svg{flex-shrink:0}.shipment-map-legend{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-radius:var(--r-md);background:#fffffff0;border:1px solid var(--sd-border);box-shadow:var(--sd-sh-md);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10;font-size:11px;font-weight:600;color:var(--sd-text-secondary)}.shipment-map-legend-item{display:flex;align-items:center;gap:8px}.shipment-map-legend-swatch{width:14px;height:4px;border-radius:2px;flex-shrink:0}.shipment-map-legend-swatch--route,.shipment-map-legend-swatch--road{background:#fbbf24}.shipment-map-legend-swatch--air{background:#38bdf8}.shipment-map-legend-swatch--sea{background:#0ea5e9}.shipment-map-legend-swatch--asset-destination{height:5px;background:radial-gradient(circle,#0ea5e9 0 2px,transparent 2.5px) 0 50% / 7px 5px repeat-x}.shipment-map-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.shipment-map-legend-dot--source{background:#2563eb}.shipment-map-legend-dot--waypoint{background:#f59e0b}.shipment-map-legend-dot--destination{background:#ef4444}.shipment-general-card{padding:28px}.shipment-general-card>h2{margin-bottom:4px}.shipment-general-subtitle{color:var(--sd-text-muted);font-size:13px;margin:0 0 20px}.shipment-general-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.shipment-detail-item{display:grid;gap:8px;min-height:80px;padding:16px;border:1px solid var(--sd-border);border-radius:var(--r-md);background:var(--sd-surface);transition:all var(--sd-dur-normal) var(--sd-ease);position:relative;overflow:hidden}.shipment-detail-item:before{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--sd-brand-gradient);transition:width var(--sd-dur-slow) var(--sd-ease)}.shipment-detail-item:hover{border-color:var(--sd-brand-border);box-shadow:var(--sd-sh-sm);transform:translateY(-1px)}.shipment-detail-item:hover:before{width:100%}.shipment-detail-item span{color:var(--sd-text-muted);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.shipment-detail-item strong{min-width:0;color:var(--sd-text);font-size:13.5px;font-weight:600;overflow-wrap:anywhere;line-height:1.4}.shipment-detail-user{display:flex;align-items:center;gap:10px}.shipment-detail-user__avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sd-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--sd-sh-brand)}.shipment-detail-user__text{display:flex;flex-direction:column;min-width:0;gap:1px}.shipment-detail-user__text strong{color:var(--sd-text);font-size:13px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.005em}.shipment-detail-user__text span{color:var(--sd-text-muted);font-size:11.5px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-status-badge{display:inline-flex;align-items:center;gap:6px;min-width:92px;justify-content:center;padding:5px 14px;border-radius:999px;border:1px solid var(--sd-border-strong);background:var(--sd-surface);color:var(--sd-text-secondary);font-size:11.5px;font-weight:700;letter-spacing:.02em;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.shipment-status-badge--planned,.shipment-status-badge--draft{border-color:var(--sd-brand-border);background:var(--sd-brand-soft);color:var(--sd-brand)}.shipment-status-badge--in-transit{border-color:var(--sd-success-border);background:var(--sd-success-soft);color:var(--sd-success)}.shipment-status-badge--in-transit:before{animation:statusPulse 1.5s var(--sd-ease-smooth) infinite}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.shipment-status-badge--delayed{border-color:var(--sd-warning-border);background:var(--sd-warning-soft);color:var(--sd-warning)}.shipment-status-badge--delivered{border-color:var(--sd-success-border);background:var(--sd-success-soft);color:var(--sd-success)}.shipment-status-badge--cancelled{border-color:var(--sd-danger-border);background:var(--sd-danger-soft);color:var(--sd-danger)}.shipment-status-badge--not-reporting,.shipment-status-badge--history,.shipment-status-badge--mixed{border-color:var(--sd-warning-border);background:var(--sd-warning-soft);color:var(--sd-warning)}.shipment-asset-status--history{border-color:var(--sd-border);background:var(--sd-surface);color:var(--sd-text-secondary)}.shipment-map-legend-swatch--trip{width:18px;height:0;border-top:3px dashed #7c3aed}.shipment-detail-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:320px;border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);color:var(--sd-text-muted);font-size:14px;font-weight:500;box-shadow:var(--sd-sh-sm)}.shipment-detail-state--error{border-color:var(--sd-danger-border);background:var(--sd-danger-soft);color:var(--sd-danger)}.shipment-skeleton-card{border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);padding:24px;box-shadow:var(--sd-sh-sm)}.shipment-skeleton-bar{height:14px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--sd-surface) 0%,var(--sd-hover) 40%,var(--sd-surface) 80%);background-size:300% 100%;animation:shimmer 1.8s var(--sd-ease-smooth) infinite;margin-bottom:14px}.shipment-skeleton-bar:last-child{margin-bottom:0}.shipment-skeleton-bar--lg{height:20px;width:70%;margin-bottom:18px}.shipment-skeleton-bar--sm{width:40%}.shipment-skeleton-bar--md{width:60%}.shipment-skeleton-bar--xl{height:180px;width:100%}.is-spinning{animation:detail-spin .8s linear infinite}@keyframes detail-spin{to{transform:rotate(360deg)}}.shipment-status-detail{display:flex;flex-direction:column;gap:16px;padding:18px;border:1px solid var(--sd-border);border-radius:var(--r-md);background:var(--sd-surface);transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-status-detail:hover{border-color:var(--sd-brand-border);box-shadow:var(--sd-sh-sm)}.shipment-status-detail>div{display:flex;flex-direction:column;gap:4px}.shipment-status-detail__label{color:var(--sd-text-muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.shipment-status-detail strong{color:var(--sd-text);font-size:14px;font-weight:600}.shipment-status-detail small{color:var(--sd-text-subtle);font-size:11.5px;font-weight:500}.shipment-status-detail--right{text-align:right}.shipment-status-detail--right>div{align-items:flex-end}.shipment-status-head{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:28px}.shipment-status-meta{display:inline-flex;align-items:center;gap:8px;color:var(--sd-text-secondary);font-size:13px}.shipment-status-meta svg{color:var(--sd-brand);opacity:.7;flex-shrink:0}.shipment-status-meta__label{color:var(--sd-text-muted);font-weight:600;font-size:12px}.shipment-status-meta strong{color:var(--sd-text);font-weight:600;font-size:13px}.shipment-progress-endcap{position:absolute;right:-4px;top:0;display:grid;place-items:center;width:24px;height:24px;color:var(--sd-text-subtle);z-index:1}@media(max-width:1100px){.shipment-general-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shipment-status-grid{grid-template-columns:1fr}}@media(max-width:720px){.shipment-detail-page{padding:20px 16px 40px}.shipment-detail-head{padding:18px}.shipment-detail-head,.shipment-detail-title,.shipment-detail-badges,.shipment-map-card>header{align-items:stretch;flex-direction:column}.shipment-detail-tabs{grid-template-columns:1fr;width:100%}.shipment-status-head{flex-direction:column;align-items:flex-start;gap:12px}.shipment-map-actions,.shipment-map-card>header>div{width:100%}.shipment-map-actions{justify-content:space-between;flex-wrap:wrap;gap:8px}.shipment-progress-stops{grid-template-columns:1fr}.shipment-map-canvas{min-height:380px;max-height:380px}.shipment-general-grid{grid-template-columns:1fr}.shipment-detail-title h1{font-size:18px}.shipment-map-legend{display:none}}@media(max-width:480px){.shipment-detail-page{padding:16px 12px 32px}.shipment-detail-head{padding:14px}.shipment-status-card{padding:20px 18px}.shipment-map-card{padding:16px}.shipment-map-canvas{min-height:300px;max-height:300px}}.shipment-asset-bar{margin-bottom:18px;border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);box-shadow:var(--sd-sh-sm);overflow:hidden}.shipment-asset-bar__head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--sd-surface);border-bottom:1px solid var(--sd-border)}.shipment-asset-bar__head h2{margin:0;font-size:13px;font-weight:700;letter-spacing:-.01em;color:var(--sd-text)}.shipment-asset-bar__head svg{color:var(--sd-brand)}.shipment-asset-bar__count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--sd-brand);color:#fff;font-size:11px;font-weight:800}.shipment-asset-bar__hint{margin-left:auto;color:var(--sd-text-muted);font-size:11.5px;font-weight:500}.shipment-asset-bar__scroll{display:flex;gap:12px;padding:14px 16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.shipment-asset-bar__scroll::-webkit-scrollbar{height:6px}.shipment-asset-bar__scroll::-webkit-scrollbar-thumb{background:var(--sd-border-strong);border-radius:999px}.shipment-asset-bar__scroll::-webkit-scrollbar-track{background:transparent}.shipment-asset-bar__empty{display:grid;place-items:center;gap:6px;padding:28px 16px;color:var(--sd-text-subtle);text-align:center}.shipment-asset-bar__empty strong{color:var(--sd-text-secondary);font-size:13px}.shipment-asset-bar__empty span{font-size:12.5px}.shipment-asset-card{flex:0 0 220px;display:grid;gap:8px;padding:12px 14px;border:1px solid var(--sd-border);border-radius:var(--r-lg);background:var(--sd-surface);scroll-snap-align:start;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-asset-card:hover{border-color:var(--sd-brand-border);background:var(--sd-card);box-shadow:var(--sd-sh-sm);transform:translateY(-1px)}.shipment-asset-card.is-selected{border-color:var(--sd-brand);background:var(--sd-brand-soft);box-shadow:var(--sd-sh-brand)}.shipment-asset-card__top{display:flex;align-items:center;gap:10px;min-width:0}.shipment-asset-card__icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--sd-brand-soft);border:1px solid var(--sd-brand-border);color:var(--sd-brand);flex-shrink:0}.shipment-asset-card__name{display:flex;flex-direction:column;min-width:0;gap:1px}.shipment-asset-card__name strong{font-size:13px;font-weight:700;color:var(--sd-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-asset-card__name small{font-size:11px;color:var(--sd-text-muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-asset-card__link{margin-left:auto;color:var(--sd-brand);opacity:.7;flex-shrink:0}.shipment-asset-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shipment-asset-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em;border:1px solid}.shipment-asset-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.shipment-asset-status--reporting{background:var(--sd-success-soft);border-color:var(--sd-success-border);color:var(--sd-success)}.shipment-asset-status--not-reporting{background:var(--sd-warning-soft);border-color:var(--sd-warning-border);color:var(--sd-warning)}.shipment-asset-status--out-of-coverage{background:var(--sd-surface);border-color:var(--sd-border-strong);color:var(--sd-text-muted)}.shipment-asset-stable{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px}.shipment-asset-stable--stable{background:var(--sd-success-soft);color:var(--sd-success);border:1px solid var(--sd-success-border)}.shipment-asset-stable--error{background:var(--sd-danger-soft);color:var(--sd-danger);border:1px solid var(--sd-danger-border)}.shipment-asset-stable--unknown{background:var(--sd-surface);color:var(--sd-text-subtle);border:1px solid var(--sd-border)}.shipment-asset-card__org{color:var(--sd-text-subtle);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-assets-map-bar{display:flex;align-items:center;gap:12px;margin-bottom:14px;border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);box-shadow:var(--sd-sh-sm);padding:10px 12px;overflow:hidden}.shipment-assets-map-bar__head{display:inline-flex;align-items:center;gap:6px;padding-right:12px;border-right:1px solid var(--sd-border);color:var(--sd-text-secondary);font-size:13px;font-weight:700;white-space:nowrap;flex-shrink:0}.shipment-assets-map-bar__scroll{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:4px 0;flex:1;min-width:0}.shipment-assets-map-bar__scroll::-webkit-scrollbar{height:6px}.shipment-assets-map-bar__scroll::-webkit-scrollbar-thumb{background:var(--sd-border-strong);border-radius:999px}.shipment-assets-map-bar__scroll::-webkit-scrollbar-track{background:transparent}.shipment-assets-map-bar .shipment-asset-card{flex:0 0 165px;scroll-snap-align:start}.shipment-asset-card--all{background:var(--sd-brand-soft);border-color:var(--sd-brand-border)}.shipment-asset-card--all.is-selected{background:#e0e7ff;border-color:var(--sd-brand)}.shipment-env-card{border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);box-shadow:var(--sd-sh-sm);overflow:hidden}.shipment-env-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--sd-surface);border-bottom:1px solid var(--sd-border);flex-wrap:wrap}.shipment-env-head__left h3{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;color:var(--sd-text)}.shipment-env-head__left h3 svg{color:var(--sd-brand)}.shipment-env-head__left p{margin:4px 0 0;color:var(--sd-text-muted);font-size:12px}.shipment-env-asset-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--sd-card);border:1px solid var(--sd-border);color:var(--sd-text-muted);font-size:11.5px;font-weight:600;white-space:nowrap}.shipment-env-grid{display:grid;grid-template-columns:260px 1fr;gap:18px;padding:18px}@media(max-width:900px){.shipment-env-grid{grid-template-columns:1fr}}.shipment-env-sensors{border:1px solid var(--sd-border);border-radius:var(--r-lg);background:var(--sd-surface);overflow:hidden;display:flex;flex-direction:column;min-height:260px}.shipment-env-sensors__head{padding:12px 14px;border-bottom:1px solid var(--sd-border);background:var(--sd-card)}.shipment-env-sensors__head h4{margin:0;font-size:12px;font-weight:700;color:var(--sd-text)}.shipment-env-sensors__head small{color:var(--sd-text-muted);font-size:11px}.shipment-env-sensor-list{display:grid;gap:6px;padding:12px;overflow-y:auto;max-height:360px}.shipment-env-sensor-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--sd-border);background:var(--sd-card);font-size:13px;cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-env-sensor-item.is-active{background:var(--sd-brand-gradient);color:#fff;border-color:transparent;box-shadow:var(--sd-sh-brand-strong)}.shipment-env-sensor-item:not(.is-active):hover{background:var(--sd-brand-soft);border-color:var(--sd-brand-border);color:var(--sd-brand)}.shipment-env-sensor-item__left{display:flex;align-items:center;gap:8px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shipment-env-sensor-item strong{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700;flex-shrink:0}.shipment-env-chart-card{border:1px solid var(--sd-border);border-radius:var(--r-lg);background:var(--sd-card);overflow:hidden;display:flex;flex-direction:column}.shipment-env-chart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--sd-border);background:var(--sd-surface);flex-wrap:wrap}.shipment-env-chart-value{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.shipment-env-chart-value__num{font-size:22px;font-weight:800;color:var(--sd-brand)}.shipment-env-chart-value__time{font-size:11.5px;color:var(--sd-text-muted)}.shipment-env-chart-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.shipment-env-range{display:inline-flex;align-items:center;gap:6px}.shipment-env-range input{padding:4px 6px;border:1px solid var(--sd-border);border-radius:6px;font-size:11px;background:#fff}.shipment-env-show-btn{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--sd-brand);background:var(--sd-brand);color:#fff;font-size:12px;font-weight:600;cursor:pointer}.shipment-env-show-btn:hover{background:var(--sd-brand-hover)}.shipment-env-chart-panel{padding:12px}.shipment-env-chart-wrap{height:300px;background:#fff;border:1px solid var(--sd-border);border-radius:var(--r-md);padding:12px 8px 8px 0;box-shadow:var(--sd-sh-xs)}.shipment-env-chart-loading,.shipment-env-chart-empty{height:300px;display:grid;place-items:center;text-align:center;border:1px solid var(--sd-border);border-radius:var(--r-md);padding:24px}.shipment-env-chart-loading{color:var(--sd-text-muted);background:linear-gradient(180deg,#f8fbff,#fff);gap:8px;font-size:13px;font-weight:500}.shipment-env-chart-empty{border-style:dashed;background:var(--sd-surface);color:var(--sd-text-subtle);gap:8px}.shipment-env-chart-empty__icon{width:48px;height:48px;border-radius:12px;background:var(--sd-brand-soft);border:1px solid var(--sd-brand-border);display:grid;place-items:center;color:var(--sd-brand)}.shipment-env-chart-empty strong{color:var(--sd-text);font-size:13px}.shipment-env-chart-empty span{color:var(--sd-text-subtle);font-size:12.5px;line-height:1.5;max-width:320px}.shipment-env-chart-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;color:var(--sd-text-muted);flex-wrap:wrap}.shipment-env-chart-foot__left{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.shipment-env-legend-dots{display:inline-flex;gap:8px;margin-left:8px;flex-wrap:wrap}.shipment-env-legend-dot{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--sd-text-muted)}.shipment-env-legend-dot span{width:10px;height:10px;border-radius:2px;display:inline-block}.shipment-env-empty,.shipment-env-loading{display:grid;place-items:center;gap:8px;padding:32px 16px;text-align:center;color:var(--sd-text-subtle)}.shipment-env-empty strong{color:var(--sd-text-secondary);font-size:13px}.shipment-env-empty span{font-size:12.5px;line-height:1.5;max-width:420px}.shipment-env-loading{flex-direction:row;justify-content:center;padding:24px;color:var(--sd-text-muted);font-size:13px}.shipment-map-trip-trail{stroke:#7c3aed;stroke-width:3;stroke-dasharray:2 5;stroke-linecap:round;opacity:.9}.shipment-map-empty{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#0f172ad1;color:#fff;font-size:12px;font-weight:600;z-index:8}.shipment-history-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--sd-border);border-radius:var(--r-md);background:var(--sd-surface);color:var(--sd-text-secondary);font-size:13px;font-weight:600}.shipment-conn{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--sd-border);font-size:11px;font-weight:700}.shipment-conn__dot{width:7px;height:7px;border-radius:50%;background:currentColor}.shipment-conn--connected{color:var(--sd-success);border-color:var(--sd-success-border);background:var(--sd-success-soft)}.shipment-conn--connecting{color:var(--sd-warning);border-color:var(--sd-warning-border);background:var(--sd-warning-soft)}.shipment-conn--disconnected{color:var(--sd-text-muted)}.shipment-conn--history{color:var(--sd-text-secondary);background:var(--sd-surface)}.shipment-map-marker--asset{color:#7c3aed;z-index:4}.shipment-map-asset-pin{display:grid;place-items:center;width:28px;height:28px;border-radius:50% 50% 50% 0;background:#7c3aed;border:2px solid #fff;transform:rotate(-45deg);box-shadow:0 4px 12px #7c3aed59;color:#fff}.shipment-map-asset-pin svg{transform:rotate(45deg)}.shipment-map-tooltip--asset{min-width:180px}.shipment-map-legend-dot--asset{background:#7c3aed}.shipment-map-marker.is-highlighted{z-index:6}.shipment-map-asset-pin--highlighted{background:#2563eb;box-shadow:0 0 0 3px #2563eb47,0 6px 18px #2563eb73;transform:rotate(-45deg) scale(1.15)}.shipment-per-asset-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}.shipment-per-asset-panel{min-width:0;display:flex;flex-direction:column;gap:0;border:1px solid var(--sd-border);border-radius:var(--r-xl);background:var(--sd-card);box-shadow:var(--sd-sh-sm);overflow:hidden}.shipment-per-asset-tabs{display:flex;gap:6px;padding:10px 12px;background:var(--sd-surface);border-bottom:1px solid var(--sd-border);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.shipment-per-asset-tabs::-webkit-scrollbar{height:4px}.shipment-per-asset-tabs::-webkit-scrollbar-thumb{background:var(--sd-border-strong);border-radius:999px}.ship-sub-tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--sd-border);border-radius:999px;background:var(--sd-card);color:var(--sd-text-muted);font:inherit;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease);flex-shrink:0}.ship-sub-tab:hover:not(.is-active){background:var(--sd-hover);color:var(--sd-text-secondary);border-color:var(--sd-border-strong)}.ship-sub-tab.is-active{background:var(--sd-brand-gradient);color:#fff;border-color:transparent;box-shadow:var(--sd-sh-brand)}.ship-sub-tab:active{transform:scale(.98)}.shipment-per-asset-content{padding:16px;background:var(--sd-card);min-height:360px}.shipment-per-asset-content:empty{display:none}.shipment-per-asset-empty{display:grid;place-items:center;gap:8px;padding:48px 20px;text-align:center;color:var(--sd-text-subtle)}.shipment-per-asset-empty strong{color:var(--sd-text-secondary);font-size:13.5px}.shipment-per-asset-empty span{font-size:12.5px;line-height:1.5;max-width:420px;color:var(--sd-text-muted)}.shipment-env-card--compact .shipment-env-grid{gap:0}.shipment-env-card--compact .shipment-env-sensors{min-height:auto}.shipment-env-sensor-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--sd-border);background:var(--sd-surface);color:var(--sd-text-muted);font-size:11.5px;font-weight:600;cursor:pointer;transition:all var(--sd-dur-normal) var(--sd-ease)}.shipment-env-sensor-pill.is-active{background:var(--sd-brand-gradient);color:#fff;border-color:transparent;box-shadow:var(--sd-sh-brand)}.shipment-env-sensor-pill:hover:not(.is-active){background:var(--sd-card);border-color:var(--sd-brand-border);color:var(--sd-brand)}.shipment-custody-card{border:1px solid var(--sd-border);border-radius:var(--r-lg);background:var(--sd-card);overflow:hidden}.shipment-custody-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--sd-surface);border-bottom:1px solid var(--sd-border);flex-wrap:wrap}.shipment-custody-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:13.5px;font-weight:700;color:var(--sd-text)}.shipment-custody-head h3 svg{color:var(--sd-brand)}.shipment-custody-head p{margin:4px 0 0;color:var(--sd-text-muted);font-size:11.5px}.shipment-custody-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--sd-card);border:1px solid var(--sd-border);color:var(--sd-text-muted);font-size:11.5px;font-weight:600;white-space:nowrap}.shipment-custody-timeline{display:grid;gap:0;padding:12px 16px}.shipment-custody-step{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:start;position:relative;padding:12px 0}.shipment-custody-step+.shipment-custody-step{border-top:1px solid var(--sd-border-subtle)}.shipment-custody-dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sd-surface);border:1px solid var(--sd-border);color:var(--sd-text-muted);position:relative;z-index:1}.shipment-custody-step--done .shipment-custody-dot{background:var(--sd-success-soft);border-color:var(--sd-success-border);color:var(--sd-success)}.shipment-custody-step--in-transit .shipment-custody-dot{background:var(--sd-brand-soft);border-color:var(--sd-brand-border);color:var(--sd-brand)}.shipment-custody-step--pending .shipment-custody-dot{background:var(--sd-surface);border-color:var(--sd-border);color:var(--sd-text-subtle)}.shipment-custody-line{display:none}.shipment-custody-body{display:flex;flex-direction:column;gap:2px;min-width:0}.shipment-custody-body strong{font-size:13px;font-weight:700;color:var(--sd-text);overflow-wrap:anywhere}.shipment-custody-body small{font-size:12px;color:var(--sd-text-muted);font-weight:500}.shipment-custody-time{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--sd-text-subtle);font-variant-numeric:tabular-nums}.shipment-custody-status{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid;white-space:nowrap;align-self:center}.shipment-custody-status--done{background:var(--sd-success-soft);border-color:var(--sd-success-border);color:var(--sd-success)}.shipment-custody-status--in-transit{background:var(--sd-brand-soft);border-color:var(--sd-brand-border);color:var(--sd-brand)}.shipment-custody-status--pending{background:var(--sd-surface);border-color:var(--sd-border);color:var(--sd-text-muted)}.shipment-custody-foot{display:flex;gap:8px;align-items:flex-start;padding:12px 16px;background:var(--sd-surface);border-top:1px solid var(--sd-border);color:var(--sd-text-muted);font-size:11.5px;line-height:1.5}.shipment-custody-foot svg{flex-shrink:0;margin-top:2px;color:var(--sd-brand)}@media(max-width:900px){.shipment-per-asset-layout{grid-template-columns:1fr}.shipment-per-asset-panel{order:1}.shipment-detail-sensors{position:static}.shipment-custody-step{grid-template-columns:36px 1fr}.shipment-custody-status{grid-column:2;justify-self:start}}@media(max-width:720px){.shipment-per-asset-tabs{padding:8px 10px;gap:6px}.ship-sub-tab{height:30px;padding:0 10px;font-size:12px}.shipment-per-asset-content{padding:12px}}:where(button,a,[tabindex]):focus-visible{outline:2px solid var(--sd-brand);outline-offset:2px;border-radius:var(--r-sm)}@media print{.shipment-detail-tabs,.shipment-map-zoom,.shipment-map-legend,.shipment-map-footnote,.shipment-map-link{display:none!important}.shipment-status-card,.shipment-map-card,.shipment-general-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}}:root{--sp-bg: #f4f7fb;--sp-card: #ffffff;--sp-surface: #f8fafc;--sp-surface-alt: #f1f5f9;--sp-hover: #f0f7ff;--sp-border: #e2e8f0;--sp-border-strong: #cbd5e1;--sp-text: #0f172a;--sp-text-secondary: #475569;--sp-text-muted: #64748b;--sp-text-subtle: #94a3b8;--sp-brand: #2563eb;--sp-brand-hover: #1d4ed8;--sp-brand-soft: #eff6ff;--sp-brand-border: #bfdbfe;--sp-brand-deep: #1e3a8a;--sp-brand-glow: rgba(37, 99, 235, .18);--sp-brand-gradient: linear-gradient(135deg, #2563eb 0%, #1e3a8a 100%);--sp-success: #059669;--sp-success-soft: #ecfdf5;--sp-success-border: #a7f3d0;--sp-warning: #d97706;--sp-warning-soft: #fffbeb;--sp-warning-border: #fde68a;--sp-danger: #dc2626;--sp-danger-soft: #fef2f2;--sp-danger-border: #fecaca;--sp-sky: #0284c7;--sp-sky-soft: #f0f9ff;--sp-sky-border: #bae6fd;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--r-2xl: 16px;--sp-sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sp-sh-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--sp-sh-md: 0 4px 16px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .04);--sp-sh-lg: 0 12px 48px rgba(15, 23, 42, .14), 0 4px 12px rgba(15, 23, 42, .06);--sp-sh-xl: 0 24px 64px rgba(15, 23, 42, .18), 0 6px 20px rgba(15, 23, 42, .08);--sp-sh-brand: 0 4px 14px var(--sp-brand-glow);--sp-sh-inner: inset 0 1px 2px rgba(15, 23, 42, .05);--sp-ease: cubic-bezier(.16, 1, .3, 1);--sp-ease-out: cubic-bezier(.33, 1, .68, 1);--sp-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--sp-dur-fast: .12s;--sp-dur-normal: .2s;--sp-dur-slow: .34s}.shipments-page{width:100%;max-width:1480px;margin:0 auto;padding:28px 28px 56px;color:var(--sp-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}.shipments-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:20px 24px;border-radius:var(--r-2xl);background:var(--sp-card);border:1px solid var(--sp-border);box-shadow:var(--sp-sh-sm);overflow:hidden}.shipments-head:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--sp-brand-gradient);border-radius:var(--r-2xl) var(--r-2xl) 0 0}.shipments-head:after{content:"";position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.07),transparent 70%);pointer-events:none}.shipments-title{display:flex;align-items:center;gap:14px;min-width:0;position:relative;z-index:1}.shipments-title-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-lg);background:var(--sp-brand-gradient);color:#fff;flex-shrink:0;box-shadow:var(--sp-sh-brand)}.shipments-title h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--sp-text)}.shipments-title p{margin:3px 0 0;color:var(--sp-text-muted);font-size:13px;font-weight:400}.shipments-head-meta{display:flex;align-items:center;gap:8px;position:relative;z-index:1}.shipments-actions{display:flex;align-items:center;gap:10px;position:relative;z-index:1}.ship-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:1px solid var(--sp-border-strong);border-radius:var(--r-md);background:var(--sp-card);color:var(--sp-text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--sp-dur-normal) var(--sp-ease);white-space:nowrap}.ship-btn:hover:not(:disabled){border-color:var(--sp-brand-border);background:var(--sp-brand-soft);color:var(--sp-brand)}.ship-btn:active:not(:disabled){transform:scale(.98)}.ship-btn:disabled{cursor:not-allowed;opacity:.55}.ship-btn--primary{border-color:var(--sp-brand);background:var(--sp-brand-gradient);color:#fff;box-shadow:var(--sp-sh-brand)}.ship-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--sp-brand-hover),var(--sp-brand-deep));border-color:var(--sp-brand-hover);color:#fff;box-shadow:0 6px 20px #2563eb4d;transform:translateY(-1px)}.ship-btn--primary:active:not(:disabled){transform:translateY(0) scale(.98)}.ship-btn--danger{border-color:var(--sp-danger);background:var(--sp-danger);color:#fff}.ship-btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;color:#fff;box-shadow:0 4px 14px #dc262640;transform:translateY(-1px)}.ship-btn--ghost{border-color:transparent;background:transparent;color:var(--sp-text-secondary)}.ship-btn--ghost:hover:not(:disabled){background:var(--sp-surface-alt);border-color:var(--sp-border);color:var(--sp-text)}.ship-btn--sm{height:30px;padding:0 10px;font-size:12px;gap:5px}.ship-btn--icon{width:36px;padding:0}.ship-alert{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:11px 14px;border-radius:var(--r-lg);border:1px solid;font-size:13.5px;font-weight:500;animation:alertSlideIn var(--sp-dur-slow) var(--sp-ease) both;position:relative;overflow:hidden}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ship-alert:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:100%;border-radius:999px;background:currentColor;opacity:.3;animation:alertProgress 4s linear forwards}@keyframes alertProgress{0%{width:100%}to{width:0}}.ship-alert-icon{flex-shrink:0}.ship-alert span{flex:1;min-width:0}.ship-alert-dismiss{display:grid;place-items:center;width:26px;height:26px;margin-left:auto;flex-shrink:0;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:inherit;cursor:pointer;opacity:.7;transition:all var(--sp-dur-fast) var(--sp-ease)}.ship-alert-dismiss:hover{opacity:1;background:#0000000f}.ship-alert--success{border-color:var(--sp-success-border);background:var(--sp-success-soft);color:var(--sp-success)}.ship-alert--error{border-color:var(--sp-danger-border);background:var(--sp-danger-soft);color:var(--sp-danger)}.ship-panel{overflow:hidden;border:1px solid var(--sp-border);border-radius:var(--r-2xl);background:var(--sp-card);box-shadow:var(--sp-sh-sm);transition:box-shadow var(--sp-dur-slow) var(--sp-ease)}.ship-panel:hover{box-shadow:var(--sp-sh-md)}.ship-toolbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--sp-border);background:var(--sp-surface);flex-wrap:wrap}.ship-search{display:flex;align-items:center;gap:8px;min-width:260px;max-width:420px;flex:1;height:38px;padding:0 12px;border:1px solid var(--sp-border-strong);border-radius:var(--r-lg);background:var(--sp-card);transition:all var(--sp-dur-normal) var(--sp-ease);box-shadow:var(--sp-sh-inner)}.ship-search:focus-within{border-color:var(--sp-brand);box-shadow:0 0 0 3px var(--sp-brand-glow),var(--sp-sh-inner)}.ship-search svg{color:var(--sp-text-muted);flex-shrink:0;transition:color var(--sp-dur-fast) var(--sp-ease)}.ship-search:focus-within svg{color:var(--sp-brand)}.ship-search input{min-width:0;flex:1;height:100%;border:0;outline:none;color:var(--sp-text);font:inherit;font-size:13.5px;background:transparent}.ship-search input::placeholder{color:var(--sp-text-subtle)}.ship-search-clear{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:var(--sp-surface-alt);color:var(--sp-text-muted);cursor:pointer;transition:all var(--sp-dur-fast) var(--sp-ease);flex-shrink:0}.ship-search-clear:hover{background:var(--sp-border-strong);color:var(--sp-text)}.ship-toolbar-select{height:38px;min-width:154px;padding:0 12px;border:1px solid var(--sp-border-strong);border-radius:var(--r-lg);background:var(--sp-card);color:var(--sp-text-secondary);font:inherit;font-size:13px;font-weight:500;outline:none;cursor:pointer;box-shadow:var(--sp-sh-inner);transition:all var(--sp-dur-normal) var(--sp-ease);appearance:auto}.ship-toolbar-select:focus{border-color:var(--sp-brand);box-shadow:0 0 0 3px var(--sp-brand-glow)}.ship-toolbar-select:hover{border-color:var(--sp-brand-border)}.ship-toolbar-divider{width:1px;height:24px;background:var(--sp-border);flex-shrink:0}.ship-toolbar-count{margin-left:auto;color:var(--sp-text-muted);font-size:12.5px;font-weight:500;white-space:nowrap}.ship-toolbar-count strong{color:var(--sp-text);font-weight:700}.ship-table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.ship-table{width:100%;min-width:2152px;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.ship-table thead{position:sticky;top:0;z-index:2}.ship-table th{padding:11px 14px;border-bottom:2px solid var(--sp-border);background:var(--sp-surface);color:var(--sp-text-muted);font-size:11px;font-weight:700;text-align:left;vertical-align:middle;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase}.ship-table td{padding:11px 14px;border-bottom:1px solid var(--sp-border);text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--sp-dur-fast) var(--sp-ease)}.ship-cell-text{max-width:0}.ship-cell-text>span,.ship-cell-text>.ship-linkish{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.ship-table th button{display:inline-flex;align-items:center;gap:5px;padding:3px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:var(--r-xs);transition:color var(--sp-dur-fast) var(--sp-ease)}.ship-table th button:hover,.ship-table th button.is-sorted{color:var(--sp-brand)}.ship-table th button.is-sorted svg{color:var(--sp-brand);opacity:1}.ship-table th button svg{opacity:.45;transition:opacity var(--sp-dur-fast) var(--sp-ease)}.ship-table th button:hover svg{opacity:.8}.ship-table tbody tr{transition:background var(--sp-dur-fast) var(--sp-ease)}.ship-table tbody tr:nth-child(odd){background:#f7faff}.ship-table tbody tr:nth-child(2n){background:var(--sp-card)}.ship-table tbody tr:hover{background:var(--sp-hover)}.ship-table tbody tr:last-child td{border-bottom:none}.ship-row-actions{display:flex;align-items:center;gap:4px}.ship-row-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--sp-text-muted);cursor:pointer;transition:all var(--sp-dur-fast) var(--sp-ease)}.ship-row-actions button:hover{border-color:var(--sp-brand-border);background:var(--sp-brand-soft);color:var(--sp-brand)}.ship-row-actions button:last-child:hover{border-color:var(--sp-danger-border);background:var(--sp-danger-soft);color:var(--sp-danger)}.ship-row-actions button:active{transform:scale(.92)}.ship-readonly{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--sp-surface-alt);border:1px solid var(--sp-border);color:var(--sp-text-subtle);font-size:10.5px;font-weight:600;letter-spacing:.03em}.ship-name-button{max-width:100%;padding:0;border:0;background:transparent;color:var(--sp-brand);font:inherit;font-size:12.5px;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--sp-dur-fast) var(--sp-ease);position:relative}.ship-name-button:after{content:"";position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--sp-brand);transition:width var(--sp-dur-normal) var(--sp-ease)}.ship-name-button:hover{color:var(--sp-brand-hover)}.ship-name-button:hover:after{width:100%}.ship-location{display:flex;flex-direction:column;gap:2px;min-width:0}.ship-location span{color:var(--sp-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ship-location small{color:var(--sp-text-subtle);font-size:10.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ship-status{display:inline-flex;align-items:center;gap:5px;min-width:82px;justify-content:center;padding:4px 10px;border-radius:999px;border:1px solid var(--sp-border-strong);background:var(--sp-surface);color:var(--sp-text-secondary);font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.ship-status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.ship-status--planned,.ship-status--draft{border-color:var(--sp-brand-border);background:var(--sp-brand-soft);color:var(--sp-brand)}.ship-status--in-transit{border-color:var(--sp-sky-border);background:var(--sp-sky-soft);color:var(--sp-sky)}.ship-status--in-transit:before{animation:statusDotPulse 1.6s ease-in-out infinite}@keyframes statusDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}.ship-status--delayed{border-color:var(--sp-warning-border);background:var(--sp-warning-soft);color:var(--sp-warning)}.ship-status--delivered{border-color:var(--sp-success-border);background:var(--sp-success-soft);color:var(--sp-success)}.ship-status--cancelled{border-color:var(--sp-danger-border);background:var(--sp-danger-soft);color:var(--sp-danger)}.ship-skeleton-row td{padding:14px;border-bottom:1px solid var(--sp-border)}.ship-skeleton-bar{height:12px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--sp-surface) 0%,var(--sp-surface-alt) 40%,var(--sp-surface) 80%);background-size:300% 100%;animation:shimmer 1.8s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ship-empty{height:220px;text-align:center!important;white-space:normal!important;color:var(--sp-text-muted);vertical-align:middle}.ship-empty-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.ship-empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-lg);background:var(--sp-surface-alt);color:var(--sp-text-subtle);margin-bottom:4px}.ship-empty strong{color:var(--sp-text-secondary);font-size:14px;font-weight:600}.ship-empty p{margin:0;color:var(--sp-text-subtle);font-size:12.5px}.ship-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--sp-border);background:var(--sp-surface)}.ship-pagination-info{color:var(--sp-text-muted);font-size:12.5px;font-weight:500}.ship-pagination-info strong{color:var(--sp-text);font-weight:700}.ship-pagination-controls{display:flex;align-items:center;gap:4px}.ship-page-btn{display:grid;place-items:center;min-width:32px;height:32px;padding:0 6px;border:1px solid var(--sp-border);border-radius:var(--r-md);background:var(--sp-card);color:var(--sp-text-secondary);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all var(--sp-dur-fast) var(--sp-ease)}.ship-page-btn:hover:not(:disabled){border-color:var(--sp-brand-border);background:var(--sp-brand-soft);color:var(--sp-brand)}.ship-page-btn.is-current{border-color:var(--sp-brand);background:var(--sp-brand-gradient);color:#fff;box-shadow:var(--sp-sh-brand)}.ship-page-btn:disabled{opacity:.4;cursor:not-allowed}.ship-page-ellipsis{color:var(--sp-text-subtle);font-size:12px;padding:0 4px}.ship-modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:backdropIn var(--sp-dur-normal) var(--sp-ease) both}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.ship-modal{width:min(1020px,100%);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--sp-border);border-radius:var(--r-2xl);background:var(--sp-card);box-shadow:var(--sp-sh-xl);animation:modalIn var(--sp-dur-slow) var(--sp-ease) both}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ship-modal>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 24px 18px;border-bottom:1px solid var(--sp-border);background:var(--sp-surface);position:sticky;top:0;z-index:2;border-radius:var(--r-2xl) var(--r-2xl) 0 0}.ship-modal-title{display:flex;align-items:center;gap:12px}.ship-modal-title-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--sp-brand-gradient);color:#fff;flex-shrink:0}.ship-modal h2{margin:0;color:var(--sp-text);font-size:18px;font-weight:700;letter-spacing:-.02em}.ship-modal-subtitle{margin:2px 0 0;color:var(--sp-text-muted);font-size:12.5px}.ship-modal-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--sp-border);border-radius:var(--r-md);background:transparent;color:var(--sp-text-muted);cursor:pointer;transition:all var(--sp-dur-fast) var(--sp-ease);flex-shrink:0}.ship-modal-close:hover{border-color:var(--sp-danger-border);background:var(--sp-danger-soft);color:var(--sp-danger)}.ship-modal form{padding:20px 24px 0}.ship-form-section{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--sp-border)}.ship-form-section:last-of-type{border-bottom:none}.ship-form-section-title{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--sp-text-secondary);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ship-form-section-title svg{color:var(--sp-brand)}.ship-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px}.ship-form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ship-form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ship-route-form-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:18px;align-items:start}.ship-assets-section{background:#fff}.ship-assets-count-badge{margin-left:auto;display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--sp-brand-soft);border:1px solid var(--sp-brand-border);color:var(--sp-brand);font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:none}.ship-assets-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.ship-assets-toolbar-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ship-assets-type-select{height:34px;min-width:180px;padding:0 10px;border:1px solid var(--sp-border-strong);border-radius:var(--r-md);background:var(--sp-card);color:var(--sp-text-secondary);font:inherit;font-size:12.5px;font-weight:600;outline:none;cursor:pointer;box-shadow:var(--sp-sh-inner);transition:all var(--sp-dur-normal) var(--sp-ease)}.ship-assets-type-select:focus{border-color:var(--sp-brand);box-shadow:0 0 0 3px var(--sp-brand-glow)}.ship-assets-type-select:disabled{opacity:.6;cursor:not-allowed}.ship-assets-toolbar-left .ship-btn{height:34px;padding:0 14px;font-size:12.5px}.ship-assets-search-wrap{position:relative;display:flex;align-items:center;flex:1;max-width:260px;min-width:160px}.ship-assets-search-icon{position:absolute;left:10px;color:var(--sp-brand);pointer-events:none}.ship-assets-search{width:100%;height:34px;padding:0 32px;border:1px solid var(--sp-border-strong);border-radius:var(--r-md);background:var(--sp-card);color:var(--sp-text);font:inherit;font-size:13px;outline:none;transition:all var(--sp-dur-normal) var(--sp-ease);box-shadow:var(--sp-sh-inner)}.ship-assets-search::placeholder{color:var(--sp-text-subtle)}.ship-assets-search:focus{border-color:var(--sp-brand);box-shadow:0 0 0 3px var(--sp-brand-glow),var(--sp-sh-inner)}.ship-assets-search:disabled{opacity:.6;cursor:not-allowed;background:var(--sp-surface-alt)}.ship-assets-search-clear{position:absolute;right:6px;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;background:var(--sp-surface-alt);color:var(--sp-text-muted);cursor:pointer}.ship-assets-search-clear:hover{background:var(--sp-border-strong);color:var(--sp-text)}.ship-assets-error{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding:8px 10px;border:1px solid var(--sp-danger-border);background:var(--sp-danger-soft);color:var(--sp-danger);border-radius:var(--r-md);font-size:12px;font-weight:500}.ship-assets-empty,.ship-assets-loading{display:grid;place-items:center;gap:8px;padding:24px;border:1px dashed var(--sp-border);border-radius:var(--r-lg);background:var(--sp-surface);color:var(--sp-text-muted);font-size:12.5px;text-align:center}.ship-assets-loading{border-style:solid;background:var(--sp-card)}.ship-assets-grid{display:grid;grid-template-columns:1fr 44px 1fr;gap:14px;align-items:start}@media(max-width:900px){.ship-assets-grid{grid-template-columns:1fr;gap:10px}.ship-assets-mid{order:0;display:grid;place-items:center;padding:4px 0}.ship-assets-mid .ship-assets-bind-btn{transform:rotate(90deg)}.ship-assets-mid .ship-assets-bind-btn>svg{transform:rotate(-90deg)}}.ship-assets-card{border:1.5px solid var(--sp-brand-border);border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a0a;overflow:hidden;display:flex;flex-direction:column;min-height:260px}.ship-assets-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--sp-border);background:#fff;flex-shrink:0;min-height:42px}.ship-assets-card-head h3{margin:0;color:var(--sp-text);font-size:12px;font-weight:700;letter-spacing:-.01em}.ship-assets-available-hint{color:var(--sp-text-muted);font-size:10.5px;font-weight:600}.ship-assets-clear-btn{background:none;border:none;color:var(--sp-brand);font-size:11px;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:var(--r-sm)}.ship-assets-clear-btn:hover{background:var(--sp-brand-soft)}.ship-assets-table-head{display:grid;align-items:center;padding:8px 12px;background:#fff;border-bottom:1px solid var(--sp-border);font-size:10.5px;font-weight:700;color:var(--sp-text-muted);letter-spacing:.03em;text-transform:uppercase;column-gap:0}.ship-assets-table-head span{padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.ship-assets-table-head span:first-child{padding-left:0}.ship-assets-table-head span+span{border-left:1px solid var(--sp-border)}.ship-assets-scroll{flex:1;min-height:160px;max-height:320px;overflow-y:auto;overflow-x:hidden}.ship-assets-scroll::-webkit-scrollbar{width:6px}.ship-assets-scroll::-webkit-scrollbar-thumb{background:var(--sp-border-strong);border-radius:999px}.ship-assets-scroll::-webkit-scrollbar-track{background:transparent}.ship-assets-row{display:grid;padding:8px 12px;font-size:12px;align-items:center;border-top:1px solid #f1f5f9;color:var(--sp-text-secondary);column-gap:0;min-height:34px}.ship-assets-row span{padding:0 8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.ship-assets-row span:first-child{padding-left:0}.ship-assets-row span+span{border-left:1px solid #f1f5f9}.ship-assets-row:nth-child(2n){background:#f0f7ff}.ship-assets-row:nth-child(odd){background:#fff}.ship-assets-row:hover{background:#e0f2fe}.ship-assets-empty-row{padding:22px 16px;text-align:center;font-size:11.5px;color:var(--sp-text-subtle)}.ship-assets-mid{display:grid;place-items:center;align-self:center;padding:10px 0}.ship-assets-bind-btn{width:30px;height:30px;border-radius:4px;border:none;display:grid;place-items:center;cursor:pointer;transition:all var(--sp-dur-normal) var(--sp-ease);transform:rotate(45deg);box-shadow:0 1px 4px #00000026}.ship-assets-bind-btn>svg{transform:rotate(-45deg)}.ship-assets-bind-btn.is-ready{background:var(--sp-brand);color:#fff}.ship-assets-bind-btn:not(.is-ready){background:#cbd5e1;color:#fff}.ship-assets-bind-btn:hover:not(:disabled){transform:rotate(45deg) scale(1.06)}.ship-assets-bind-btn:disabled{opacity:.55;cursor:not-allowed}.ship-assets-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-top:1px solid #f1f5f9;background:#fff;font-size:11px;color:var(--sp-text-muted)}.ship-assets-pagination-info{font-variant-numeric:tabular-nums}.ship-assets-pagination-controls{display:inline-flex;align-items:center;gap:4px}.ship-assets-page-btn{min-width:26px;height:26px;padding:0 6px;border:1px solid var(--sp-border);border-radius:6px;background:#fff;color:var(--sp-text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease}.ship-assets-page-btn:hover:not(:disabled){border-color:var(--sp-brand-border);background:var(--sp-brand-soft);color:var(--sp-brand)}.ship-assets-page-btn:disabled{opacity:.4;cursor:not-allowed}.ship-assets-page-btn.is-active{background:var(--sp-brand);border-color:var(--sp-brand);color:#fff}.ship-assets-ellipsis{padding:0 2px;color:var(--sp-text-subtle)}.ship-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ship-field-label{display:flex;align-items:center;gap:4px;color:var(--sp-text-secondary);font-size:12px;font-weight:700;letter-spacing:.01em}.ship-field-label .ship-required{color:var(--sp-brand);font-size:13px;line-height:1}.ship-field input,.ship-field select{width:100%;height:36px;padding:0 11px;border:1px solid var(--sp-border-strong);border-radius:var(--r-md);background:var(--sp-card);color:var(--sp-text);font:inherit;font-size:13px;outline:none;transition:all var(--sp-dur-normal) var(--sp-ease);box-shadow:var(--sp-sh-inner)}.ship-field input:hover,.ship-field select:hover{border-color:var(--sp-brand-border)}.ship-field input:focus,.ship-field select:focus{border-color:var(--sp-brand);box-shadow:0 0 0 3px var(--sp-brand-glow),var(--sp-sh-inner)}.ship-field input[readonly]{background:var(--sp-surface-alt);color:var(--sp-text-secondary);cursor:default}.ship-field input.has-error,.ship-field select.has-error{border-color:var(--sp-danger);box-shadow:0 0 0 3px #dc26261a}.ship-field small{display:flex;align-items:center;gap:4px;color:var(--sp-danger);font-size:11.5px;font-weight:500}.ship-route-location-preview{min-height:94px;padding:12px 13px;border:1px solid var(--sp-brand-border);border-radius:var(--r-md);background:var(--sp-brand-soft)}.ship-route-location-preview.is-empty{border-color:var(--sp-border);background:var(--sp-surface)}.ship-route-location-preview span{display:block;color:var(--sp-brand);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.ship-route-location-preview strong{display:block;margin-top:6px;color:var(--sp-text);font-size:13px;font-weight:800}.ship-route-location-preview p{margin:5px 0 0;color:var(--sp-text-secondary);font-size:12px;line-height:1.45}.ship-route-location-preview small{display:inline-flex;margin-top:7px;color:var(--sp-text-muted);font-size:12px;font-weight:700}.ship-route-selection-preview{min-height:132px;padding:14px;border:1px solid var(--sp-brand-border);border-radius:var(--r-lg);background:var(--sp-brand-soft)}.ship-route-selection-preview.is-empty{display:grid;place-items:center;gap:6px;min-height:132px;border-color:var(--sp-border);background:var(--sp-surface);color:var(--sp-text-muted);text-align:center}.ship-route-selection-preview.is-empty strong{color:var(--sp-text);font-size:13px}.ship-route-selection-preview.is-empty span{max-width:280px;font-size:12px}.ship-route-selection-preview>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--sp-brand-border)}.ship-route-selection-preview>header strong,.ship-route-stop strong{display:block;color:var(--sp-text);font-size:13px;font-weight:800}.ship-route-selection-preview>header span,.ship-route-selection-preview>header small,.ship-route-stop span,.ship-route-stop small{color:var(--sp-text-muted);font-size:11.5px;font-weight:700}.ship-route-stop-list{display:grid;gap:8px}.ship-route-stop{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start}.ship-route-stop:not(:last-child):after{content:"";position:absolute;left:11px;top:24px;bottom:-8px;border-left:1px dashed var(--sp-text-subtle)}.ship-route-stop__marker{position:relative;z-index:1;display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--sp-card);border:1px solid var(--sp-brand-border);color:var(--sp-brand)!important;font-size:10px!important;font-weight:900!important}.ship-modal footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px 20px;border-top:1px solid var(--sp-border);background:var(--sp-surface);position:sticky;bottom:0;border-radius:0 0 var(--r-2xl) var(--r-2xl)}.ship-confirm{width:min(480px,100%);padding:0;border:1px solid var(--sp-border);border-radius:var(--r-2xl);background:var(--sp-card);box-shadow:var(--sp-sh-xl);overflow:hidden;animation:modalIn var(--sp-dur-slow) var(--sp-ease) both}.ship-confirm-body{padding:28px 28px 4px}.ship-confirm-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-lg);background:var(--sp-danger-soft);color:var(--sp-danger);margin-bottom:18px;border:1px solid var(--sp-danger-border)}.ship-confirm h2{margin:0 0 8px;color:var(--sp-text);font-size:19px;font-weight:700;letter-spacing:-.02em}.ship-confirm p{margin:0 0 6px;color:var(--sp-text-secondary);font-size:14px;line-height:1.55}.ship-confirm-name{display:inline-block;padding:3px 10px;border-radius:var(--r-sm);background:var(--sp-surface-alt);border:1px solid var(--sp-border);color:var(--sp-text);font-weight:600;font-size:13px;margin-bottom:6px}.ship-confirm footer{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px 24px}.ship-drawer-backdrop{position:fixed;inset:0;z-index:59;background:#0f172a4d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:backdropIn var(--sp-dur-normal) var(--sp-ease) both}.ship-summary-drawer{position:fixed;top:20px;right:20px;bottom:20px;z-index:60;display:flex;width:min(440px,calc(100vw - 40px));flex-direction:column;overflow:hidden;border:1px solid var(--sp-border);border-radius:var(--r-2xl);background:var(--sp-card);box-shadow:var(--sp-sh-xl);animation:drawerIn var(--sp-dur-slow) var(--sp-ease) both}@keyframes drawerIn{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}.ship-summary-drawer>header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 20px;background:var(--sp-brand-gradient);color:#fff;position:relative;overflow:hidden}.ship-summary-drawer>header:before,.ship-summary-drawer>header:after{content:"";position:absolute;border-radius:50%;background:#ffffff0f;pointer-events:none}.ship-summary-drawer>header:before{width:120px;height:120px;top:-40px;right:-20px}.ship-summary-drawer>header:after{width:80px;height:80px;bottom:-30px;left:20px}.ship-summary-header-text{position:relative;z-index:1;min-width:0}.ship-summary-drawer>header span{display:inline-block;padding:2px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#ffffffd9;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}.ship-summary-drawer h2{margin:0;color:#fff;font-size:18px;font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere;line-height:1.3}.ship-summary-close{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border:1px solid rgba(255,255,255,.25);border-radius:var(--r-md);background:#ffffff1a;color:#fff;cursor:pointer;transition:background var(--sp-dur-fast) var(--sp-ease);position:relative;z-index:1}.ship-summary-close:hover{background:#ffffff38}.ship-summary-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ship-summary-status{margin:18px 18px 0;padding:16px;border-radius:var(--r-xl);background:var(--sp-brand-soft);border:1px solid var(--sp-brand-border)}.ship-summary-status-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.ship-summary-status dl{margin:0;display:grid;gap:10px}.ship-summary-status div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:8px;align-items:baseline}.ship-summary-status dt{color:var(--sp-text-muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.ship-summary-status dd{margin:0;color:var(--sp-text);font-size:13px;font-weight:600;overflow-wrap:anywhere}.ship-summary-section{padding:18px;border-top:1px solid var(--sp-border)}.ship-summary-section:first-child{border-top:none}.ship-summary-section h3{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--sp-text);font-size:13px;font-weight:700;letter-spacing:-.01em}.ship-summary-section h3 svg{color:var(--sp-brand);flex-shrink:0}.ship-summary-grid{margin:0;display:grid;gap:8px}.ship-summary-grid div{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1fr);gap:8px;align-items:baseline;padding:8px;border-radius:var(--r-md);transition:background var(--sp-dur-fast) var(--sp-ease)}.ship-summary-grid div:hover{background:var(--sp-surface)}.ship-summary-grid dt{color:var(--sp-text-muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.ship-summary-grid dd{min-width:0;margin:0;color:var(--sp-text);font-size:13px;font-weight:500;overflow-wrap:anywhere}.ship-summary-user{display:inline-flex;flex-direction:column;min-width:0;line-height:1.35}.ship-summary-user strong{color:var(--sp-text);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-summary-user small{color:var(--sp-text-muted);font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-summary-route{display:grid;gap:10px;position:relative}.ship-summary-route:before{content:"";position:absolute;left:16px;top:28px;bottom:28px;width:2px;background:linear-gradient(to bottom,var(--sp-brand),var(--sp-danger));border-radius:999px}.ship-route-point{display:grid;gap:4px;padding:12px 14px 12px 34px;border-radius:var(--r-md);border:1px solid var(--sp-border);background:var(--sp-surface);position:relative;transition:all var(--sp-dur-fast) var(--sp-ease)}.ship-route-point:hover{border-color:var(--sp-brand-border);box-shadow:var(--sp-sh-xs)}.ship-route-point:before{content:"";position:absolute;left:12px;top:50%;margin-top:-5px;width:10px;height:10px;border-radius:50%;background:var(--sp-brand);border:2px solid var(--sp-card);box-shadow:0 0 0 2px var(--sp-brand)}.ship-route-point--destination:before{background:var(--sp-danger);box-shadow:0 0 0 2px var(--sp-danger)}.ship-route-point span{color:var(--sp-text-muted);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ship-route-point strong{color:var(--sp-text);font-size:13.5px;font-weight:600}.ship-route-point small{color:var(--sp-text-muted);font-size:11.5px;font-variant-numeric:tabular-nums}.ship-summary-assets{display:flex;flex-wrap:wrap;gap:8px}.ship-asset-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--sp-brand-soft);border:1px solid var(--sp-brand-border);color:var(--sp-brand);font-size:11.5px;font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.ship-asset-chip strong{font-weight:700;color:var(--sp-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-asset-chip small{color:var(--sp-text-muted);font-size:10.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-asset-chip svg{flex-shrink:0;color:var(--sp-brand);opacity:.9}.ship-asset-chip--more{background:var(--sp-surface);border-color:var(--sp-border);color:var(--sp-text-muted)}.ship-summary-muted{margin:0;color:var(--sp-text-subtle);font-size:12.5px;font-style:italic;padding:4px 0}.ship-summary-drawer>footer{flex-shrink:0;padding:14px 18px 18px;border-top:1px solid var(--sp-border);background:var(--sp-card)}.ship-summary-drawer>footer .ship-btn{width:100%;height:40px;font-size:14px}.is-spinning{animation:spinningSpin .7s linear infinite}@keyframes spinningSpin{to{transform:rotate(360deg)}}:where(button,a,select,input,[tabindex]):focus-visible{outline:2px solid var(--sp-brand);outline-offset:2px}@media(max-width:960px){.shipments-page{padding:20px 16px 40px}.shipments-head{flex-direction:column;align-items:stretch;padding:18px}.ship-toolbar{flex-direction:column;align-items:stretch;padding:12px 14px}.ship-search{min-width:0;max-width:none;width:100%}.ship-toolbar-select{width:100%;min-width:0}.ship-toolbar-divider,.ship-toolbar-count{display:none}.ship-form-grid{grid-template-columns:repeat(2,1fr)}.ship-form-grid--3,.ship-form-grid--2{grid-template-columns:1fr}.ship-summary-drawer{inset:10px;width:auto}.ship-summary-status div,.ship-summary-grid div{grid-template-columns:1fr;gap:2px}.ship-summary-status div{grid-template-columns:minmax(120px,.5fr) minmax(0,1fr)}}@media(max-width:600px){.ship-form-grid,.ship-form-grid--3,.ship-form-grid--2,.ship-route-form-grid{grid-template-columns:1fr}.ship-modal{border-radius:var(--r-xl)}.ship-modal>header{border-radius:var(--r-xl) var(--r-xl) 0 0}.ship-confirm-body{padding:22px 20px 4px}.ship-confirm footer{padding:16px 20px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.ship-toolbar,.ship-pagination,.ship-row-actions,.shipments-actions{display:none!important}.ship-panel{box-shadow:none;border:1px solid #ccc}.ship-table th,.ship-table td{font-size:10px;padding:6px 8px}}:root{--np-bg: #f6f8fb;--np-card: #ffffff;--np-surface: #f8fafc;--np-hover: #f1f5f9;--np-border: #e5e9f0;--np-border-strong: #cbd5e1;--np-border-focus: #93c5fd;--np-text: #0f172a;--np-text-secondary: #475569;--np-text-muted: #64748b;--np-text-subtle: #94a3b8;--np-brand: #2563eb;--np-brand-hover: #1d4ed8;--np-brand-soft: #eff6ff;--np-brand-border: #bfdbfe;--np-success: #059669;--np-success-soft: #ecfdf5;--np-success-border: #a7f3d0;--np-warning: #b45309;--np-warning-soft: #fffbeb;--np-warning-border: #fde68a;--np-danger: #b91c1c;--np-danger-soft: #fef2f2;--np-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15)}.np{width:100%;max-width:860px;margin:0 auto;padding:24px 24px 48px;color:var(--np-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.np-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--np-border)}.np-hero__text{flex:1;min-width:0}.np-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);color:var(--np-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.np-back:hover{background:var(--np-surface);color:var(--np-text)}.np-hero__title-row{display:flex;align-items:flex-start;gap:14px}.np-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--np-brand-soft);border:1px solid var(--np-brand-border);color:var(--np-brand);flex-shrink:0}.np-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.np-hero p{margin:0;max-width:520px;color:var(--np-text-muted);font-size:13px;line-height:1.55}.np-hero__actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.np-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.np-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.np-btn--primary{background:var(--np-brand);color:#fff;border-color:var(--np-brand);box-shadow:var(--sh-xs);min-width:140px}.np-btn--primary:hover:not(:disabled){background:var(--np-brand-hover);border-color:var(--np-brand-hover);box-shadow:var(--sh-sm)}.np-btn--ghost{background:transparent;color:var(--np-text-muted);border-color:transparent}.np-btn--ghost:hover:not(:disabled){background:var(--np-surface);color:var(--np-text)}.np-btn:disabled{cursor:not-allowed;opacity:.6}.np-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.np-alert svg{flex-shrink:0}.np-alert--success{background:var(--np-success-soft);border:1px solid var(--np-success-border);color:var(--np-success)}.np-alert--error{background:var(--np-danger-soft);border:1px solid var(--np-danger-border);color:var(--np-danger)}.np-alert__close{margin-left:auto;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-sm);background:transparent;color:currentColor;cursor:pointer;opacity:.6;transition:all .12s ease}.np-alert__close:hover{opacity:1;background:#0000000f}.np-overview{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:20px;border-radius:var(--r-lg);background:var(--np-brand-soft);border:1px solid var(--np-brand-border)}.np-overview__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-md);background:var(--np-card);border:1px solid var(--np-brand-border);color:var(--np-brand);flex-shrink:0}.np-overview__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.np-overview__text strong{font-size:13px;font-weight:600;color:var(--np-brand-hover);letter-spacing:-.005em}.np-overview__text span{font-size:12px;color:var(--np-brand-hover);opacity:.75;line-height:1.4}.np-overview__badge{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:100px;background:var(--np-warning-soft);border:1px solid var(--np-warning-border);color:var(--np-warning);font-size:11px;font-weight:600;flex-shrink:0}.np-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:80px 20px;border-radius:var(--r-lg);background:var(--np-card);border:1px solid var(--np-border);color:var(--np-text-muted);font-size:13px;font-weight:500}.np-list{display:flex;flex-direction:column;gap:12px}.np-card{background:var(--np-card);border:1px solid var(--np-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden;transition:all .15s ease}.np-card:hover{border-color:var(--np-border-strong);box-shadow:var(--sh-sm)}.np-card--mandatory{background:linear-gradient(to right,var(--np-brand-soft) 0%,var(--np-card) 55%);border-color:var(--np-brand-border)}.np-card--active:not(.np-card--mandatory){border-color:var(--np-brand-border)}.np-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px}.np-card__title-group{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.np-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);background:var(--np-surface);border:1px solid var(--np-border);color:var(--np-text-muted);flex-shrink:0;transition:all .15s ease}.np-card__icon--active{background:var(--np-brand-soft);border-color:var(--np-brand-border);color:var(--np-brand)}.np-card__icon--mandatory{background:var(--np-card);border-color:var(--np-brand-border);color:var(--np-brand)}.np-card__title-text{flex:1;min-width:0}.np-card__title-text h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 4px;font-size:15px;font-weight:600;color:var(--np-text);letter-spacing:-.005em}.np-card__title-text p{margin:0;font-size:13px;color:var(--np-text-muted);line-height:1.5}.np-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:100px;font-size:10.5px;font-weight:600;letter-spacing:.02em}.np-tag--required{background:var(--np-brand-soft);border:1px solid var(--np-brand-border);color:var(--np-brand-hover)}.np-card__emails{padding:12px 20px 18px;border-top:1px solid var(--np-border);background:var(--np-surface)}.np-card__emails-label{display:flex;align-items:center;gap:5px;margin-bottom:8px;font-size:10.5px;font-weight:700;color:var(--np-text-muted);text-transform:uppercase;letter-spacing:.06em}.np-card__emails ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}.np-card__emails li{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12.5px;color:var(--np-text-secondary);line-height:1.5}.np-card__email-dot{width:4px;height:4px;border-radius:50%;background:var(--np-text-subtle);flex-shrink:0}.np-switch{position:relative;flex-shrink:0;cursor:pointer;margin-top:4px}.np-switch.is-disabled{cursor:not-allowed;opacity:.5}.np-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.np-switch__track{display:block;position:relative;width:40px;height:22px;border-radius:100px;background:var(--np-border-strong);transition:background .15s ease}.np-switch__track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s ease}.np-switch input:checked+.np-switch__track{background:var(--np-brand)}.np-switch input:checked+.np-switch__track:after{transform:translate(18px)}.np-switch input:focus-visible+.np-switch__track{box-shadow:var(--sh-focus)}.np-foot{display:flex;align-items:flex-start;gap:8px;margin-top:20px;padding:12px 14px;border-radius:var(--r-md);background:var(--np-surface);border:1px solid var(--np-border)}.np-foot svg{color:var(--np-text-subtle);flex-shrink:0;margin-top:1px}.np-foot p{margin:0;font-size:12px;line-height:1.55;color:var(--np-text-muted)}.np-foot a{color:var(--np-brand);text-decoration:none;font-weight:600}.np-foot a:hover{text-decoration:underline}@media(max-width:768px){.np-hero{flex-direction:column;align-items:stretch;gap:16px}.np-hero__actions{justify-content:flex-end}.np-btn--primary{flex:1;min-width:0}.np-overview{flex-wrap:wrap}.np-overview__badge{order:-1;margin-left:auto}.np-card__head{padding:16px}.np-card__emails{padding:12px 16px 16px}.np-card__emails ul{grid-template-columns:1fr}}@media(max-width:600px){.np{padding:20px 16px 40px}.np-card__head{gap:12px}.np-card__icon{width:34px;height:34px}}:root{--u-bg: #f6f8fb;--u-card: #ffffff;--u-surface: #f8fafc;--u-hover: #f1f5f9;--u-border: #e5e9f0;--u-border-strong: #cbd5e1;--u-border-focus: #93c5fd;--u-text: #0f172a;--u-text-secondary: #475569;--u-text-muted: #64748b;--u-text-subtle: #94a3b8;--u-brand: #2563eb;--u-brand-hover: #1d4ed8;--u-brand-soft: #eff6ff;--u-brand-border: #bfdbfe;--u-brand-deep: #1e3a8a;--u-brand-glow: rgba(37, 99, 235, .25);--u-brand-glow-strong: rgba(37, 99, 235, .32);--u-indigo: #4f46e5;--u-indigo-soft: #eef2ff;--u-indigo-border: #c7d2fe;--u-success: #059669;--u-success-soft: #ecfdf5;--u-success-border: #a7f3d0;--u-warning: #b45309;--u-warning-soft: #fffbeb;--u-warning-border: #fde68a;--u-danger: #b91c1c;--u-danger-soft: #fef2f2;--u-danger-border: #fecaca;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--ush-xs: 0 1px 2px rgba(15, 23, 42, .04);--ush-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--ush-md: 0 4px 12px rgba(15, 23, 42, .08);--ush-lg: 0 10px 40px rgba(15, 23, 42, .12), 0 2px 8px rgba(15, 23, 42, .06);--ush-brand: 0 2px 6px var(--u-brand-glow);--ush-brand-lg: 0 6px 20px var(--u-brand-glow);--u-ease: cubic-bezier(.16, 1, .3, 1);--u-gradient: linear-gradient(135deg, var(--u-brand) 0%, var(--u-brand-deep) 100%)}.udash{width:100%;max-width:1280px;margin:0 auto;padding:28px 24px 48px;color:var(--u-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}.udash-hero{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid var(--u-border);box-shadow:var(--ush-md);margin-bottom:20px;isolation:isolate}.udash-hero__bg{position:absolute;inset:0;z-index:-1;background:var(--u-gradient)}.udash-hero__bg:before,.udash-hero__bg:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.udash-hero__bg:before{top:-60%;right:-10%;width:360px;height:360px;background:radial-gradient(circle,rgba(255,255,255,.16) 0%,transparent 70%)}.udash-hero__bg:after{bottom:-80%;left:5%;width:320px;height:320px;background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%)}.udash-hero__content{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:28px 28px 24px;color:#fff}.udash-hero__text{min-width:0;flex:1}.udash-hero__eyebrow{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 9px;border-radius:100px;background:#ffffff24;border:1px solid rgba(255,255,255,.22);color:#fff;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1.4;backdrop-filter:blur(6px)}.udash-hero__eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #ffffff40;animation:udash-pulse 2.4s ease-in-out infinite}@keyframes udash-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.75}}.udash-hero__text h1{margin:14px 0 6px;font-size:clamp(24px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.18;color:#fff}.udash-hero__name{color:#fff;background:linear-gradient(180deg,#fff,#ffffffb3);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.udash-hero__text p{margin:0;max-width:520px;color:#ffffffe0;font-size:13.5px;line-height:1.6}.udash-hero__meta{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0}.udash-hero__group{display:inline-flex;align-items:center;gap:8px;max-width:280px;padding:7px 11px;border-radius:100px;background:#fffffff2;border:1px solid rgba(255,255,255,.4);box-shadow:var(--ush-sm);color:var(--u-text)}.udash-hero__group>svg{color:var(--u-brand);flex-shrink:0}.udash-hero__group-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.udash-hero__group-switch{position:relative;display:inline-flex;align-items:center}.udash-hero__group-switch select{appearance:none;-webkit-appearance:none;background:transparent;border:0;padding:2px 4px 2px 8px;border-left:1px solid var(--u-border);font:inherit;font-size:12.5px;font-weight:500;color:var(--u-text-secondary);cursor:pointer;max-width:110px}.udash-hero__group-switch select:focus-visible{outline:none;box-shadow:0 0 0 3px var(--u-brand-glow);border-radius:var(--r-xs)}.udash-hero__group-switch-icon{position:absolute;right:0;color:var(--u-text-subtle);pointer-events:none}.udash-hero__chips{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.udash-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:11.5px;font-weight:600;letter-spacing:.01em;line-height:1.4;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);white-space:nowrap}.udash-chip--owner{background:#ffffff2e;color:#fff}.udash-chip--member{background:#ffffff24;color:#ffffffeb}.udash-chip--success{background:#10b98138;color:#d1fae5;border-color:#10b98166}.udash-chip--warning{background:#f59e0b38;color:#fef3c7;border-color:#f59e0b73}.udash-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:20px;background:var(--u-warning-soft);border:1px solid var(--u-warning-border);color:var(--u-warning)}.udash-alert svg{flex-shrink:0;margin-top:1px}.udash-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.udash-kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--r-lg);background:var(--u-card);border:1px solid var(--u-border);box-shadow:var(--ush-xs);transition:box-shadow .22s var(--u-ease),transform .22s var(--u-ease),border-color .22s var(--u-ease)}.udash-kpi:hover{box-shadow:var(--ush-md);transform:translateY(-2px);border-color:var(--u-brand-border)}.udash-kpi__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background:var(--u-brand-soft);color:var(--u-brand);flex-shrink:0}.udash-kpi:first-child .udash-kpi__icon{background:var(--u-gradient);color:#fff;box-shadow:var(--ush-brand)}.udash-kpi__body{display:flex;flex-direction:column;gap:2px;min-width:0}.udash-kpi__label{font-size:12px;font-weight:500;color:var(--u-text-muted);line-height:1.3}.udash-kpi__value{font-size:24px;font-weight:700;line-height:1.1;color:var(--u-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.udash-kpi__trend{font-size:11.5px;font-weight:500;color:var(--u-text-subtle);line-height:1.4}.udash-kpi__trend--up{color:var(--u-success)}.udash-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.udash-main,.udash-side{display:flex;flex-direction:column;gap:16px;min-width:0}.udash-side{position:sticky;top:24px}.udash-card{padding:20px 22px 22px;border-radius:var(--r-xl);background:var(--u-card);border:1px solid var(--u-border);box-shadow:var(--ush-xs);transition:box-shadow .22s var(--u-ease)}.udash-card:hover{box-shadow:var(--ush-sm)}.udash-card--compact{padding:16px 18px 18px}.udash-card--muted{background:var(--u-surface)}.udash-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--u-border)}.udash-card__head-left{display:flex;align-items:center;gap:12px;min-width:0}.udash-card__head h2{margin:0;font-size:15px;font-weight:600;color:var(--u-text);letter-spacing:-.005em;line-height:1.3}.udash-card__subtitle{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--u-text-muted)}.udash-card__icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-md);background:var(--u-gradient);color:#fff;flex-shrink:0;box-shadow:var(--ush-brand)}.udash-card__title{display:flex;align-items:center;gap:7px;margin:0 0 12px;font-size:11px;font-weight:600;color:var(--u-text-muted);letter-spacing:.06em;text-transform:uppercase}.udash-role-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:100px;font-size:11.5px;font-weight:600;border:1px solid transparent;line-height:1.4}.udash-role-pill--owner{background:var(--u-warning-soft);border-color:var(--u-warning-border);color:var(--u-warning)}.udash-role-pill--member{background:var(--u-brand-soft);border-color:var(--u-brand-border);color:var(--u-brand)}.udash-role-badges{display:inline-flex;flex-wrap:wrap;gap:6px}.udash-role-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;background:var(--u-brand-soft);border:1px solid var(--u-brand-border);color:var(--u-brand);font-size:11.5px;font-weight:600;letter-spacing:.01em;line-height:1.5}.udash-details{display:flex;flex-direction:column}.udash-detail{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--u-border);min-height:46px}.udash-detail:last-child{border-bottom:0;padding-bottom:0}.udash-detail:first-of-type{padding-top:0}.udash-detail__label{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--u-text-muted)}.udash-detail__label svg{color:var(--u-text-subtle);flex-shrink:0}.udash-detail__value{font-size:13.5px;font-weight:500;color:var(--u-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.udash-detail--roles .udash-detail__value{overflow:visible;white-space:normal}.udash-nav-grid{display:grid;grid-template-columns:1fr;gap:10px}.udash-nav-tile{display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--u-border);border-radius:var(--r-md);background:var(--u-card);color:var(--u-text);text-decoration:none;transition:all .18s var(--u-ease)}.udash-nav-tile:hover{border-color:var(--u-brand-border);background:var(--u-brand-soft);transform:translate(2px)}.udash-nav-tile__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-sm);background:var(--u-surface);color:var(--u-brand);flex-shrink:0;transition:background .18s var(--u-ease),color .18s var(--u-ease)}.udash-nav-tile:hover .udash-nav-tile__icon{background:var(--u-gradient);color:#fff;box-shadow:var(--ush-brand)}.udash-nav-tile__body{display:flex;flex-direction:column;gap:2px;min-width:0}.udash-nav-tile__body strong{font-size:14px;font-weight:600;color:var(--u-text);line-height:1.3}.udash-nav-tile__body span{font-size:12.5px;color:var(--u-text-muted);line-height:1.4}.udash-nav-tile__arrow{color:var(--u-text-subtle);flex-shrink:0;transition:color .18s var(--u-ease),transform .18s var(--u-ease)}.udash-nav-tile:hover .udash-nav-tile__arrow{color:var(--u-brand);transform:translate(3px,-3px)}.udash-focus-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.udash-focus-list li{display:grid;grid-template-columns:30px 1fr;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--u-border)}.udash-focus-list li:first-child{padding-top:0}.udash-focus-list li:last-child{border-bottom:0;padding-bottom:0}.udash-focus-list__marker{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:var(--u-brand-soft);color:var(--u-brand);border:1px solid var(--u-brand-border);flex-shrink:0;margin-top:1px}.udash-focus-list li>div{display:flex;flex-direction:column;gap:3px;min-width:0}.udash-focus-list li strong{font-size:14px;font-weight:600;color:var(--u-text);line-height:1.35}.udash-focus-list li span{font-size:12.5px;color:var(--u-text-muted);line-height:1.55}.udash-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);font-size:12.5px;font-weight:500;line-height:1.4}.udash-status__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.udash-status__dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;opacity:.4;animation:udash-status-pulse 2s ease-in-out infinite}@keyframes udash-status-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.6);opacity:0}}.udash-status--ok{background:var(--u-success-soft);border:1px solid var(--u-success-border);color:var(--u-success)}.udash-status--ok .udash-status__dot,.udash-status--ok .udash-status__dot:after{background:var(--u-success)}.udash-tip{margin:0;padding:10px 12px;border-radius:var(--r-md);background:var(--u-warning-soft);border:1px solid var(--u-warning-border);color:var(--u-warning);font-size:12.5px;font-weight:500;line-height:1.55}.udash-help{margin:0 0 10px;font-size:12.5px;color:var(--u-text-muted);line-height:1.55}.udash-link{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;color:var(--u-brand);text-decoration:none;transition:color .15s var(--u-ease)}.udash-link:hover{color:var(--u-brand-hover);text-decoration:underline}@media(max-width:1100px){.udash-grid{grid-template-columns:1fr}.udash-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}}@media(max-width:900px){.udash-kpis{grid-template-columns:repeat(2,1fr)}.udash-hero__content{flex-direction:column;align-items:flex-start;padding:24px 22px 22px}.udash-hero__meta{align-items:flex-start;width:100%}.udash-hero__chips{justify-content:flex-start}}@media(max-width:768px){.udash-detail{grid-template-columns:1fr;gap:4px;padding:12px 0}}@media(max-width:600px){.udash{padding:20px 16px 40px}.udash-kpis,.udash-side{grid-template-columns:1fr}.udash-focus-list li{grid-template-columns:24px 1fr;gap:10px}.udash-focus-list__marker{width:22px;height:22px}.udash-hero__group{max-width:100%}.udash-hero__group-name{max-width:120px}}:root{--up-bg: #f6f8fb;--up-card: #ffffff;--up-surface: #f8fafc;--up-hover: #f1f5f9;--up-border: #e5e9f0;--up-border-strong: #cbd5e1;--up-border-focus: #93c5fd;--up-text: #0f172a;--up-text-secondary: #475569;--up-text-muted: #64748b;--up-text-subtle: #94a3b8;--up-brand: #2563eb;--up-brand-hover: #1d4ed8;--up-brand-soft: #eff6ff;--up-brand-border: #bfdbfe;--up-brand-deep: #1e3a8a;--up-success: #059669;--up-success-soft: #ecfdf5;--up-success-border: #a7f3d0;--up-warning: #b45309;--up-warning-soft: #fffbeb;--up-warning-border: #fde68a;--up-danger: #b91c1c;--up-danger-soft: #fef2f2;--up-danger-border: #fecaca;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 12px;--sh-xs: 0 1px 2px rgba(15, 23, 42, .04);--sh-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--sh-focus: 0 0 0 3px rgba(37, 99, 235, .15);--sh-focus-err: 0 0 0 3px rgba(185, 28, 28, .12);--sh-focus-ok: 0 0 0 3px rgba(5, 150, 105, .12)}.up{width:100%;max-width:1100px;margin:0 auto;padding:24px 24px 48px;color:var(--up-text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;animation:up-fade .22s ease}@keyframes up-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.up-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--up-border)}.up-hero__text{flex:1;min-width:0}.up-back{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-bottom:12px;border-radius:var(--r-sm);color:var(--up-text-muted);font-size:12px;font-weight:500;text-decoration:none;transition:all .15s ease}.up-back:hover{background:var(--up-surface);color:var(--up-text)}.up-hero__title-row{display:flex;align-items:flex-start;gap:14px}.up-hero__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--up-brand-soft);border:1px solid var(--up-brand-border);color:var(--up-brand);flex-shrink:0}.up-hero h1{margin:0 0 4px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2;letter-spacing:-.02em}.up-hero p{margin:0;max-width:580px;color:var(--up-text-muted);font-size:13px;line-height:1.55}.up-alert{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:16px}.up-alert svg{flex-shrink:0}.up-alert--success{background:var(--up-success-soft);border:1px solid var(--up-success-border);color:var(--up-success)}.up-alert--error{background:var(--up-danger-soft);border:1px solid var(--up-danger-border);color:var(--up-danger)}.up-alert__close{margin-left:auto;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-sm);background:transparent;color:currentColor;cursor:pointer;opacity:.6;transition:all .12s ease}.up-alert__close:hover{opacity:1;background:#0000000f}.up-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.up-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.up-main{display:flex;flex-direction:column;gap:16px;min-width:0}.up-panel{background:var(--up-card);border:1px solid var(--up-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden}.up-panel__head{padding:16px 20px;border-bottom:1px solid var(--up-border)}.up-panel__head h3{display:flex;align-items:center;gap:6px;margin:0 0 3px;font-size:13px;font-weight:600;color:var(--up-text);letter-spacing:-.005em}.up-panel__head h3 svg{color:var(--up-text-muted)}.up-panel__head p{margin:0;font-size:12.5px;color:var(--up-text-muted);line-height:1.5}.up-panel__body{padding:20px}.up-identity{position:relative;padding:0}.up-identity__cover{height:80px;background:linear-gradient(135deg,var(--up-brand) 0%,var(--up-brand-deep) 100%);position:relative}.up-identity__cover:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 40%),radial-gradient(circle at 70% 70%,rgba(255,255,255,.08) 0%,transparent 40%)}.up-identity__avatar-wrap{display:flex;justify-content:center;margin-top:-40px;position:relative;z-index:1}.up-identity__avatar{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--up-brand),var(--up-brand-deep));color:#fff;font-size:26px;font-weight:700;letter-spacing:-.02em;border:4px solid var(--up-card);box-shadow:0 4px 12px #0f172a1f}.up-identity__body{padding:12px 20px 20px;text-align:center}.up-identity__name{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--up-text);letter-spacing:-.01em;line-height:1.3}.up-identity__email{margin:0 0 12px;font-size:12.5px;color:var(--up-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-identity__badges{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.up-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:100px;font-size:11px;font-weight:600;letter-spacing:.01em;border:1px solid transparent}.up-pill--admin{background:var(--up-brand-soft);border-color:var(--up-brand-border);color:var(--up-brand)}.up-pill--user{background:var(--up-surface);border-color:var(--up-border);color:var(--up-text-secondary)}.up-pill--status{background:var(--up-success-soft);border-color:var(--up-success-border);color:var(--up-success)}.up-pill__dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px #05966926}.up-access{display:flex;align-items:flex-start;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--up-border);margin-bottom:16px}.up-access__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-md);background:var(--up-surface);border:1px solid var(--up-border);color:var(--up-text-muted);flex-shrink:0}.up-access__icon--admin{background:var(--up-brand-soft);border-color:var(--up-brand-border);color:var(--up-brand)}.up-access>div:last-child{flex:1;min-width:0}.up-access strong{display:block;font-size:13.5px;font-weight:600;color:var(--up-text);line-height:1.3;margin-bottom:2px;letter-spacing:-.005em}.up-access span{display:block;font-size:12px;color:var(--up-text-muted);line-height:1.45}.up-perms__label{font-size:10.5px;font-weight:700;color:var(--up-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.up-perms ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.up-perms li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--up-text-secondary);line-height:1.4}.up-perms__check{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--up-success-soft);color:var(--up-success);flex-shrink:0}.up-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.up-field{display:flex;flex-direction:column;gap:6px}.up-field label{font-size:12px;font-weight:600;color:var(--up-text-secondary);letter-spacing:.01em}.up-input-wrap{position:relative;display:flex;align-items:center;height:40px;padding:0 12px 0 36px;border-radius:var(--r-md);background:var(--up-card);border:1px solid var(--up-border);transition:all .15s ease}.up-input-wrap:hover{border-color:var(--up-border-strong)}.up-input-wrap:focus-within{border-color:var(--up-border-focus);box-shadow:var(--sh-focus)}.up-input-wrap--readonly{background:var(--up-surface);border-color:var(--up-border)}.up-input-wrap--readonly:hover{border-color:var(--up-border)}.up-input-wrap--success{border-color:var(--up-success-border)}.up-input-wrap--success:focus-within{border-color:var(--up-success);box-shadow:var(--sh-focus-ok)}.up-input-wrap--error{border-color:var(--up-danger-border)}.up-input-wrap--error:focus-within{border-color:var(--up-danger);box-shadow:var(--sh-focus-err)}.up-input-icon{position:absolute;left:12px;color:var(--up-text-subtle);pointer-events:none}.up-input-wrap input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--up-text);font-family:inherit;font-size:13.5px;outline:none;padding:0}.up-input-wrap--readonly input{color:var(--up-text-secondary);cursor:default}.up-input-wrap input::placeholder{color:var(--up-text-subtle)}.up-input-wrap input::-ms-reveal,.up-input-wrap input::-ms-clear{display:none}.up-copy{display:grid;place-items:center;width:26px;height:26px;margin-right:-4px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--up-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.up-copy:hover{background:var(--up-hover);color:var(--up-text)}.up-eye{display:grid;place-items:center;width:30px;height:30px;margin-right:-6px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--up-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.up-eye:hover{background:var(--up-hover);color:var(--up-text)}.up-hint{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--up-text-muted);line-height:1.4}.up-hint--success{color:var(--up-success);font-weight:600}.up-hint--error{color:var(--up-danger);font-weight:600}.up-strength{display:flex;align-items:center;gap:10px;margin-top:4px}.up-strength__bars{display:flex;gap:3px;flex:1;max-width:200px}.up-strength__bar{flex:1;height:4px;border-radius:2px;background:var(--up-border);transition:background .2s ease}.up-strength__label{font-size:11px;font-weight:600;letter-spacing:.02em;min-width:50px;font-variant-numeric:tabular-nums}.up-form{display:flex;flex-direction:column;gap:16px}.up-form__actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;border-top:1px solid var(--up-border);margin-top:4px}.up-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--r-md);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .15s ease}.up-btn:focus-visible{outline:none;box-shadow:var(--sh-focus)}.up-btn--primary{background:var(--up-brand);color:#fff;border-color:var(--up-brand);box-shadow:var(--sh-xs);min-width:160px;margin-top:8px}.up-btn--primary:hover:not(:disabled){background:var(--up-brand-hover);border-color:var(--up-brand-hover);box-shadow:var(--sh-sm)}.up-btn:disabled{cursor:not-allowed;opacity:.6}.is-spinning{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.up-grid{grid-template-columns:1fr}.up-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}}@media(max-width:600px){.up{padding:20px 16px 40px}.up-side{grid-template-columns:1fr}.up-panel__body,.up-panel__head{padding-left:16px;padding-right:16px}.up-form__actions{justify-content:stretch}.up-btn--primary{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.up-tabs{display:flex;gap:4px;padding:4px;margin-bottom:20px;background:var(--up-card);border:1px solid var(--up-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow-x:auto;scrollbar-width:none}.up-tabs::-webkit-scrollbar{display:none}.up-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:var(--r-md);background:transparent;color:var(--up-text-muted);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.up-tab:hover{background:var(--up-hover);color:var(--up-text)}.up-tab.is-active{background:var(--up-brand);color:#fff;box-shadow:var(--sh-xs)}.up-tab.is-active svg{color:#fff}.up-tab svg{color:var(--up-text-subtle);transition:color .15s ease}.up-panel__head--row{display:flex;align-items:center;justify-content:space-between;gap:12px}.up-btn--ghost{background:transparent;color:var(--up-text-muted);border-color:var(--up-border);min-width:auto;margin-top:0;height:34px;padding:0 12px}.up-btn--ghost:hover:not(:disabled){background:var(--up-hover);color:var(--up-text);border-color:var(--up-border-strong);box-shadow:none}.up-email-form{display:flex;flex-direction:column;gap:16px;padding-top:16px;margin-top:16px;border-top:1px dashed var(--up-border)}.up-hint--warning{color:var(--up-warning);font-weight:600}.up-form__actions--bordered{border-top:1px solid var(--up-border);padding-top:16px;margin-top:16px}.up-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 16px;color:var(--up-text-muted);font-size:13px}.up-pref-list{display:flex;flex-direction:column;gap:10px}.up-pref{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r-md);background:var(--up-surface);border:1px solid var(--up-border);transition:all .15s ease}.up-pref:hover:not(.up-pref--mandatory){border-color:var(--up-border-strong);background:var(--up-card)}.up-pref--active{background:var(--up-brand-soft);border-color:var(--up-brand-border)}.up-pref--mandatory{background:var(--up-success-soft);border-color:var(--up-success-border)}.up-pref__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--up-card);border:1px solid var(--up-border);color:var(--up-text-muted);flex-shrink:0}.up-pref--active .up-pref__icon{background:var(--up-brand);border-color:var(--up-brand);color:#fff}.up-pref--mandatory .up-pref__icon{background:var(--up-success);border-color:var(--up-success);color:#fff}.up-pref__text{flex:1;min-width:0}.up-pref__title{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--up-text);margin-bottom:2px}.up-pref__badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:100px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--up-success);color:#fff}.up-pref__text p{margin:0;font-size:12px;color:var(--up-text-muted);line-height:1.45}.up-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;cursor:pointer}.up-switch input{opacity:0;width:0;height:0;position:absolute}.up-switch__track{position:absolute;inset:0;background:var(--up-border-strong);border-radius:100px;transition:background .2s ease}.up-switch__track:before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a33;transition:transform .2s ease}.up-switch input:checked+.up-switch__track{background:var(--up-brand)}.up-switch input:checked+.up-switch__track:before{transform:translate(18px)}.up-switch input:focus-visible+.up-switch__track{box-shadow:var(--sh-focus)}.up-switch.is-disabled{cursor:not-allowed;opacity:.7}.up-switch.is-disabled input:checked+.up-switch__track{background:var(--up-success)}
