:root{--primary: #111111;--primary-hover: #333333;--primary-active: #000000;--secondary: rgba(17, 17, 17, .05);--secondary-hover: rgba(17, 17, 17, .1);--background: #f5f5f0;--surface: #ffffff;--text: #111111;--text-secondary: #555555;--text-muted: #999999;--border: rgba(17, 17, 17, .12);--success: #218540;--warning: #a8592f;--error: #c0152f;--info: #111111;--radius: 8px;--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--font-family: "Oswald", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background:var(--background);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.app-container{display:flex;flex-direction:column;min-height:100vh}.top-header{position:fixed;top:0;left:260px;right:0;height:52px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;padding:0 24px;gap:16px;z-index:100}.top-header-user{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);white-space:nowrap}.top-header-user strong{color:var(--text);font-weight:600}.top-header-user .role-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--secondary);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.top-header-logout{background:none;border:1px solid var(--border);padding:6px 14px;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px;transition:all .15s;font-family:var(--font-family)}.top-header-logout:hover{background:var(--error);color:#fff;border-color:var(--error)}.sidebar{width:260px;background:var(--surface);border-right:1px solid var(--border);padding:24px;display:flex;flex-direction:column;gap:24px;position:fixed;height:100vh;overflow-y:auto}.logo-container{display:flex;flex-direction:column;align-items:center;gap:6px}.logo-container img{width:100%;height:auto;border-radius:8px}.logo-subtitle{font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary);text-align:center;width:100%}.nav-links{display:flex;flex-direction:column;gap:8px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-weight:500;transition:all .2s;cursor:pointer;border:1px solid transparent}.nav-link:hover{background:var(--secondary);color:var(--primary)}.nav-link.active{background:#11111114;color:var(--primary);border-color:#1111111a}.main-wrapper{margin-left:260px;flex:1;padding:76px 40px 40px;max-width:1200px}.header-section{margin-bottom:32px}.header-section h1{font-size:28px;font-weight:700;margin-bottom:8px;color:var(--text)}.header-section p{color:var(--text-secondary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;margin-bottom:24px;box-shadow:var(--shadow)}.card h2{font-size:20px;font-weight:600;margin-bottom:24px;display:flex;align-items:center;gap:12px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-input{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:15px;background:var(--surface);transition:all .2s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1111111a}.btn{padding:12px 24px;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:10px;border:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background:var(--secondary);color:var(--text)}.btn-secondary:hover{background:var(--secondary-hover)}.wizard-steps{display:flex;gap:16px;margin-bottom:40px}.step-indicator{flex:1;height:6px;background:var(--secondary);border-radius:3px;position:relative}.step-indicator.active{background:var(--primary)}.step-indicator.completed{background:var(--success)}.login-overlay{position:fixed;inset:0;background:var(--background);display:flex;align-items:center;justify-content:center;z-index:1000}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.spin{animation:spin 1s linear infinite}.nav-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-muted);padding:16px 16px 4px;margin-top:8px}.nav-sub-links{display:flex;flex-direction:column;gap:2px;padding-left:12px;border-left:2px solid rgba(0,120,212,.15);margin-left:28px}.nav-link.nav-sub{padding:8px 12px;font-size:13px;gap:8px}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:var(--surface);border-bottom:1px solid var(--border);padding:0 16px;align-items:center;justify-content:space-between;z-index:1001}.mobile-menu-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center}.mobile-menu-btn:hover{background:var(--secondary)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0006;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-mobile-footer{display:none;flex-shrink:0}.toast-container{position:fixed;top:64px;right:24px;z-index:10000;display:flex;flex-direction:column;gap:8px;max-width:420px;width:100%;pointer-events:none}.toast-item{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:14px;line-height:1.4;pointer-events:auto;animation:toast-slide-in .3s cubic-bezier(.4,0,.2,1)}.toast-item.toast-exit{animation:toast-slide-out .3s cubic-bezier(.4,0,.2,1) forwards}.toast-icon{flex-shrink:0;margin-top:1px}.toast-message{flex:1;word-break:break-word}.toast-close{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;justify-content:center}.toast-close:hover{background:var(--secondary);color:var(--text)}.toast-success{border-left:3px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left:3px solid var(--error)}.toast-error .toast-icon{color:var(--error)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left:3px solid var(--info)}.toast-info .toast-icon{color:var(--info)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.live-log-panel{background:#1a1a2e;border-radius:var(--radius);border:1px solid rgba(255,255,255,.08);overflow:hidden;display:flex;flex-direction:column;margin-top:16px;max-height:400px;transition:max-height .3s ease;box-shadow:0 4px 20px #0000004d}.live-log-panel--expanded{max-height:80vh;position:fixed;inset:60px 20px 20px 280px;z-index:500;margin-top:0;border-radius:12px}.live-log-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.live-log-title{display:flex;align-items:center;gap:10px;color:#e0e0e0;font-size:13px;font-weight:600}.live-log-label{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-log-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:2px 8px;border-radius:4px;display:flex;align-items:center;gap:6px}.live-log-badge--live{background:#4caf5026;color:#4caf50}.live-log-badge--success{background:#4caf5026;color:#66bb6a}.live-log-badge--error{background:#f4433626;color:#ef5350}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.3}}.live-log-pulse{width:6px;height:6px;border-radius:50%;background:#4caf50;animation:live-pulse 1.5s ease-in-out infinite}.live-log-actions{display:flex;align-items:center;gap:4px}.live-log-btn{background:none;border:1px solid rgba(255,255,255,.1);color:#b0b0b0;padding:4px 10px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:12px;font-family:var(--font-family);transition:all .15s}.live-log-btn:hover{background:#ffffff14;color:#e0e0e0}.live-log-btn--start{border-color:#4caf504d;color:#4caf50}.live-log-btn--start:hover{background:#4caf5026}.live-log-btn--stop{border-color:#f443364d;color:#ef5350}.live-log-btn--stop:hover{background:#f4433626}.live-log-btn--close{border-color:#ffffff1a}.live-log-btn--close:hover{background:#f4433626;color:#ef5350}.live-log-btn--scroll{border:none;color:#64b5f6;font-size:11px;padding:2px 8px}.live-log-body{flex:1;overflow-y:auto;padding:12px 16px;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.7;min-height:120px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.live-log-body::-webkit-scrollbar{width:6px}.live-log-body::-webkit-scrollbar-track{background:transparent}.live-log-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.live-log-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;min-height:120px;color:#666;text-align:center}.live-log-empty p{font-size:13px;font-family:var(--font-family)}.live-log-connecting{display:flex;align-items:center;gap:10px;color:#64b5f6;font-family:var(--font-family);font-size:13px;padding:8px 0}@keyframes log-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.live-log-spinner{width:14px;height:14px;border:2px solid rgba(100,181,246,.2);border-top-color:#64b5f6;border-radius:50%;animation:log-spinner .8s linear infinite}.live-log-line{display:flex;gap:12px;padding:1px 0;color:#c8c8c8}.live-log-lineno{color:#fff3;min-width:28px;text-align:right;-webkit-user-select:none;user-select:none;font-size:11px}.live-log-text{word-break:break-all;white-space:pre-wrap}.live-log-line--warn{color:#ffb74d}.live-log-line--error{color:#ef5350}.live-log-line--success{color:#66bb6a}.live-log-line--info{color:#64b5f6}.live-log-footer{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:#ffffff05;border-top:1px solid rgba(255,255,255,.06);color:#666;font-size:11px;flex-shrink:0}@media(max-width:768px){.mobile-header{display:flex}.top-header{display:none}.sidebar-overlay{display:block}.sidebar{position:fixed;right:-300px;left:auto;top:0;width:300px;height:100vh;z-index:1000;transition:right .3s cubic-bezier(.4,0,.2,1);box-shadow:none;padding:0;overflow:hidden;display:flex;flex-direction:column}.sidebar.sidebar-open{right:0;box-shadow:-4px 0 24px #00000026}.sidebar .logo-container{display:none}.sidebar .nav-links{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:56px 20px 12px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.1) transparent}.sidebar-mobile-footer{display:block;flex-shrink:0;padding:12px 20px 20px;border-top:1px solid var(--border);background:var(--surface)}.main-wrapper{margin-left:0;padding:72px 16px 24px;max-width:100%;overflow-x:hidden}.header-section{flex-direction:column!important;align-items:flex-start!important;gap:12px;margin-bottom:20px}.header-section h1{font-size:22px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.card{padding:20px;margin-bottom:16px}.btn{min-height:44px;font-size:14px}.form-input,.form-select,select{font-size:16px;min-height:44px}.nav-link{min-height:44px;padding:12px 16px}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:13px}.nav-sub-links{margin-left:16px;padding-left:10px}.wizard-steps{gap:6px;margin-bottom:20px}.kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.analytics-grid{grid-template-columns:1fr!important;gap:16px!important}.analytics-full-row{grid-column:span 1!important}.stat-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.wizard-dialog{width:100vw!important;max-width:100vw!important;max-height:100vh!important;height:100vh!important;border-radius:0!important;padding:20px!important}.wizard-step-labels{gap:4px!important;flex-wrap:wrap!important}.wizard-step-labels>div{font-size:10px!important;letter-spacing:0!important}.wizard-footer-actions{flex-wrap:wrap!important}.wizard-footer-actions .btn{width:auto;min-width:0}.tenant-card-header{flex-direction:column!important;align-items:flex-start!important;gap:12px!important}.tenant-card-actions{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(44px,1fr))!important;gap:8px!important;width:100%!important}.tenant-card-actions .btn{width:44px!important;height:44px!important;padding:0!important;justify-content:center!important}.tenant-card-meta{flex-direction:column!important;gap:8px!important}.job-drawer{width:100vw!important;border-left:none!important}.job-drawer-grid{grid-template-columns:1fr!important;gap:10px!important}}@media(max-width:480px){.main-wrapper{padding:64px 12px 16px}.card{padding:16px;border-radius:8px}.header-section h1{font-size:20px}.logo-container{gap:8px}.header-section .btn{width:100%;justify-content:center}.kpi-grid,.stat-grid{grid-template-columns:1fr!important}.wizard-step-labels{display:none!important}.wizard-dialog{padding:16px!important}}
