.tool-main{flex-direction:column;flex:1;width:100%;max-width:100%;padding:0;display:flex;overflow:hidden}.tool-header{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem 2rem;display:flex}.tool-header__title{flex-direction:column;gap:.25rem;display:flex}.tool-title{color:var(--color-text-title);margin:0;font-size:1.3rem;font-weight:700}.tool-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.csp-workspace{flex-direction:column;flex:1;width:100%;max-width:960px;margin:0 auto;padding:1.5rem 2rem 2.5rem;display:flex;overflow-y:auto}.csp-input-section{flex-direction:column;gap:.625rem;display:flex}.csp-textarea-wrap{position:relative}.csp-textarea{resize:vertical;background:var(--color-surface-deep);border:1px solid var(--color-border);width:100%;min-height:110px;color:var(--color-text-primary);box-sizing:border-box;border-radius:8px;outline:none;padding:.875rem 1rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.88rem;line-height:1.6;transition:border-color .15s}.csp-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-bg)}.csp-textarea::placeholder{color:var(--color-text-muted);font-style:italic}.csp-input-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.csp-clear-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.375rem;padding:.4rem .75rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:border-color .15s,color .15s;display:flex}.csp-clear-btn:hover{border-color:var(--color-danger-border);color:var(--color-danger)}.csp-sample-btns{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:.375rem;display:flex}.csp-sample-label{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem}.csp-sample-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;border-radius:5px;padding:.3rem .625rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.csp-sample-btn:hover{background:var(--color-surface-raised);color:var(--color-text-primary);border-color:var(--color-accent-border)}.csp-placeholder{color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.625rem;padding:3rem 1rem;display:flex}.csp-placeholder__icon{opacity:.35}.csp-placeholder__text{color:var(--color-text-muted);margin:0;font-size:.875rem}.csp-summary-bar{background:var(--color-border);border:1px solid var(--color-border);border-radius:8px;gap:1px;margin-top:1.25rem;display:flex;overflow:hidden}.csp-summary-stat{background:var(--color-surface);flex-direction:column;flex:1;align-items:center;gap:.2rem;padding:.75rem 1rem;display:flex}.csp-summary-stat__value{font-size:1.35rem;font-weight:700;line-height:1}.csp-summary-stat__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.csp-summary-stat--high .csp-summary-stat__value{color:var(--color-danger)}.csp-summary-stat--medium .csp-summary-stat__value{color:var(--color-warning)}.csp-summary-stat--low .csp-summary-stat__value{color:var(--color-accent)}.csp-summary-stat--info .csp-summary-stat__value{color:var(--color-text-secondary)}.csp-summary-stat--directives .csp-summary-stat__value{color:var(--color-text-primary)}.csp-grade-banner{border:1px solid;border-radius:8px;align-items:center;gap:1rem;margin-top:1.25rem;padding:.875rem 1.25rem;display:flex}.csp-grade-badge{text-align:center;min-width:2rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1.75rem;font-weight:800;line-height:1}.csp-grade-text{flex-direction:column;gap:.15rem;display:flex}.csp-grade-title{font-size:.9rem;font-weight:600}.csp-grade-desc{opacity:.8;font-size:.8rem}.csp-grade-banner--a{background:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.csp-grade-banner--b{background:color-mix(in srgb, var(--color-warning) 8%, transparent);border-color:color-mix(in srgb, var(--color-warning) 30%, transparent);color:var(--color-warning)}.csp-grade-banner--c{background:color-mix(in srgb, var(--color-grade-c) 8%, transparent);border-color:color-mix(in srgb, var(--color-grade-c) 30%, transparent);color:var(--color-grade-c)}.csp-grade-banner--d{background:color-mix(in srgb, var(--color-grade-d) 8%, transparent);border-color:color-mix(in srgb, var(--color-grade-d) 30%, transparent);color:var(--color-grade-d)}.csp-grade-banner--f{background:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.csp-multi-header-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);border-radius:8px;align-items:flex-start;gap:.6rem;margin-top:1.25rem;padding:.65rem 1rem;font-size:.82rem;line-height:1.45;display:flex}.csp-multi-header-banner--prominent{border-left:4px solid var(--color-warning);gap:.75rem;padding:.85rem 1rem .85rem .9rem;font-size:.85rem}.csp-multi-header-banner svg{flex-shrink:0;margin-top:.1rem}.csp-report-only-banner{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);border-radius:8px;align-items:flex-start;gap:.6rem;margin-top:1.25rem;padding:.65rem 1rem;font-size:.82rem;line-height:1.45;display:flex}.csp-report-only-banner svg{flex-shrink:0;margin-top:.1rem}.csp-report-only-only-notice{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);border-radius:8px;align-items:flex-start;gap:.6rem;margin-top:1.25rem;padding:.75rem 1rem;font-size:.82rem;line-height:1.5;display:flex}.csp-report-only-only-notice svg{flex-shrink:0;margin-top:.1rem}.csp-report-only-section{border-top:2px dashed var(--color-border);margin-top:2rem;padding-top:1.5rem}.csp-missing-banner{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:8px;align-items:flex-start;gap:.625rem;margin-top:1.25rem;padding:.75rem 1rem;font-size:.82rem;display:flex}.csp-missing-banner__icon{flex-shrink:0;margin-top:.05rem}.csp-missing-banner__body{flex-direction:column;gap:.35rem;display:flex}.csp-missing-banner__title{font-weight:600}.csp-missing-banner__list{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.csp-missing-chip{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:4px;padding:.15rem .45rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.75rem}.csp-findings{flex-direction:column;gap:1.25rem;margin-top:1.25rem;display:flex}.csp-directive-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.csp-directive-header{background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.csp-directive-header:hover{background:var(--color-surface)}.csp-directive-header:hover .csp-directive-name{color:var(--color-accent)}.csp-directive-name{color:var(--color-text-primary);flex:1;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.88rem;font-weight:700;transition:color .15s}.csp-directive-value{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:2;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.75rem;overflow:hidden}.csp-directive-badges{flex-shrink:0;align-items:center;gap:.3rem;display:flex}.csp-severity-badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:4px;padding:.15rem .45rem;font-size:.65rem;font-weight:700}.csp-severity-badge--high{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.csp-severity-badge--medium{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.csp-severity-badge--low{background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent-border)}.csp-severity-badge--info{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}.csp-directive-chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform .2s}.csp-directive-header--open .csp-directive-chevron{transform:rotate(180deg)}.csp-directive-issues{flex-direction:column;display:flex}.csp-directive-ok{color:var(--color-success);align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.82rem;display:flex}.csp-issue{border-top:1px solid var(--color-border-faint);gap:.75rem;padding:.65rem 1rem;font-size:.82rem;display:flex}.csp-issue:first-child{border-top:none}.csp-issue__icon{flex-shrink:0;margin-top:.1rem}.csp-issue__body{flex-direction:column;gap:.25rem;display:flex}.csp-issue__title{color:var(--color-text-primary);font-weight:600;line-height:1.4}.csp-issue__desc{color:var(--color-text-secondary);line-height:1.5}.csp-issue__value{color:var(--color-text-muted);background:var(--color-surface-deep);border:1px solid var(--color-border-faint);word-break:break-all;border-radius:4px;padding:.2rem .5rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.78rem;display:inline-block}.csp-issue--high .csp-issue__title{color:var(--color-danger)}.csp-issue--medium .csp-issue__title{color:var(--color-warning)}.csp-issue--low .csp-issue__title{color:var(--color-accent)}.csp-issue--info .csp-issue__title{color:var(--color-text-secondary)}.csp-overview-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-top:1.25rem;overflow:hidden}.csp-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);margin:0;padding:.6rem 1rem;font-size:.75rem;font-weight:600}.csp-overview-table{border-collapse:collapse;width:100%;font-size:.82rem}.csp-overview-table thead th{background:var(--color-surface-raised);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--color-border);padding:.45rem 1rem;font-size:.7rem;font-weight:600}.csp-overview-table tbody tr{border-bottom:1px solid var(--color-border-faint)}.csp-overview-table tbody tr:last-child{border-bottom:none}.csp-overview-table tbody tr:hover{background:var(--color-surface-raised)}.csp-overview-table td{vertical-align:top;padding:.45rem 1rem}.csp-overview-table .csp-ov-name{color:var(--color-text-primary);white-space:nowrap;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-weight:600}.csp-overview-table .csp-ov-value{color:var(--color-text-muted);word-break:break-all;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.csp-overview-table .csp-ov-issues{white-space:nowrap}.csp-raw-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;margin-top:1.25rem;overflow:hidden}.csp-raw-header{background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.csp-raw-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin:0;font-size:.75rem;font-weight:600}.csp-copy-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;background:0 0;border-radius:5px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-family:inherit;font-size:.75rem;font-weight:500;transition:border-color .15s,color .15s;display:flex}.csp-copy-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.csp-raw-body{color:var(--color-text-primary);word-break:break-all;white-space:pre-wrap;padding:.875rem 1rem;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.8rem;line-height:1.7;overflow-x:auto}.csp-raw-directive{color:var(--color-accent);font-weight:600}.csp-raw-value{color:var(--color-text-primary)}.csp-raw-sep{color:var(--color-text-muted)}@media (width<=640px){.csp-workspace{padding:1rem}.csp-summary-bar{flex-wrap:wrap}.csp-summary-stat{flex:calc(33% - 1px);min-width:80px}.csp-directive-value{display:none}.csp-input-controls{flex-direction:column;align-items:flex-start}.csp-sample-btns{justify-content:flex-start}}@media (width<=400px){.csp-summary-stat{flex:calc(50% - 1px)}}
