*{margin:0;padding:0;box-sizing:border-box}:root{--color-background: #FBFCFE;--color-background-base: #FFFFFF;--color-background-light: #F7F9FB;--color-background-lighter: #EEF1F5;--color-background-dark: #E5E8ED;--color-text-dark: #0E0918;--color-text-base: #404554;--color-text-light: #71778A;--color-text-lighter: #A0A6B8;--color-text-xlight: #C4BBD3;--color-primary: #EE4F27;--color-primary-light: #FF6D44;--color-primary-tint: rgba(238, 79, 39, .1);--color-secondary: #FF9B26;--color-secondary-light: #FFB457;--color-secondary-tint: rgba(255, 155, 38, .1);--color-success: #33D69F;--color-success-light: #51DEAC;--color-success-tint: rgba(51, 214, 159, .1);--color-warning: #FFB84D;--color-warning-light: #FFC466;--color-warning-tint: rgba(255, 184, 77, .1);--color-danger: #FF6150;--color-danger-light: #FF7D6F;--color-danger-tint: rgba(255, 97, 80, .1);--color-info: #667EEA;--color-info-light: #7F8EED;--color-info-tint: rgba(102, 126, 234, .1);--color-foreground-xlight: #F7F9FB;--color-foreground-light: #EEF1F5;--color-foreground-base: #E5E8ED;--color-foreground-dark: #DBDFE7;--color-foreground-xdark: #C9CDD6;--color-border-light: #E5E8ED;--color-border-base: #DBDFE7;--font-family-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-monospace: "Fira Code", "Monaco", "Consolas", monospace;--font-size-xs: .75rem;--font-size-s: .875rem;--font-size-m: 1rem;--font-size-l: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 600;--line-height-compact: 1.4;--line-height-loose: 1.6;--line-height-xloose: 1.8;--spacing-5xs: .125rem;--spacing-4xs: .25rem;--spacing-3xs: .375rem;--spacing-2xs: .5rem;--spacing-xs: .75rem;--spacing-s: 1rem;--spacing-m: 1.25rem;--spacing-l: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 2.5rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--spacing-5xl: 5rem;--border-radius-s: 4px;--border-radius-m: 8px;--border-radius-l: 12px;--border-radius-circle: 50%;--box-shadow-xs: 0 1px 2px rgba(14, 9, 24, .04);--box-shadow-s: 0 2px 4px rgba(14, 9, 24, .04);--box-shadow-m: 0 2px 8px rgba(14, 9, 24, .06);--box-shadow-l: 0 4px 16px rgba(14, 9, 24, .08);--box-shadow-xl: 0 8px 32px rgba(14, 9, 24, .1);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-index-sticky: 10;--z-index-dropdown: 100;--z-index-overlay: 1000;--z-index-modal: 10000;--z-index-notification: 100000;--max-width-sm: 1200px;--max-width-md: 1400px;--max-width-lg: 1600px;--max-width-xl: 1800px;--max-width-content: var(--max-width-sm)}[data-theme=dark]{--color-background: #0E0918;--color-background-base: #151321;--color-background-light: #1E1C2C;--color-background-lighter: #272438;--color-background-dark: #0A0813;--color-text-dark: #FFFFFF;--color-text-base: #E5E8ED;--color-text-light: #C4BBD3;--color-text-lighter: #8B819F;--color-text-xlight: #71667C;--color-foreground-xlight: #1E1C2C;--color-foreground-light: #272438;--color-foreground-base: #332F43;--color-foreground-dark: #3F3A50;--color-foreground-xdark: #4B455D;--color-border-light: #272438;--color-border-base: #332F43;--box-shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--box-shadow-s: 0 2px 4px rgba(0, 0, 0, .2);--box-shadow-m: 0 2px 8px rgba(0, 0, 0, .3);--box-shadow-l: 0 4px 16px rgba(0, 0, 0, .4);--box-shadow-xl: 0 8px 32px rgba(0, 0, 0, .5)}body{margin:0;padding:0;min-height:100vh;font-family:var(--font-family-primary);font-size:var(--font-size-m);line-height:var(--line-height-loose);color:var(--color-text-base);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;transition:background-color var(--transition-base),color var(--transition-base);word-break:keep-all;word-wrap:break-word;text-rendering:optimizeLegibility}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-background-light);border-radius:var(--border-radius-s)}::-webkit-scrollbar-thumb{background:var(--color-foreground-base);border-radius:var(--border-radius-s);transition:background-color var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-foreground-dark)}::-webkit-scrollbar-corner{background:var(--color-background-light)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-compact);color:var(--color-text-dark);margin:0;word-break:keep-all;text-align:left}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-l)}h5{font-size:var(--font-size-m)}h6{font-size:var(--font-size-s)}p{margin:0;line-height:var(--line-height-loose);word-break:keep-all;text-align:left}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-light)}code{font-family:var(--font-family-monospace);font-size:.9em;padding:var(--spacing-5xs) var(--spacing-4xs);background:var(--color-background-lighter);border-radius:var(--border-radius-s);color:var(--color-text-dark)}::selection{background:var(--color-primary-tint);color:var(--color-text-dark)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width: 1600px){:root{--max-width-content: var(--max-width-md)}}@media (min-width: 1920px){:root{--max-width-content: var(--max-width-lg)}}@media (min-width: 2560px){:root{--max-width-content: var(--max-width-xl)}}#root{height:100vh;width:100vw;margin:0;padding:0;overflow:hidden}.app{height:100%;width:100%}.n8n-login-container{min-height:100vh;background:linear-gradient(-45deg,#f8fafc,#e2e8f0,#f1f5f9,#fff);background-size:400% 400%;animation:gradientShift 15s ease infinite;display:flex;align-items:center;justify-content:center;padding:var(--spacing-m);position:relative;overflow:hidden}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.n8n-login-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 75% 75%,rgba(255,255,255,.08) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 0%,transparent 50%);animation:floatOrbs 20s ease-in-out infinite;pointer-events:none}@keyframes floatOrbs{0%,to{transform:rotate(0) translate(0) translateY(0)}33%{transform:rotate(120deg) translate(20px) translateY(-20px)}66%{transform:rotate(240deg) translate(-20px) translateY(20px)}}.n8n-login-content{width:100%;max-width:400px;display:flex;flex-direction:column}.n8n-login-container .n8n-login-content{background:#ffffff40;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.3);border-radius:24px;padding:var(--spacing-l);box-shadow:0 25px 45px #00000026,0 10px 20px #0000001a,inset 0 1px #fff9,inset 0 0 20px #ffffff1a;position:relative;overflow:hidden;transition:all .3s ease}.n8n-login-container .n8n-login-content:hover{backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);box-shadow:0 30px 60px #00000026,0 15px 30px #00000014,inset 0 1px #ffffff80}.n8n-login-container .n8n-login-content:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);animation:shimmer 8s ease-in-out infinite;pointer-events:none}@keyframes shimmer{0%,to{transform:translate(-100%) translateY(-100%);opacity:0}50%{transform:translate(100%) translateY(100%);opacity:1}}.n8n-login-container .n8n-login-card{background:transparent;border:none;border-radius:16px;box-shadow:none;overflow:hidden;position:relative;z-index:1}.n8n-login-container .n8n-card-header{padding:var(--spacing-l) var(--spacing-l) var(--spacing-m);text-align:center;border-bottom:1px solid rgba(255,255,255,.2);background:transparent}.n8n-logo-icon{width:48px;height:48px;background:var(--color-primary);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-s);box-shadow:var(--box-shadow-light)}.n8n-logo-icon .logo-icon{font-size:24px;color:#fff}.n8n-login-container .n8n-login-card .n8n-card-header .card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-5xs) 0;line-height:1.2;text-align:center!important;display:block!important;align-items:unset!important;gap:unset!important;text-shadow:0 2px 8px rgba(0,0,0,.3)}.n8n-login-container .n8n-login-card .n8n-card-header .card-subtitle{font-size:var(--font-size-s);color:var(--color-text-base);margin:0;font-weight:var(--font-weight-medium);line-height:1.3;text-align:center!important;text-shadow:0 1px 4px rgba(0,0,0,.2)}.n8n-login-container .n8n-card-body{padding:var(--spacing-m) var(--spacing-l);background:transparent}.n8n-login-container .login-description{font-size:var(--font-size-s);color:var(--color-text-base);text-align:center;margin-bottom:var(--spacing-m);line-height:1.4;text-shadow:0 1px 4px rgba(0,0,0,.2)}.google-login-wrapper{display:flex;justify-content:center}.google-login-wrapper iframe{border-radius:var(--border-radius-base)!important;transition:all .2s ease!important}.google-login-wrapper iframe:hover{box-shadow:var(--box-shadow-light)!important}.n8n-login-container .n8n-card-footer{padding:var(--spacing-s) var(--spacing-l) var(--spacing-m);background:transparent;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:var(--spacing-s);align-items:center}.security-notice{display:flex;align-items:center;gap:var(--spacing-xs);justify-content:center}.security-notice .security-icon{font-size:14px;color:var(--color-success)}.security-text{font-size:var(--font-size-xs);color:var(--color-text-base);font-weight:var(--font-weight-medium)}.support-link-container{text-align:center}.support-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:color .2s ease}.support-link:hover{color:var(--color-primary-shade-1);text-decoration:underline}[data-theme=dark] .n8n-login-container{background:linear-gradient(-45deg,#1e293b,#334155,#475569,#64748b);background-size:400% 400%;animation:gradientShift 15s ease infinite}[data-theme=dark] .n8n-login-container .n8n-login-content{background:#00000059;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);box-shadow:0 25px 45px #0006,0 10px 20px #0000004d,inset 0 1px #ffffff4d,inset 0 0 20px #ffffff0d}[data-theme=dark] .n8n-login-content{background:#00000040;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.15);box-shadow:0 25px 45px #0000004d,0 10px 20px #0003,inset 0 1px #fff3}[data-theme=dark] .n8n-login-container .n8n-login-content:hover{backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 35px 70px #0006,0 20px 40px #0000004d,inset 0 1px #ffffff4d}[data-theme=dark] .n8n-login-container .n8n-login-content:after{background:linear-gradient(45deg,transparent,rgba(255,255,255,.05),transparent)}[data-theme=dark] .n8n-login-container .n8n-login-card{background:transparent;border:none;box-shadow:none}[data-theme=dark] .n8n-login-container .n8n-card-header{background:transparent;border-bottom:1px solid rgba(255,255,255,.15)}[data-theme=dark] .n8n-login-container .n8n-login-card .n8n-card-header .card-title{color:var(--color-text-light);text-align:center!important;display:block!important;align-items:unset!important;gap:unset!important;text-shadow:0 2px 8px rgba(0,0,0,.5)}[data-theme=dark] .n8n-login-container .n8n-login-card .n8n-card-header .card-subtitle{color:var(--color-text-lighter);text-align:center!important;text-shadow:0 1px 4px rgba(0,0,0,.4)}[data-theme=dark] .n8n-login-container .login-description{color:var(--color-text-lighter);text-shadow:0 1px 4px rgba(0,0,0,.6)}[data-theme=dark] .n8n-login-container .n8n-card-footer{background:transparent;border-top:1px solid rgba(255,255,255,.15)}[data-theme=dark] .security-text{color:var(--color-text-lighter)}@media (max-width: 768px){.n8n-login-container{padding:var(--spacing-s)}.n8n-login-content{max-width:100%}.n8n-logo-icon{width:40px;height:40px}.n8n-logo-icon .logo-icon{font-size:20px}.n8n-login-container .n8n-login-card .n8n-card-header .card-title{font-size:var(--font-size-l);text-align:center!important;display:block!important;align-items:unset!important;gap:unset!important}.n8n-card-header{padding:var(--spacing-m) var(--spacing-m) var(--spacing-s)}.n8n-card-body{padding:var(--spacing-s) var(--spacing-m)}.n8n-card-footer{padding:var(--spacing-xs) var(--spacing-m) var(--spacing-s)}}@media (max-width: 480px){.n8n-login-container{padding:var(--spacing-xs)}.n8n-logo-icon{width:36px;height:36px}.n8n-logo-icon .logo-icon{font-size:18px}.n8n-login-container .n8n-login-card .n8n-card-header .card-title{font-size:var(--font-size-m);text-align:center!important;display:block!important;align-items:unset!important;gap:unset!important}.login-description{font-size:var(--font-size-xs)}}.google-login-loading{opacity:.7;pointer-events:none;position:relative}.google-login-loading:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:16px;height:16px;border:2px solid var(--color-foreground-light);border-top:2px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.support-link:focus,.google-login-wrapper iframe:focus{outline:2px solid var(--color-primary);outline-offset:2px}.n8n-page-header{padding:var(--spacing-m) 0 var(--spacing-s);border-bottom:1px solid var(--color-border-light);background:var(--color-background-base)}.page-header-content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-xl)}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-2xs) 0;line-height:1.3;word-break:keep-all;text-align:left}.page-description{font-size:var(--font-size-m);color:var(--color-text-light);margin:0;line-height:1.5;word-break:keep-all;text-align:left}.animated-counter{font-weight:var(--font-weight-medium);display:inline-block;transition:transform var(--transition-base);color:var(--color-text-dark)}.animated-counter.animating{animation:counterPulse .6s ease-out}.animated-counter.loading .loading-dots{animation:loadingDots 1.5s infinite}.animated-counter.error{color:var(--color-danger)}@keyframes counterPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes loadingDots{0%,20%{opacity:.3}50%{opacity:1}80%,to{opacity:.3}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--spacing-s);height:36px;border-radius:var(--border-radius-m);font-weight:var(--font-weight-medium);font-size:var(--font-size-s);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;text-decoration:none;white-space:nowrap;gap:var(--spacing-2xs);position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-small{height:28px;padding:0 var(--spacing-xs);font-size:var(--font-size-xs)}.btn-large{height:44px;padding:0 var(--spacing-l);font-size:var(--font-size-m)}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--box-shadow-m)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--box-shadow-xs)}.btn-secondary{background-color:transparent;color:var(--color-text-base);border-color:var(--color-border-base)}.btn-secondary:hover:not(:disabled){background-color:var(--color-background-light);border-color:var(--color-border-dark)}.btn-success{background-color:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:var(--color-success-light);border-color:var(--color-success-light);transform:translateY(-1px);box-shadow:var(--box-shadow-m)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-light);border-color:var(--color-danger-light);transform:translateY(-1px);box-shadow:var(--box-shadow-m)}.btn-text{background-color:transparent;color:var(--color-primary);border:none;padding:0 var(--spacing-2xs)}.btn-text:hover:not(:disabled){color:var(--color-primary-light);background-color:var(--color-primary-tint)}.btn-icon{width:36px;padding:0;justify-content:center}.btn-icon.btn-small{width:28px}.btn-icon.btn-large{width:44px}.action-buttons{display:flex;gap:var(--spacing-2xs);align-items:center}.form-group{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.form-group label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-2xs) var(--spacing-xs);border:1px solid var(--color-border-base);border-radius:var(--border-radius-m);font-size:var(--font-size-s);font-family:var(--font-family-primary);background-color:var(--color-background-base);color:var(--color-text-base);outline:none;transition:all var(--transition-fast)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--color-foreground-base)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-lighter)}.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23404554' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-xs) center;padding-right:var(--spacing-xl)}[data-theme=dark] .form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23E5E8ED' d='M6 8L2 4h8z'/%3E%3C/svg%3E")}.form-textarea{min-height:80px;resize:vertical}.form-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--spacing-4xs)}.page-container{padding:var(--spacing-xl);width:100%;flex:1;overflow-y:auto;background-color:var(--color-background);transition:background-color var(--transition-base)}@media (max-width: 768px){.page-container{padding:var(--spacing-m)}}.page-header{margin-bottom:var(--spacing-xl)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin-bottom:var(--spacing-2xs)}.page-subtitle{font-size:var(--font-size-l);color:var(--color-text-light)}.grid{display:grid;gap:var(--spacing-l)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1024px){.lg\:grid-cols-1{grid-template-columns:repeat(1,1fr)}.lg\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.md\:grid-cols-1{grid-template-columns:repeat(1,1fr)}.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.sm\:grid-cols-1{grid-template-columns:repeat(1,1fr)}}.card{background-color:var(--color-background-base);border-radius:var(--border-radius-m);padding:var(--spacing-l);box-shadow:var(--box-shadow-s);border:1px solid var(--color-border-light);transition:all var(--transition-base)}.card:hover{box-shadow:var(--box-shadow-m)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-m)}.card-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.card-subtitle{font-size:var(--font-size-s);color:var(--color-text-light);margin-top:var(--spacing-4xs)}.card-content{color:var(--color-text-base)}.stat-card{background-color:var(--color-background-base);padding:var(--spacing-l);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s);border:1px solid var(--color-border-light);display:flex;align-items:center;gap:var(--spacing-m);transition:all var(--transition-base);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));opacity:0;transition:opacity var(--transition-base)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--box-shadow-l)}.stat-card:hover:before{opacity:1}.stat-content{flex:1}.stat-content h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-4xs)}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.table-container{background-color:var(--color-background-base);border-radius:var(--border-radius-m);border:1px solid var(--color-border-light);overflow:hidden;box-shadow:var(--box-shadow-s)}.table{width:100%;border-collapse:collapse}.table-header{background-color:var(--color-background-light);border-bottom:1px solid var(--color-border-light)}.table-header .table-cell{font-weight:var(--font-weight-medium);color:var(--color-text-dark);font-size:var(--font-size-s);padding:var(--spacing-xs) var(--spacing-s);text-align:left}.table-row{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.table-row:hover{background-color:var(--color-background-light)}.table-cell{padding:var(--spacing-xs) var(--spacing-s);color:var(--color-text-base);font-size:var(--font-size-s)}.status-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-l);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);gap:var(--spacing-4xs)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background-color:currentColor}.status-success{background-color:var(--color-success-tint);color:var(--color-success)}.status-warning{background-color:var(--color-warning-tint);color:var(--color-warning)}.status-danger{background-color:var(--color-danger-tint);color:var(--color-danger)}.status-info{background-color:var(--color-info-tint);color:var(--color-info)}.status-pending{background-color:var(--color-warning-tint);color:var(--color-warning)}.status-active,.status-online,.status-normal{background-color:var(--color-success-tint);color:var(--color-success)}.status-inactive,.status-offline{background-color:var(--color-danger-tint);color:var(--color-danger)}.status-checking{background-color:var(--color-info-tint);color:var(--color-info)}.activity-dot.online{background-color:var(--color-success)}.activity-dot.offline{background-color:var(--color-danger)}.list-container{display:flex;flex-direction:column;gap:var(--spacing-xs)}.list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-s);background-color:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);transition:all var(--transition-fast)}.list-item:hover{background-color:var(--color-background-light);border-color:var(--color-border-base)}.list-item-title{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.list-item-subtitle{font-size:var(--font-size-s);color:var(--color-text-light);margin-top:var(--spacing-5xs)}.device-item{padding:var(--spacing-s);background-color:var(--color-background-base);border-radius:var(--border-radius-m);border:1px solid var(--color-border-light);border-left:3px solid transparent;display:flex;flex-direction:column;gap:var(--spacing-4xs);transition:all var(--transition-fast)}.device-item:hover{box-shadow:var(--box-shadow-s);transform:translate(2px)}.device-item.online{border-left-color:var(--color-success)}.device-item.offline{border-left-color:var(--color-danger)}.device-id{font-family:var(--font-family-monospace);font-weight:var(--font-weight-medium);color:var(--color-text-dark);font-size:var(--font-size-s)}.device-name{color:var(--color-text-light);font-size:var(--font-size-s)}.device-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.device-item.online .device-status{color:var(--color-success)}.device-item.offline .device-status{color:var(--color-danger)}.user-item{display:flex;align-items:center;padding:var(--spacing-s);background-color:var(--color-background-base);border-radius:var(--border-radius-m);gap:var(--spacing-s);border:1px solid var(--color-border-light);transition:all var(--transition-fast)}.user-item:hover{background-color:var(--color-background-light);border-color:var(--color-border-base)}.user-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-m);color:#fff;font-weight:var(--font-weight-medium)}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-2xs);margin-top:var(--spacing-l);padding:var(--spacing-m) 0}.pagination-button{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-base);background-color:var(--color-background-base);color:var(--color-text-base);border-radius:var(--border-radius-s);font-size:var(--font-size-s);cursor:pointer;transition:all var(--transition-fast)}.pagination-button:hover:not(:disabled){background-color:var(--color-background-light);border-color:var(--color-border-dark)}.pagination-button.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border-base);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-text-light)}.empty-state-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-m)}.empty-state-title{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin-bottom:var(--spacing-2xs)}.empty-state-description{font-size:var(--font-size-s);color:var(--color-text-light)}.mt-1{margin-top:var(--spacing-4xs)}.mt-2{margin-top:var(--spacing-2xs)}.mt-3{margin-top:var(--spacing-xs)}.mt-4{margin-top:var(--spacing-s)}.mt-6{margin-top:var(--spacing-l)}.mb-1{margin-bottom:var(--spacing-4xs)}.mb-2{margin-bottom:var(--spacing-2xs)}.mb-3{margin-bottom:var(--spacing-xs)}.mb-4{margin-bottom:var(--spacing-s)}.mb-6{margin-bottom:var(--spacing-l)}.gap-1{gap:var(--spacing-4xs)}.gap-2{gap:var(--spacing-2xs)}.gap-3{gap:var(--spacing-xs)}.gap-4{gap:var(--spacing-s)}.gap-6{gap:var(--spacing-l)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-s)}.text-base{font-size:var(--font-size-m)}.text-lg{font-size:var(--font-size-l)}.text-xl{font-size:var(--font-size-xl)}.font-regular{font-weight:var(--font-weight-regular)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}@media (max-width: 768px){.hide-mobile{display:none}}@media (min-width: 769px){.show-mobile{display:none}}.transition-all{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}[data-theme=dark] .card,[data-theme=dark] .stat-card,[data-theme=dark] .table-container,[data-theme=dark] .list-item,[data-theme=dark] .device-item,[data-theme=dark] .user-item{box-shadow:none}[data-theme=dark] .card:hover,[data-theme=dark] .stat-card:hover{box-shadow:0 0 0 1px var(--color-border-base)}.n8n-address-selector{display:flex;flex-direction:column;gap:var(--spacing-m)}.address-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-m)}.n8n-form-group{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.n8n-form-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);word-break:keep-all}.n8n-form-select{padding:var(--spacing-2xs) var(--spacing-xs);background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast);min-height:36px}.n8n-form-select:hover:not(:disabled){border-color:var(--color-border-base)}.n8n-form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.n8n-form-select:disabled{background:var(--color-background-light);color:var(--color-text-light);cursor:not-allowed;opacity:.6}.n8n-status-message{padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium)}.n8n-status-message.loading{background:var(--color-info-tint);color:var(--color-info);border:1px solid var(--color-info)}.n8n-status-message.error{background:var(--color-danger-tint);color:var(--color-danger);border:1px solid var(--color-danger)}.n8n-address-preview{padding:var(--spacing-s);background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);color:var(--color-text-base);word-break:keep-all}.preview-label{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}@media (max-width: 768px){.address-grid{grid-template-columns:1fr;gap:var(--spacing-s)}}.n8n-google-map-container{position:relative;width:100%;height:400px;border-radius:var(--border-radius-m);overflow:hidden;border:1px solid var(--color-border-light);background:var(--color-background-light)}.n8n-google-map{width:100%;height:100%;border-radius:var(--border-radius-m)}.n8n-map-fallback{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;background:var(--color-background-base);padding:var(--spacing-l);border-radius:var(--border-radius-m);border:1px solid var(--color-border-light);color:var(--color-text-base);font-size:var(--font-size-s);display:none;box-shadow:var(--box-shadow-s)}.fallback-icon:before{content:"📍";font-size:1.5rem;display:block;margin-bottom:var(--spacing-xs)}.fallback-title{font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-2xs);color:var(--color-text-dark);font-size:var(--font-size-m)}.fallback-coords{font-size:var(--font-size-s);color:var(--color-text-base);margin-bottom:var(--spacing-5xs)}.fallback-message{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-light)}.n8n-map-info-window{padding:var(--spacing-2xs);font-family:var(--font-family-primary);min-width:200px}.n8n-map-info-window .info-title{margin:0 0 var(--spacing-2xs) 0;color:var(--color-text-dark);font-size:var(--font-size-s);font-weight:var(--font-weight-bold)}.n8n-map-info-window .info-coords{margin:0;color:var(--color-text-base);font-size:var(--font-size-xs);line-height:1.4}.n8n-location-basic-form{display:flex;flex-direction:column;gap:var(--spacing-l)}.n8n-form-input{width:100%;padding:var(--spacing-2xs) var(--spacing-xs);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);background:var(--color-background-base);color:var(--color-text-base);outline:none;transition:all var(--transition-fast);min-height:36px;box-sizing:border-box}.n8n-form-input:hover:not(:disabled){border-color:var(--color-border-base)}.n8n-form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.n8n-form-input.error{border-color:var(--color-danger)}.n8n-form-input::placeholder{color:var(--color-text-light)}.n8n-form-error{color:var(--color-danger);font-size:var(--font-size-xs);margin:var(--spacing-5xs) 0 0 0;font-weight:var(--font-weight-medium)}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-m)}.n8n-form-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end;margin-top:var(--spacing-l);padding-top:var(--spacing-l);border-top:1px solid var(--color-border-light)}.n8n-button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;text-decoration:none;white-space:nowrap;min-height:36px;gap:var(--spacing-2xs)}@media (max-width: 768px){.coordinate-grid{grid-template-columns:1fr;gap:var(--spacing-s)}.n8n-form-actions{flex-direction:column}.n8n-button{width:100%}}.n8n-location-create-container{width:100%;max-width:var(--max-width-content);margin:0 auto;padding:var(--spacing-l)}.n8n-breadcrumb{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-s);color:var(--color-text-light);margin-top:var(--spacing-2xs)}.breadcrumb-item{color:var(--color-text-light);text-decoration:none;transition:color var(--transition-fast);word-break:keep-all}.breadcrumb-item:hover{color:var(--color-text-base)}.breadcrumb-item.active{color:var(--color-text-dark);font-weight:var(--font-weight-medium)}.breadcrumb-separator{color:var(--color-text-lighter);font-size:var(--font-size-xs);margin:0 var(--spacing-4xs)}.n8n-location-create-container .n8n-page-header{margin-bottom:var(--spacing-xl)}.n8n-location-create-container .n8n-header-content{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.n8n-location-create-container .n8n-page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;word-break:keep-all}.n8n-create-form{display:flex;flex-direction:column;gap:var(--spacing-xl)}.n8n-form-section{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-xs)}.n8n-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-m) var(--spacing-l);background:var(--color-background-light);border-bottom:1px solid var(--color-border-light)}.n8n-section-title{font-size:var(--font-size-l);font-weight:var(--font-weight-semibold);color:var(--color-text-dark);margin:0;word-break:keep-all}.n8n-section-content{padding:var(--spacing-l)}.n8n-form-grid{display:grid;gap:var(--spacing-m)}.n8n-form-grid.two-column{grid-template-columns:repeat(2,1fr)}.n8n-form-grid.three-column{grid-template-columns:repeat(3,1fr)}.n8n-button-success{background:var(--color-success);color:#fff;border-color:var(--color-success)}.n8n-button-success:hover{background:var(--color-success-light);border-color:var(--color-success-light)}.n8n-button-danger:hover{background:var(--color-danger-light);border-color:var(--color-danger-light)}.n8n-button.small{height:28px;padding:0 var(--spacing-xs);font-size:var(--font-size-xs)}.n8n-dynamic-list-container{display:flex;flex-direction:column;gap:var(--spacing-m)}.n8n-dynamic-list-item{background:var(--color-background-lighter);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);padding:var(--spacing-m);transition:all var(--transition-fast)}.n8n-dynamic-list-item:hover{border-color:var(--color-border-base);box-shadow:var(--box-shadow-xs)}.n8n-dynamic-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-s)}.n8n-dynamic-item-number{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base)}.address-selector-wrapper{margin:var(--spacing-xs) 0}@media (max-width: 768px){.n8n-location-create-container{padding:var(--spacing-m)}.n8n-form-grid.two-column,.n8n-form-grid.three-column{grid-template-columns:1fr}.n8n-section-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-s)}}.stat-icon,.tab-icon,.action-icon,.status-icon,.btn-icon,.section-icon,.header-icon,.stat-icon-large{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.overview-container{background:var(--color-background);padding:0;position:relative;transition:background-color var(--transition-base);word-break:keep-all;font-family:var(--font-family-primary)}.overview-container.dark{background:var(--color-background)}.page-title.compact{font-size:var(--font-size-m)}.page-description.compact{font-size:var(--font-size-s)}.n8n-stats-section{padding:var(--spacing-xl);max-width:var(--max-width-content);margin:0 auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-l);width:100%;box-sizing:border-box}.stat-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-l);transition:all var(--transition-base);box-shadow:var(--box-shadow-xs);width:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;min-height:120px}.stat-card:hover{box-shadow:var(--box-shadow-s);transform:translateY(-1px)}.stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-m)}.stat-title{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0;word-break:keep-all;text-align:left}.stat-title-section{display:flex;align-items:center;gap:var(--spacing-2xs)}.stat-title-section .stat-icon{width:20px;height:20px;flex-shrink:0}.stat-badge{padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-l);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.stat-badge-primary{background:var(--color-primary-tint);color:var(--color-primary)}.stat-badge-info{background:var(--color-info-tint);color:var(--color-info)}.stat-badge-success{background:var(--color-success-tint);color:var(--color-success)}.stat-badge-warning{background:var(--color-warning-tint);color:var(--color-warning)}.overview-container .stat-value{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);line-height:1.2;margin-bottom:var(--spacing-xs);text-align:left;display:flex;align-items:center}.stat-footer{display:flex;align-items:center;gap:var(--spacing-2xs)}.stat-change{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);padding:var(--spacing-5xs) var(--spacing-4xs);border-radius:var(--border-radius-s)}.stat-change.positive{background:var(--color-success-tint);color:var(--color-success)}.stat-change.negative{background:var(--color-danger-tint);color:var(--color-danger)}.stat-change.neutral{background:var(--color-background-lighter);color:var(--color-text-base)}.stat-period{font-size:var(--font-size-s);color:var(--color-text-lighter)}.n8n-content-section{padding:0 var(--spacing-xl) var(--spacing-xl);max-width:var(--max-width-content);margin:0 auto}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--spacing-l);width:100%;box-sizing:border-box}.n8n-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-xs);transition:all var(--transition-base);overflow:hidden;width:100%;box-sizing:border-box}.n8n-card:hover{box-shadow:var(--box-shadow-s)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-l) var(--spacing-l) var(--spacing-s);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-s);flex-wrap:wrap}.card-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;word-break:keep-all;text-align:left}.card-action-button{background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);padding:var(--spacing-2xs) var(--spacing-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-4xs);min-width:64px;height:28px;box-sizing:border-box;text-align:center;word-break:keep-all;white-space:nowrap}.card-action-button .action-icon{width:14px;height:14px;flex-shrink:0}.card-action-button:hover{background:var(--color-background-lighter);border-color:var(--color-border-base);color:var(--color-text-dark);transform:translateY(-1px);box-shadow:var(--box-shadow-xs)}.card-action-button:active{transform:translateY(0);box-shadow:none}.overview-container.dark .card-action-button{background:var(--color-background-lighter);border-color:var(--color-border-base);color:var(--color-text-base)}.overview-container.dark .card-action-button:hover{background:var(--color-background-light);color:var(--color-text-dark)}.card-content{padding:var(--spacing-s) var(--spacing-l) var(--spacing-l)}.data-table{display:flex;flex-direction:column;gap:var(--spacing-xs)}.table-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.table-row:hover{background:var(--color-background-light);margin:0 calc(var(--spacing-xs) * -1);padding:var(--spacing-xs);border-radius:var(--border-radius-s)}.table-cell{flex:1}.location-info{display:flex;flex-direction:column;gap:var(--spacing-5xs)}.location-name{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark);word-break:keep-all;text-align:left}.location-detail{font-size:var(--font-size-xs);color:var(--color-text-light);word-break:keep-all;text-align:left}.status-indicator{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.status-indicator .status-icon{width:16px;height:16px;flex-shrink:0}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-indicator.status-active .status-dot{background:var(--color-success)}.status-indicator.status-active{color:var(--color-success)}.status-indicator.status-warning .status-dot{background:var(--color-warning)}.status-indicator.status-warning{color:var(--color-warning)}.status-indicator.status-error .status-dot{background:var(--color-danger)}.status-indicator.status-error{color:var(--color-danger)}.status-list{display:flex;flex-direction:column;gap:var(--spacing-s)}.status-item{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.status-item-info{display:flex;align-items:center;justify-content:space-between}.status-item-label{font-size:var(--font-size-s);color:var(--color-text-base);word-break:keep-all;text-align:left}.status-item-value{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark);word-break:keep-all;text-align:right}.progress-bar{height:4px;background:var(--color-background-lighter);border-radius:var(--border-radius-s);overflow:hidden}.progress-fill{height:100%;background:var(--color-success);border-radius:var(--border-radius-s);transition:width var(--transition-base)}.metric-indicator{padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.metric-indicator.metric-good{background:var(--color-success-tint);color:var(--color-success)}.metric-indicator.metric-warning{background:var(--color-warning-tint);color:var(--color-warning)}.metric-indicator.metric-error{background:var(--color-danger-tint);color:var(--color-danger)}.activity-timeline{display:flex;flex-direction:column;gap:var(--spacing-s)}.activity-item{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);border-radius:var(--border-radius-s);transition:background-color var(--transition-fast)}.activity-item:hover{background:var(--color-background-light)}.activity-content{display:flex;flex-direction:column;gap:var(--spacing-5xs);flex:1}.activity-title{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark);word-break:keep-all;text-align:left}.activity-description{font-size:var(--font-size-xs);color:var(--color-text-light);word-break:keep-all;text-align:left}.compact-nav-header,.compact-action-toolbar,.streamlined-content-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-l);margin-bottom:var(--spacing-l);box-shadow:var(--box-shadow-s)}.compact-page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-xs) 0;display:flex;align-items:center;gap:var(--spacing-2xs)}.compact-page-title>svg{width:24px;height:24px;flex-shrink:0}.breadcrumb-nav{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-s);color:var(--color-text-light)}.breadcrumb-item{display:flex;align-items:center;gap:var(--spacing-4xs)}.breadcrumb-item>svg{width:16px;height:16px;flex-shrink:0}.breadcrumb-separator{color:var(--color-text-lighter)}.status-text{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-s);color:var(--color-text-base)}.status-text .status-icon{width:18px;height:18px;flex-shrink:0}.modern-empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-text-light)}.empty-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-m);display:flex;justify-content:center;align-items:center}.empty-icon>svg{width:48px;height:48px}.empty-text{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin-bottom:var(--spacing-2xs)}.n8n-tabs-container{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-xs);overflow:hidden;width:100%;box-sizing:border-box}.n8n-tabs-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-l) var(--spacing-l) var(--spacing-s);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-s);flex-wrap:wrap}.tabs-nav{display:flex;gap:var(--spacing-5xs);background:var(--color-background-light);border-radius:var(--border-radius-s);padding:var(--spacing-5xs)}.tab-button{background:transparent;border:none;padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;word-break:keep-all;position:relative;display:inline-flex;align-items:center;gap:var(--spacing-2xs)}.tab-button .tab-icon{width:16px;height:16px;flex-shrink:0}.tab-button:hover{background:var(--color-background-lighter);color:var(--color-text-dark)}.tab-button.active{background:var(--color-background-base);color:var(--color-text-dark);box-shadow:var(--box-shadow-xs);border:1px solid var(--color-border-light)}.tab-content{padding:var(--spacing-s) var(--spacing-l) var(--spacing-l)}.data-table-container{background:transparent;border-radius:var(--border-radius-s);overflow:hidden}.data-table-header{display:grid;grid-template-columns:2fr 3fr 1fr 1fr;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-xs);background:var(--color-background-light);border-bottom:1px solid var(--color-border-light);border-radius:var(--border-radius-s) var(--border-radius-s) 0 0}.table-header-cell{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-base);text-transform:uppercase;letter-spacing:.02em;padding:var(--spacing-2xs) 0;word-break:keep-all;text-align:left}.data-table-body{background:var(--color-background-base)}.table-row{display:grid;grid-template-columns:2fr 3fr 1fr 1fr;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-xs);border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast);align-items:center}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--color-background-light)}.table-cell{display:flex;align-items:center;font-size:var(--font-size-s);color:var(--color-text-base);word-break:keep-all;text-align:left}.location-detail{font-size:var(--font-size-xs);color:var(--color-text-light)}.system-item-name,.system-value{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.system-detail{font-size:var(--font-size-xs);color:var(--color-text-light)}.activity-time{font-size:var(--font-size-xs);color:var(--color-text-lighter);min-width:60px;flex-shrink:0}.activity-title{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.activity-target{font-size:var(--font-size-s);color:var(--color-text-base)}.table-action-btn{background:var(--color-primary-tint);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius-s);padding:var(--spacing-5xs) var(--spacing-2xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--spacing-4xs)}.table-action-btn .btn-icon{width:14px;height:14px;flex-shrink:0}.table-action-btn:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px);box-shadow:var(--box-shadow-xs)}.progress-bar-small{width:60px;height:4px;background:var(--color-background-lighter);border-radius:var(--border-radius-s);overflow:hidden}.progress-bar-small .progress-fill{height:100%;background:var(--color-success);border-radius:var(--border-radius-s);transition:width var(--transition-base)}.data-table-container:has(.system-item-name) .data-table-header{grid-template-columns:2fr 1fr 1fr 2fr}.data-table-container:has(.system-item-name) .table-row{grid-template-columns:2fr 1fr 1fr 2fr}.data-table-container:has(.activity-time) .data-table-header{grid-template-columns:1fr 3fr 2fr 1fr}.data-table-container:has(.activity-time) .table-row{grid-template-columns:1fr 3fr 2fr 1fr}.overview-container.dark .tab-button.active{background:var(--color-background-lighter);border-color:var(--color-border-base)}.overview-container.dark .table-action-btn{background:var(--color-primary-tint);border-color:var(--color-primary)}.overview-container.dark .table-action-btn:hover{background:var(--color-primary);color:#fff}@media (max-width: 1280px){.n8n-stats-section,.n8n-content-section{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}.page-header-content{max-width:100%;padding:0 var(--spacing-l)}.error-banner{margin-left:var(--spacing-l);margin-right:var(--spacing-l)}}@media (max-width: 768px){.n8n-stats-section,.n8n-content-section{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.page-header-content{max-width:100%;padding:0 var(--spacing-m)}.error-banner{margin-left:var(--spacing-m);margin-right:var(--spacing-m)}.page-title{font-size:var(--font-size-l);line-height:1.3;word-break:keep-all}.page-description{font-size:var(--font-size-xs);line-height:1.4;word-break:keep-all}.stats-grid,.content-grid{grid-template-columns:1fr;gap:var(--spacing-m)}.stat-card{padding:var(--spacing-m)}.stat-value{font-size:var(--font-size-2xl)}.table-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-2xs);padding:var(--spacing-xs)}.card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-s);padding:var(--spacing-m)}.card-action-button{align-self:flex-start;min-width:80px;height:32px;font-size:var(--font-size-s)}.card-content{padding:var(--spacing-m)}.n8n-tabs-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-s);padding:var(--spacing-m)}.tabs-nav{width:100%;justify-content:center}.tab-button{flex:1;text-align:center;padding:var(--spacing-xs) var(--spacing-2xs);font-size:var(--font-size-xs)}.card-action-button{align-self:stretch;min-width:100%;height:36px;font-size:var(--font-size-s)}.tab-content{padding:var(--spacing-m)}.data-table-header{display:none}.table-row{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-2xs);padding:var(--spacing-s);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);margin-bottom:var(--spacing-xs);background:var(--color-background-base)}.table-row:hover{background:var(--color-background-light)}.table-cell{width:100%;justify-content:space-between;padding:var(--spacing-5xs) 0}.table-cell:before{content:attr(data-label);font-weight:var(--font-weight-medium);color:var(--color-text-base);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.02em;margin-right:var(--spacing-xs)}.table-action-btn{align-self:flex-start;margin-top:var(--spacing-2xs)}}@media (max-width: 480px){.n8n-stats-section,.n8n-content-section{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.page-header-content{padding:0 var(--spacing-s)}.error-banner{margin-left:var(--spacing-s);margin-right:var(--spacing-s)}.page-title{font-size:var(--font-size-m)}.stat-value{font-size:var(--font-size-xl)}.n8n-tabs-header{padding:var(--spacing-s)}.tab-button{padding:var(--spacing-2xs);font-size:var(--font-size-xs)}.card-action-button{height:32px;font-size:var(--font-size-xs)}.tab-content{padding:var(--spacing-s)}.table-row{padding:var(--spacing-xs);margin-bottom:var(--spacing-2xs)}}.stat-icon-large{width:48px;height:48px;color:var(--color-primary);flex-shrink:0;margin-bottom:var(--spacing-s)}.modern-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-l);margin-bottom:var(--spacing-xl)}.modern-stat-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-l);text-align:center;transition:all var(--transition-base);box-shadow:var(--box-shadow-xs)}.modern-stat-card:hover{box-shadow:var(--box-shadow-s);transform:translateY(-1px)}.stat-card-header{display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-card-content h3{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0 0 var(--spacing-xs) 0}.stat-value-large{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:var(--spacing-s) 0}.streamlined-section-title{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.streamlined-section-title .section-icon{width:20px;height:20px;flex-shrink:0}.modern-content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--spacing-l)}.streamlined-content-header{padding-bottom:var(--spacing-m);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--spacing-m)}.modern-list-container{display:flex;flex-direction:column;gap:var(--spacing-s)}.modern-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-s);background:var(--color-background-light);border-radius:var(--border-radius-s);transition:all var(--transition-fast)}.modern-list-item:hover{background:var(--color-background-lighter)}.list-item-info{display:flex;flex-direction:column;gap:var(--spacing-5xs)}.list-item-title{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.list-item-subtitle{font-size:var(--font-size-xs);color:var(--color-text-light)}.activity-indicator{display:flex;align-items:center;gap:var(--spacing-xs)}.activity-dot.online{background:var(--color-success)}.activity-dot.offline{background:var(--color-danger)}.modern-status-badge{padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-l);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.modern-status-badge.status-normal{background:var(--color-success-tint);color:var(--color-success)}.has-sticky-header{position:relative}.sticky-header-container{position:fixed;top:0;left:260px;right:0;z-index:9999;background:var(--color-background);border-bottom:1px solid var(--border-color-base);box-shadow:0 2px 8px #0000001a;transform:translateY(-100%);transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);opacity:0;pointer-events:none;visibility:hidden}.sidebar-collapsed~.main-content .sticky-header-container,.dashboard-container.sidebar-collapsed .sticky-header-container{left:60px}.dark .sticky-header-container{background:var(--color-background);border-bottom-color:var(--border-color-base);box-shadow:0 2px 8px #0000004d}.sticky-header-container.is-sticky{transform:translateY(0);opacity:1;pointer-events:auto;visibility:visible}.sticky-header-content{max-width:var(--max-width-content);margin:0 auto;padding:var(--spacing-s) var(--spacing-m);display:flex;align-items:center;justify-content:space-between;min-height:60px}.sticky-header-left{display:flex;align-items:center;gap:var(--spacing-m)}.sticky-header-title{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.sticky-header-summary{display:flex;align-items:center;gap:var(--spacing-s);font-size:var(--font-size-s);color:var(--color-text-base)}.sticky-summary-item{display:flex;align-items:center;gap:var(--spacing-2xs);padding:var(--spacing-3xs) var(--spacing-2xs);background:var(--color-background-light);border-radius:var(--border-radius-s);border:1px solid var(--border-color-light)}.dark .sticky-summary-item{background:var(--color-background-darker);border-color:var(--border-color-base)}.sticky-summary-label{font-weight:var(--font-weight-medium);opacity:.8}.sticky-summary-value{font-weight:var(--font-weight-bold);color:var(--color-primary)}.sticky-header-right{display:flex;align-items:center;gap:var(--spacing-xs)}.sticky-header-actions{display:flex;align-items:center;gap:var(--spacing-2xs)}.sticky-header-actions .n8n-button{padding:var(--spacing-3xs) var(--spacing-xs);font-size:var(--font-size-xs);min-height:32px}.sticky-header-actions .button-icon{width:16px;height:16px}.original-header{transition:opacity .3s ease-in-out}.original-header.is-sticky{opacity:.3;pointer-events:none}.main-content-with-sticky{transition:padding-top .3s ease-in-out}.main-content-with-sticky.has-sticky-padding{padding-top:60px}@media (max-width: 768px){.sticky-header-container{left:0}.sticky-header-content{padding:var(--spacing-xs) var(--spacing-s);min-height:50px}.sticky-header-left{gap:var(--spacing-s)}.sticky-header-title{font-size:var(--font-size-s)}.sticky-header-summary{font-size:var(--font-size-2xs);gap:var(--spacing-2xs)}.sticky-summary-item{padding:var(--spacing-4xs) var(--spacing-3xs)}.sticky-header-actions .n8n-button{padding:var(--spacing-4xs) var(--spacing-2xs);font-size:var(--font-size-2xs);min-height:28px}.sticky-header-actions .button-icon{width:14px;height:14px}.main-content-with-sticky.has-sticky-padding{padding-top:50px}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUp{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100%);opacity:0}}.sticky-scroll-indicator{position:absolute;bottom:0;left:0;height:2px;background:var(--color-primary);transition:width .1s ease-out}.sticky-summary-item.success .sticky-summary-value{color:var(--color-success)}.sticky-summary-item.warning .sticky-summary-value{color:var(--color-warning)}.sticky-summary-item.danger .sticky-summary-value{color:var(--color-danger)}.sticky-summary-item.info .sticky-summary-value{color:var(--color-info)}.card-title-section{flex:1;min-width:0;overflow:hidden}.card-subtitle{font-size:var(--font-size-s);color:var(--color-text-light);margin:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-search-section{background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);padding:var(--spacing-l) 0;animation:slideDown .3s ease-out;transform-origin:top}.user-search-content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-xl)}.user-search-header{margin-bottom:var(--spacing-l)}.user-search-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;display:flex;align-items:center;gap:var(--spacing-xs)}.user-search-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-l)}.user-search-field{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.user-search-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base)}.user-search-input,.user-search-select{padding:var(--spacing-xs) var(--spacing-s);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);font-size:var(--font-size-s);background:var(--color-background-base);color:var(--color-text-base);transition:all var(--transition-fast)}.user-search-input:focus,.user-search-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.user-search-actions{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.user-search-btn{padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);white-space:nowrap}.user-search-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.user-search-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.user-search-btn.primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.user-search-btn.secondary{background:var(--color-background-light);color:var(--color-text-base);border-color:var(--color-border-base)}.user-search-btn.secondary:hover{background:var(--color-background-lighter);color:var(--color-text-dark);border-color:var(--color-border-dark)}.user-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-xl)}.user-card-locations{flex:1;margin-bottom:var(--spacing-s)}.user-locations-header{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin-bottom:var(--spacing-xs)}.user-locations-container{display:flex;flex-wrap:wrap;gap:var(--spacing-2xs);min-height:60px;max-height:120px;overflow-y:auto;padding:var(--spacing-2xs) 0}.user-location-tag{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);line-height:1.2;white-space:nowrap;max-width:100%}.user-location-tag-text{color:var(--color-text-base);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-location-tag.user-no-locations{background:var(--color-background-lighter);border:1px dashed var(--color-border-light)}.user-location-tag.user-no-locations .user-location-tag-text{color:var(--color-text-light);font-style:italic}.user-pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-2xs);margin-top:var(--spacing-xl)}.user-pagination-btn{padding:var(--spacing-xs) var(--spacing-s);border:1px solid var(--color-border-base);background:var(--color-background-base);color:var(--color-text-base);border-radius:var(--border-radius-s);font-size:var(--font-size-s);cursor:pointer;transition:all var(--transition-fast);min-width:36px;height:36px;display:flex;align-items:center;justify-content:center}.user-pagination-btn:hover:not(:disabled){background:var(--color-primary-tint);border-color:var(--color-primary);color:var(--color-primary)}.user-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.user-pagination-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}@media (max-width: 1280px){.user-profile-header-content,.user-search-content,.user-content-section{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}}@media (max-width: 768px){.user-profile-header-content,.user-search-content,.user-content-section{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.user-profile-header-content{flex-direction:column;gap:var(--spacing-m)}.user-profile-avatar-section{flex-direction:column;text-align:center}.user-profile-avatar{width:60px;height:60px}.user-avatar-icon{font-size:2rem}.user-profile-actions{width:100%;flex-direction:column}.user-profile-action-btn{width:100%;justify-content:center}.user-search-grid{grid-template-columns:1fr}.user-search-actions{flex-direction:column}.user-search-btn{width:100%;justify-content:center}.user-content-header{flex-direction:column;align-items:stretch}.user-cards-grid{grid-template-columns:1fr}}@media (max-width: 480px){.user-profile-header-content,.user-search-content,.user-content-section{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.user-profile-title{font-size:var(--font-size-xl)}.user-content-title{font-size:var(--font-size-l)}}.user-table-container{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-xs)}.user-table-wrapper{overflow-x:auto;max-width:100%}.user-table{width:100%;border-collapse:collapse;font-size:var(--font-size-s)}.user-table thead{background:var(--color-background-light);border-bottom:2px solid var(--color-border-base)}.user-table th{padding:var(--spacing-s) var(--spacing-xs);text-align:left;font-weight:var(--font-weight-bold);color:var(--color-text-dark);border-right:1px solid var(--color-border-light);white-space:nowrap;font-size:var(--font-size-s)}.user-table th:last-child{border-right:none}.user-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.user-table tbody tr:hover{background:var(--color-background-lighter)}.user-table tbody tr.inactive-row{opacity:.6;background:var(--color-background-light)}.user-table td{padding:var(--spacing-s) var(--spacing-xs);border-right:1px solid var(--color-border-light);vertical-align:top}.user-table td:last-child{border-right:none}.sns-cell{min-width:80px}.sns-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.sns-badge.google{background:#ea4335;color:#fff}.sns-badge.apple{background:#000;color:#fff}.sns-badge.default{background:var(--color-background-light);color:var(--color-text-base)}.location-count-cell{min-width:80px;text-align:center}.actions-cell{min-width:100px;text-align:center}@media (max-width: 1024px){.user-table th,.user-table td{padding:var(--spacing-xs) var(--spacing-2xs)}.user-table{font-size:var(--font-size-xs)}.user-email-cell{max-width:180px}}@media (max-width: 768px){.user-table-wrapper{overflow-x:scroll}.user-table{min-width:700px}}.user-info-container.dark .user-profile-header-section,.user-info-container.dark .user-table thead,.user-info-container.dark .user-table tbody tr:hover{background:var(--color-background-dark)}.button-icon{font-size:var(--font-size-m);line-height:1}.empty-title{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0 0 var(--spacing-2xs) 0;text-align:center}.empty-description{font-size:var(--font-size-s);color:var(--color-text-light);margin:0;text-align:center}.metric-label{font-size:var(--font-size-s);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.metric-value{font-size:var(--font-size-s);color:var(--color-text-base);text-align:right;word-break:keep-all}.card-footer{padding:var(--spacing-m);border-top:1px solid var(--color-border-light)}.n8n-tag{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);line-height:1.2;white-space:nowrap;color:var(--color-text-base);font-weight:var(--font-weight-medium)}.devices-section{margin-bottom:var(--spacing-s)}.section-title{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0 0 var(--spacing-2xs) 0;display:flex;align-items:center;gap:var(--spacing-2xs)}.user-locations-count{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-regular)}.tags-container{display:flex;flex-wrap:wrap;gap:var(--spacing-2xs);min-height:24px}.empty-text{font-size:var(--font-size-xs);color:var(--color-text-light);font-style:italic;padding:var(--spacing-5xs) var(--spacing-2xs)}.user-info-container{background:var(--color-background);padding:0;position:relative;transition:background-color var(--transition-base);word-break:keep-all;font-family:var(--font-family-primary)}.user-info-container.dark{background:var(--color-background)}.user-profile-header-section{background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);padding:var(--spacing-xl) 0}.user-profile-header-content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-xl);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-xl)}.user-profile-avatar-section{display:flex;align-items:center;gap:var(--spacing-l);flex:1}.user-profile-avatar{width:80px;height:80px;background:var(--color-primary-tint);border-radius:var(--border-radius-l);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.user-avatar-icon{font-size:2.5rem;color:var(--color-primary)}.user-profile-header-info{flex:1;min-width:0}.user-profile-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0;line-height:1.3;word-break:keep-all}.user-profile-subtitle{font-size:var(--font-size-m);color:var(--color-text-light);margin:0 0 var(--spacing-xs) 0}.user-profile-meta{display:flex;align-items:center;gap:var(--spacing-m);flex-wrap:wrap}.user-meta-item{font-size:var(--font-size-s);color:var(--color-text-base);display:flex;align-items:center;gap:var(--spacing-2xs)}.user-profile-actions{display:flex;gap:var(--spacing-xs);align-items:center;flex-shrink:0}.user-profile-action-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);text-decoration:none;white-space:nowrap}.user-profile-action-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.user-profile-action-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.user-profile-action-btn.primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.user-profile-action-btn.secondary{background:var(--color-background-light);color:var(--color-text-base);border-color:var(--color-border-base)}.user-profile-action-btn.secondary:hover{background:var(--color-background-lighter);color:var(--color-text-dark);border-color:var(--color-border-dark)}.user-content-section{max-width:var(--max-width-content);margin:var(--spacing-xl) auto;padding:0 var(--spacing-xl)}.user-content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-l);flex-wrap:wrap;gap:var(--spacing-m)}.user-content-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;display:flex;align-items:center;gap:var(--spacing-xs)}.user-content-controls{display:flex;align-items:center;gap:var(--spacing-m)}.user-page-size-control{display:flex;align-items:center;gap:var(--spacing-xs)}.user-page-size-label{font-size:var(--font-size-s);color:var(--color-text-base)}.user-page-size-select{padding:var(--spacing-2xs) var(--spacing-xs);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);font-size:var(--font-size-s);background:var(--color-background-base);color:var(--color-text-base)}.user-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-xl)}.user-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-m);box-shadow:var(--box-shadow-xs);transition:all var(--transition-base);display:flex;flex-direction:column;min-height:280px}.user-card:hover{box-shadow:var(--box-shadow-s);transform:translateY(-1px)}.user-card.inactive{opacity:.7;background:var(--color-background-light)}.user-card-content{flex:1;display:flex;flex-direction:column}.user-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-s);gap:var(--spacing-s)}.user-card-avatar-section{display:flex;align-items:center;gap:var(--spacing-s);flex:1;min-width:0}.user-card-avatar{width:48px;height:48px;background:var(--color-primary-tint);border-radius:var(--border-radius-m);display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-card-avatar-text{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-primary)}.user-card-info{flex:1;min-width:0}.user-card-name{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0;word-break:keep-all}.user-card-email{font-size:var(--font-size-s);color:var(--color-text-light);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-status{flex-shrink:0}.user-sns-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.user-sns-badge.google{background:#ea4335;color:#fff}.user-sns-badge.apple{background:#000;color:#fff}.user-sns-badge.default{background:var(--color-background-light);color:var(--color-text-base)}.user-card-meta{margin-bottom:var(--spacing-s);padding:var(--spacing-s) 0;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.user-meta-row{display:flex;justify-content:space-between;align-items:center}.user-meta-label{font-size:var(--font-size-s);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.user-meta-value{font-size:var(--font-size-s);color:var(--color-text-base);text-align:right;word-break:keep-all}.user-card-actions{display:flex;gap:var(--spacing-xs);justify-content:center;margin-top:auto;padding-top:var(--spacing-s);border-top:1px solid var(--color-border-light)}.user-action-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);flex:1;justify-content:center}.user-action-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.user-action-btn.success{background:var(--color-success);color:#fff;border-color:var(--color-success)}.user-action-btn.success:hover{background:var(--color-success-light);border-color:var(--color-success-light)}.user-action-btn.danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.user-action-btn.danger:hover{background:var(--color-danger-light);border-color:var(--color-danger-light)}.user-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4xl) var(--spacing-xl);text-align:center}.user-empty-icon{font-size:4rem;margin-bottom:var(--spacing-l);opacity:.5}.user-empty-text{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin-bottom:var(--spacing-xs)}.user-empty-subtitle{font-size:var(--font-size-m);color:var(--color-text-light)}.user-loading-state,.user-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl)}.user-loading-spinner{width:50px;height:50px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:user-spin 1s linear infinite;margin-bottom:var(--spacing-m)}@keyframes user-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.user-loading-text,.user-error-text{font-size:var(--font-size-m);color:var(--color-text-base);margin-bottom:var(--spacing-m)}.user-error-icon{font-size:3rem;color:var(--color-danger);margin-bottom:var(--spacing-m)}.user-retry-btn{padding:var(--spacing-2xs) var(--spacing-s);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.user-retry-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.approval-modal-content{display:flex;flex-direction:column;gap:16px}.approval-modal-info-group{border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:12px}.approval-modal-info-group:last-child{border-bottom:none}.approval-modal-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-light);margin-bottom:4px;display:block}.approval-modal-value{margin:0;color:var(--color-text-base);font-size:var(--font-size-s)}.approval-auth-badge{display:inline-block;font-size:var(--font-size-xs);padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-weight:var(--font-weight-medium);background:var(--color-primary);color:#fff;text-transform:uppercase;letter-spacing:.02em}.auth-selection-option{display:block;margin-bottom:12px;cursor:pointer;padding:12px;border:2px solid var(--color-border-base);border-radius:var(--border-radius-s);background:var(--color-background-light);transition:all var(--transition-fast);position:relative}.auth-selection-option:hover{background:var(--color-background-lighter);border-color:var(--color-primary-tint)}.auth-selection-option.selected{border-color:var(--color-primary);background:var(--color-primary-tint);box-shadow:0 0 0 1px var(--color-primary-tint)}.auth-selection-radio{margin-right:8px;accent-color:var(--color-primary)}.auth-selection-title{font-weight:var(--font-weight-medium);font-size:var(--font-size-s);color:var(--color-text-dark);margin-bottom:4px}.auth-selection-description{font-size:var(--font-size-xs);color:var(--color-text-light);margin-left:20px;opacity:.8}.modal-action-buttons{margin-top:20px;display:flex;gap:var(--spacing-xs);justify-content:flex-end}.modal-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);cursor:pointer;font-size:var(--font-size-s);transition:all var(--transition-fast);border:1px solid;font-weight:var(--font-weight-medium);display:inline-flex;align-items:center;gap:var(--spacing-2xs)}.modal-btn.cancel{border-color:var(--color-border-base);background:var(--color-background-light);color:var(--color-text-base)}.modal-btn.cancel:hover{background:var(--color-background-lighter);border-color:var(--color-border-dark)}.modal-btn.confirm{background:var(--color-success);color:#fff;border-color:var(--color-success)}.modal-btn.confirm:hover{background:var(--color-success-light);border-color:var(--color-success-light);transform:translateY(-1px);box-shadow:var(--box-shadow-s)}@media (max-width: 1280px){.user-profile-header-content,.user-content-section{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}}@media (max-width: 768px){.user-profile-header-content,.user-content-section{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.user-profile-header-content{flex-direction:column;gap:var(--spacing-m)}.user-profile-avatar-section{flex-direction:column;text-align:center}.user-profile-avatar{width:60px;height:60px}.user-avatar-icon{font-size:2rem}.user-profile-actions{width:100%;flex-direction:column}.user-profile-action-btn{width:100%;justify-content:center}.user-content-header{flex-direction:column;align-items:stretch}.user-cards-grid{grid-template-columns:1fr}}@media (max-width: 480px){.user-profile-header-content,.user-content-section{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.user-profile-title{font-size:var(--font-size-xl)}.user-content-title{font-size:var(--font-size-l)}}.user-info-container.dark .user-card,.user-info-container.dark .user-profile-header-section{background:var(--color-background-dark)}.approval-table-container{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-xs)}.approval-table-wrapper{overflow-x:auto;max-width:100%}.approval-table{width:100%;border-collapse:collapse;font-size:var(--font-size-s)}.approval-table thead{background:var(--color-background-light);border-bottom:2px solid var(--color-border-base)}.approval-table th{padding:var(--spacing-s) var(--spacing-xs);text-align:left;font-weight:var(--font-weight-bold);color:var(--color-text-dark);border-right:1px solid var(--color-border-light);white-space:nowrap;font-size:var(--font-size-s)}.approval-table th:last-child{border-right:none}.approval-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.approval-table tbody tr:hover{background:var(--color-background-lighter)}.approval-table td{padding:var(--spacing-s) var(--spacing-xs);border-right:1px solid var(--color-border-light);vertical-align:middle}.approval-table td:last-child{border-right:none}.user-name-cell{min-width:120px}.user-name{font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.user-email-cell{min-width:200px;max-width:250px}.user-email{font-size:var(--font-size-s);color:var(--color-text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.no-email{font-size:var(--font-size-s);color:var(--color-text-light);font-style:italic}.auth-cell{min-width:120px}.date-cell{min-width:120px;text-align:center}.actions-cell{min-width:140px;text-align:center}.table-actions{display:flex;gap:var(--spacing-2xs);justify-content:center}.table-actions .n8n-button{padding:var(--spacing-5xs) var(--spacing-xs);font-size:var(--font-size-xs);min-width:50px}@media (max-width: 1024px){.approval-table th,.approval-table td{padding:var(--spacing-xs) var(--spacing-2xs)}.approval-table{font-size:var(--font-size-xs)}.user-email-cell{max-width:180px}}@media (max-width: 768px){.approval-table-wrapper{overflow-x:scroll}.approval-table{min-width:600px}.button-group{flex-direction:column;width:100%}.button-group .n8n-button{width:100%;justify-content:center}.action-buttons{flex-direction:column;width:100%;gap:var(--spacing-xs)}}.user-auth-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.user-auth-badge.user{background:var(--color-info-tint);color:var(--color-info)}.user-auth-badge.area-admin{background:var(--color-warning-tint);color:var(--color-warning)}.user-auth-badge.super-admin{background:var(--color-danger-tint);color:var(--color-danger)}.user-auth-badge.default{background:var(--color-background-light);color:var(--color-text-base)}.user-info-container.dark .approval-table thead,.user-info-container.dark .approval-table tbody tr:hover{background:var(--color-background-dark)}.installation-site-container{background:var(--color-background);padding:0;position:relative;transition:background-color var(--transition-base);word-break:keep-all;font-family:var(--font-family-primary)}.installation-site-container.dark{background:var(--color-background)}.n8n-action-bar{padding:var(--spacing-l) 0;background:var(--color-background-base);border-bottom:1px solid var(--color-border-light)}.action-buttons{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.n8n-button-tertiary{background:transparent;color:var(--color-text-base);border-color:var(--color-border-light)}.n8n-button-tertiary:hover{background:var(--color-background-light);border-color:var(--color-border-base)}.n8n-button.full-width{width:100%;justify-content:center}.empty-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-m)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-s);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-s)}.status-badge{padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.status-badge.normal{background:var(--color-success-tint);color:var(--color-success)}.status-badge.warning{background:var(--color-warning-tint);color:var(--color-warning)}.status-badge.error{background:var(--color-danger-tint);color:var(--color-danger)}.card-body{padding:var(--spacing-s);flex:1}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-s)}.metric-item{display:flex;flex-direction:column;gap:var(--spacing-5xs);padding:var(--spacing-2xs);background:var(--color-background-light);border-radius:var(--border-radius-s);text-align:center}.metric-label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.02em}.metric-value{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.metric-value.text-danger{color:var(--color-danger)}.metric-value.text-warning{color:var(--color-warning)}.devices-section{margin-top:var(--spacing-s)}.tags-container{display:flex;flex-wrap:wrap;gap:var(--spacing-4xs)}.n8n-tag{padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-info-tint);color:var(--color-info);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.empty-text{color:var(--color-text-lighter);font-size:var(--font-size-s);font-style:italic}.card-footer{padding:var(--spacing-s);border-top:1px solid var(--color-border-light)}.card-footer-buttons{display:flex;gap:var(--spacing-s);width:100%;box-sizing:border-box}.card-footer-buttons .n8n-button{flex:1;min-width:0;max-width:100%;box-sizing:border-box;padding:var(--spacing-2xs) var(--spacing-xs);font-size:var(--font-size-s);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;gap:var(--spacing-5xs)}.card-footer-buttons .n8n-button .button-icon{width:16px;height:16px;font-size:var(--font-size-s);flex-shrink:0}.actions-cell .action-buttons{display:flex;gap:var(--spacing-xs);justify-content:center;align-items:center}.actions-cell .action-buttons .n8n-button{padding:var(--spacing-2xs) var(--spacing-xs);min-width:80px;height:32px;font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center;gap:var(--spacing-5xs)}.actions-cell .action-buttons .n8n-button .button-icon{width:14px;height:14px;font-size:var(--font-size-s)}.location-users-modal{display:flex;flex-direction:column;max-height:80vh;overflow:hidden}.location-users-modal .modal-header-info{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-m);border-bottom:1px solid var(--color-border-light)}.location-users-modal.dark .modal-header-info{border-bottom-color:var(--color-border-dark)}.location-users-modal .location-info{flex:1}.location-users-modal .location-name{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-xs) 0}.location-users-modal .location-address{font-size:var(--font-size-s);color:var(--color-text-light);margin:0 0 var(--spacing-s) 0}.location-users-modal.dark .location-address{color:var(--color-text-light-dark)}.location-users-modal .user-stats{font-size:var(--font-size-s);color:var(--color-text-base)}.location-users-modal.dark .user-stats{color:var(--color-text-base-dark)}.location-users-modal .close-button{background:none;border:none;color:var(--color-text-light);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--border-radius-s);display:flex;align-items:center;justify-content:center}.location-users-modal .close-button:hover{background-color:var(--color-background-light)}.location-users-modal.dark .close-button{color:var(--color-text-light-dark)}.location-users-modal.dark .close-button:hover{background-color:var(--color-background-dark)}.location-users-modal .modal-action-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-m);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-m)}.location-users-modal.dark .modal-action-bar{border-bottom-color:var(--color-border-dark)}.location-users-modal .action-bar-left{display:flex;align-items:center;gap:var(--spacing-m);flex:1}.location-users-modal .action-bar-right{display:flex;align-items:center;gap:var(--spacing-s)}.location-users-modal .search-box{position:relative;display:flex;align-items:center;width:300px}.location-users-modal .search-icon{position:absolute;left:var(--spacing-s);color:var(--color-text-light);font-size:var(--font-size-m)}.location-users-modal.dark .search-icon{color:var(--color-text-light-dark)}.location-users-modal .search-input{width:100%;padding:var(--spacing-xs) var(--spacing-xl) var(--spacing-xs) var(--spacing-xl);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);background-color:var(--color-background-light);color:var(--color-text-base)}.location-users-modal.dark .search-input{background-color:var(--color-background-dark);border-color:var(--color-border-dark);color:var(--color-text-base-dark)}.location-users-modal .clear-search-btn{position:absolute;right:var(--spacing-s);background:none;border:none;cursor:pointer;color:var(--color-text-light);padding:var(--spacing-5xs);border-radius:var(--border-radius-s);display:flex;align-items:center;justify-content:center}.location-users-modal .clear-search-btn:hover{background-color:var(--color-background-xlight)}.location-users-modal.dark .clear-search-btn{color:var(--color-text-light-dark)}.location-users-modal.dark .clear-search-btn:hover{background-color:var(--color-background-dark)}.location-users-modal .filter-buttons{display:flex;gap:var(--spacing-5xs)}.location-users-modal .filter-buttons .n8n-button{border-radius:var(--border-radius-s)}.location-users-modal .filter-buttons .n8n-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.location-users-modal .filter-buttons .n8n-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.location-users-modal .filter-buttons .n8n-button:not(:first-child):not(:last-child){border-radius:0}.location-users-modal .modal-content{flex:1;overflow-y:auto;padding:var(--spacing-m)}.location-users-modal .users-groups{display:flex;flex-direction:column;gap:var(--spacing-l)}.location-users-modal .user-group{background-color:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden}.location-users-modal.dark .user-group{background-color:var(--color-background-dark);border-color:var(--color-border-dark)}.location-users-modal .group-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-m);background-color:var(--color-background-xlight);border-bottom:1px solid var(--color-border-light)}.location-users-modal.dark .group-header{background-color:var(--color-background-dark);border-bottom-color:var(--color-border-dark)}.location-users-modal .group-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);margin:0}.location-users-modal .group-count{background-color:var(--color-primary-tint);color:var(--color-primary);padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.location-users-modal.dark .group-count{background-color:var(--color-primary-tint-dark);color:var(--color-primary-dark)}.location-users-modal .users-table{width:100%}.location-users-modal .table-header{display:grid;grid-template-columns:40px 1fr 2fr 80px 80px 80px 90px;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);background-color:var(--color-background-xlight);border-bottom:1px solid var(--color-border-light);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-light)}.location-users-modal.dark .table-header{background-color:var(--color-background-dark);border-bottom-color:var(--color-border-dark);color:var(--color-text-light-dark)}.location-users-modal .table-body{display:flex;flex-direction:column}.location-users-modal .table-row{display:grid;grid-template-columns:40px 1fr 2fr 80px 80px 80px 90px;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);border-bottom:1px solid var(--color-border-light);align-items:center}.location-users-modal .table-row:last-child{border-bottom:none}.location-users-modal.dark .table-row{border-bottom-color:var(--color-border-dark)}.location-users-modal .table-row:hover{background-color:var(--color-background-xlight)}.location-users-modal.dark .table-row:hover{background-color:var(--color-background-dark)}.location-users-modal .table-cell{display:flex;align-items:center;font-size:var(--font-size-s)}.location-users-modal .checkbox-cell{justify-content:center}.location-users-modal .user-name{font-weight:var(--font-weight-medium);color:var(--color-text-base)}.location-users-modal.dark .user-name{color:var(--color-text-base-dark)}.location-users-modal .user-email{color:var(--color-text-light)}.location-users-modal.dark .user-email{color:var(--color-text-light-dark)}.location-users-modal .sns-badge{padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.location-users-modal .sns-badge.google{background-color:#ea4335;color:#fff}.location-users-modal .sns-badge.apple{background-color:#000;color:#fff}.location-users-modal .sns-badge.kakao{background-color:#fee500;color:#000}.location-users-modal .sns-badge.naver{background-color:#03c75a;color:#fff}.location-users-modal .role-badge{padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.location-users-modal .role-badge.user{background-color:var(--color-info-tint);color:var(--color-info)}.location-users-modal .role-badge.admin{background-color:var(--color-warning-tint);color:var(--color-warning)}.location-users-modal .role-badge.super_admin{background-color:var(--color-danger-tint);color:var(--color-danger)}.location-users-modal .status-badge{padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase}.location-users-modal .status-badge.active{background-color:var(--color-success-tint);color:var(--color-success)}.location-users-modal .status-badge.inactive{background-color:var(--color-danger-tint);color:var(--color-danger)}.location-users-modal .action-button{padding:var(--spacing-5xs) var(--spacing-2xs);font-size:var(--font-size-xs);min-width:60px;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;gap:var(--spacing-5xs)}.location-users-modal .action-button .button-icon{width:12px;height:12px;font-size:12px;flex-shrink:0}.unassign-modal-content,.bulk-unassign-modal-content{display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-m) 0}.modal-icon-section{display:flex;justify-content:center;margin-bottom:var(--spacing-s)}.warning-icon{font-size:3rem;color:var(--color-warning);opacity:.8}.modal-message{text-align:center}.modal-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-s) 0;color:var(--color-text-dark)}.modal-description{font-size:var(--font-size-s);color:var(--color-text-base);margin:0 0 var(--spacing-m) 0;line-height:1.5}.modal-warning{background:var(--color-warning-tint);border:1px solid var(--color-warning);border-radius:var(--border-radius-s);padding:var(--spacing-s);margin-top:var(--spacing-s)}.warning-text{font-size:var(--font-size-xs);color:var(--color-warning);margin:0;line-height:1.4}.bulk-details{background:var(--color-background-light);border-radius:var(--border-radius-s);padding:var(--spacing-s);margin:var(--spacing-s) 0;text-align:left}.detail-item{display:flex;justify-content:space-between;margin-bottom:var(--spacing-2xs);font-size:var(--font-size-s)}.detail-item:last-child{margin-bottom:0}.detail-label{color:var(--color-text-light);font-weight:var(--font-weight-medium)}.detail-value{color:var(--color-text-dark);font-weight:var(--font-weight-medium)}.error-message{display:flex;align-items:center;gap:var(--spacing-2xs);background:var(--color-danger-tint);border:1px solid var(--color-danger);border-radius:var(--border-radius-s);padding:var(--spacing-s)}.error-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--color-danger);color:#fff;border-radius:50%;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.error-text{color:var(--color-danger);font-size:var(--font-size-s);font-weight:var(--font-weight-medium)}.modal-actions{display:flex;justify-content:center;gap:var(--spacing-s);margin-top:var(--spacing-m)}.modal-actions .n8n-button{min-width:100px;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2xs);padding:var(--spacing-xs) var(--spacing-m)}.modal-actions .n8n-button.danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.modal-actions .n8n-button.danger:hover{background:var(--color-danger-dark);border-color:var(--color-danger-dark)}.modal-actions .n8n-button .button-icon{width:16px;height:16px;font-size:16px}.unassign-modal-content.dark .modal-title,.bulk-unassign-modal-content.dark .modal-title{color:var(--color-text-dark-dark)}.unassign-modal-content.dark .modal-description,.bulk-unassign-modal-content.dark .modal-description{color:var(--color-text-base-dark)}.unassign-modal-content.dark .bulk-details,.bulk-unassign-modal-content.dark .bulk-details{background:var(--color-background-dark)}.unassign-modal-content.dark .detail-label,.bulk-unassign-modal-content.dark .detail-label{color:var(--color-text-light-dark)}.unassign-modal-content.dark .detail-value,.bulk-unassign-modal-content.dark .detail-value{color:var(--color-text-dark-dark)}.site-table-container{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-xs)}.site-table-wrapper{overflow-x:auto;max-width:100%}.site-table{width:100%;border-collapse:collapse;font-size:var(--font-size-s)}.site-table thead{background:var(--color-background-light);border-bottom:2px solid var(--color-border-base)}.site-table th{padding:var(--spacing-s) var(--spacing-xs);text-align:left;font-weight:var(--font-weight-bold);color:var(--color-text-dark);border-right:1px solid var(--color-border-light);white-space:nowrap;font-size:var(--font-size-s)}.site-table th:last-child{border-right:none}.site-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.site-table tbody tr:hover{background:var(--color-background-lighter)}.site-table td{padding:var(--spacing-s) var(--spacing-xs);border-right:1px solid var(--color-border-light);vertical-align:top}.site-table td:last-child{border-right:none}.location-name-cell{min-width:180px}.location-name-content{display:flex;flex-direction:column;gap:var(--spacing-5xs)}.location-name{font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.address-cell{min-width:250px;max-width:300px}.address-cell span{font-size:var(--font-size-s);color:var(--color-text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.device-count-cell,.detail-count-cell{min-width:80px;text-align:center}.count-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-info-tint);color:var(--color-info);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family-monospace)}.user-count-cell{min-width:100px;text-align:center}.user-count{font-weight:var(--font-weight-medium);font-size:var(--font-size-s)}.user-count.text-success{color:var(--color-success)}.user-count.text-warning{color:var(--color-warning)}.user-count.text-danger{color:var(--color-danger)}.devices-cell{min-width:200px;max-width:250px}.device-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-5xs);align-items:center}.device-tag{padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-info-tint);color:var(--color-info);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.no-devices{color:var(--color-text-lighter);font-size:var(--font-size-xs);font-style:italic}.more-devices{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.actions-cell{min-width:180px;text-align:center}@media (max-width: 1024px){.site-table th,.site-table td{padding:var(--spacing-xs) var(--spacing-2xs)}.site-table{font-size:var(--font-size-xs)}.address-cell{max-width:200px}.devices-cell{max-width:180px}.actions-cell{min-width:160px}}@media (max-width: 768px){.site-table-wrapper{overflow-x:scroll}.site-table{min-width:900px}.actions-cell .action-buttons .n8n-button{min-width:70px;font-size:11px}}.installation-site-container.dark .site-table thead,.installation-site-container.dark .site-table tbody tr:hover{background:var(--color-background-dark)}@media (max-width: 1280px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}.error-banner{margin-left:var(--spacing-l);margin-right:var(--spacing-l)}}@media (max-width: 768px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.error-banner{margin-left:var(--spacing-m);margin-right:var(--spacing-m)}.page-title{font-size:var(--font-size-2xl)}.action-bar-content{flex-direction:column;align-items:stretch}.action-buttons{width:100%;flex-direction:column;gap:var(--spacing-xs)}.button-group{flex-direction:column;width:100%}.button-group .n8n-button,.n8n-button{width:100%;justify-content:center}.content-header{flex-direction:column;align-items:stretch}.n8n-grid{grid-template-columns:1fr;gap:var(--spacing-m)}.metrics-grid{grid-template-columns:1fr}.card-footer-buttons{flex-direction:column;gap:var(--spacing-xs)}.card-footer-buttons .n8n-button{width:100%;flex:none}.pagination-button,.page-number{min-width:32px;height:32px;padding:0 var(--spacing-2xs)}}@media (max-width: 480px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.error-banner{margin-left:var(--spacing-s);margin-right:var(--spacing-s)}.page-title{font-size:var(--font-size-xl)}.content-title{font-size:var(--font-size-l)}}.location-users-modal .mobile-users-cards{display:none}@media (max-width: 1024px){.location-users-modal .modal-action-bar{gap:var(--spacing-s)}.location-users-modal .action-bar-left{flex-direction:column;gap:var(--spacing-s)}.location-users-modal .search-box{width:100%;max-width:400px}.location-users-modal .filter-buttons,.location-users-modal .action-bar-right{flex-wrap:wrap;gap:var(--spacing-2xs)}.location-users-modal .action-bar-right .n8n-button{min-width:120px;font-size:var(--font-size-xs)}.location-users-modal .users-table .table-cell{padding:var(--spacing-xs) var(--spacing-2xs);font-size:var(--font-size-xs)}.location-users-modal .action-button{min-width:50px;max-width:60px;padding:var(--spacing-5xs) var(--spacing-3xs);font-size:10px}}@media (max-width: 768px){.location-users-modal .modal-action-bar{flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-s)}.location-users-modal .action-bar-left{width:100%;gap:var(--spacing-s)}.location-users-modal .search-box{width:100%;max-width:none}.location-users-modal .search-input{width:100%;font-size:var(--font-size-s);padding:var(--spacing-xs) var(--spacing-s)}.location-users-modal .filter-buttons{width:100%;display:flex;justify-content:space-between;gap:var(--spacing-xs)}.location-users-modal .filter-buttons .n8n-button{flex:1;min-width:0;font-size:var(--font-size-xs)}.location-users-modal .action-bar-right{width:100%;justify-content:space-between;gap:var(--spacing-xs)}.location-users-modal .action-bar-right .n8n-button{flex:1;min-width:0;font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-2xs)}.location-users-modal .users-table{display:none!important}.location-users-modal .mobile-users-cards{display:block!important}.location-users-modal .mobile-user-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);padding:var(--spacing-s);margin-bottom:var(--spacing-s)}.location-users-modal .mobile-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.location-users-modal .mobile-card-body{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.location-users-modal .mobile-card-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs)}.location-users-modal .mobile-card-label{color:var(--color-text-light);font-weight:var(--font-weight-medium)}.location-users-modal .mobile-card-value{color:var(--color-text-base)}.location-users-modal .mobile-card-actions{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-s);padding-top:var(--spacing-s);border-top:1px solid var(--color-border-light)}.location-users-modal .mobile-card-actions .action-button{min-width:80px;max-width:100px;font-size:var(--font-size-xs);padding:var(--spacing-2xs) var(--spacing-xs)}}@media (max-width: 480px){.location-users-modal .modal-action-bar{padding:var(--spacing-xs);gap:var(--spacing-s)}.location-users-modal .modal-header-info{padding:var(--spacing-xs)}.location-users-modal .location-name{font-size:var(--font-size-l)}.location-users-modal .search-input{font-size:var(--font-size-xs);padding:var(--spacing-2xs) var(--spacing-xs)}.location-users-modal .filter-buttons .n8n-button,.location-users-modal .action-bar-right .n8n-button{font-size:11px;padding:var(--spacing-2xs) var(--spacing-xs)}.location-users-modal .mobile-user-card{padding:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.location-users-modal .mobile-card-row{font-size:11px}.location-users-modal .mobile-card-actions .action-button{min-width:70px;max-width:90px;font-size:11px;padding:var(--spacing-3xs) var(--spacing-2xs)}.location-users-modal .group-title{font-size:var(--font-size-s)}.location-users-modal .group-count{font-size:var(--font-size-xs)}}.n8n-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-l);box-sizing:border-box;animation:n8n-modal-fade-in .2s ease-out}@keyframes n8n-modal-fade-in{0%{opacity:0}to{opacity:1}}.n8n-modal-container{background:var(--color-background-base);border-radius:var(--border-radius-l);box-shadow:var(--box-shadow-xl);border:1px solid var(--color-border-light);width:100%;max-width:900px;max-height:85vh;display:flex;flex-direction:column;animation:n8n-modal-slide-in .3s ease-out;overflow:hidden}@keyframes n8n-modal-slide-in{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.n8n-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-l);border-bottom:1px solid var(--color-border-light);background:var(--color-background-light);flex-shrink:0}.n8n-modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;word-break:keep-all}.n8n-modal-close{width:32px;height:32px;border:none;background:transparent;color:var(--color-text-light);font-size:24px;cursor:pointer;border-radius:var(--border-radius-s);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);line-height:1}.n8n-modal-close:hover:not(:disabled){background:var(--color-danger-tint);color:var(--color-danger)}.n8n-modal-close:disabled{opacity:.5;cursor:not-allowed}.n8n-modal-body{flex:1;overflow-y:auto;padding:var(--spacing-l)}.n8n-modal-footer{background:var(--color-background-light);border-top:1px solid var(--color-border-light);padding:var(--spacing-l);flex-shrink:0;position:relative}.n8n-modal-footer .n8n-form-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end;margin:0;padding:0;border:none}.form-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-m);z-index:100;transition:all var(--transition-base)}[data-theme=dark] .form-loading-overlay{background:#000c}.form-loading-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:n8n-spin 1s linear infinite}@keyframes n8n-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.n8n-form-label.required:after{content:" *";color:var(--color-danger);font-weight:var(--font-weight-bold);margin-left:var(--spacing-5xs)}.n8n-create-form{display:flex;flex-direction:column;gap:var(--spacing-l)}.address-selector-wrapper .address-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;gap:var(--spacing-m)!important;align-items:start!important}.address-selector-wrapper .address-grid .n8n-form-group{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;margin-top:0!important;min-height:auto!important}.address-selector-wrapper .n8n-form-label{margin-bottom:var(--spacing-2xs)!important;flex-shrink:0!important}.address-selector-wrapper .n8n-form-select{min-height:36px!important;flex:1!important}.coordinate-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:var(--spacing-m)!important;align-items:start!important}.coordinate-grid .n8n-form-group{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;margin-top:0!important;min-height:auto!important}.n8n-form-grid.two-column{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:var(--spacing-m)!important;align-items:start!important}.n8n-form-grid.two-column .n8n-form-group{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;margin-top:0!important;min-height:auto!important}.n8n-section-content{padding:var(--spacing-m)}.n8n-section-content .n8n-form-group+.n8n-form-group{margin-top:var(--spacing-s)}.n8n-section-content .n8n-form-grid+.n8n-form-group{margin-top:var(--spacing-s)}.n8n-section-content .n8n-form-group+.n8n-form-grid{margin-top:var(--spacing-s)}.n8n-section-header .n8n-button{min-width:auto;white-space:nowrap}@media (max-width: 1024px){.n8n-form-grid.three-column{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.n8n-location-create-container{padding:var(--spacing-m)}.n8n-section-content{padding:var(--spacing-l)}.n8n-form-grid.two-column,.n8n-form-grid.three-column{grid-template-columns:1fr}.n8n-section-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-s)}.n8n-section-header .n8n-button{width:100%;justify-content:center}}.n8n-form-input.error{border-color:var(--color-danger);background-color:var(--color-danger-tint)}.n8n-form-input.error:focus{border-color:var(--color-danger);box-shadow:0 0 0 2px var(--color-danger-tint)}.n8n-dynamic-list-item{transition:all var(--transition-base)}.n8n-dynamic-list-item:hover{border-color:var(--color-border-base);box-shadow:var(--box-shadow-s);transform:translateY(-1px)}.n8n-form-input:disabled,.n8n-form-select:disabled{opacity:.6;cursor:not-allowed}.success-notification-overlay{position:fixed;top:0;right:0;z-index:9999;pointer-events:none;padding:var(--spacing-l)}.success-notification{background:var(--color-background-base);border:1px solid var(--color-success);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-l);padding:var(--spacing-m);min-width:320px;max-width:400px;pointer-events:all;transform:translate(100%);transition:transform .3s ease-out}.success-notification.show{transform:translate(0)}.success-notification.hide{transform:translate(100%)}.success-notification.dark{background:var(--color-background-dark);border-color:var(--color-success)}.success-content{display:flex;align-items:flex-start;gap:var(--spacing-s)}.success-icon-wrapper{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.success-icon{color:var(--color-success);font-size:20px}.success-message{flex:1;min-width:0}.success-text{font-size:var(--font-size-s);color:var(--color-text-dark);line-height:1.4;word-break:keep-all}.success-close-btn{background:none;border:none;color:var(--color-text-light);cursor:pointer;padding:var(--spacing-2xs);border-radius:var(--border-radius-s);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.success-close-btn:hover{background:var(--color-background-light);color:var(--color-text-base)}.success-close-btn svg{font-size:16px}.success-notification.dark{background:var(--color-background-dark);border:1px solid var(--color-success)}.success-notification.dark .success-text{color:var(--color-text-light)}.success-notification.dark .success-close-btn:hover{background:var(--color-background-lighter)}@media (max-width: 768px){.success-notification-overlay{top:var(--spacing-m);right:var(--spacing-m);left:var(--spacing-m)}.success-notification{min-width:auto;max-width:none;width:100%}.success-content{padding:var(--spacing-s) var(--spacing-m)}}@media (max-width: 480px){.success-notification-overlay{top:var(--spacing-s);right:var(--spacing-s);left:var(--spacing-s)}}.site-detail-container{background:var(--color-background);padding:0;position:relative;transition:background-color var(--transition-base);word-break:keep-all;font-family:var(--font-family-primary)}.site-detail-container.dark{background:var(--color-background)}.profile-header-section{background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);padding:var(--spacing-xl) 0}.profile-header-content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-xl);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-xl)}.profile-avatar-section{display:flex;align-items:center;gap:var(--spacing-l);flex:1}.profile-avatar{width:80px;height:80px;background:var(--color-primary-tint);border-radius:var(--border-radius-l);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.avatar-icon{font-size:2.5rem;color:var(--color-primary)}.avatar-status{position:absolute;bottom:4px;right:4px;width:16px;height:16px;background:var(--color-success);border:3px solid var(--color-background-base);border-radius:50%}.avatar-status.active{background:var(--color-success)}.profile-header-info{flex:1;min-width:0}.profile-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0;line-height:1.3;word-break:keep-all}.profile-subtitle{font-size:var(--font-size-m);color:var(--color-text-light);margin:0 0 var(--spacing-xs) 0}.profile-meta{display:flex;align-items:center;gap:var(--spacing-m);flex-wrap:wrap}.meta-item{font-size:var(--font-size-s);color:var(--color-text-base);display:flex;align-items:flex-start;gap:var(--spacing-2xs)}.profile-actions{display:flex;gap:var(--spacing-xs);align-items:center;flex-shrink:0}.profile-action-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);text-decoration:none;white-space:nowrap}.profile-action-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.profile-action-btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.profile-action-btn.primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.profile-action-btn.secondary{background:var(--color-background-light);color:var(--color-text-base);border-color:var(--color-border-base)}.profile-action-btn.secondary:hover{background:var(--color-background-lighter);color:var(--color-text-dark);border-color:var(--color-border-dark)}.profile-stats-grid{max-width:var(--max-width-content);margin:0 auto;padding:var(--spacing-l) var(--spacing-xl);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-m)}.stat-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-m);box-shadow:var(--box-shadow-s);transition:all var(--transition-base)}.stat-card.clickable{cursor:pointer}.stat-content{text-align:center}.stat-number{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-2xs) 0;line-height:1.2}.stat-label{font-size:var(--font-size-s);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.02em;font-weight:var(--font-weight-medium)}.changes-action-bar{padding:0 var(--spacing-xl);margin:var(--spacing-l) 0}.changes-action-bar>div:first-child{max-width:var(--max-width-content);margin:0 auto;background:var(--color-warning-tint);border:1px solid var(--color-warning);border-radius:var(--border-radius-m);box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-m);padding:var(--spacing-m) var(--spacing-l)}.changes-indicator{display:flex;align-items:center;gap:var(--spacing-s)}.changes-icon{font-size:var(--font-size-l);display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-warning);color:#fff;border-radius:var(--border-radius-m);flex-shrink:0}.changes-content{display:flex;flex-direction:column;gap:var(--spacing-4xs)}.changes-title{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.changes-subtitle{font-size:var(--font-size-s);color:var(--color-text-base);margin:0}.changes-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.changes-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs)}.changes-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.changes-btn:disabled{opacity:.5;cursor:not-allowed}.changes-btn.save{background:var(--color-success);color:#fff;border-color:var(--color-success)}.changes-btn.save:hover:not(:disabled){background:var(--color-success-light);border-color:var(--color-success-light)}.changes-btn.cancel{background:var(--color-background-base);color:var(--color-text-base);border-color:var(--color-border-base)}.changes-btn.cancel:hover:not(:disabled){background:var(--color-background-light);border-color:var(--color-border-dark)}.profile-content-grid{max-width:var(--max-width-content);margin:var(--spacing-xl) auto;padding:0 var(--spacing-xl);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-l)}.profile-info-card,.profile-map-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s);padding:var(--spacing-l)}.card-header{margin-bottom:var(--spacing-m)}.card-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;display:flex;align-items:center;gap:var(--spacing-xs)}.card-icon{font-size:var(--font-size-l);opacity:.8}.info-rows{display:flex;flex-direction:column;gap:var(--spacing-s)}.info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border-light)}.info-row:last-child{border-bottom:none}.info-label{font-size:var(--font-size-s);color:var(--color-text-light);font-weight:var(--font-weight-medium)}.info-value{font-size:var(--font-size-s);color:var(--color-text-base);text-align:right;word-break:keep-all}.info-value.code-value{font-family:var(--font-family-monospace);background:var(--color-background-light);padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s)}.map-container{height:400px;position:relative;background:var(--color-background-light);border-radius:var(--border-radius-m);overflow:hidden}.map-coordinates{position:absolute;top:var(--spacing-s);left:var(--spacing-s);right:var(--spacing-s);background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);padding:var(--spacing-xs) var(--spacing-s);display:flex;gap:var(--spacing-m);z-index:10;box-shadow:var(--box-shadow-s)}.coord-item{font-size:var(--font-size-s);color:var(--color-text-base)}.coord-item strong{color:var(--color-text-dark);font-weight:var(--font-weight-medium)}.google-map-embed{width:100%;height:100%}.detail-card-container{max-width:var(--max-width-content);margin:0 auto var(--spacing-xl);padding:0 var(--spacing-xl)}.detail-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-l);flex-wrap:wrap;gap:var(--spacing-m)}.detail-section-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0;display:flex;align-items:center;gap:var(--spacing-xs)}.section-icon{font-size:var(--font-size-xl);opacity:.8}.detail-action-btn{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs)}.detail-action-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.detail-action-btn.success{background:var(--color-success);color:#fff;border-color:var(--color-success)}.detail-action-btn.success:hover{background:var(--color-success-light);border-color:var(--color-success-light)}.modern-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-m)}.detail-item-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-m);box-shadow:var(--box-shadow-xs);transition:all var(--transition-base)}.detail-item-card:hover{box-shadow:var(--box-shadow-s);transform:translateY(-1px)}.detail-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-s);gap:var(--spacing-s)}.detail-item-name{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0;word-break:keep-all}.detail-item-id{font-size:var(--font-size-xs);color:var(--color-text-light);font-family:var(--font-family-monospace)}.detail-item-actions{display:flex;gap:var(--spacing-2xs);flex-shrink:0}.item-action-btn{padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;white-space:nowrap}.item-action-btn:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-xs)}.item-action-btn.primary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.item-action-btn.primary:hover{background:var(--color-primary-tint)}.item-action-btn.danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.item-action-btn.danger:hover{background:var(--color-danger-tint)}.detail-item-meta{font-size:var(--font-size-xs);color:var(--color-text-light);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border-light)}.modern-devices-table{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s);overflow:hidden}.devices-table-header{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr 1.5fr 1fr 1fr 1fr;background:var(--color-background-light);border-bottom:1px solid var(--color-border-base);padding:var(--spacing-s) var(--spacing-m);font-weight:var(--font-weight-medium);font-size:var(--font-size-s);color:var(--color-text-base)}.table-header-cell{text-align:left;word-break:keep-all}.device-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr 1.5fr 1fr 1fr 1fr;padding:var(--spacing-s) var(--spacing-m);border-bottom:1px solid var(--color-border-light);align-items:center;transition:background-color var(--transition-fast)}.device-row:hover{background:var(--color-background-light)}.device-row:last-child{border-bottom:none}.device-cell{font-size:var(--font-size-s);color:var(--color-text-base);word-break:keep-all}.device-name-cell{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.device-status-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.device-status-badge.active{background:var(--color-success-tint);color:var(--color-success)}.device-status-badge.inactive{background:var(--color-danger-tint);color:var(--color-danger)}.device-code-cell{font-family:var(--font-family-monospace);font-size:var(--font-size-xs);background:var(--color-background-light);padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);display:inline-block}.device-date-cell{font-size:var(--font-size-xs);color:var(--color-text-light)}.device-actions-cell{display:flex;gap:var(--spacing-2xs);justify-content:flex-end}.detail-loading-state,.detail-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl)}.detail-loading-spinner{width:50px;height:50px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-m)}.detail-loading-text,.detail-error-text{font-size:var(--font-size-m);color:var(--color-text-base);margin-bottom:var(--spacing-m)}.detail-error-icon{font-size:3rem;color:var(--color-danger);margin-bottom:var(--spacing-m)}.detail-retry-btn{padding:var(--spacing-2xs) var(--spacing-s);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.detail-retry-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px);box-shadow:var(--box-shadow-s)}@media (max-width: 1280px){.profile-header-content,.profile-stats-grid,.changes-action-bar,.profile-content-grid,.detail-card-container{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}}@media (max-width: 1024px){.profile-content-grid{grid-template-columns:1fr}.devices-table-header,.device-row{grid-template-columns:2fr 1fr 1fr 1fr}.devices-table-header .table-header-cell:nth-child(5),.devices-table-header .table-header-cell:nth-child(6),.devices-table-header .table-header-cell:nth-child(7),.device-row .device-cell:nth-child(5),.device-row .device-cell:nth-child(6),.device-row .device-cell:nth-child(7){display:none}}@media (max-width: 768px){.profile-header-content,.profile-stats-grid,.changes-action-bar,.profile-content-grid,.detail-card-container{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.profile-header-content{flex-direction:column;gap:var(--spacing-m)}.profile-avatar-section{flex-direction:column;text-align:center}.profile-avatar{width:60px;height:60px}.avatar-icon{font-size:2rem}.profile-actions{width:100%;flex-direction:column}.profile-action-btn{width:100%;justify-content:center}.profile-stats-grid{grid-template-columns:1fr;gap:var(--spacing-xs);margin-top:var(--spacing-m)}.changes-action-bar{flex-direction:column;text-align:center;padding:var(--spacing-m)}.changes-indicator{flex-direction:column}.changes-actions{width:100%;flex-direction:column}.changes-btn{width:100%;justify-content:center}.modern-details-grid{grid-template-columns:1fr}.detail-card-header{flex-direction:column;align-items:stretch}.detail-action-btn{width:100%;justify-content:center}.modern-devices-table{font-size:var(--font-size-xs)}.devices-table-header,.device-row{grid-template-columns:1fr;gap:var(--spacing-xs);padding:var(--spacing-s)}.devices-table-header{display:none}.device-row{border-bottom:2px solid var(--color-border-base);background:var(--color-background-light);margin-bottom:var(--spacing-xs);border-radius:var(--border-radius-m)}.device-cell{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2xs) 0}.device-cell:before{content:attr(data-label);font-weight:var(--font-weight-medium);color:var(--color-text-light);font-size:var(--font-size-xs)}.device-actions-cell{justify-content:center;padding-top:var(--spacing-xs);border-top:1px solid var(--color-border-light)}.map-container{height:250px}.map-coordinates{position:static;margin-bottom:var(--spacing-s);flex-direction:column;gap:var(--spacing-2xs)}}@media (max-width: 480px){.profile-header-content,.profile-stats-grid,.changes-action-bar,.profile-content-grid,.detail-card-container{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.profile-title{font-size:var(--font-size-xl)}.detail-section-title{font-size:var(--font-size-l)}.stat-number{font-size:var(--font-size-xl)}}.button-group{display:inline-flex;border-radius:var(--border-radius-s)}.button-group .n8n-button{position:relative;z-index:1}.button-group .n8n-button+.n8n-button{margin-left:-1px}.n8n-button{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);background:transparent}.n8n-button:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s);z-index:2}.button-icon{display:flex;align-items:center}.site-detail-container.dark .google-map-embed{filter:brightness(.8)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.device-topology-container{position:relative;height:600px;background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-s)}.device-topology-container.dark{background:var(--color-background-base)}.device-topology-container .react-flow__renderer{background:var(--color-background-light)}.device-topology-container.dark .react-flow__renderer{background:var(--color-background)}.device-topology-container .react-flow__controls{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s)}.device-topology-container .react-flow__controls-button{background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);color:var(--color-text-base);fill:var(--color-text-base)}.device-topology-container .react-flow__controls-button:hover{background:var(--color-background-light);color:var(--color-text-dark);fill:var(--color-text-dark)}.hub-node{background:var(--color-primary);color:#fff;padding:var(--spacing-m);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);text-align:center;min-width:120px;cursor:default;transition:all var(--transition-base)}.hub-node:hover{transform:scale(1.05);box-shadow:var(--box-shadow-l)}.hub-icon{font-size:2rem;margin-bottom:var(--spacing-2xs)}.hub-label{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-4xs);word-break:keep-all}.hub-id{font-size:var(--font-size-xs);opacity:.9;font-family:var(--font-family-monospace)}.device-node{background:var(--color-background-base);border:2px solid var(--color-border-base);border-radius:var(--border-radius-m);padding:var(--spacing-xs);box-shadow:var(--box-shadow-s);cursor:pointer;transition:all var(--transition-base);position:relative;min-width:140px}.device-node:hover{transform:scale(1.05);box-shadow:var(--box-shadow-m);z-index:10}.device-node.active{border-color:var(--color-success);background:var(--color-success-tint)}.device-node.inactive{border-color:var(--color-danger);background:var(--color-danger-tint);opacity:.8}.device-node-content{display:flex;align-items:center;gap:var(--spacing-xs)}.device-icon-wrapper{flex-shrink:0}.device-icon{font-size:1.5rem}.device-icon.active{color:var(--color-success)}.device-icon.inactive{color:var(--color-danger)}.device-info{flex:1;min-width:0}.device-name{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark);margin-bottom:var(--spacing-4xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-details{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--font-size-xs);color:var(--color-text-light)}.device-channel{font-family:var(--font-family-monospace)}.device-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.device-status-dot.active{background:var(--color-success);box-shadow:0 0 4px var(--color-success)}.device-status-dot.inactive{background:var(--color-danger)}.device-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%) translateY(8px);background:var(--color-background-dark);color:var(--color-text-light);padding:var(--spacing-s);border-radius:var(--border-radius-s);box-shadow:var(--box-shadow-m);min-width:200px;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:100;pointer-events:none}.device-node:hover .device-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(4px)}.tooltip-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4xs) 0;font-size:var(--font-size-xs)}.tooltip-row:not(:last-child){border-bottom:1px solid var(--color-border-base)}.tooltip-row span:first-child{color:var(--color-text-light);margin-right:var(--spacing-xs)}.tooltip-row span:last-child{font-family:var(--font-family-monospace);color:#fff;text-align:right;word-break:break-all}.status-active{color:var(--color-success)!important;font-family:inherit!important}.status-inactive{color:var(--color-danger)!important;font-family:inherit!important}.topology-legend{position:absolute;top:var(--spacing-m);left:var(--spacing-m);background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-s);box-shadow:var(--box-shadow-s);z-index:10;max-width:200px;margin-bottom:var(--spacing-m)}.topology-legend h4{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-xs) 0}.legend-items{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-text-base)}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legend-dot.active{background:var(--color-success);box-shadow:0 0 4px var(--color-success)}.legend-dot.inactive{background:var(--color-danger)}.legend-line{width:24px;height:2px;position:relative;border-radius:1px;overflow:hidden}.legend-line.animated{background:var(--color-success);position:relative}.legend-line.animated:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:flow 1.5s linear infinite}@keyframes flow{0%{left:-100%}to{left:100%}}.legend-line.static{background:var(--color-text-light)}.topology-stats{position:absolute;bottom:var(--spacing-m);right:var(--spacing-m);background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-s);box-shadow:var(--box-shadow-s);display:flex;gap:var(--spacing-m);z-index:10}.stat-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4xs)}.stat-value{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.stat-value.success{color:var(--color-success)}.stat-value.danger{color:var(--color-danger)}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.02em}.device-topology-container.dark .hub-node{background:var(--color-primary-light)}.device-topology-container.dark .device-node{background:var(--color-background);border-color:var(--color-border-base)}.device-topology-container.dark .device-node.active{background:#22c55e1a;border-color:var(--color-success)}.device-topology-container.dark .device-node.inactive{background:#ef44441a;border-color:var(--color-danger)}.device-topology-container.dark .topology-legend,.device-topology-container.dark .topology-stats{background:var(--color-background);border-color:var(--color-border-base)}.edit-button-panel{background:transparent;padding:0;margin:0;z-index:20}.topology-action-buttons{display:flex;gap:var(--spacing-xs);align-items:center}.edit-mode-button,.refresh-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-m);background:var(--color-background-base);border:2px solid var(--color-primary);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-primary);cursor:pointer;transition:all var(--transition-base)}.refresh-button{border-color:var(--color-border-dark);color:var(--color-text-dark);padding:var(--spacing-xs)}.edit-mode-button:hover,.refresh-button:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px);box-shadow:var(--box-shadow-l)}.refresh-button:hover{background:var(--color-text-dark)}.edit-mode-button:disabled,.refresh-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.edit-mode-button svg,.refresh-button svg{font-size:20px}.error-banner{position:absolute;top:0;left:0;right:0;background:var(--color-danger-tint);border:1px solid var(--color-danger);border-radius:var(--border-radius-s);margin:var(--spacing-s);z-index:100;animation:slideDown .3s ease-out}.error-content{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s)}.error-icon{font-size:var(--font-size-l);color:var(--color-danger)}.error-message{flex:1;font-size:var(--font-size-s);color:var(--color-danger);font-weight:var(--font-weight-medium)}.error-close-button{background:none;border:none;font-size:var(--font-size-l);color:var(--color-danger);cursor:pointer;padding:0;line-height:1;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition-base)}.error-close-button:hover{background:var(--color-danger);color:#fff}.n8n-loading-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-m);z-index:100}.n8n-spinner{width:32px;height:32px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-text{font-size:var(--font-size-s);color:var(--color-text-light);margin:0}.device-topology-container.dark .react-flow__edge-path{stroke:var(--color-text-light)}.device-topology-container.dark .react-flow__handle{background:var(--color-text-light);border-color:var(--color-border-base)}.device-topology-container.dark .edit-mode-button{background:var(--color-background);border-color:var(--color-primary)}.device-topology-container.dark .edit-mode-button:hover{background:var(--color-primary-dark);border-color:var(--color-primary-light)}@media (max-width: 768px){.device-topology-container{height:400px}.edit-mode-button{padding:var(--spacing-2xs) var(--spacing-s);font-size:var(--font-size-s)}.topology-legend{top:var(--spacing-xs);left:var(--spacing-xs);padding:var(--spacing-xs);max-width:150px}.topology-stats{bottom:var(--spacing-xs);right:var(--spacing-xs);padding:var(--spacing-xs);gap:var(--spacing-s)}.device-node{min-width:100px}.device-tooltip{display:none}}.node-palette{position:absolute;top:var(--spacing-m);left:var(--spacing-m);width:200px;background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);z-index:100;display:flex;flex-direction:column;max-height:calc(100% - var(--spacing-xl));overflow-y:auto}.diagram-editor-container.fullscreen .node-palette{width:250px;max-height:calc(100vh - 120px);background:var(--color-background-base);border-color:var(--color-border-light);box-shadow:var(--box-shadow-l)}.palette-title{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);padding:var(--spacing-s);margin:0;border-bottom:1px solid var(--color-border-light)}.palette-section{padding:var(--spacing-s);border-bottom:1px solid var(--color-border-light)}.palette-section:last-of-type{border-bottom:none}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-2xs)}.tool-button,.node-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-5xs);padding:var(--spacing-xs);background:var(--color-background-light);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);cursor:pointer;transition:all var(--transition-fast);min-height:60px;position:relative}.tool-button:hover,.node-item:hover{background:var(--color-background-lighter);border-color:var(--color-border-dark);transform:translateY(-1px);box-shadow:var(--box-shadow-xs)}.tool-button.active,.node-item.active{background:var(--color-primary-tint);border-color:var(--color-primary);color:var(--color-primary)}.tool-button.active:hover,.node-item.active:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.tool-button svg,.node-item svg{font-size:24px;color:inherit}.tool-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:center;line-height:1.2;word-break:keep-all}.node-item{cursor:grab}.node-item:active{cursor:grabbing}.palette-hint{padding:var(--spacing-xs) var(--spacing-s);background:var(--color-background-light);border-top:1px solid var(--color-border-light)}.palette-hint p{margin:0;font-size:var(--font-size-xs);color:var(--color-text-light);text-align:center;line-height:1.4}.node-item.dragging{opacity:.5;cursor:grabbing}@media (max-width: 768px){.node-palette{width:160px;max-height:50%}.tool-grid{grid-template-columns:1fr}.tool-button,.node-item{min-height:48px;flex-direction:row;gap:var(--spacing-xs);justify-content:flex-start}.tool-button svg,.node-item svg{font-size:20px}}.device-topology-container.dark .node-palette{background:var(--color-background);border-color:var(--color-border-base)}.device-topology-container.dark .tool-button,.device-topology-container.dark .node-item{background:var(--color-background-light);border-color:var(--color-border-base)}.device-topology-container.dark .tool-button:hover,.device-topology-container.dark .node-item:hover{background:var(--color-background-lighter);border-color:var(--color-border-dark)}.device-topology-container.dark .tool-button.active,.device-topology-container.dark .node-item.active{background:var(--color-primary-dark);border-color:var(--color-primary)}.device-topology-container.dark .palette-hint{background:var(--color-background-light)}.property-panel{position:absolute;top:var(--spacing-m);right:var(--spacing-m);width:280px;background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);z-index:100;display:flex;flex-direction:column;max-height:calc(100% - var(--spacing-xl));overflow-y:auto}.panel-title{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--color-text-dark);padding:var(--spacing-s);margin:0;border-bottom:1px solid var(--color-border-light)}.property-content{padding:var(--spacing-s)}.property-section{margin-bottom:var(--spacing-m)}.property-section:last-child{margin-bottom:0}.section-title{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0 0 var(--spacing-xs) 0}.property-field{margin-bottom:var(--spacing-xs)}.property-field label{display:block;font-size:var(--font-size-xs);color:var(--color-text-light);margin-bottom:var(--spacing-5xs);font-weight:var(--font-weight-medium)}.property-field input[type=text],.property-field input[type=number],.property-field select{width:100%;padding:var(--spacing-2xs) var(--spacing-xs);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);background:var(--color-background-light);font-size:var(--font-size-s);color:var(--color-text-dark);transition:all var(--transition-fast)}.property-field input[type=text]:focus,.property-field input[type=number]:focus,.property-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.property-field input[disabled]{background:var(--color-background-lighter);color:var(--color-text-light);cursor:not-allowed}.property-field input[type=checkbox]{width:auto;margin-right:var(--spacing-xs);cursor:pointer}.property-field input[type=range]{width:calc(100% - 50px);margin-right:var(--spacing-xs)}.range-value{font-size:var(--font-size-xs);color:var(--color-text-base);font-weight:var(--font-weight-medium)}.property-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xs)}.color-input-wrapper{display:flex;gap:var(--spacing-2xs);align-items:center}.color-input-wrapper input[type=color]{width:40px;height:32px;padding:0;border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);cursor:pointer;flex-shrink:0}.color-input-wrapper input[type=text]{flex:1}.property-field input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid var(--color-border-base);border-radius:var(--border-radius-s);background:var(--color-background-light);cursor:pointer;vertical-align:middle;position:relative;transition:all var(--transition-fast)}.property-field input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}.property-field input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.diagram-editor-container.fullscreen .property-panel{width:300px;max-height:calc(100vh - 120px);background:var(--color-background-base);border-color:var(--color-border-light);box-shadow:var(--box-shadow-l)}@media (max-width: 768px){.property-panel{width:240px;max-height:50%;top:auto;bottom:var(--spacing-m)}}.device-topology-container.dark .property-panel{background:var(--color-background);border-color:var(--color-border-base)}.device-topology-container.dark .property-field input[type=text],.device-topology-container.dark .property-field input[type=number],.device-topology-container.dark .property-field select{background:var(--color-background-light);border-color:var(--color-border-base);color:var(--color-text-base)}.device-topology-container.dark .property-field input[disabled]{background:var(--color-background-dark);color:var(--color-text-light)}.device-topology-container.dark .property-field input[type=checkbox],.device-topology-container.dark .property-field input[type=color]{background:var(--color-background-light);border-color:var(--color-border-base)}.diagram-editor-container{position:relative;height:700px;background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-s)}.diagram-editor-container.fullscreen{width:100vw;height:100vh;border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column}.diagram-editor-container.fullscreen .react-flow__renderer{flex:1;height:calc(100vh - 120px)}.diagram-editor-container.fullscreen .edit-mode-panel{padding:var(--spacing-m);background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);flex-shrink:0}.diagram-editor-container.fullscreen .editor-status-bar{height:40px;background:var(--color-background-dark);border-top:1px solid var(--color-border-base);flex-shrink:0;font-size:var(--font-size-s);padding:0 var(--spacing-l)}.diagram-editor-container.dark{background:var(--color-background-base)}.diagram-editor-container .react-flow__renderer{background:var(--color-background-light)}.diagram-editor-container.dark .react-flow__renderer{background:var(--color-background)}.diagram-editor-container .react-flow__controls{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s)}.diagram-editor-container .react-flow__controls-button{background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);color:var(--color-text-base);fill:var(--color-text-base)}.diagram-editor-container .react-flow__controls-button:hover{background:var(--color-background-light);color:var(--color-text-dark);fill:var(--color-text-dark)}.edit-mode-panel{background:transparent;padding:0;margin:0;z-index:1000}.edit-mode-controls{display:flex;gap:var(--spacing-s);align-items:center}.edit-mode-toggle,.save-button,.back-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-m);background:var(--color-background-base);border:2px solid var(--color-border-base);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-base)}.save-button{border-color:var(--color-success);color:var(--color-success)}.save-button:hover:not(:disabled){background:var(--color-success);border-color:var(--color-success);color:#fff;transform:translateY(-1px);box-shadow:var(--box-shadow-l)}.save-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.save-button.saving{background:var(--color-success-tint);border-color:var(--color-success);color:var(--color-success)}.save-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.back-button{border-color:var(--color-border-dark);color:var(--color-text-dark)}.back-button:hover:not(:disabled){background:var(--color-background-dark);border-color:var(--color-text-base);color:var(--color-text-light);transform:translateY(-1px);box-shadow:var(--box-shadow-l)}.back-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.edit-mode-toggle:hover{background:var(--color-background-light);border-color:var(--color-border-dark);transform:translateY(-1px);box-shadow:var(--box-shadow-l)}.edit-mode-toggle.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.edit-mode-toggle.active:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.edit-mode-toggle svg{font-size:20px}.location-info-panel{background:transparent;padding:0;margin:0}.location-info{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-s);box-shadow:var(--box-shadow-s)}.location-info h4{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0}.location-info p{font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.editor-status-bar{position:absolute;bottom:0;left:0;right:0;height:32px;background:var(--color-background-dark);border-top:1px solid var(--color-border-base);display:flex;align-items:center;padding:0 var(--spacing-m);gap:var(--spacing-m);font-size:var(--font-size-xs);color:var(--color-text-light);z-index:100}.status-item{display:flex;align-items:center;gap:var(--spacing-xs)}.keyboard-hints{margin-left:auto}.keyboard-hints kbd{display:inline-block;padding:2px 6px;background:var(--color-background-base);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);font-family:var(--font-family-monospace);font-size:11px;margin:0 2px}.diagram-editor-container .text-node,.diagram-editor-container .rectangle-node,.diagram-editor-container .circle-node,.diagram-editor-container .arrow-node,.diagram-editor-container .image-node{transition:all var(--transition-fast);cursor:pointer}.diagram-editor-container .text-node:hover,.diagram-editor-container .rectangle-node:hover,.diagram-editor-container .circle-node:hover,.diagram-editor-container .arrow-node:hover,.diagram-editor-container .image-node:hover{filter:brightness(1.1)}.diagram-editor-container.connect-mode .react-flow__node{cursor:crosshair!important}.diagram-editor-container.connect-mode .react-flow__node:hover{outline:2px solid var(--color-primary)!important;outline-offset:2px!important}.diagram-editor-container.connect-mode .react-flow__handle{opacity:1!important;background:var(--color-primary)!important;border:2px solid white!important;width:8px!important;height:8px!important;transform:translate(-50%,-50%)!important;z-index:10!important}.diagram-editor-container.connect-mode .react-flow__handle:hover{width:12px!important;height:12px!important;background:var(--color-primary-light)!important}.diagram-editor-container.delete-mode .react-flow__node{cursor:not-allowed!important}.diagram-editor-container.delete-mode .react-flow__node:hover{outline:2px solid var(--color-danger)!important;outline-offset:2px!important;filter:brightness(.8)!important}.diagram-editor-container.delete-mode .react-flow__edge{cursor:not-allowed!important}.diagram-editor-container.delete-mode .react-flow__edge:hover .react-flow__edge-path{stroke:var(--color-danger)!important;stroke-width:3!important}.tool-status-message{position:absolute;top:80px;left:50%;transform:translate(-50%);background:var(--color-background-dark);color:var(--color-text-light);padding:var(--spacing-xs) var(--spacing-m);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-m);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);z-index:100;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.react-flow__node.selected{outline:2px solid var(--color-primary);outline-offset:2px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--color-primary);stroke-width:3}.diagram-editor-container.drag-over{background:var(--color-primary-tint)}@media (max-width: 768px){.diagram-editor-container{height:500px}.edit-mode-toggle{padding:var(--spacing-2xs) var(--spacing-s);font-size:var(--font-size-s)}.editor-status-bar{font-size:var(--font-size-2xs);padding:0 var(--spacing-s)}.keyboard-hints{display:none}}.diagram-editor-container .error-banner{position:absolute;top:0;left:0;right:0;background:var(--color-danger-tint);border:1px solid var(--color-danger);border-radius:var(--border-radius-s);margin:var(--spacing-s);z-index:100;animation:slideDown .3s ease-out}.diagram-editor-container .error-content{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s)}.diagram-editor-container .error-icon{font-size:var(--font-size-l);color:var(--color-danger)}.diagram-editor-container .error-message{flex:1;font-size:var(--font-size-s);color:var(--color-danger);font-weight:var(--font-weight-medium)}.diagram-editor-container .error-close-button{background:none;border:none;font-size:var(--font-size-l);color:var(--color-danger);cursor:pointer;padding:0;line-height:1;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition-base)}.diagram-editor-container .error-close-button:hover{background:var(--color-danger);color:#fff}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.diagram-editor-container.dark .edit-mode-toggle{background:var(--color-background);border-color:var(--color-border-base)}.diagram-editor-container.dark .edit-mode-toggle:hover{background:var(--color-background-light)}.diagram-editor-container.dark .edit-mode-toggle.active{background:var(--color-primary-dark);border-color:var(--color-primary)}.diagram-editor-container.dark .location-info,.diagram-editor-container.dark .editor-status-bar{background:var(--color-background);border-color:var(--color-border-base)}.diagram-editor-container.dark .keyboard-hints kbd{background:var(--color-background-light);border-color:var(--color-border-base)}.fullscreen-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:#000c;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fullscreen-modal-container{width:100vw;height:100vh;background:var(--color-background-base);display:flex;flex-direction:column;outline:none;position:relative;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fullscreen-modal-container.dark{background:var(--color-background);color:var(--color-text-light)}body.modal-open{overflow:hidden!important}@media (max-width: 768px){.fullscreen-modal-backdrop{background:#000000f2}.fullscreen-modal-container{width:100vw;height:100vh;border-radius:0}}.fullscreen-modal-container:focus{outline:2px solid var(--color-primary);outline-offset:-2px}@media (prefers-reduced-motion: reduce){.fullscreen-modal-backdrop,.fullscreen-modal-container{animation:none}}.device-management-container{background:var(--color-background);padding:0;position:relative;transition:background-color var(--transition-base);word-break:keep-all;font-family:var(--font-family-primary)}.device-management-container.dark{background:var(--color-background)}.error-banner{max-width:var(--max-width-content);margin:var(--spacing-l) auto 0;padding:var(--spacing-s) var(--spacing-m);background:var(--color-danger-tint);border:1px solid var(--color-danger);border-radius:var(--border-radius-m)}.error-content{display:flex;align-items:center;gap:var(--spacing-2xs)}.error-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--color-danger);font-size:20px;flex-shrink:0}.error-message{color:var(--color-danger);font-size:var(--font-size-s);font-weight:var(--font-weight-medium)}.n8n-action-bar{padding:var(--spacing-s) 0;background:var(--color-background-base);border-bottom:1px solid var(--color-border-light)}.action-bar-content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-m)}.action-info{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-s);color:var(--color-text-light)}.info-text{color:var(--color-text-base)}.info-separator{color:var(--color-text-lighter)}.n8n-button{padding:var(--spacing-2xs) var(--spacing-s);border-radius:var(--border-radius-s);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px solid;display:inline-flex;align-items:center;gap:var(--spacing-2xs);text-decoration:none;white-space:nowrap;position:relative}.n8n-button:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.n8n-button:active{transform:translateY(0);box-shadow:none}.n8n-button-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.n8n-button-primary:hover{background:var(--color-primary-light);border-color:var(--color-primary-light)}.n8n-button-secondary{background:var(--color-background-light);color:var(--color-text-base);border-color:var(--color-border-base)}.n8n-button-secondary:hover{background:var(--color-background-lighter);color:var(--color-text-dark);border-color:var(--color-border-dark)}.button-icon{font-size:var(--font-size-m);line-height:1;display:flex;align-items:center;width:18px;height:18px}.n8n-content-section{max-width:var(--max-width-content);margin:0 auto;padding:var(--spacing-xl)}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-l);flex-wrap:wrap;gap:var(--spacing-m)}.content-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.page-size-selector{display:flex;align-items:center;gap:var(--spacing-2xs)}.selector-label{font-size:var(--font-size-s);color:var(--color-text-light)}.n8n-select{padding:var(--spacing-2xs) var(--spacing-xs);background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast)}.n8n-select:hover{border-color:var(--color-border-base)}.n8n-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.n8n-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-5xl) var(--spacing-xl);color:var(--color-text-light)}.n8n-spinner{width:40px;height:40px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-m)}.loading-text{font-size:var(--font-size-m);color:var(--color-text-base)}.n8n-empty-state{text-align:center;padding:var(--spacing-5xl) var(--spacing-xl);color:var(--color-text-light)}.empty-icon{font-size:4rem!important;opacity:.3;margin-bottom:var(--spacing-m);color:var(--color-text-light)}.empty-title{font-size:var(--font-size-l);font-weight:var(--font-weight-medium);color:var(--color-text-base);margin:0 0 var(--spacing-2xs) 0}.empty-description{font-size:var(--font-size-s);color:var(--color-text-light);margin:0}.n8n-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-m);margin-bottom:var(--spacing-xl)}.n8n-card{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-xs);transition:all var(--transition-base);overflow:hidden;display:flex;flex-direction:column}.n8n-card:hover{box-shadow:var(--box-shadow-m);transform:translateY(-2px)}.n8n-card.inactive{opacity:.7;background:var(--color-background-light)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-m);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-m)}.card-title-section{flex:1;min-width:0}.card-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0 0 var(--spacing-4xs) 0;word-break:keep-all;text-align:left}.card-subtitle{font-size:var(--font-size-s);color:var(--color-text-light);margin:0;word-break:keep-all;text-align:left}.device-status-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em;flex-shrink:0}.device-status-badge.status-active{background:var(--color-success-tint);color:var(--color-success)}.device-status-badge.status-inactive{background:var(--color-danger-tint);color:var(--color-danger)}.card-body{padding:var(--spacing-m);flex:1}.device-info-grid{display:flex;flex-direction:column;gap:var(--spacing-xs)}.device-info-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-s);min-height:20px}.info-label{font-size:var(--font-size-s);color:var(--color-text-light);font-weight:var(--font-weight-medium);flex-shrink:0;min-width:80px}.info-value{font-size:var(--font-size-s);color:var(--color-text-base);text-align:right;word-break:break-all;flex:1}.font-mono{font-family:var(--font-family-monospace);font-size:var(--font-size-xs)}.card-footer{padding:var(--spacing-m);border-top:1px solid var(--color-border-light);background:var(--color-background-light)}.device-meta{display:flex;justify-content:space-between;gap:var(--spacing-s)}.meta-item{display:flex;flex-direction:column;gap:var(--spacing-5xs);flex:1}.meta-label{font-size:var(--font-size-xs);color:var(--color-text-lighter);font-weight:var(--font-weight-medium)}.meta-value{font-size:var(--font-size-s);color:var(--color-text-base);font-weight:var(--font-weight-medium)}.n8n-pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xl) 0}.pagination-button,.page-number{padding:var(--spacing-2xs) var(--spacing-xs);min-width:36px;height:36px;background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);color:var(--color-text-base);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.pagination-button:hover:not(:disabled),.page-number:hover{background:var(--color-background-light);border-color:var(--color-border-base);color:var(--color-text-dark)}.page-number.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-button svg{font-size:18px}.page-numbers{display:flex;gap:var(--spacing-2xs)}@media (max-width: 1280px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-l);padding-right:var(--spacing-l)}}@media (max-width: 768px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-m);padding-right:var(--spacing-m)}.action-bar-content{flex-direction:column;align-items:stretch;gap:var(--spacing-s)}.action-buttons{justify-content:center}.action-info{justify-content:center;flex-wrap:wrap}.content-header{flex-direction:column;align-items:stretch}.n8n-grid{grid-template-columns:1fr;gap:var(--spacing-m)}.device-info-row{flex-direction:column;align-items:stretch;gap:var(--spacing-2xs)}.info-label{min-width:auto}.info-value{text-align:left}.device-meta{flex-direction:column;gap:var(--spacing-xs)}}@media (max-width: 480px){.page-header-content,.action-bar-content,.n8n-content-section{padding-left:var(--spacing-s);padding-right:var(--spacing-s)}.page-title{font-size:var(--font-size-xl)}.content-title{font-size:var(--font-size-l)}.action-buttons{flex-direction:column}.n8n-button{justify-content:center}}.button-group{display:flex;gap:var(--spacing-2xs);align-items:center}.action-buttons{display:flex;gap:var(--spacing-s);flex-wrap:wrap;align-items:center}.device-table-container{background:var(--color-background-base);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);overflow:hidden;box-shadow:var(--box-shadow-xs)}.device-table-wrapper{overflow-x:auto;max-width:100%}.device-table{width:100%;border-collapse:collapse;font-size:var(--font-size-s)}.device-table thead{background:var(--color-background-light);border-bottom:2px solid var(--color-border-base)}.device-table th{padding:var(--spacing-s) var(--spacing-xs);text-align:left;font-weight:var(--font-weight-bold);color:var(--color-text-dark);border-right:1px solid var(--color-border-light);white-space:nowrap;font-size:var(--font-size-s)}.device-table th:last-child{border-right:none}.device-table tbody tr{border-bottom:1px solid var(--color-border-light);transition:background-color var(--transition-fast)}.device-table tbody tr:hover{background:var(--color-background-lighter)}.device-table tbody tr.inactive-row{opacity:.6;background:var(--color-background-light)}.device-table td{padding:var(--spacing-s) var(--spacing-xs);border-right:1px solid var(--color-border-light);vertical-align:top}.device-table td:last-child{border-right:none}.device-name-cell{min-width:150px}.device-name-content{display:flex;flex-direction:column;gap:var(--spacing-5xs)}.device-name{font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.location-cell{min-width:200px;max-width:250px}.location-content{display:flex;flex-direction:column;gap:var(--spacing-5xs)}.location-name{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.location-address{font-size:var(--font-size-xs);color:var(--color-text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-cell{min-width:80px}.channel-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);background:var(--color-info-tint);color:var(--color-info);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family-monospace)}.status-cell{min-width:80px}.table-status-badge{display:inline-flex;align-items:center;padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-s);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.02em}.table-status-badge.status-active{background:var(--color-success-tint);color:var(--color-success)}.table-status-badge.status-inactive{background:var(--color-danger-tint);color:var(--color-danger)}.ble-key-cell,.beacon-id-cell{min-width:150px;max-width:200px;font-family:var(--font-family-monospace);font-size:var(--font-size-xs);word-break:break-all}.date-cell{min-width:90px;text-align:center}.date-value{font-size:var(--font-size-xs);color:var(--color-text-base);font-family:var(--font-family-monospace)}@media (max-width: 1024px){.device-table th,.device-table td{padding:var(--spacing-xs) var(--spacing-2xs)}.device-table{font-size:var(--font-size-xs)}.location-cell{max-width:180px}}@media (max-width: 768px){.device-table-wrapper{overflow-x:scroll}.device-table{min-width:650px}.button-group{flex-direction:column;width:100%}.button-group .n8n-button{width:100%;justify-content:center}.action-buttons{flex-direction:column;width:100%;gap:var(--spacing-xs)}}.device-management-container.dark .device-table thead,.device-management-container.dark .device-table tbody tr:hover{background:var(--color-background-dark)}.device-actions{display:flex;gap:var(--spacing-2xs);align-items:center;justify-content:flex-end;margin-top:var(--spacing-xs)}.table-actions{display:flex;gap:var(--spacing-2xs);align-items:center;justify-content:center}.action-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);background:var(--color-background-base);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast);padding:0}.action-button:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.action-button.edit{border-color:var(--color-info);color:var(--color-info)}.action-button.edit:hover{background:var(--color-info-tint);border-color:var(--color-info)}.action-button.delete{border-color:var(--color-danger);color:var(--color-danger)}.action-button.delete:hover{background:var(--color-danger-tint);border-color:var(--color-danger)}.action-button svg{font-size:16px}.actions-cell{min-width:80px;text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-m)}.modal-container{background:var(--color-background-base);border-radius:var(--border-radius-l);box-shadow:var(--box-shadow-l);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-container.modal-small{max-width:480px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-l);border-bottom:1px solid var(--color-border-light)}.modal-title-section{display:flex;align-items:center;gap:var(--spacing-s);flex:1}.modal-icon{font-size:24px;color:var(--color-primary)}.modal-icon.warning{color:var(--color-warning)}.modal-title{font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.modal-subtitle{font-size:var(--font-size-s);color:var(--color-text-light);margin-left:var(--spacing-s)}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--color-text-light);cursor:pointer;border-radius:var(--border-radius-s);transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--color-background-light);color:var(--color-text-dark)}.modal-body{padding:var(--spacing-l);flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-s);padding:var(--spacing-l);border-top:1px solid var(--color-border-light)}.form-grid{display:flex;flex-direction:column;gap:var(--spacing-m)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.required{color:var(--color-danger)}.form-input{padding:var(--spacing-xs) var(--spacing-s);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);font-size:var(--font-size-s);color:var(--color-text-base);background:var(--color-background-base);transition:all var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-tint)}.form-input:disabled{background:var(--color-background-light);color:var(--color-text-light);cursor:not-allowed}.toggle-group{display:flex;gap:var(--spacing-2xs)}.toggle-option{flex:1;padding:var(--spacing-xs) var(--spacing-s);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);background:var(--color-background-base);color:var(--color-text-base);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-s);font-weight:var(--font-weight-medium)}.toggle-option:hover{background:var(--color-background-light);border-color:var(--color-border-base)}.toggle-option.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.readonly-field{padding:var(--spacing-xs) var(--spacing-s);background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);display:flex;flex-direction:column;gap:var(--spacing-5xs)}.readonly-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.readonly-description{font-size:var(--font-size-xs);color:var(--color-text-light)}.delete-confirmation{display:flex;flex-direction:column;gap:var(--spacing-l)}.warning-message{text-align:center;color:var(--color-text-base)}.warning-message p{margin:0 0 var(--spacing-xs) 0}.device-summary{background:var(--color-background-light);border-radius:var(--border-radius-s);padding:var(--spacing-m);display:flex;flex-direction:column;gap:var(--spacing-xs)}.summary-item{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-s)}.summary-label{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-light);min-width:80px}.summary-value{font-size:var(--font-size-s);color:var(--color-text-base);text-align:right}.summary-value.status-active{color:var(--color-success);font-weight:var(--font-weight-medium)}.summary-value.status-inactive{color:var(--color-danger);font-weight:var(--font-weight-medium)}.n8n-button-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.n8n-button-danger:hover{background:var(--color-danger-dark);border-color:var(--color-danger-dark)}.button-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.modal-container.dark{background:var(--color-background-dark)}.modal-container.dark .modal-header,.modal-container.dark .modal-footer{border-color:var(--color-border-dark)}.loading-select{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s);background:var(--color-background-light);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);color:var(--color-text-base);font-size:var(--font-size-s)}.select-spinner{width:16px;height:16px;border:2px solid var(--color-border-light);border-top:2px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.form-select{width:100%;padding:var(--spacing-s);border:1px solid var(--color-border-base);border-radius:var(--border-radius-s);background:var(--color-background-base);color:var(--color-text-base);font-size:var(--font-size-s);line-height:1.4;transition:all var(--transition-fast)}.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb),.2)}.form-select:disabled{background:var(--color-background-lighter);color:var(--color-text-light);cursor:not-allowed}.modal-container.dark .form-select{background:var(--color-background-dark);border-color:var(--color-border-dark);color:var(--color-text-dark)}.modal-container.dark .loading-select{background:var(--color-background-dark);border-color:var(--color-border-dark)}.loading-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100%;background:var(--color-background);color:var(--color-text-base)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border-light);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--spacing-m)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-fallback p{font-size:var(--font-size-m);color:var(--color-text-light);margin:0}.dashboard-container{display:grid;grid-template-columns:260px 1fr;grid-template-rows:1fr;height:100vh;width:100vw;background-color:var(--color-background);transition:background-color var(--transition-base),grid-template-columns var(--transition-base);position:fixed;top:0;left:0;right:0;bottom:0}.dashboard-container.sidebar-collapsed{grid-template-columns:60px 1fr}.mobile-header{display:none}.sidebar{background:var(--color-background-base);color:var(--color-text-base);display:flex;flex-direction:column;border-right:1px solid var(--color-border-light);transition:all var(--transition-base);grid-column:1;grid-row:1;height:100vh;overflow-y:auto;width:260px;position:relative}.sidebar.collapsed{width:60px}.sidebar-header{padding:var(--spacing-l) var(--spacing-m);border-bottom:1px solid var(--color-border-light);background:var(--color-background-base);position:relative;transition:all var(--transition-base);min-height:80px;display:flex;flex-direction:column;justify-content:center}.sidebar-toggle-btn{position:absolute;top:50%;right:var(--spacing-s);transform:translateY(-50%);background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-s);width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-light);transition:all var(--transition-fast)}.sidebar-toggle-btn:hover{background:var(--color-background-lighter);border-color:var(--color-border-base);color:var(--color-text-base)}.sidebar.collapsed .sidebar-toggle-btn{right:50%;transform:translate(50%) translateY(-50%)}.sidebar-title-section{display:flex;flex-direction:column;padding-right:var(--spacing-xl)}.sidebar.collapsed .sidebar-header{padding:var(--spacing-s);text-align:center;min-height:60px}.sidebar-header h2{margin:0;font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark);transition:all var(--transition-base)}.sidebar-header p{margin:var(--spacing-4xs) 0 0 0;font-size:var(--font-size-s);color:var(--color-text-light);transition:all var(--transition-base)}.sidebar.collapsed .sidebar-header h2,.sidebar.collapsed .sidebar-header p{display:none}.theme-toggle{background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-2xs);cursor:pointer;font-size:var(--font-size-l);transition:all var(--transition-fast);margin-bottom:var(--spacing-xs);width:100%;height:36px;display:flex;align-items:center;justify-content:center;color:var(--color-text-base)}.theme-toggle:hover{background:var(--color-background-lighter);border-color:var(--color-border-base);color:var(--color-text-dark)}.theme-toggle span:first-child{font-size:var(--font-size-l);line-height:1;display:flex;align-items:center;justify-content:center}.sidebar.collapsed .theme-toggle{width:36px;margin:0 auto var(--spacing-xs);font-size:var(--font-size-xl)}.sidebar.collapsed .theme-toggle span:first-child{font-size:var(--font-size-xl)}.theme-toggle.expanded{gap:var(--spacing-2xs);justify-content:flex-start;padding:var(--spacing-2xs) var(--spacing-xs)}.theme-toggle-text{font-size:var(--font-size-s);font-weight:var(--font-weight-medium)}.sidebar-menu{flex:1;padding:var(--spacing-xs)}.menu-item{display:flex;align-items:center;padding:var(--spacing-2xs) var(--spacing-xs);margin:var(--spacing-5xs) 0;cursor:pointer;transition:all var(--transition-fast);border-radius:var(--border-radius-m);position:relative;background:transparent;border:1px solid transparent;color:var(--color-text-base);text-decoration:none}.sidebar.collapsed .menu-item{padding:var(--spacing-2xs);justify-content:center;margin:var(--spacing-5xs) 0;min-height:36px}.menu-item:hover{background:var(--color-background-light);color:var(--color-text-dark)}.menu-item.active{background:var(--color-primary-tint);color:var(--color-primary);font-weight:var(--font-weight-medium)}.menu-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--color-primary);border-radius:0 2px 2px 0}.menu-icon{margin-right:var(--spacing-xs);font-size:var(--font-size-m);transition:all var(--transition-fast);flex-shrink:0;width:20px;display:flex;align-items:center;justify-content:center;opacity:.8}.menu-icon svg{width:20px;height:20px;display:block}.sidebar.collapsed .menu-icon{margin-right:0;font-size:var(--font-size-l);width:24px;height:24px;opacity:.9}.sidebar.collapsed .menu-icon svg{width:24px;height:24px}.sidebar-toggle-btn svg{width:16px;height:16px}.submenu-arrow svg{width:16px;height:16px}.theme-toggle svg{width:20px;height:20px}.logout-btn svg{width:20px;height:20px}.menu-item:hover .menu-icon{opacity:1}.menu-item.active .menu-icon{opacity:1;color:var(--color-primary)}.menu-label{font-size:var(--font-size-s);font-weight:var(--font-weight-regular);white-space:nowrap;overflow:hidden;transition:opacity var(--transition-fast)}.sidebar.collapsed .menu-label{opacity:0;width:0}.submenu-arrow{margin-left:auto;font-size:var(--font-size-s);transition:all var(--transition-fast);color:var(--color-text-light);font-weight:var(--font-weight-medium);min-width:16px;text-align:center}.sidebar.collapsed .submenu-arrow{display:none}.submenu{background:transparent;margin:0 0 0 var(--spacing-l);overflow:hidden}.sidebar.collapsed .submenu{display:none}.submenu-item{display:flex;align-items:center;padding:var(--spacing-4xs) var(--spacing-xs);margin:var(--spacing-5xs) 0;cursor:pointer;transition:all var(--transition-fast);border-radius:var(--border-radius-s);position:relative;background:transparent;color:var(--color-text-light);font-size:var(--font-size-s);text-decoration:none}.submenu-item:hover{background:var(--color-background-light);color:var(--color-text-base)}.submenu-item.active{color:var(--color-primary);font-weight:var(--font-weight-medium)}.submenu-item:before{content:"";position:absolute;left:calc(var(--spacing-xs) * -1);top:50%;transform:translateY(-50%);width:4px;height:4px;background:var(--color-border-base);border-radius:50%}.submenu-item.active:before{background:var(--color-primary);width:6px;height:6px}.sidebar-footer{padding:var(--spacing-s);border-top:1px solid var(--color-border-light);background:var(--color-background-base);transition:all var(--transition-base);display:flex;flex-direction:column;gap:var(--spacing-xs)}.sidebar.collapsed .sidebar-footer{padding:var(--spacing-2xs);align-items:center;gap:var(--spacing-2xs)}.n8n-user-session{background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);padding:var(--spacing-s);margin-bottom:var(--spacing-xs);transition:all var(--transition-base)}.sidebar.collapsed .n8n-user-session{padding:var(--spacing-2xs);text-align:center;margin-bottom:var(--spacing-2xs)}.user-session-header{display:flex;align-items:center;gap:var(--spacing-2xs);margin-bottom:var(--spacing-2xs)}.sidebar.collapsed .user-session-header{justify-content:center;margin-bottom:0}.user-avatar-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-size-s);font-weight:var(--font-weight-bold);flex-shrink:0}.sidebar.collapsed .user-avatar-icon{width:28px;height:28px;font-size:var(--font-size-xs)}.user-info-text{flex:1;min-width:0}.user-name{font-size:var(--font-size-s);font-weight:var(--font-weight-medium);color:var(--color-text-dark);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:var(--font-size-xs);color:var(--color-text-light);margin:var(--spacing-5xs) 0 0 0}.sidebar.collapsed .user-info-text{display:none}.dashboard-container.dark .n8n-user-session,.dashboard-container.dark .n8n-session-timer{background:var(--color-background-dark)}.dashboard-container.dark .session-timer-header .header-icon,.dashboard-container.dark .session-label,.dashboard-container.dark .session-status-icon{color:var(--color-text-light)}.logout-btn{width:100%;padding:var(--spacing-2xs) var(--spacing-xs);background:var(--color-danger);color:#fff;border:1px solid var(--color-danger);border-radius:var(--border-radius-m);cursor:pointer;font-weight:var(--font-weight-medium);font-size:var(--font-size-s);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-2xs)}.logout-btn:hover{background:var(--color-danger-light);border-color:var(--color-danger-light);transform:translateY(-1px);box-shadow:var(--box-shadow-s)}.sidebar.collapsed .logout-btn{width:36px;height:36px;padding:0;font-size:var(--font-size-xl)}.sidebar.collapsed .logout-btn span{display:flex;align-items:center;justify-content:center}.main-content{background:transparent;transition:background-color var(--transition-base);grid-column:2;grid-row:1;overflow-y:auto;height:100vh;display:flex;flex-direction:column}.dashboard-content{padding:var(--spacing-xl);width:100%;flex:1;overflow-y:auto}.content-header{margin-bottom:var(--spacing-xl)}.content-header h2{margin:0 0 var(--spacing-2xs) 0;font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.content-header p{margin:0;color:var(--color-text-light);font-size:var(--font-size-l)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-l);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--color-background-base);padding:var(--spacing-l);border-radius:var(--border-radius-m);box-shadow:var(--box-shadow-s);border:1px solid var(--color-border-light);display:flex;align-items:center;gap:var(--spacing-m);transition:all var(--transition-base)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--box-shadow-m)}.stat-icon{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:var(--border-radius-m);width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-l);color:#fff;flex-shrink:0}.stat-content h3{margin:0 0 var(--spacing-4xs) 0;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.stat-number{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-l);margin-bottom:var(--spacing-xl)}.dashboard-card{background:var(--color-background-base);border-radius:var(--border-radius-m);padding:var(--spacing-l);box-shadow:var(--box-shadow-s);border:1px solid var(--color-border-light);transition:all var(--transition-base)}.dashboard-card h3{margin:0 0 var(--spacing-m) 0;font-size:var(--font-size-l);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.dashboard-card h4{margin:0 0 var(--spacing-s) 0;font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-text-base)}.activity-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.activity-item{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);gap:var(--spacing-xs);transition:all var(--transition-fast)}.activity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.activity-dot.active{background-color:var(--color-success)}.activity-dot.inactive{background-color:var(--color-danger)}.activity-time{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-light)}.system-status{display:flex;flex-direction:column;gap:var(--spacing-xs)}.status-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);transition:all var(--transition-fast)}.status-label{font-weight:var(--font-weight-medium);color:var(--color-text-base)}.status-value{font-weight:var(--font-weight-medium);padding:var(--spacing-5xs) var(--spacing-xs);border-radius:var(--border-radius-l);font-size:var(--font-size-s)}.status-value.good{background-color:var(--color-success-tint);color:var(--color-success)}.card-actions{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-l);flex-wrap:wrap}.sensor-preview{margin-top:var(--spacing-l)}.sensor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-s);margin-top:var(--spacing-s)}.sensor-item{padding:var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);border-left:3px solid transparent;display:flex;flex-direction:column;gap:var(--spacing-4xs);transition:all var(--transition-fast)}.sensor-item.online{border-left-color:var(--color-success)}.sensor-item.offline{border-left-color:var(--color-danger)}.sensor-id{font-weight:var(--font-weight-medium);color:var(--color-text-dark);font-family:var(--font-family-monospace);font-size:var(--font-size-s)}.sensor-name{color:var(--color-text-light);font-size:var(--font-size-s)}.sensor-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.sensor-item.online .sensor-status{color:var(--color-success)}.sensor-item.offline .sensor-status{color:var(--color-danger)}.chart-placeholder{height:200px;background-color:var(--color-background-light);border-radius:var(--border-radius-m);display:flex;align-items:center;justify-content:center;border:2px dashed var(--color-border-light);color:var(--color-text-light);transition:all var(--transition-fast)}.data-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-s)}.summary-item{display:flex;flex-direction:column;gap:var(--spacing-2xs);padding:var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);transition:all var(--transition-fast)}.summary-label{font-size:var(--font-size-s);color:var(--color-text-light)}.summary-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-l)}.settings-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);transition:all var(--transition-fast)}.users-preview{margin-top:var(--spacing-l)}.users-list{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-s)}.user-item{display:flex;align-items:center;padding:var(--spacing-s);background-color:var(--color-background-light);border-radius:var(--border-radius-m);gap:var(--spacing-s);transition:all var(--transition-fast)}.user-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-m);color:#fff}.user-info{display:flex;flex-direction:column;gap:var(--spacing-5xs);flex:1}.user-name{font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.user-role{font-size:var(--font-size-s);color:var(--color-text-light)}.user-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-5xs) var(--spacing-2xs);border-radius:var(--border-radius-l)}.user-status.online{background-color:var(--color-success-tint);color:var(--color-success)}.user-status.offline{background-color:var(--color-danger-tint);color:var(--color-danger)}.n8n-session-timer{background:var(--color-background-light);border:1px solid var(--color-border-light);border-radius:var(--border-radius-m);margin:0 0 var(--spacing-xs) 0;transition:all var(--transition-base);overflow:hidden}.n8n-session-timer.collapsed{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xs);min-height:36px}.n8n-session-timer.expanded{padding:var(--spacing-s)}.session-status-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-light);font-size:var(--font-size-l)}.session-status-icon .timer-icon{width:20px;height:20px}.session-timer-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.session-timer-header{display:flex;align-items:center;gap:var(--spacing-2xs)}.session-timer-header .header-icon{width:16px;height:16px;color:var(--color-text-light)}.session-label{font-size:var(--font-size-xs);color:var(--color-text-light);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.session-time-display{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xs) 0}.time-remaining{font-size:var(--font-size-s);font-weight:var(--font-weight-bold);font-family:var(--font-family-monospace)}.session-actions{display:flex;gap:var(--spacing-2xs);flex-wrap:wrap}.session-refresh-btn{flex:1;min-width:0;font-size:var(--font-size-xs)!important;padding:var(--spacing-4xs) var(--spacing-2xs)!important;height:28px}.session-refresh-btn.refreshing{opacity:.6;cursor:not-allowed}.session-refresh-btn.refreshing .button-icon{animation:spin 1s linear infinite}.auto-refresh-toggle{font-size:var(--font-size-xs)!important;padding:var(--spacing-4xs) var(--spacing-xs)!important;height:28px;min-width:48px}.session-refresh-btn .button-icon{width:14px!important;height:14px!important}.text-red-500{color:var(--color-danger)}.text-yellow-500{color:var(--color-warning)}.text-green-400,.text-green-600{color:var(--color-success)}.token-timer button{border-radius:var(--border-radius-s);transition:all var(--transition-fast);font-weight:var(--font-weight-medium)}.token-timer button:hover{transform:translateY(-1px);box-shadow:var(--box-shadow-s)}@media (max-width: 1024px){.dashboard-container{grid-template-columns:240px 1fr}.dashboard-container.sidebar-collapsed{grid-template-columns:60px 1fr}.dashboard-content{padding:var(--spacing-l)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-m)}.dashboard-cards{grid-template-columns:1fr;gap:var(--spacing-m)}}@media (max-width: 768px){body{margin:0;padding:0;overflow:hidden}.dashboard-container{display:block;position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;overflow:hidden;margin:0;padding:0}.dashboard-container.sidebar-collapsed{display:block;position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;overflow:hidden}.sidebar{position:fixed;top:0;left:-100%;height:100vh;width:260px;transition:left var(--transition-base);z-index:1000;background:var(--color-background-base);border-right:1px solid var(--color-border-light);overflow-y:auto;grid-column:unset;grid-row:unset}.sidebar.mobile-open{left:0}.sidebar.collapsed{left:-100%;width:260px}.sidebar.collapsed.mobile-open{left:0}.sidebar-toggle-btn{display:none}.sidebar-header{padding:var(--spacing-m);min-height:auto}.sidebar-title-section{padding-right:0}.mobile-header{position:fixed;top:0;left:0;right:0;width:100%;height:56px;background:var(--color-background-base);border-bottom:1px solid var(--color-border-light);z-index:999;padding:0 var(--spacing-m);display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}.mobile-menu-btn{background:none;border:none;font-size:var(--font-size-l);cursor:pointer;color:var(--color-text-base);padding:var(--spacing-2xs);border-radius:var(--border-radius-s);transition:background-color var(--transition-fast);display:flex;align-items:center;justify-content:center}.mobile-menu-btn svg{width:24px;height:24px}.mobile-menu-btn:hover{background:var(--color-background-light)}.mobile-title{font-size:var(--font-size-m);font-weight:var(--font-weight-medium);color:var(--color-text-dark)}.mobile-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.mobile-overlay.active{opacity:1;visibility:visible}.main-content{position:absolute;top:56px;left:0;right:0;bottom:0;width:100%;height:calc(100vh - 56px);overflow-y:auto;box-sizing:border-box}.dashboard-content{padding:var(--spacing-m);margin:0;box-sizing:border-box}.mobile-header{display:flex}.stats-grid{grid-template-columns:1fr;gap:var(--spacing-xs)}.dashboard-cards{grid-template-columns:1fr;gap:var(--spacing-m)}.settings-grid{grid-template-columns:1fr}.card-actions{flex-direction:column;gap:var(--spacing-2xs)}.sensor-grid,.data-summary{grid-template-columns:1fr}}@media (max-width: 480px){.dashboard-content{padding:var(--spacing-xs);margin:0;box-sizing:border-box}.content-header h2{font-size:var(--font-size-xl)}.content-header p{font-size:var(--font-size-m)}.stat-card{padding:var(--spacing-m)}.stat-icon{font-size:var(--font-size-m);width:40px;height:40px}.stat-number{font-size:var(--font-size-l)}.dashboard-card{padding:var(--spacing-m)}}
