.gw-root{--bg:var(--app-bg);--bg-elev:var(--surface-elevated);--surface-2:var(--surface-muted);--border:var(--border-subtle);--text:var(--text-primary);--text-faint:var(--text-muted);--accent-hover:var(--accent);--accent-bg:var(--accent-soft);--success:#16a34a;--error:#e5484d;--warning:#d29922;--radius:6px;--radius-lg:10px;background:var(--bg);color:var(--text);font:inherit;-webkit-font-smoothing:antialiased;min-height:100%;padding:24px 28px;font-size:14px;line-height:1.5}.gw-root *{box-sizing:border-box}.gw-root a{color:var(--accent);text-decoration:none}.gw-root a:hover{color:var(--accent-hover)}.gw-root h1{color:var(--text);margin:0;font-size:22px;font-weight:600}.gw-root h2{color:var(--text);margin:0;font-size:17px;font-weight:600}.gw-root h3{color:var(--text);margin:0;font-size:15px;font-weight:600}.gw-root .muted{color:var(--text-secondary)}.gw-root .faint{color:var(--text-faint)}.gw-root .row{align-items:center;display:flex}.gw-root .gap-8{gap:8px}.gw-root .gap-12{gap:12px}.gw-root .spacer{flex:1}.gw-root .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.gw-root .breadcrumb{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.gw-root .breadcrumb a{color:var(--text-secondary)}.gw-root .breadcrumb a:hover{color:var(--text)}.gw-root .page-title{align-items:center;gap:10px;margin-bottom:18px;display:flex}.gw-root .page-title .icon{background:var(--surface-2);width:30px;height:30px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.gw-root .btn{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);height:32px;color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.gw-root .btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-faint)}.gw-root .btn:disabled{opacity:.45;cursor:not-allowed}.gw-root .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.gw-root .btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.gw-root .btn-danger{color:var(--error)}.gw-root .btn-sm{height:28px;padding:0 10px;font-size:12.5px}.gw-root .btn-icon{justify-content:center;width:30px;padding:0}.gw-root .input{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);height:32px;color:var(--text);outline:none;padding:0 10px;font-size:13px}.gw-root .input:focus{border-color:var(--accent)}.gw-root .search{position:relative}.gw-root .search .input{padding-left:30px}.gw-root .search .search-icon{color:var(--text-faint);position:absolute;top:8px;left:9px}.gw-root .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.gw-root .card-pad{padding:16px}.gw-root .badge{border:1px solid var(--border-strong);background:var(--surface-2);height:20px;color:var(--text-secondary);border-radius:10px;align-items:center;gap:4px;padding:0 8px;font-size:11.5px;font-weight:500;display:inline-flex}.gw-root .badge-new{background:var(--accent-bg);color:var(--accent-hover);border-color:#0000}.gw-root .badge-ok{color:var(--success);background:#3fb9501a;border-color:#3fb95066}.gw-root .badge-error{color:var(--error);background:#f851491a;border-color:#f8514966}.gw-root .table{border-collapse:collapse;width:100%;font-size:13px}.gw-root .table thead th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-weight:500}.gw-root .table tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}.gw-root .table tbody tr:hover{background:#ffffff05}.gw-root .table .link{color:var(--accent);font-weight:500}.gw-root a.link,.gw-root .link{color:var(--accent);font-weight:500;text-decoration:none}.gw-root a.link:hover{text-decoration:underline}.gw-root .checkbox{appearance:none;cursor:pointer;border:1px solid var(--border-strong);background:var(--surface);border-radius:4px;flex-shrink:0;width:16px;height:16px;margin:0;transition:background .12s,border-color .12s;position:relative}.gw-root .checkbox:hover{border-color:var(--text-faint)}.gw-root .checkbox:checked{background:var(--accent);border-color:var(--accent)}.gw-root .checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:1.5px;left:4.5px;transform:rotate(45deg)}.gw-root .checkbox:indeterminate{background:var(--accent);border-color:var(--accent)}.gw-root .checkbox:indeterminate:after{content:"";background:#fff;border:none;width:8px;height:2px;position:absolute;top:6.5px;left:3px;transform:none}.gw-root .save-bar{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;align-items:center;gap:10px;margin-top:20px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -6px 20px #00000059}.gw-root .tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.gw-root .tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px}.gw-root .tab:hover{color:var(--text)}.gw-root .tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.gw-root .dropdown{position:relative}.gw-root .menu{background:var(--surface);border:1px solid var(--border-strong);z-index:40;border-radius:8px;min-width:190px;padding:4px;position:absolute;top:36px;left:0;box-shadow:0 10px 30px #00000080}.gw-root .menu-item{border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.gw-root .menu-item:hover{background:var(--surface-2)}.gw-root .toolbar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.gw-root .state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:56px 16px;display:flex}.gw-root .state .state-title{font-weight:600}.gw-root .state .state-icon{color:var(--text-faint)}.gw-root .toggle{background:var(--border-strong);cursor:pointer;border:none;border-radius:10px;width:36px;height:20px;transition:background .15s;position:relative}.gw-root .toggle.on{background:var(--accent)}.gw-root .toggle .knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px}.gw-root .toggle.on .knob{left:18px}
