.st-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.st-modal{background:var(--bg-card, #2b2b2b);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem 2rem 1.75rem;max-width:400px;width:90%;text-align:center;box-shadow:0 16px 48px #00000080}[data-theme=light] .st-modal{border-color:#00000014;box-shadow:0 16px 48px #00000026}.st-icon{font-size:2.25rem;margin-bottom:.75rem;line-height:1}.st-title{font-size:1.125rem;font-weight:600;color:var(--text-primary, #ffffff);margin-bottom:.625rem}.st-body{font-size:.9375rem;color:var(--text-secondary, #c9d1d9);line-height:1.55;margin-bottom:1.75rem}.st-countdown{font-variant-numeric:tabular-nums;font-weight:700;color:var(--text-primary, #ffffff)}.st-buttons{display:flex;gap:.75rem;justify-content:center}.st-btn{flex:1;max-width:160px;padding:.625rem 1rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.st-btn-logout{background:transparent;color:var(--text-secondary, #c9d1d9);border:1.5px solid rgba(255,255,255,.2)}.st-btn-logout:hover{border-color:#f44336;color:#f44336}[data-theme=light] .st-btn-logout{border-color:#d0d7de;color:#444c56}[data-theme=light] .st-btn-logout:hover{border-color:#f44336;color:#f44336}.st-btn-continue{background:#1f6feb;color:#fff}.st-btn-continue:hover{background:#388bfd}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page, var(--bg-primary))}.login-theme-toggle{position:fixed;top:1rem;right:1rem;background-color:var(--bg-card);z-index:100}.login-container{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:12px;padding:2.5rem;max-width:580px;min-width:480px;width:90%;box-shadow:0 8px 24px #0006;position:relative}@media (max-width: 600px){.login-container{min-width:unset;width:95%}}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;justify-content:center;gap:.25rem;white-space:nowrap}.form-label{display:block;color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-input{width:100%;padding:.75rem 1rem;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.9375rem;transition:all .2s ease}.password-wrapper{position:relative}.password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center}.password-toggle:hover{color:var(--text-primary)}.password-toggle svg{width:20px;height:20px}.login-button{width:100%;padding:.75rem;background:var(--input-focus);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:filter .2s ease;margin-top:.5rem}.login-button:hover:not(:disabled){filter:brightness(.9)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.login-loading-text{color:var(--text-primary);font-size:.9375rem;font-weight:500}.landing-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page, var(--bg-primary))}.landing-theme-toggle{position:fixed;top:1rem;right:1rem;background-color:var(--bg-card);z-index:100}.page-wrapper{width:90%;max-width:780px;padding:2rem 0}.page-header{text-align:center;margin-bottom:2.5rem}.page-header h1{font-size:1.5rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:.4rem}.page-header p{margin-top:.6rem;color:var(--text-muted);font-size:.9375rem}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media (max-width: 580px){.choice-grid{grid-template-columns:1fr}}.option-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:12px;padding:2rem 1.75rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .15s ease;display:flex;flex-direction:column;gap:.75rem;position:relative;overflow:hidden}.option-card:hover{border-color:var(--input-focus);background:var(--bg-card-hover);transform:translateY(-2px)}.option-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:12px 12px 0 0}.option-card.jamf-card:before{background:var(--input-focus)}.option-card.json-card:before{background:var(--success-color)}.option-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center}.option-card.jamf-card .option-icon{background:#1f6feb26;color:var(--input-focus)}.option-card.json-card .option-icon{background:#3fb95026;color:var(--success-color)}.option-icon svg{width:26px;height:26px}.option-title{font-size:1.0625rem;font-weight:600;color:var(--text-primary)}.option-desc{font-size:.875rem;color:var(--text-secondary);line-height:1.55;flex:1}.option-cta{margin-top:.5rem;font-size:.8125rem;font-weight:500;display:flex;align-items:center;gap:.3rem}.option-card.jamf-card .option-cta{color:var(--input-focus)}.option-card.json-card .option-cta{color:var(--success-color)}.json-panel{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.drop-zone{border:2px dashed var(--input-border);border-radius:8px;padding:1.5rem 1rem;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--input-bg)}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--drop-active-border);background:var(--drop-active-bg)}.drop-zone svg{width:32px;height:32px;color:var(--text-muted);margin-bottom:.5rem}.drop-zone p{font-size:.875rem;color:var(--text-muted)}.drop-zone span{color:var(--success-color);font-weight:500}.file-selected{display:flex;align-items:center;gap:.6rem;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;padding:.6rem .75rem;font-size:.875rem;color:var(--text-secondary)}.file-selected svg{width:16px;height:16px;color:var(--success-color);flex-shrink:0}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{cursor:pointer;color:var(--text-muted);padding:2px;border-radius:4px;background:none;border:none;display:flex;align-items:center}.file-remove:hover{color:var(--error-color)}.file-remove svg{width:14px;height:14px}.summary-page{height:100vh;display:grid;grid-template-rows:auto auto 1fr auto;background-color:var(--bg-primary);overflow:hidden}.filter-controls{background-color:var(--bg-secondary);padding:.875rem 2rem;border-bottom:1px solid var(--border-primary);display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.filter-left{display:flex;align-items:center;gap:1.5rem;flex:1;flex-wrap:wrap}.filter-right{display:flex;align-items:center;gap:.75rem}.risk-stat-pills{display:flex;align-items:center;gap:.4rem}.risk-stat-pill{font-size:.75rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;border:1.5px solid transparent;white-space:nowrap}.risk-stat-pill.total{color:var(--text-secondary);border-color:var(--border)}.risk-stat-pill.high{color:#b71c1c;border-color:#e57373;background:#e573731a}.risk-stat-pill.medium{color:#e65100;border-color:#ffa726;background:#ffa7261a}.risk-stat-pill.unrated{color:var(--text-faint);border-color:var(--border);background:var(--surface-alt, rgba(128,128,128,.08))}.add-app-button{background-color:transparent;color:var(--text-secondary);border:1.5px solid var(--btn-border);border-radius:6px;font-size:1.25rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center;text-decoration:none}.add-app-button:hover{border-color:var(--btn-border-hover);background-color:var(--btn-hover-bg)}.filter-label{color:var(--text-primary);font-weight:500;font-size:.875rem}.checkbox-group{display:flex;gap:1.25rem;align-items:center}.checkbox-item{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.875rem;color:var(--text-primary);-webkit-user-select:none;user-select:none}.checkbox-item input[type=checkbox]{width:16px;height:16px;accent-color:#2196f3;cursor:pointer}.app-search-wrapper{display:flex;align-items:center;position:relative}.app-search-icon{position:absolute;left:.6rem;color:var(--text-muted);pointer-events:none;display:flex;align-items:center}.app-search-icon svg{width:15px;height:15px}.app-search-input{padding:.35rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:.875rem;width:220px}.app-search-input::placeholder{color:var(--text-muted)}.app-search-input:focus{outline:none;border-color:var(--link-color, #58a6ff);box-shadow:0 0 0 3px #58a6ff26}.app-search-clear{position:absolute;right:.5rem;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;display:flex;align-items:center}.app-search-clear:hover{color:var(--text-primary)}.app-search-clear svg{width:13px;height:13px}.grade-filter-item{display:flex;align-items:center;gap:.3rem;cursor:pointer;-webkit-user-select:none;user-select:none}.grade-filter-item input[type=checkbox]{width:16px;height:16px;accent-color:#2196f3;cursor:pointer}.grade-filter-badge-wrapper{display:flex;flex-direction:column;align-items:center;gap:2px}.grade-filter-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:5px;font-weight:700;font-size:.8rem}.grade-filter-count{font-size:.7rem;font-weight:600;line-height:1}.missing-dropdown-wrapper{position:relative}.missing-dropdown-trigger{display:flex;align-items:center;gap:.4rem}.dropdown-chevron{width:13px;height:13px}.missing-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:50;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 6px 20px #00000040;min-width:190px;overflow:hidden}.missing-dropdown-item{display:block;width:100%;padding:.6rem 1rem;text-align:left;background:none;border:none;color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:background .15s}.missing-dropdown-item:hover{background:var(--bg-card-hover)}.filter-btn{background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:4px;padding:.375rem .75rem;font-size:.75rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{background-color:var(--bg-surface-2);border-color:#2196f3}.export-btn{background-color:#2196f3;color:#fff;border:1px solid #2196f3;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.export-btn:hover{background-color:#1976d2;border-color:#1976d2}.export-btn svg{width:16px;height:16px}.detail-pane{flex:1;overflow-y:auto;background-color:var(--bg-primary);padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.summary-section{display:flex;flex-direction:column;gap:.75rem}.section-header{display:flex;align-items:center;gap:.75rem}.section-header h2{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.results-count{margin-left:auto;color:var(--text-faint);font-size:.875rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stat-card{background-color:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;padding:1.25rem;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000026}.stat-value{font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:.5rem;color:var(--text-primary)}.stat-value.high{color:#b71c1c}.stat-value.medium{color:#f59e0b}.stat-value.unrated{color:var(--text-faint)}.stat-label{font-size:.75rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.distribution-card{background-color:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;padding:1.25rem}.grade-distribution{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap}.grade-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.grade-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;font-weight:700;font-size:1.25rem}.grade-count{font-size:.875rem;font-weight:600}.grade-item.g-A .grade-count{color:#4caf50}.grade-item.g-B .grade-count{color:#8bc34a}.grade-item.g-C .grade-count{color:#d4a017}.grade-item.g-D .grade-count{color:#e57373}.grade-item.g-F .grade-count{color:#b71c1c}.grade-item.g-none .grade-count{color:var(--text-faint)}.risk-cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.risk-cat-card{background-color:var(--bg-card);border:1px solid var(--border-primary);border-top-width:4px;border-radius:8px;padding:1.25rem;transition:transform .2s ease,box-shadow .2s ease}.risk-cat-card.cat-clickable{cursor:pointer}.risk-cat-card.cat-clickable:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000040}.risk-cat-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.risk-cat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:.5rem 0}.risk-cat-zero,.risk-cat-loading{color:var(--text-faint)!important}.risk-cat-subtitle{font-size:.875rem;color:var(--text-faint)}.cat-progress-banner{display:none;align-items:center;gap:1rem;padding:.7rem 1.1rem;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;font-size:.8125rem}.cat-progress-banner.visible{display:flex}.cat-progress-spinner{width:15px;height:15px;flex-shrink:0;border-radius:50%;border:2px solid var(--border-secondary);border-top-color:var(--link-color, #58a6ff);animation:cat-spin .7s linear infinite}@keyframes cat-spin{to{transform:rotate(360deg)}}.cat-progress-label{color:var(--text-muted);white-space:nowrap}.cat-progress-counter{font-weight:600;color:var(--text-primary);white-space:nowrap}.cat-progress-bar-track{flex:1;height:5px;border-radius:3px;background:var(--border-primary);overflow:hidden}.cat-progress-bar-fill{height:100%;border-radius:3px;background:var(--link-color, #58a6ff);transition:width .3s ease}.table-wrapper{background-color:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.app-table{width:100%;border-collapse:collapse}.app-table th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);background-color:var(--bg-secondary);border-bottom:2px solid var(--border-primary);position:sticky;top:0;z-index:5}.app-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-faint);vertical-align:middle;color:var(--text-primary)}.app-row{cursor:pointer;transition:background-color .15s ease}.app-row:hover{background-color:var(--bg-card-hover)!important}.app-row.row-odd{background-color:var(--bg-card-alt, var(--bg-card))}.app-row.row-even{background-color:var(--bg-card)}.app-row:last-child td{border-bottom:none}.app-row.no-link{cursor:default}.app-row.no-link .app-title-text{color:var(--text-primary)}.app-name-cell{display:flex;align-items:center;gap:.75rem}.app-title-text{font-size:.9375rem;font-weight:500;color:var(--link-color, #58a6ff)}.app-bundle-id{font-size:.75rem;font-family:monospace;color:var(--text-faint);margin-top:2px}.app-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.app-table th.sortable:hover{color:var(--text-primary)}.sort-indicator{display:inline-block;width:1em;opacity:.35;font-size:.75em;vertical-align:middle}.sort-indicator.asc:after{content:" ▲"}.sort-indicator.desc:after{content:" ▼"}th.sort-active .sort-indicator{opacity:1}.app-grade-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;font-weight:700;font-size:.875rem}.import-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:1.5rem;text-align:center}.import-progress-ring{width:64px;height:64px;flex-shrink:0}.import-progress-ring svg{width:64px;height:64px;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--border-primary);stroke-width:5}.ring-fill{fill:none;stroke:var(--link-color, #58a6ff);stroke-width:5;stroke-linecap:round;stroke-dasharray:176;stroke-dashoffset:176;transition:stroke-dashoffset .4s ease}.import-progress-ring.spinning svg{animation:import-ring-spin 1.2s linear infinite}@keyframes import-ring-spin{to{transform:rotate(270deg)}}.import-progress-ring.spinning .ring-fill{stroke-dashoffset:110;transition:none}.import-progress-counter{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.import-progress-counter span{font-size:.9rem;font-weight:400;color:var(--text-muted)}.import-progress-bar-track{width:100%;max-width:320px;height:5px;border-radius:3px;background:var(--border-primary);overflow:hidden}.import-progress-bar-fill{height:100%;width:0%;border-radius:3px;background:var(--link-color, #58a6ff);transition:width .35s ease}.import-progress-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.import-progress-sub{font-size:.8125rem;color:var(--text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-modal-search{padding:.75rem 1.5rem;border-bottom:1px solid var(--border-secondary);display:flex;flex-direction:column;gap:.5rem}.cat-modal-search input{width:100%;padding:.4rem .75rem;border-radius:6px;border:1px solid var(--border-subtle);background:var(--bg-surface-2, var(--bg-secondary));color:var(--text-primary);font-size:.85rem;outline:none}.cat-modal-search input:focus{border-color:#2196f3}.cat-modal-platform-filter{display:flex;gap:.4rem}.cat-plat-btn{display:flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:5px;border:1px solid var(--border-subtle);background:var(--bg-surface-2, var(--bg-secondary));color:var(--text-faint);font-size:.78rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.cat-plat-btn.active{color:#fff}.cat-modal-app-list{display:flex;flex-direction:column;gap:.5rem}.cat-modal-app-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:6px;background:var(--bg-card-alt, var(--bg-secondary));cursor:pointer;transition:background .15s ease}.cat-modal-app-item:hover{background:var(--bg-card-hover)}.cat-modal-app-item.no-link{cursor:default}.cat-modal-app-item.no-link:hover{background:var(--bg-card-alt, var(--bg-secondary))}.cat-modal-app-info{flex:1;min-width:0}.cat-modal-app-title{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-modal-app-bundle{font-size:.75rem;font-family:monospace;color:var(--text-faint)}.cat-modal-group-header{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:1rem 0 .4rem;padding-bottom:.35rem;border-bottom:1px solid var(--border-faint)}.cat-modal-group-header:first-child{margin-top:0}.cat-modal-empty{text-align:center;color:var(--text-faint);padding:2rem 0;font-size:.9rem}.modal-section{margin-bottom:1.5rem}.modal-section:last-child{margin-bottom:0}.modal-section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.modal-app-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-faint);border-radius:4px;background-color:var(--bg-modal-list, var(--bg-secondary))}.app-list-item{color:var(--text-primary);font-size:.875rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-faint)}.app-list-item:last-child{border-bottom:none}.app-list-empty{color:var(--text-faint);font-size:.875rem;font-style:italic;text-align:center;padding:1rem}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;min-width:24px}.badge-warning{background-color:#ff9800;color:#fff}.dry-run-modal{max-width:560px}.dry-run-loading{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0}.dry-run-progress-counter{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.dry-run-progress-counter span{font-size:.875rem;font-weight:400;color:var(--text-muted)}.dry-run-step{font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dry-run-error{color:#e57373;padding:1rem 0;font-size:.9rem}.dry-run-results-body{padding:0!important}.dry-run-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:1.25rem 1.5rem}.dry-run-stat-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:1rem 1.25rem}.dry-run-stat-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.4rem}.dry-run-stat-value{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1.1}.dry-run-stat-value.dr-accepted{color:#4caf50}.dry-run-stat-value.dr-unavailable{color:#e57373}.dry-run-list-section{border-top:1px solid var(--border-primary);padding:1rem 1.5rem}.dry-run-list-header{font-size:1rem;font-weight:700;color:var(--text-primary);margin-bottom:.65rem;display:flex;align-items:center;gap:.5rem}.dry-run-app-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-faint);border-radius:6px;background:var(--bg-card)}.dry-run-app-item{padding:.45rem .75rem;font-size:.875rem;color:var(--text-primary);border-bottom:1px solid var(--border-faint)}.dry-run-app-item:last-child{border-bottom:none}.export-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-primary);padding:.875rem 2rem;display:flex;justify-content:flex-end;align-items:center;gap:.75rem}@media print{.summary-page{height:auto;overflow:visible;display:block}.detail-pane{overflow:visible;height:auto}.header,.filter-controls,.export-footer,.toast,.modal-overlay,.cat-progress-banner{display:none!important}}.findings-page{height:100vh;display:grid;grid-template-rows:auto auto 1fr;background-color:var(--bg-primary);overflow:hidden}.findings-loading{display:flex;align-items:center;justify-content:center;padding:4rem}.risk-summary{background-color:var(--bg-secondary);padding:1.5rem 2rem;border-bottom:1px solid var(--border-primary);display:grid;grid-template-columns:1fr auto auto auto;gap:2rem;align-items:center}.app-title-section h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:.5rem}.app-title-section p{color:var(--text-muted);font-size:.9375rem}.risk-metric{text-align:center;padding:0 1.5rem;border-left:1px solid var(--border-primary)}.risk-metric-label{color:var(--text-muted);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.risk-metric-value{font-size:2rem;font-weight:600;color:var(--text-primary)}.risk-rating-A{color:#4caf50}.risk-rating-B{color:#8bc34a}.risk-rating-C{color:#ffc107}.risk-rating-D{color:#ff5722}.risk-rating-F{color:#f44336}.findings-container{overflow-y:auto;padding:1.5rem 2rem}.findings-header{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1.25rem;display:flex;justify-content:space-between;align-items:center}.findings-count{color:var(--text-muted);font-size:.9375rem;font-weight:400}.category-section{margin-bottom:1rem;border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.category-header{background-color:var(--bg-card-alt, var(--bg-secondary));padding:.875rem 1.25rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.category-header:hover{background-color:var(--bg-card-hover)}.category-header-left{display:flex;align-items:center;gap:.75rem;font-size:.9375rem;font-weight:600;color:var(--text-primary)}.category-icon{font-size:1.1rem}.category-affected-badge{font-size:.7rem;font-weight:700;padding:.2rem .6rem;border-radius:10px}.category-affected-badge.has-affected{background-color:#f44336;color:#fff}.category-affected-badge.all-passed{background-color:var(--bg-card);color:var(--text-muted);border:1px solid var(--border-faint)}.category-chevron{width:18px;height:18px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.category-section.open .category-chevron{transform:rotate(90deg)}.finding-item{background-color:var(--bg-card);border-top:1px solid var(--border-primary);overflow:hidden}.finding-item:hover{background-color:var(--bg-card-hover)}.finding-header{padding:1rem 1.25rem;cursor:pointer;display:flex;align-items:flex-start;gap:1rem}.finding-icon{width:20px;height:20px;flex-shrink:0;margin-top:2px}.finding-icon.affected{color:#ffc107}.finding-icon.passed{color:#4caf50}.finding-title-section{flex:1;min-width:0}.finding-title{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin-bottom:.25rem}.finding-id{color:var(--text-muted);font-size:.8rem;font-family:Monaco,Courier New,monospace}.finding-chevron{width:18px;height:18px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0;margin-top:2px}.finding-item.expanded .finding-chevron{transform:rotate(90deg)}.finding-details{padding:0 1.25rem 1rem 3.25rem;background-color:var(--bg-card-expanded);border-top:1px solid var(--border-faint)}.finding-description{color:var(--text-secondary);line-height:1.6;padding-top:.75rem;font-size:.9rem}.no-findings{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.no-findings h3{font-size:1.5rem;margin-bottom:.5rem}.add-app-page{min-height:100vh;display:grid;grid-template-rows:auto 1fr;background-color:var(--bg-primary)}.add-app-content{display:flex;align-items:center;justify-content:center;padding:2rem}.form-box{background-color:var(--bg-card);padding:2rem;border-radius:10px;box-shadow:0 0 15px #0003;width:90%;max-width:620px}.form-box h2{color:var(--text-primary);text-align:center;margin-bottom:1.5rem;font-size:1.125rem;font-weight:600}.form-group{margin-bottom:1.25rem}.form-group label{display:block;color:var(--text-primary);font-weight:600;font-size:1.1rem;margin-bottom:.4rem}.form-input{width:100%;padding:.5rem;border:1px solid var(--border-primary);border-radius:5px;background-color:var(--input-bg);color:var(--text-primary);font-size:.9375rem;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px var(--input-focus-shadow)}.form-input::placeholder{color:var(--text-muted)}.large-input{font-size:1.1rem;padding:.5rem}.platform-selector{margin-bottom:1.5rem;padding:1rem;background-color:var(--bg-secondary);border-radius:5px}.platform-selector>label{color:var(--text-primary);font-size:1.1rem;font-weight:600;display:block;margin-bottom:.5rem}.radio-group{display:flex;gap:2rem;margin-top:.5rem}.radio-option{display:flex;align-items:center;gap:.5rem}.radio-option input[type=radio]{width:20px;height:20px;cursor:pointer}.radio-option label{margin:0;font-size:1rem;font-weight:400;cursor:pointer;color:var(--text-primary)}.submit-row{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.cancel-btn{padding:.5rem 1.5rem;background-color:var(--bg-surface-2, #6b6b6b);color:var(--text-primary);border:none;border-radius:5px;cursor:pointer;font-size:1rem;transition:filter .2s}.cancel-btn:hover:not(:disabled){filter:brightness(.9)}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn{padding:.5rem 1.5rem;background-color:#1abc9c;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1rem;font-weight:600;transition:background-color .2s}.submit-btn:hover:not(:disabled){background-color:#16a085}.submit-btn:disabled{opacity:.6;cursor:not-allowed}:root,[data-theme=dark]{--bg-primary: #2b2b2b;--bg-secondary: #1a1a1a;--bg-card: #353535;--bg-card-alt: #2f2f2f;--bg-card-hover: #3a3a3a;--bg-card-expanded: #2f3742;--bg-surface-2: #3b3b3b;--bg-modal-list: #1e1e1e;--bg-page: #0d1117;--text-primary: #ffffff;--text-secondary: #c9d1d9;--text-muted: #8b949e;--text-faint: #999999;--border-primary: #444444;--border-secondary: #555555;--border-subtle: #6b6b6b;--border-faint: #333333;--header-gradient: linear-gradient(135deg, #2b2b2b 0%, #3b3b3b 50%, #2b2b2b 100%);--btn-border: #6e7681;--btn-border-hover: #8b949e;--btn-hover-bg: rgba(110,118,129,.1);--link-color: #58a6ff;--link-hover: #79c0ff;--input-bg: #0d1117;--input-border: #30363d;--input-focus: #1f6feb;--input-focus-shadow: rgba(31,111,235,.3);--row-stripe-odd: rgba(255,255,255,.03);--row-stripe-even: rgba(0,0,0,.1);--error-bg: rgba(248,81,73,.15);--error-border: rgba(248,81,73,.4);--error-color: #f85149;--spinner-track: #30363d;--spinner-head: #1f6feb;--toggle-border: #30363d;--toggle-hover-bg: rgba(48,54,61,.5);--drop-active-bg: rgba(31,111,235,.08);--drop-active-border: #1f6feb;--success-color: #3fb950}[data-theme=light]{--bg-primary: #f6f8fa;--bg-secondary: #eaeef2;--bg-card: #ffffff;--bg-card-alt: #f6f8fa;--bg-card-hover: #eff2f5;--bg-card-expanded: #dde3ea;--bg-surface-2: #e4e4e7;--bg-modal-list: #f0f2f5;--bg-page: #f6f8fa;--text-primary: #1f2328;--text-secondary: #444c56;--text-muted: #57606a;--text-faint: #6e7781;--border-primary: #d0d7de;--border-secondary: #d0d7de;--border-subtle: #d0d7de;--border-faint: #e8ebef;--header-gradient: linear-gradient(135deg, #eaeef2 0%, #f6f8fa 50%, #eaeef2 100%);--btn-border: #d0d7de;--btn-border-hover: #8c959f;--btn-hover-bg: rgba(208,215,222,.32);--link-color: #0969da;--link-hover: #0550ae;--input-bg: #f6f8fa;--input-border: #d0d7de;--input-focus: #0969da;--input-focus-shadow: rgba(9,105,218,.3);--row-stripe-odd: rgba(0,0,0,.02);--row-stripe-even: rgba(0,0,0,.04);--error-bg: rgba(207,34,46,.08);--error-border: rgba(207,34,46,.3);--error-color: #cf222e;--spinner-track: #d0d7de;--spinner-head: #0969da;--toggle-border: #d0d7de;--toggle-hover-bg: rgba(208,215,222,.32);--drop-active-bg: rgba(9,105,218,.06);--drop-active-border: #0969da;--success-color: #1a7f37}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh}@keyframes spin{to{transform:rotate(360deg)}}.header{background:var(--header-gradient);color:var(--text-primary);padding:1rem 2rem;box-shadow:0 2px 10px #0000001a;z-index:10;display:flex;flex-direction:column;gap:.75rem}.header-top{display:flex;justify-content:space-between;align-items:center}.header-left,.header-right{display:flex;align-items:center;gap:.5rem}.header h1{font-size:1.5rem;font-weight:600;margin:0;color:var(--text-primary)}.jamf-logo{width:48px;height:48px;display:inline-block;flex-shrink:0}.jamf-logo img{width:100%;height:100%;object-fit:contain}.breadcrumb{display:flex;align-items:center;gap:.35rem;font-size:.75rem;line-height:1}.breadcrumb-link{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.breadcrumb-link:hover{color:var(--text-secondary);text-decoration:underline}.breadcrumb-sep{color:var(--text-faint);-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--text-secondary)}.theme-toggle{background-color:transparent;color:var(--text-secondary);border:1.5px solid var(--btn-border);padding:0;border-radius:8px;cursor:pointer;transition:all .2s ease;width:38px;height:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.theme-toggle:hover{border-color:var(--btn-border-hover);background-color:var(--btn-hover-bg)}.theme-toggle svg{width:18px;height:18px}.btn-outline{background-color:transparent;color:var(--text-secondary);border:1.5px solid var(--btn-border);padding:.625rem 1.5rem;border-radius:8px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center}.btn-outline:hover{border-color:var(--btn-border-hover);background-color:var(--btn-hover-bg)}.btn-primary{background:var(--input-focus);color:#fff;border:none;border-radius:6px;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:filter .2s ease}.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.error-message{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-color);padding:.75rem;border-radius:6px;font-size:.875rem}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}.loading-content{text-align:center}.loading-text{color:var(--text-primary);font-size:.9375rem;font-weight:500;margin-top:1rem}.loading-sub{color:var(--text-muted);font-size:.8125rem;margin-top:.35rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:500}.modal{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:12px;width:90%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-secondary);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-faint);cursor:pointer;padding:.5rem;display:flex;align-items:center;transition:color .2s ease}.modal-close:hover{color:var(--text-primary)}.modal-close svg{width:20px;height:20px}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{padding:1.5rem;border-top:1px solid var(--border-secondary);display:flex;justify-content:flex-end;gap:.75rem}.modal-btn{padding:.5rem 1.5rem;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-btn-secondary{background:transparent;border:1px solid var(--border-secondary);color:var(--text-primary)}.modal-btn-secondary:hover{background:var(--bg-surface-2)}.modal-btn-primary{background:#2196f3;border:1px solid #2196f3;color:#fff}.modal-btn-primary:hover{background:#1976d2}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--bg-primary);color:var(--text-primary);padding:1rem 1.5rem;border-radius:6px;border:1px solid var(--border-secondary);box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;gap:.75rem;z-index:2000;max-width:400px;animation:toastIn .3s ease}.toast.success{border-color:#4caf50}.toast.error{border-color:#f44336}.toast.info{border-color:#2196f3}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.risk-A{color:#4caf50}.risk-B{color:#8bc34a}.risk-C{color:#ffc107}.risk-D{color:#ff5722}.risk-F{color:#f44336}
