/* A persistent DEV utility, independent of routed page content. */
.dev-feedback-utility{position:fixed;right:18px;bottom:18px;z-index:125;font-family:var(--font-ui,var(--ui));color:var(--ink)}
.df-launch{display:flex;align-items:center;gap:8px;min-height:42px;padding:10px 15px;border:1px solid var(--line);border-radius:22px;background:var(--surface,var(--card));color:var(--ink);font:600 12px/1.2 var(--font-ui,var(--ui));box-shadow:var(--shadow-float);cursor:pointer}
.df-launch span{font-size:18px;color:var(--accent,var(--blue))}
.df-panel[hidden]{display:none}
.df-panel{position:absolute;right:0;bottom:54px;width:min(410px,calc(100vw - 32px));max-height:calc(100dvh - 130px);overflow:auto;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface,var(--card));box-shadow:var(--shadow-float)}
.df-panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.df-panel>header small,.df-review-head>div>p{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.df-panel h2{margin:3px 0 0;font-size:20px;line-height:1.2}
.df-panel>header button{border:0;background:transparent;color:var(--ink-muted);font-size:25px;line-height:1;min-width:30px;min-height:30px;cursor:pointer}
.df-author{font-size:12px;margin:0 0 12px;color:var(--ink-muted)}
.df-context{padding:10px 12px;margin-bottom:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px}
.df-context p{margin:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.df-context button{padding:0;margin-top:5px;background:transparent;border:0;color:var(--accent,var(--blue));font-size:11px;cursor:pointer}
.df-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.df-panel label,.df-comment-form label,.df-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}
.df-panel select,.df-panel textarea,.df-filters select,.df-comment-form textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface,var(--card));color:var(--ink);font:400 13px/1.5 var(--font-ui,var(--ui));box-sizing:border-box}
.df-panel textarea{resize:vertical;margin-top:7px;min-height:130px}
.df-panel textarea:focus,.df-panel select:focus,.df-comment-form textarea:focus,.df-filters select:focus{outline:2px solid var(--accent-2,var(--blue));outline-offset:1px}
.df-dictation{display:flex;align-items:center;gap:9px;margin-top:9px}
.df-dictation button,.df-comment-form button,.df-filters button,.df-review-pagination button{padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface,var(--card));color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}
.df-dictation button.is-recording{border-color:var(--danger);color:var(--danger)}
.df-dictation small{font-size:11px;color:var(--ink-muted);line-height:1.4}
.df-attachment-controls{display:flex;align-items:center;gap:9px;margin-top:12px}
.df-attachment-controls button,.df-attachment-preview button{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}
.df-attachment-controls small{font-size:11px;color:var(--ink-muted);line-height:1.4}
.df-attachment-preview[hidden]{display:none}
.df-attachment-preview{margin-top:12px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.df-attachment-preview img{display:block;width:100%;max-height:180px;object-fit:contain;background:var(--surface);border-radius:4px}
.df-attachment-preview>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.df-attachment-preview small{font-size:11px;color:var(--ink-muted)}
.df-attachment-preview button{padding:5px 8px;font-size:11px}
.df-capture-overlay{position:fixed;inset:0;z-index:10020;cursor:crosshair;touch-action:none;background:rgba(5,22,35,.08);outline:0;font-family:var(--font-ui,var(--ui))}
.df-capture-instructions{position:absolute;top:38px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:12px 15px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-float);cursor:default}
.df-capture-instructions b{font-size:12px;white-space:nowrap}
.df-capture-instructions span{font-size:12px;line-height:1.4}
.df-capture-instructions button{padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:12px;cursor:pointer}
.df-capture-selection{position:absolute;border:2px solid #22b8f0;box-sizing:border-box;background:rgba(34,184,240,.05);box-shadow:0 0 0 100vmax rgba(5,22,35,.3);pointer-events:none}
.df-capture-selection[hidden]{display:none}
.df-capture-selection span{position:absolute;left:0;bottom:0;padding:3px 6px;background:#00619f;color:#fff;font-size:11px;white-space:nowrap}
.df-feedback-screenshot{margin:14px 0 0}
.df-feedback-screenshot a{display:inline-flex;flex-direction:column;gap:6px;max-width:100%}
.df-feedback-screenshot img{display:block;width:auto;max-width:100%;max-height:190px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:var(--surface-2)}
.df-feedback-screenshot span{font-size:11px}
.df-status{min-height:16px;margin:12px 0;font-size:12px;line-height:1.5;color:var(--ink-muted)}
.df-panel footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.df-panel a,.dev-feedback-review a{color:var(--accent,var(--blue));font-size:12px;text-decoration:none}
.df-panel footer .df-submit{padding:9px 13px;border:1px solid var(--accent,var(--blue));border-radius:7px;background:var(--accent,var(--blue));color:#fff;font-size:12px;font-weight:600;cursor:pointer}
.dev-feedback-utility button:disabled,.dev-feedback-review button:disabled{opacity:.45;cursor:default}
.dev-feedback-utility button:focus-visible,.dev-feedback-review button:focus-visible,.dev-feedback-review a:focus-visible{outline:2px solid var(--accent-2,var(--blue));outline-offset:2px}
.dev-feedback-review{padding-bottom:70px}
.df-review-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.df-review-head h2{margin:0 0 3px;font-size:22px}
.df-review-head>div>p{margin:0}
.df-review-head span{font-size:12px;color:var(--ink-muted)}
.df-review-head>b{font-size:12px;white-space:nowrap}
.df-view-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);margin-bottom:9px}
.df-view-switch a{padding:5px 9px;border-radius:4px;color:var(--ink-muted);font-weight:600}
.df-view-switch a[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.df-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;margin-bottom:7px}
.df-filters label{font-size:11px;gap:3px}
.df-filters select{min-width:150px;padding:5px 8px;font-size:12px}
.df-filters button{min-height:30px;padding:5px 9px;font-size:11px}
.df-review-message{font-size:11px;color:var(--ink-muted);margin:6px 0}
.df-review-message:empty{display:none}
.df-review-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:5px;background:var(--surface,var(--card))}
.df-review-table{width:100%;min-width:1040px;table-layout:fixed;border-collapse:collapse;text-align:left;font-size:11px;line-height:1.4}
.df-review-table thead th{padding:7px 8px;background:var(--surface-2);font-size:10px;font-weight:650;color:var(--ink-muted);border-bottom:1px solid var(--line)}
.df-review-table tbody td,.df-review-table tbody th{padding:7px 8px;vertical-align:middle;border-bottom:1px solid var(--line)}
.df-review-table tbody tr:last-child>*{border-bottom:0}
.df-review-table tbody tr.is-selected{background:var(--surface-2);outline:2px solid var(--accent-2);outline-offset:-2px}
.df-review-table tbody th{font-weight:400}
.df-review-table thead th:nth-child(1){width:30%}
.df-review-table thead th:nth-child(2){width:15%}
.df-review-table thead th:nth-child(3){width:10%}
.df-review-table thead th:nth-child(4){width:11%}
.df-review-table thead th:nth-child(5){width:10%}
.df-review-table thead th:nth-child(6){width:12%}
.df-review-table thead th:nth-child(7){width:5%}
.df-review-table thead th:nth-child(8){width:7%}
.df-request-meta{font-size:10px;line-height:1.2;color:var(--ink-muted);margin-bottom:3px}
.df-feedback-excerpt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:12px;line-height:1.35;margin:0;color:var(--ink)}
.df-grid-page a,.df-grid-page>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:11px}
.df-grid-author{overflow-wrap:anywhere}
.df-grid-date{white-space:nowrap;color:var(--ink-muted)}
.df-grid-image{text-align:center;color:var(--ink-muted)}
.df-grid-image a{font-size:19px;line-height:1}
.df-detail-toggle{padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--accent,var(--blue));font-size:10px;font-weight:600;cursor:pointer}
.df-detail-toggle[aria-expanded="true"]{background:var(--surface-2);color:var(--ink)}
.df-entry-detail[hidden]{display:none}
.df-review-table .df-entry-detail>td{padding:0;vertical-align:top;background:var(--surface-2)}
.df-entry-content{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.1fr);gap:22px;padding:17px 20px}
.df-entry-content h3{margin:0 0 8px;font-size:12px;font-weight:650}
.df-entry-content .df-feedback-body{margin:0}
.df-entry-content p,.df-entry-content a{font-size:12px;line-height:1.5}
.df-detail-author{font-size:11px!important;color:var(--ink-muted);margin-top:14px}
.df-detail-author b{color:var(--ink);font-weight:600}
.df-status-explanation{color:var(--ink-muted);font-size:11px!important;margin:0 0 10px}
.df-review-table small{display:block;margin-top:5px;font-size:11px;color:var(--ink-muted);font-weight:400}
.df-feedback-body,.df-review-note,.df-history p{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0;font-size:13px}
.df-company-link{display:block;margin-top:8px}
.df-legacy-source{margin-top:14px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);font-size:11px;color:var(--ink-muted)}
.df-legacy-source>small{display:block;margin-top:5px;line-height:1.5}
.df-legacy-source details{margin-top:9px}
.df-legacy-source summary{cursor:pointer;font-weight:600}
.df-legacy-source details p{margin:8px 0 0;line-height:1.5}
.df-legacy-note{white-space:pre-wrap;overflow-wrap:anywhere}
.df-comment-thread{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px}
.df-comment-thread h3>span{font-size:10px;color:var(--ink-muted);font-weight:400;margin-left:4px}
.df-comment{padding:9px 0;border-bottom:1px solid var(--line);max-width:850px}
.df-comment:first-child{padding-top:0}
.df-comment header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:11px}
.df-comment header b{font-weight:600}
.df-comment time{color:var(--ink-muted)}
.df-comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0}
.df-comments-empty{font-size:11px!important;color:var(--ink-muted);margin:0 0 9px}
.df-comment-form{display:grid;gap:6px;margin-top:13px;max-width:850px}
.df-comment-form label{font-size:11px}
.df-comment-form textarea{resize:vertical;min-height:65px;border-radius:5px;font-size:12px;padding:7px 9px}
.df-comment-form>div{display:flex;align-items:center;gap:10px}
.df-comment-form button{padding:5px 9px;font-size:11px;border-radius:4px}
.df-comment-form [data-feedback-comment-state]{font-size:11px;color:var(--ink-muted)}
.df-badge{display:inline-block;padding:2px 6px;border:1px solid var(--line);border-radius:4px;font-size:10px;line-height:1.4;background:var(--surface-2);white-space:nowrap}
.df-status-new,.df-status-reviewing{color:var(--accent,var(--blue));border-color:color-mix(in srgb,var(--accent,var(--blue)) 24%,var(--line));background:color-mix(in srgb,var(--accent,var(--blue)) 5%,var(--surface))}
.df-status-needs_info{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 24%,var(--line));background:color-mix(in srgb,var(--warning) 5%,var(--surface))}
.df-status-planned,.df-status-testing{color:var(--accent,var(--blue));background:color-mix(in srgb,var(--accent,var(--blue)) 7%,var(--surface))}
.df-status-done{color:var(--positive);border-color:color-mix(in srgb,var(--positive) 24%,var(--line));background:color-mix(in srgb,var(--positive) 6%,var(--surface))}
.df-status-declined{color:var(--ink-muted)}
.df-history{margin-top:10px;color:var(--ink-muted);font-size:11px}
.df-history summary{cursor:pointer}
.df-history>div{border-top:1px solid var(--line);margin-top:9px;padding-top:9px}
.df-history p{font-size:12px;color:var(--ink)}
.df-page-details{margin-top:10px;font-size:11px;color:var(--ink-muted)}
.df-page-details summary{cursor:pointer}
.df-page-details dl{margin:8px 0 0}
.df-page-details dl>div{margin-top:6px}
.df-page-details dt{font-weight:600}
.df-page-details dd{margin:2px 0 0;overflow-wrap:anywhere}
.df-reviewed-by{margin-top:10px!important}
.df-review-empty{text-align:center;padding:32px!important;color:var(--ink-muted)}
.df-review-pagination{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px;font-size:12px;color:var(--ink-muted)}
@media(max-width:760px){
  .dev-feedback-utility{right:12px;bottom:calc(72px + env(safe-area-inset-bottom))}
  .df-launch{min-height:40px;padding:9px 12px;font-size:11px}
  .df-panel{width:min(410px,calc(100vw - 24px));max-height:calc(100dvh - 176px);bottom:50px;padding:15px}
  .df-panel select,.df-panel textarea{font-size:16px}
  .df-review-head{align-items:flex-start;gap:12px}
  .df-review-head h2{font-size:21px}
  .df-filters label{flex:1;min-width:130px}
  .df-filters select{min-width:0;font-size:16px}
  .df-review-pagination{justify-content:space-between}
  .df-entry-content{grid-template-columns:1fr;max-width:calc(100vw - 64px);gap:18px;padding:14px}
  .df-capture-instructions{top:38px;flex-wrap:wrap;justify-content:space-between;width:calc(100vw - 32px)}
  .df-capture-instructions span{flex-basis:100%;order:3}
}
@media print{.dev-feedback-utility,.df-capture-overlay,.df-filters,.df-comment-form,.df-review-pagination{display:none!important}}
