*{margin:0;padding:0;box-sizing:border-box}:root{--keyboard-bottom-inset: 0px;--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #252525;--text-primary: #e0e0e0;--text-secondary: #a0a0a0;--accent: #3b82f6;--accent-hover: #2563eb;--border: #333333;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--motion-fast: .14s;--motion-med: .22s;--motion-slow: .32s;--ease-standard: cubic-bezier(.2, 0, 0, 1)}input:not([type=checkbox]):not([type=radio]),select,textarea{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:.35rem .5rem;font:inherit}input::placeholder,textarea::placeholder{color:var(--text-secondary);opacity:.85}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}input,select,textarea{transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard)}input[type=password],input[type=text],input[type=number],input[type=search]{min-height:2rem;line-height:1.25}button{font:inherit;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:.35rem .65rem;cursor:pointer;transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-med) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}button:hover:not(:disabled){background-color:var(--bg-secondary);border-color:#555}button:disabled{opacity:.55;cursor:not-allowed}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);height:100vh;width:100vw;overflow:hidden;position:fixed;transform:translateZ(0);backface-visibility:hidden;touch-action:pan-y pan-x}#root{height:100vh;max-height:100vh;min-height:0;display:flex;width:100%}html.simple-kbd-visible #root{height:calc(100vh - var(--keyboard-bottom-inset, 0px));max-height:calc(100vh - var(--keyboard-bottom-inset, 0px))}@supports (height: 100dvh){html.simple-kbd-visible #root{height:calc(100dvh - var(--keyboard-bottom-inset, 0px));max-height:calc(100dvh - var(--keyboard-bottom-inset, 0px))}}html.simple-kbd-visible .fdc-modal-overlay{bottom:var(--keyboard-bottom-inset, 0px)!important}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;background-color:var(--bg-tertiary);padding:.1em .35em;border-radius:3px;font-size:.92em}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:pan-y pan-x}input,textarea,[contenteditable=true],[role=textbox]{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important;touch-action:auto}html{scroll-behavior:smooth;touch-action:pan-y pan-x;-webkit-user-select:none;user-select:none;height:100%;width:100%;overflow:hidden}@media (min-width: 768px) and (max-width: 1366px){*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y pan-x}input,textarea,select,[contenteditable=true]{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important;touch-action:manipulation}button{min-height:48px;min-width:48px;padding:.75rem 1.25rem!important;font-size:1rem!important}body{font-size:16px}h1{font-size:2rem!important}h2{font-size:1.75rem!important}h3{font-size:1.5rem!important}input,select,textarea{font-size:18px!important;padding:1rem!important;min-height:48px}*{-webkit-tap-highlight-color:rgba(59,130,246,.3)}[style*=padding]{padding:1.25rem!important}[role=dialog],[style*=modal]{max-width:90vw!important;padding:2rem!important}svg{min-width:20px;min-height:20px}*{-webkit-overflow-scrolling:touch}button+button,a+a{margin-left:.75rem}}@media (max-width: 767px){html,body{overflow-x:hidden;max-width:100vw;-webkit-overflow-scrolling:touch;transform:translateZ(0)}*{max-width:100%;box-sizing:border-box}button{min-height:44px;min-width:44px}input,select,textarea{font-size:16px!important}*{-webkit-overflow-scrolling:touch}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body.modal-open{overflow:hidden;position:fixed;width:100%}button,a,input,select,textarea{touch-action:manipulation}*{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y pan-x}input,textarea,select,[contenteditable=true]{-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;user-select:text!important;touch-action:manipulation}body,main,[role=main],[style*=overflow]{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y pan-x}table{width:100%;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y pan-x}}main,[role=main],[style*="overflow: auto"],[style*="overflow: scroll"],[style*="overflow-y: auto"],[style*="overflow-y: scroll"]{touch-action:pan-y pan-x!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;user-select:none!important;-webkit-user-select:none!important;scroll-behavior:smooth;transform:translateZ(0);-webkit-transform:translateZ(0);will-change:scroll-position}[style*=overflow] input,[style*=overflow] textarea,[style*=overflow] [contenteditable=true]{touch-action:auto!important;user-select:text!important;-webkit-user-select:text!important}*{scrollbar-width:auto;scrollbar-color:var(--text-secondary) var(--bg-tertiary)}*::-webkit-scrollbar{width:14px;height:14px}*::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:10px}*::-webkit-scrollbar-thumb{background:var(--text-secondary);border-radius:10px;border:3px solid var(--bg-tertiary)}*::-webkit-scrollbar-thumb:hover{background:var(--accent)}main{scrollbar-gutter:stable;padding-bottom:var(--keyboard-bottom-inset);scroll-padding-bottom:calc(var(--keyboard-bottom-inset) + 16px);transition:padding-bottom .2s ease}.touch-kbd-scroll{padding-bottom:calc(1rem + var(--keyboard-bottom-inset, 0px))!important;scroll-padding-bottom:calc(32px + var(--keyboard-bottom-inset, 0px));transition:padding-bottom .2s ease}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:48px;font-size:16px;padding:.5rem .65rem}input[type=checkbox],input[type=radio]{width:1.35rem;height:1.35rem;min-width:1.35rem;min-height:1.35rem}}input[type=number].touch-stepper{min-width:5.5rem;padding-inline:.5rem}input.input-touch-numeric::-webkit-outer-spin-button,input.input-touch-numeric::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].input-no-spinner{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number].input-no-spinner::-webkit-outer-spin-button,input[type=number].input-no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@keyframes ui-fade-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes page-enter{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ui-pulse{0%,to{box-shadow:0 0 #3b82f600}50%{box-shadow:0 0 0 6px #3b82f624}}@keyframes ui-spin{to{transform:rotate(360deg)}}.sync-feedback-banner{display:flex;align-items:center;gap:.4rem;width:100%;margin:.25rem 0 .6rem;padding:.35rem .55rem;border-radius:6px;font-size:.78rem;border:1px solid var(--border);animation:ui-fade-slide-in .18s ease-out}.sync-feedback-info{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-secondary))}.sync-feedback-success{color:var(--success);background:color-mix(in srgb,var(--success) 14%,var(--bg-secondary))}.sync-feedback-warn,.sync-feedback-error{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,var(--bg-secondary))}.sync-feedback-error{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,var(--bg-secondary))}.sync-action-btn{transition:transform .12s ease,box-shadow .14s ease}.sync-action-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 14px #00000038}.sync-action-btn:active:not(:disabled){transform:translateY(0)}.sync-action-btn-primary{box-shadow:0 4px 10px #3b82f640}.sync-action-btn svg.spin-inline{animation:ui-spin .8s linear infinite}.sync-action-btn:disabled svg.spin-inline{animation-play-state:paused}.sync-action-btn{display:inline-flex;align-items:center;gap:.35rem}.sync-version-indicator.is-busy{animation:ui-pulse 1.1s ease-in-out infinite;border-radius:6px;padding:.2rem .35rem}.network-status-pill{display:inline-flex;align-items:center;border-radius:999px;border:1px solid color-mix(in srgb,currentColor 40%,transparent);padding:.1rem .45rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}.network-status-green{background:color-mix(in srgb,var(--success) 16%,transparent)}.network-status-yellow{background:color-mix(in srgb,var(--warning) 14%,transparent)}.network-status-red{background:color-mix(in srgb,var(--danger) 14%,transparent);animation:ui-pulse 1.8s ease-in-out infinite}.network-status-unknown{background:color-mix(in srgb,var(--text-secondary) 12%,transparent)}.network-roster-card,.network-roster-row,.network-roster-editor{transition:background-color .18s ease,border-color .18s ease,transform .14s ease}.network-roster-card:hover,.network-roster-row:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.network-roster-editor{animation:ui-fade-slide-in .18s ease-out}.app-page-transition{animation:page-enter var(--motion-med) var(--ease-standard);transform-origin:center top}.app-main-scroll{scroll-behavior:smooth}.page-shell{animation:ui-fade-slide-in var(--motion-med) var(--ease-standard)}.page-shell-header{position:static;z-index:auto;-webkit-backdrop-filter:none;backdrop-filter:none;background:transparent;padding-block:0}.page-shell-title{letter-spacing:.01em}.collapsible-card{transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-med) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.collapsible-card:hover{box-shadow:0 10px 24px #0003;border-color:color-mix(in srgb,var(--accent) 26%,var(--border))}.collapsible-card-toggle{transition:color var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}.collapsible-card-toggle:hover{color:var(--accent)}.collapsible-card-body{animation:ui-fade-slide-in var(--motion-fast) var(--ease-standard)}.app-sidebar{box-shadow:inset -1px 0 color-mix(in srgb,var(--border) 80%,transparent)}.app-nav-item{position:relative}.app-nav-item:hover:not(.is-active){transform:translate(2px);box-shadow:inset 1px 0 color-mix(in srgb,var(--accent) 45%,transparent)}.app-nav-item.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.mobile-nav-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg-secondary) 86%,transparent)}.mobile-nav-backdrop{animation:ui-fade-slide-in var(--motion-fast) var(--ease-standard)}.mobile-nav-drawer{box-shadow:18px 0 40px #00000061}.mobile-nav-icon-btn:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)!important}.mobile-nav-item{transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.mobile-nav-item:hover:not(.is-active){transform:translate(2px);background:color-mix(in srgb,var(--accent) 10%,transparent)!important}.mobile-nav-item.is-active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.network-layout{container-type:inline-size}.network-main-col,.network-side-col{min-height:0}@container (max-width: 980px){.network-layout{grid-template-columns:1fr!important}}@media (prefers-reduced-motion: reduce){.sync-feedback-banner,.sync-version-indicator.is-busy,.network-status-red,.network-roster-editor,.app-page-transition,.page-shell,.collapsible-card-body,.mobile-nav-backdrop{animation:none!important}.sync-action-btn,.network-roster-card,.network-roster-row,.network-roster-editor,button,input,select,textarea,.collapsible-card,.mobile-nav-item,.app-nav-item{transition:none!important}}
