body{min-height:100vh;margin:0}#root{min-height:100vh}*{box-sizing:border-box}body{color:#222;background:#f5f6f8;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100vh;display:flex}header{color:#fff;background:#1976d2;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}header h1{margin:0;font-size:20px}.brand{align-items:center;gap:12px;display:flex}.logo{filter:brightness(0)invert();width:auto;height:40px}.brand-title{font-size:20px;font-weight:700}.nav{flex:1;justify-content:center;gap:8px;display:flex}.nav button{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:4px;padding:8px 14px;font-size:13px;font-weight:600}.nav button.active,.nav button:hover{color:#1976d2;background:#fff}header button{color:#1976d2;cursor:pointer;background:#fff;border:none;border-radius:4px;padding:8px 16px;font-weight:600}main{flex:1;display:flex;overflow:hidden}.error-banner{color:#c62828;background:#ffebee;padding:12px 24px}.success-banner{color:#2e7d32;background:#e8f5e9;padding:12px 24px;font-weight:500}.sidebar{background:#fff;border-right:1px solid #ddd;flex-direction:column;width:340px;padding:16px;display:flex;overflow-y:auto}.sidebar-header h2{color:#666;margin-top:0;font-size:16px}.sidebar-actions{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sidebar-actions button{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:600}.search-input,.filter-select{border:1px solid #ccc;border-radius:4px;width:100%;margin-bottom:10px;padding:8px 10px;font-size:14px}.device-list{margin:0;padding:0;list-style:none}.device-list li{cursor:pointer;border:1px solid #eee;border-radius:6px;margin-bottom:8px;padding:12px;transition:background .15s,border-color .15s}.device-list li:hover,.device-list li.active{background:#e3f2fd;border-color:#1976d2}.device-name{font-weight:600}.device-meta{color:#666;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.content{flex:1;padding:24px;overflow-y:auto}.loading,.empty{color:#666;text-align:center;padding:40px 0}.badge{border-radius:12px;align-items:center;padding:3px 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.badge-success{color:#2e7d32;background:#e8f5e9}.badge-danger{color:#c62828;background:#ffebee}.badge-warning{color:#ef6c00;background:#fff3e0}.badge-info{color:#1565c0;background:#e3f2fd}.badge-secondary{color:#6a1b9a;background:#f3e5f5}.dashboard h2{margin-top:0}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{background:#fff;border-left:4px solid #1976d2;border-radius:8px;padding:18px;box-shadow:0 1px 3px #00000014}.kpi-card.success{border-left-color:#2e7d32}.kpi-card.danger{border-left-color:#c62828}.kpi-card.warning{border-left-color:#ef6c00}.kpi-card.info{border-left-color:#1565c0}.kpi-value{color:#222;font-size:28px;font-weight:700}.kpi-label{color:#666;margin-top:4px;font-size:13px}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:24px;display:grid}.dashboard-grid .wide{grid-column:1/-1}.chart-panel{min-height:320px}.panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #00000014}.panel h3,.panel h4{margin-top:0}.inline-panel{padding:12px;display:inline-block}.inline-panel select{border:1px solid #ccc;border-radius:4px;min-width:220px;padding:8px}.danger-zone button.danger{color:#fff;background:#c62828}.bar-chart{flex-direction:column;gap:10px;display:flex}.bar-row{grid-template-columns:120px 1fr 40px;align-items:center;gap:10px;display:grid}.bar-label{color:#444;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.bar-track{background:#eee;border-radius:4px;height:18px;overflow:hidden}.bar-fill{background:#1976d2;border-radius:4px;height:100%;transition:width .3s}.bar-value{text-align:right;font-size:13px;font-weight:600}.audit-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.audit-list li{border-bottom:1px solid #f0f0f0;flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:8px;font-size:13px;display:flex}.audit-time{color:#888;min-width:130px}.audit-device{color:#555;font-style:italic}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.detail-header h2{margin:0}.badges{flex-wrap:wrap;gap:8px;display:flex}.tabs{border-bottom:2px solid #ddd;gap:4px;margin-bottom:20px;display:flex}.tabs button{cursor:pointer;color:#555;background:#f5f6f8;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:10px 18px;font-weight:600}.tabs button.active,.tabs button:hover{color:#1976d2;background:#fff;border-bottom-color:#1976d2}.tab-content h3{margin-top:24px;margin-bottom:12px}.info-grid{background:#fff;border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:24px;padding:16px;display:grid;box-shadow:0 1px 3px #00000014}.command-form{background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;padding:16px;display:flex;box-shadow:0 1px 3px #00000014}.command-form select,.command-form input{border:1px solid #ccc;border-radius:4px;padding:8px;font-size:14px}.command-form select{min-width:220px}.command-form input{flex:1;min-width:200px}.command-form button,.button-link{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;align-items:center;padding:8px 16px;font-size:14px;text-decoration:none;display:inline-flex}.command-form button[type=button]{background:#888}.report-form input[type=date]{width:150px}.usage-table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;margin-bottom:24px;overflow:hidden;box-shadow:0 1px 3px #00000014}.usage-table th,.usage-table td{text-align:left;border-bottom:1px solid #eee;padding:10px 16px}.usage-table th{color:#555;background:#fafafa;font-weight:600}.usage-table tr:last-child td{border-bottom:none}.command-list{background:#fff;border-radius:8px;margin:0 0 24px;padding:0;list-style:none;box-shadow:0 1px 3px #00000014}.command-list li{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.command-list li:last-child{border-bottom:none}.status-pending{color:#ef6c00;background:#fff3e0}.status-done{color:#2e7d32;background:#e8f5e9}.status-failed{color:#c62828;background:#ffebee}.command-time{color:#888;margin-left:auto;font-size:12px}.result{color:#666;width:100%;font-size:13px}.app-list{background:#fff;border-radius:8px;max-height:500px;overflow-y:auto;box-shadow:0 1px 3px #00000014}.app-item{border-bottom:1px solid #eee;padding:10px 16px;font-family:monospace;font-size:13px}.app-item:last-child{border-bottom:none}.app-name{color:#222;font-weight:600}.app-package{color:#666;font-family:monospace;font-size:12px}.qr-block{text-align:center;background:#fff;border-radius:8px;margin-bottom:24px;padding:16px;box-shadow:0 1px 3px #00000014}.qr-code{border:1px solid #eee;border-radius:4px;width:100%;max-width:300px}.hint{color:#666;margin-top:8px;font-size:13px}.location-summary{background:#fff;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-family:monospace;font-size:14px;box-shadow:0 1px 3px #00000014}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:8px;width:90%;max-width:480px;padding:24px;box-shadow:0 4px 20px #0003}.modal h3{margin-top:0}.modal-form{flex-direction:column;gap:10px;display:flex}.modal-form label{color:#555;font-size:13px;font-weight:600}.modal-form input,.modal-form select,.modal select{border:1px solid #ccc;border-radius:4px;padding:8px;font-size:14px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-actions button{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-weight:600}.modal-actions button.danger{color:#fff;background:#c62828}.modal-actions button:first-child:not(.danger){color:#333;background:#eee}.settings-form{background:#fff;border-radius:8px;max-width:700px;padding:24px;box-shadow:0 1px 3px #00000014}.settings-form section{margin-bottom:24px}.settings-form h3{border-bottom:1px solid #eee;margin-top:0;padding-bottom:8px}.settings-form label{color:#555;margin:12px 0 6px;font-size:13px;font-weight:600;display:block}.settings-form input,.settings-form textarea{border:1px solid #ccc;border-radius:4px;width:100%;padding:8px;font-size:14px}.settings-form textarea{resize:vertical;min-height:80px}.button-link.small{padding:6px 12px;font-size:13px}@media (width<=900px){.dashboard-row{grid-template-columns:1fr}.sidebar{width:260px}.command-form{flex-direction:column;align-items:stretch}.command-form input{width:100%}}.login-page{background:#f5f6f8;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{text-align:center;background:#fff;border-radius:8px;width:100%;max-width:400px;padding:32px;box-shadow:0 4px 20px #0000001a}.login-card h1{margin:0 0 8px;font-size:28px}.login-card p{color:#666;margin:0 0 24px}.login-form{text-align:left;flex-direction:column;gap:12px;display:flex}.login-form label{color:#555;font-size:13px;font-weight:600}.login-form input{border:1px solid #ccc;border-radius:4px;padding:10px;font-size:14px}.login-form button{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;margin-top:8px;padding:10px;font-weight:600}.login-form button:disabled{opacity:.7;cursor:not-allowed}.login-switch{color:#555;margin-top:16px;font-size:14px}.login-switch .link{color:#1976d2;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.login-switch .link:hover{text-decoration:underline}.form-tabs{gap:8px;margin-bottom:8px;display:flex}.form-tabs button{cursor:pointer;background:#f5f5f5;border:1px solid #ccc;border-radius:4px;flex:1;padding:8px 12px}.form-tabs button.active{color:#fff;background:#1976d2;border-color:#1976d2}.store-preview{background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:16px;padding:16px}.store-preview h4{margin:0 0 12px}.store-preview .warning{color:#e65100;margin-top:8px}.store-iframe-hint{color:#666;margin-top:12px;font-size:12px}.hint{color:#555;margin-bottom:16px}.store-divider{text-align:center;color:#888;margin:16px 0;font-size:14px}.store-results{margin-top:16px}.store-results h4{margin:0 0 12px}.store-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.store-card{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;align-items:flex-start;gap:12px;padding:12px;transition:box-shadow .15s,border-color .15s;display:flex}.store-card:hover{box-shadow:0 2px 8px #00000014}.store-card.selected{border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.store-icon{object-fit:cover;border-radius:8px;flex-shrink:0;width:48px;height:48px}.store-card-info{min-width:0}.store-card-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.store-card-dev,.store-card-pkg{color:#666;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.store-card-score{color:#f9a825;margin-top:2px;font-size:12px}.store-preview-icon{object-fit:cover;border-radius:12px;width:64px;height:64px;margin-bottom:12px}.header-actions{align-items:center;gap:12px;display:flex}.header-user{flex-direction:column;align-items:flex-end;font-size:13px;line-height:1.3;display:flex}.header-user .role{opacity:.9;text-transform:uppercase;letter-spacing:.3px;font-size:11px}.modal-wide{width:95%;max-width:900px}.remote-status{color:#555;margin-bottom:12px;font-size:14px}.remote-screen{text-align:center;background:#000;border-radius:8px;max-height:70vh;overflow:hidden}.remote-screen img{cursor:crosshair;touch-action:none;max-width:100%;max-height:70vh;margin:0 auto;display:block}.checkbox-row{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.required-apps-table th,.required-apps-table td{white-space:nowrap}.cell-success{color:#2e7d32;font-weight:600}.cell-danger{color:#c62828;font-weight:600}.row-warning{background:#fff3e0}.row-inactive{color:#888;background:#f5f5f5}.row-inactive td{text-decoration:line-through}.app-footer{color:#fff;background:#1565c0;justify-content:space-between;align-items:center;padding:8px 24px;font-size:12px;display:flex}.footer-credits{color:#fffc;cursor:pointer;background:0 0;border:none;padding:4px;font-size:12px}.footer-credits:hover{color:#fff}.credits-content p{margin:8px 0;font-size:14px;line-height:1.5}.kiosk-editor{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}@media (width<=900px){.kiosk-editor{grid-template-columns:1fr}}.kiosk-form{background:#fff;border-radius:8px;flex-direction:column;gap:12px;padding:16px;display:flex;box-shadow:0 1px 3px #00000014}.kiosk-form label{font-size:14px;font-weight:600}.kiosk-wallpaper{flex-direction:column;gap:8px;display:flex}.wallpaper-preview{object-fit:cover;border:1px solid #ddd;border-radius:6px;max-width:200px;max-height:120px}.kiosk-apps{border:1px solid #ddd;border-radius:6px;max-height:220px;padding:8px;overflow-y:auto}.kiosk-app-checkbox{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-weight:400;display:flex}.kiosk-app-checkbox input{margin:0}.kiosk-app-checkbox span{flex:1}.kiosk-app-checkbox small{color:#666;font-size:11px}.kiosk-default{align-items:center;gap:8px;font-weight:400;display:flex}.kiosk-preview{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #00000014}.kiosk-preview h3{margin-top:0}.kiosk-grid{background-color:#e3f2fd;background-position:50%;background-size:cover;border-radius:8px;grid-template-rows:repeat(4,80px);grid-template-columns:repeat(4,1fr);gap:8px;padding:8px;display:grid}.kiosk-cell{border:1px dashed #0000001f;border-radius:6px;justify-content:center;align-items:center;min-height:0;display:flex}.kiosk-cell.occupied{background:#ffffffd9;border-style:solid}.kiosk-item{cursor:grab;text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;display:flex}.kiosk-item:active{cursor:grabbing}.kiosk-item-name{word-break:break-word;font-size:12px}.kiosk-preview .hint{color:#666;margin-top:8px;font-size:12px}.organization-page{max-width:800px;margin:0 auto}.organization-card{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #00000014}.organization-card h1{margin-top:0;margin-bottom:8px}.org-subtitle{color:#555;margin-bottom:24px;font-size:18px}.organization-card section{margin-bottom:24px}.organization-card section h3{color:#1976d2;margin-bottom:8px}.organization-card ul{padding-left:20px}.organization-card li{margin-bottom:6px}.org-contacts{border-top:1px solid #e0e0e0;padding-top:16px}.org-contacts p{margin:6px 0}.settings-tabs{border-bottom:1px solid #ddd;gap:8px;margin-bottom:20px;padding-bottom:8px;display:flex}.settings-tabs button{cursor:pointer;color:#555;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px}.settings-tabs button.active{color:#1976d2;border-bottom-color:#1976d2;font-weight:600}.advantages-list{margin-bottom:12px;padding-left:20px;list-style:outside}.advantages-list li{margin-bottom:6px}.advantages-list .link{margin-left:8px;font-size:12px}
