:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a2e;background:#f5f6fa}*{box-sizing:border-box}body{margin:0}.app{max-width:640px;margin:4rem auto;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014}.app--narrow{max-width:380px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:#444}.field input{padding:.6rem .7rem;font-size:1rem;border:1px solid #ccd;border-radius:8px}.form button,.btn-secondary{padding:.6rem 1rem;font-size:1rem;border:none;border-radius:8px;cursor:pointer}.form button{background:#3b5bdb;color:#fff}.form button:disabled{opacity:.6;cursor:default}.btn-secondary{background:#eef;color:#1a1a2e;align-self:flex-start}.panel{margin-top:2rem;border-top:1px solid #e5e7eb;padding-top:1.5rem}.panel h2{font-size:1.15rem}.form--inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.5rem}.form--inline input[type=text],.form--inline input[type=password],.form--inline input:not([type]){padding:.45rem .6rem;border:1px solid #ccd;border-radius:6px}.form--inline button{background:#3b5bdb;color:#fff;border:none;border-radius:6px;padding:.45rem .8rem;cursor:pointer}.checkbox{display:inline-flex;align-items:center;gap:.3rem;font-size:.9rem}.data-table{width:100%;border-collapse:collapse;margin-top:1.25rem;font-size:.9rem}.data-table th,.data-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid #eee;vertical-align:middle}.table-scroll{overflow-x:auto}.data-table.projects{min-width:560px}.cell-name,.cell-url{max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-url a{color:#3b5bdb}.cell-muted{color:#888}.health{display:inline-block;min-width:2ch;padding:.1rem .4rem;border-radius:6px;font-weight:600;text-align:center}.health--good{background:#eafaf1;color:#1a7f4b}.health--medium{background:#fff6e5;color:#9a6a00}.health--bad{background:#fdeaea;color:#a11}.list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem}.list-search{padding:.45rem .6rem;border:1px solid #ccd;border-radius:6px;font-size:.9rem;flex:1 1 12rem;min-width:8rem}.control{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem}.row-actions{display:flex;gap:.35rem;flex-wrap:wrap}.row-actions button{font-size:.8rem;padding:.3rem .55rem;border:1px solid #ccd;border-radius:6px;background:#f7f8fa;cursor:pointer}.row-actions button:disabled{opacity:.5;cursor:default}.you{color:#888;font-size:.85em}.journal{list-style:none;margin:1rem 0 0;padding:0}.journal-item{padding:.5rem 0;border-bottom:1px solid #eee;font-size:.9rem}.journal-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem}.journal-time{color:#888;white-space:nowrap}.journal-actor{font-weight:600;color:#3b5bdb}.journal-summary{flex:1}.journal-toggle{background:none;border:none;color:#3b5bdb;cursor:pointer;font-size:.85rem;padding:0}.journal-meta{margin:.4rem 0 0;padding:.5rem .7rem;background:#f7f8fa;border-radius:6px;font-size:.8rem;overflow-x:auto}.panel .btn-secondary{margin-top:1rem}h1{margin-top:0;font-size:1.6rem}.subtitle{color:#555}.status{margin-top:1.5rem;padding:1rem;border-radius:8px}.status--loading{background:#eef}.status--ok{background:#eafaf1}.status--warn{background:#fff6e5;color:#7a5200}.status--error{background:#fdeaea;color:#a11}.link-button{background:none;border:none;padding:0;color:#3b5bdb;cursor:pointer;font:inherit;text-align:left}.link-button:hover{text-decoration:underline}.card-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-title{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.card-title h2{margin:0}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge--active{background:#eafaf1;color:#1a7f4b}.badge--archived{background:#eee;color:#666}.badge--primary{background:#eef;color:#3b5bdb}.badge--type{background:#eceff4;color:#444;margin-right:.4rem}.badge--set{background:#eafaf1;color:#1a7f4b}.badge--unset{background:#eee;color:#666}.audit-run-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.audit-run-head h3{margin:0 auto 0 0}.audit-limit{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem}.audit-limit input{width:6rem;padding:.35rem .5rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.audit-sample{display:flex;align-items:flex-start;gap:.5rem;margin-top:.6rem;font-size:.9rem}.audit-sample input{margin-top:.2rem}.badge.state{border:1px solid transparent}.state--loaded{background:#e7f6ec;color:#17603a}.state--collecting{background:#e8f0fe;color:#1a4b8c}.state--error{background:#fdecea;color:#8c1d18}.state--no_data,.state--never_collected{background:#f1f1f1;color:#555}.state--not_configured{background:#fff6e5;color:#7a5200}.state--not_requested{background:#f6f6f6;color:#777;border-color:#e0e0e0}.state--pending{background:#e8f0fe;color:#1a4b8c}.state--unsupported{background:#f6f6f6;color:#777;border-color:#e0e0e0}.keyso-fetch{margin-top:.6rem}.creds-item .audit-run-head{justify-content:flex-start}.keyso-fetch h4{margin:0;font-size:.95rem}.type-coverage{margin-top:.8rem}.type-coverage h4{margin:0 0 .4rem;font-size:.9rem}.type-coverage .data-table{max-width:22rem}.audit-run-head button{font-size:.9rem;padding:.4rem .8rem;border:none;border-radius:6px;background:#3b5bdb;color:#fff;cursor:pointer}.audit-run-head button:disabled{opacity:.55;cursor:default}.audit-progress{display:flex;flex-direction:column;gap:.3rem;margin-top:.6rem}.progressbar{height:8px;background:#eee;border-radius:999px;overflow:hidden}.progressbar-fill{height:100%;background:#3b5bdb;border-radius:999px;transition:width .3s ease}.history-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.history-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem;font-size:.9rem}.history-date{color:#888;white-space:nowrap}.history-body{flex:1}.history-note{margin-top:.6rem}.creds-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.creds-item{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;padding-bottom:.5rem;border-bottom:1px solid #f0f0f0}.cred-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem}.cred-controls{display:flex;flex-wrap:wrap;gap:.4rem}.cred-input{flex:1 1 12rem;min-width:8rem;padding:.4rem .6rem;border:1px solid #ccd;border-radius:6px;font:inherit}.cred-controls button{font-size:.85rem;padding:.4rem .7rem;border:1px solid #ccd;border-radius:6px;background:#3b5bdb;color:#fff;cursor:pointer}.cred-controls button:disabled{opacity:.5;cursor:default}.cred-controls button.btn-secondary{background:#eef;color:#1a1a2e}.cred-error{margin:.2rem 0 0;padding:.4rem .6rem;font-size:.85rem}.cred-note{margin:.2rem 0 0;font-size:.8rem}.conn--connected{background:#eafaf1;color:#1a7f4b}.conn--error{background:#fdeaea;color:#a11}.conn--not_set{background:#eee;color:#666}.creds-name{display:flex;align-items:baseline;gap:.5rem}.creds-kind{color:#888;font-size:.8rem}.creds-status{display:flex;align-items:center;gap:.5rem}.creds-conn{font-size:.8rem}.card-fields{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1rem;margin:1.25rem 0}.card-fields dt{font-weight:600;color:#444}.card-fields dd{margin:0;word-break:break-word}.inline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}.inline-list li{display:flex;align-items:center;gap:.4rem}.notes{white-space:pre-wrap}.card-section{border-top:1px solid #e5e7eb;padding-top:1rem;margin-top:1rem}.card-section h3{font-size:1rem;margin:0 0 .4rem}.card-meta{margin-top:1.25rem;color:#888;font-size:.85rem}.card-form textarea,.card-form select,.field textarea,.field select{padding:.5rem .6rem;font:inherit;border:1px solid #ccd;border-radius:8px}.card-form textarea{resize:vertical}.regions-editor{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem}.regions-editor legend{font-size:.9rem;color:#444;padding:0 .35rem}.region-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;flex-wrap:wrap}.region-row input[type=text],.region-row input:not([type]){flex:1 1 10rem;padding:.45rem .6rem;border:1px solid #ccd;border-radius:6px}.card-actions{display:flex;gap:.6rem}.competitors-group{margin-top:.9rem}.card-section--wide{width:min(1200px,calc(100vw - 4rem));margin-left:calc((min(1200px,100vw - 4rem) - 100%)/-2);background:#fff;padding:1rem 1.25rem .5rem;border-radius:8px;box-shadow:0 1px 3px #00000014}.semantics-table{min-width:1100px}.semantics-scroll{max-height:70vh}.semantics-table th:first-child,.semantics-table td:first-child{position:sticky;left:0;z-index:1;width:2.5rem;min-width:2.5rem;background:#fff}.semantics-table td.cell-query,.semantics-table th:nth-child(2){position:sticky;left:2.5rem;z-index:1;background:#fff}.semantics-table thead th{position:sticky;top:0;z-index:2;background:#fff}.semantics-table thead th:first-child,.semantics-table thead th:nth-child(2){z-index:3}.row-stale{opacity:.55}.save-ok{color:#15803d}.cell-input{width:100%;min-width:7rem;padding:.2rem .3rem;font:inherit;border:1px solid #ccd;border-radius:3px}.cell-input:focus{outline:2px solid #2563eb;outline-offset:-1px}.competitors-group h5{margin:.7rem 0 .25rem;font-size:.9rem}.competitors-group h4{margin:0 0 .3rem;font-size:.95rem}.competitors-list{list-style:none;margin:.4rem 0 .6rem;padding:0}.competitors-item{padding:.5rem 0;border-bottom:1px solid #eee}.competitor-head{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.competitor-head a{color:#3b5bdb;font-weight:600}.sections-list{list-style:none;margin:.6rem 0 0;padding:0}.section-item{padding:.7rem 0;border-bottom:1px solid #eee}.section-item:last-child{border-bottom:none}.section-head{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;cursor:pointer;list-style:none}.section-head::-webkit-details-marker{display:none}.section-head:before{content:"▸";color:#888;font-size:.8rem;width:.8rem}details[open]>.section-head:before{content:"▾"}.section-head:focus-visible{outline:2px solid #2563eb;outline-offset:2px;border-radius:4px}.section-head h4{margin:0;font-size:.95rem}.section-note{margin:.25rem 0 0;font-size:.85rem}.fact-list{display:grid;grid-template-columns:minmax(10rem,20rem) 1fr;gap:.15rem .8rem;margin:.4rem 0 0}.fact-list dt{color:#555;font-size:.88rem}.fact-list dd{margin:0;font-size:.88rem;word-break:break-word}.fact-list--nested{grid-template-columns:minmax(8rem,16rem) 1fr;margin:0;padding-left:.6rem;border-left:2px solid #eee}.fact-sublist{margin-left:1rem;color:#666}.inline-list--stacked li{display:list-item;list-style:none}.speed-table{margin-top:.8rem}.speed-table h5{margin:.6rem 0 .3rem;font-size:.9rem}@media(max-width:640px){.fact-list{grid-template-columns:1fr;gap:0 0}.fact-list dt{margin-top:.4rem;font-weight:600}}.upload-section{margin-top:.6rem}.upload-section input[type=file]{font-size:.85rem;margin:.3rem 0}.upload-preview{margin-top:.5rem;padding:.6rem;border:1px solid #e5e7eb;border-radius:6px;background:#fafafa}.upload-preview p{margin:0 0 .4rem;font-size:.88rem}.upload-preview .data-table{font-size:.82rem}.upload-preview button{margin-top:.5rem;font-size:.9rem;padding:.4rem .8rem;border:none;border-radius:6px;background:#3b5bdb;color:#fff;cursor:pointer}.upload-preview button:disabled{background:#9aa6c4;cursor:default}.report-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.report-tab{padding:.3rem .7rem;font-size:.85rem;border:1px solid #d5d9e0;border-radius:999px;background:#fff;color:#1f2430;cursor:pointer}.report-tab--on{border-color:#3b5bdb;background:#eef2ff;color:#1c3faa}.state--awaiting_upload{background:#fff6e5;color:#7a5200}.problems-group{margin-top:.9rem}.problems-group h5{margin:0 0 .3rem;font-size:.9rem}.problem-title{font-weight:600}.problem-evidence,.problem-meta{margin:.2rem 0 0}.problem-form{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem;padding:.9rem;border:1px solid #ccd;border-radius:8px;background:#fbfcff}.problem-form h5{margin:0;font-size:.95rem}.problem-priority{display:flex;flex-wrap:wrap;gap:.9rem;border:none;padding:0;margin:0}.problem-priority legend{padding:0;font-size:.9rem;color:#444}.problem-priority label{display:flex;align-items:center;gap:.35rem}.problem-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.fact-record{margin-left:.5rem;font-size:.8rem}.section-actions{margin:.6rem 0 0}.section-problems{margin-top:.6rem}.cell-hint{color:#595959;font-size:.85rem}.problem-evidence{white-space:pre-wrap}.checklist-group{margin-top:1rem}.checklist-group h4{margin:0 0 .3rem;font-size:.95rem}.checklist-score+.checklist-score:before{content:" · "}.checklist-form{display:flex;flex-direction:column;gap:.6rem;margin-top:.6rem;padding:.9rem;border:1px solid #ccd;border-radius:8px;background:#fbfcff}.checklist-factor{font-weight:400;text-align:left;min-width:18rem;max-width:28rem}.checklist-row-actions{display:inline-flex;gap:.6rem;margin-left:.5rem;font-size:.8rem;white-space:nowrap}.checklist-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.checklist-inline input{flex:1 1 14rem;min-width:10rem;padding:.3rem .4rem;font:inherit;border:1px solid #ccd;border-radius:6px}.checklist-note{margin:.2rem 0 0;white-space:pre-wrap}.checklist-note-btn{font-size:.8rem}.checklist-saving{border-color:#3b5bdb;box-shadow:0 0 0 2px #eef2ff}.metrika-setup{display:flex;flex-direction:column;gap:.5rem;margin:.6rem 0 .9rem;padding:.7rem;border:1px solid #e3e6ef;border-radius:8px;background:#fafbfd}.metrika-setup .field select{max-width:100%}.metatag-rows{display:flex;flex-direction:column;gap:.75rem;margin-top:.6rem}.metatag-row{border:1px solid #e3e6ef;border-radius:8px;padding:.7rem .8rem;background:#fff}.metatag-row[aria-busy=true]{opacity:.75}.metatag-row-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.4rem;font-size:.9rem}.metatag-field{margin-top:.6rem}.metatag-field-head,.metatag-field-foot{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:.85rem}.metatag-field-foot{justify-content:space-between;margin-top:.2rem}.metatag-input{width:100%;padding:.45rem .55rem;font:inherit;border:1px solid #ccd;border-radius:6px;resize:vertical}.metatag-keep{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;margin:.2rem 0 0;padding:.4rem .55rem;border:1px dashed #ccd;border-radius:6px;background:#f7f8fa;color:#555;font-size:.9rem}.metatag-over{color:#8a5a00}
