/* Feedback uses the app's existing type, paper, and teal tokens. */
.fp-feedback-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--line);border-radius:var(--r3);background:var(--surface);color:var(--ink);font-family:var(--ui);box-shadow:var(--sh3);overflow:hidden}
.fp-feedback-dialog::backdrop{background:rgba(19,30,28,.5);backdrop-filter:blur(3px)}
.fp-feedback-dialog[open]{display:flex;flex-direction:column}
.fp-feedback-head{display:flex;flex:none;align-items:flex-start;justify-content:space-between;gap:var(--s4);padding:var(--s6);border-bottom:1px solid var(--line)}
.fp-feedback-head h2{margin:0;font-size:var(--t-h2);line-height:1.3;letter-spacing:-.02em}
.fp-feedback-head p{margin:var(--s1) 0 0;color:var(--ink-2);font-size:var(--t-sm)}
.fp-feedback-close{display:grid;place-items:center;flex:none;width:34px;height:34px;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);color:var(--ink-2);cursor:pointer}
.fp-feedback-close:hover{background:var(--paper-2)}
.fp-feedback-body{padding:var(--s5) var(--s6) var(--s6);overflow-y:auto;min-height:0}
.fp-feedback-fields{margin:0;padding:0;border:0;min-width:0}
.fp-feedback-fields>.field{display:block;margin:0 0 var(--s5)}
.fp-feedback-fields>.field:last-child{margin-bottom:0}
.fp-feedback-fields .field>.label{display:block;margin-bottom:var(--s2)}
.fp-feedback-fields textarea,.fp-feedback-fields select,.fp-feedback-fields input:not([type=checkbox]):not([type=hidden]){display:block;width:100%;max-width:100%;font:inherit;color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r2);background:var(--surface);padding:10px 12px}
.fp-feedback-fields textarea{display:block;resize:vertical;min-height:120px;line-height:1.5}
.fp-feedback-fields input[type=file]{font-size:var(--t-sm)!important;padding:8px!important}
.fp-feedback-fields input::file-selector-button{font:inherit;border:1px solid var(--line);border-radius:var(--r1);padding:6px 10px;margin-right:10px;color:var(--ink-2);background:var(--paper);cursor:pointer}
.fp-feedback-fields :is(input,select,textarea):focus-visible,.fp-feedback-dialog button:focus-visible,.fp-feedback-form button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.fp-feedback-fields:disabled{opacity:.72}
.fp-feedback-fields .hint,.fp-feedback-note{margin:6px 0;color:var(--ink-3);font-size:12.5px;line-height:1.5}
.fp-feedback-count{margin-top:var(--s1);text-align:right;color:var(--ink-3);font-size:12px;font-variant-numeric:tabular-nums}
.fp-feedback-optional{font-weight:400;letter-spacing:0;text-transform:none}
.fp-feedback-status{margin:var(--s3) 0;font-size:var(--t-sm);color:var(--ink-2)}
.fp-feedback-status:empty{display:none}
.fp-feedback-status[data-error=true]{color:var(--rust);padding:var(--s3);border:1px solid var(--rust-line);border-radius:var(--r2);background:var(--rust-bg)}
.fp-feedback-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s4);margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line)}
.fp-feedback-actions>.btn{flex:none}
.fp-feedback-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fp-feedback-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);padding:0;margin:var(--s3) 0 0;list-style:none}
.fp-feedback-previews:empty{display:none}
.fp-feedback-preview{min-width:0;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:var(--paper)}
.fp-feedback-preview img{display:block;width:100%;height:90px;object-fit:contain;background:var(--sunken)}
.fp-feedback-preview figcaption{padding:6px 8px;font-size:11.5px;line-height:1.4;overflow-wrap:anywhere}
.fp-feedback-preview figure{margin:0}
.fp-feedback-preview button{width:100%;margin-top:4px;font:inherit;color:var(--rust);border:0;background:none;cursor:pointer;text-align:left;padding:4px 0}
.fp-feedback-receipt{text-align:center;padding:var(--s3) 0 var(--s5)}
.fp-feedback-receipt:focus{outline:none}
.fp-feedback-receipt :is(h1,h2,h3){margin:var(--s4) 0 var(--s2);font-size:var(--t-h2);line-height:1.3;letter-spacing:-.02em}
.fp-feedback-receipt p{margin:var(--s2) auto 0;max-width:320px;color:var(--ink-2);font-size:var(--t-sm);line-height:1.6}
.fp-feedback-receipt-mark{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent-tint);color:var(--accent);font-size:26px}
.fp-feedback-ticket-row{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin:var(--s6) 0 0}
.fp-feedback-ticket-row input{width:164px;min-width:0;height:44px;text-align:center;padding:10px;border:1px solid var(--line);border-radius:var(--r2);background:var(--paper);font:600 17px var(--mono);color:var(--accent);user-select:all}
.fp-feedback-ticket-row .btn{--bh:44px;flex:none;min-width:82px}
.fp-feedback-dialog[data-feedback-state=receipt]{width:min(460px,calc(100vw - 32px))}
.fp-feedback-dialog[data-feedback-state=receipt] .fp-feedback-head{justify-content:flex-end;padding:var(--s3) var(--s3) 0;border:0}
.fp-feedback-dialog[data-feedback-state=receipt] .fp-feedback-head>div{display:none}
.fp-feedback-dialog[data-feedback-state=receipt] .fp-feedback-body{padding-top:0}
.fp-feedback-report-error{align-self:center;white-space:nowrap;margin-left:auto}
.fp-feedback-contact.auth-form{max-width:540px}
.fp-feedback-contact :is(.fp-feedback-actions,.fp-feedback-ticket-row) .btn-primary{width:auto;margin:0}
.fp-feedback-contact .fp-feedback-receipt{padding-top:0}
.fp-feedback-contact[data-feedback-state=receipt]>:is(h1,.lede){display:none}
.fp-feedback-contact-foot{margin:var(--s5) 0 0;color:var(--ink-3);font-size:12.5px}
.fp-feedback-contact-foot a{color:var(--accent)}
.fp-feedback-dialog [hidden],.fp-feedback-contact [hidden],.fp-feedback-admin [hidden]{display:none!important}
/* Private operator inbox. Values are counts from the database, never estimates. */
.fp-feedback-admin{max-width:1100px;margin:0 auto}
.fp-feedback-admin h1{margin:0;font-size:28px;letter-spacing:-.03em}
.fp-feedback-admin h2{font-size:var(--t-h2);margin:0 0 var(--s3)}
.fp-feedback-admin h3{font-size:var(--t-h3);margin:0 0 var(--s3)}
.fp-feedback-admin-head{display:flex;align-items:start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6)}
.fp-feedback-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:1px;padding:1px;background:#26312f;border-radius:var(--r2);overflow:hidden;margin:var(--s5) 0}
.fp-feedback-metric{background:#101817;padding:var(--s3) var(--s4)}
.fp-feedback-metric dt{font-size:11.5px;color:#a0b0ab}
.fp-feedback-metric dd{font:600 24px var(--mono);margin:var(--s1) 0 0;color:#7bd9ce}
.fp-feedback-admin-panel{border:1px solid var(--line);border-radius:var(--r3);padding:var(--s5);margin:var(--s5) 0;background:var(--surface);overflow-wrap:anywhere}
.fp-feedback-table-wrap{overflow-x:auto}
.fp-feedback-table{width:100%;min-width:680px;border-collapse:collapse;font-size:var(--t-sm)}
.fp-feedback-table th{text-align:left;color:var(--ink-3);font-size:12px;font-weight:500}
.fp-feedback-table :is(th,td){padding:var(--s3);border-bottom:1px solid var(--line);vertical-align:top}
.fp-feedback-table tbody tr:last-child td{border-bottom:0}
.fp-feedback-table td:first-child{font-family:var(--mono);white-space:nowrap}
.fp-feedback-state{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:var(--r1);background:var(--paper-2);color:var(--ink-2);font-size:12px;line-height:1.5}
.fp-feedback-state::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink-3)}
.fp-feedback-state[data-state=accepted]::before,.fp-feedback-state[data-state=done]::before,.fp-feedback-state[data-state=filed]::before{background:var(--accent)}
.fp-feedback-state[data-state=retry]::before,.fp-feedback-state[data-state=pending]::before,.fp-feedback-state[data-state=review]::before{background:var(--amber)}
.fp-feedback-state[data-state=failed]::before,.fp-feedback-state[data-state=uncertain]::before,.fp-feedback-state[data-state=disabled]::before{background:var(--rust)}
.fp-feedback-admin dl.fp-feedback-meta{display:grid;grid-template-columns:130px minmax(0,1fr);gap:var(--s2) var(--s4);font-size:var(--t-sm)}
.fp-feedback-meta dt{color:var(--ink-3)}
.fp-feedback-meta dd{margin:0}
.fp-feedback-original{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:var(--t-sm);background:var(--paper);border:1px solid var(--line);border-radius:var(--r2);padding:var(--s4)}
.fp-feedback-admin-images{display:flex;flex-wrap:wrap;gap:var(--s3)}
.fp-feedback-admin-images figure{margin:0;width:200px}
.fp-feedback-admin-images img{display:block;width:100%;height:140px;object-fit:contain;border:1px solid var(--line);border-radius:var(--r2);background:var(--paper)}
.fp-feedback-admin-images figcaption{font-size:12px;color:var(--ink-3);margin-top:var(--s2)}
.fp-feedback-admin-form{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line)}
.fp-feedback-admin-form label{display:block;font-size:var(--t-sm);font-weight:600;margin-bottom:var(--s2)}
.fp-feedback-admin-form :is(input:not([type=hidden]),textarea,select){display:block;width:100%;border:1px solid var(--line-2);border-radius:var(--r2);padding:10px 12px;font:inherit;background:var(--surface);color:var(--ink);margin-bottom:var(--s3)}
.fp-feedback-admin-form textarea{min-height:100px}
.fp-feedback-admin-form .btn{margin-top:var(--s2)}
.fp-feedback-ticket-search{display:flex;align-items:center;gap:var(--s2);margin:var(--s5) 0;flex-wrap:wrap;font-size:var(--t-sm)}
.fp-feedback-ticket-search input{width:170px;padding:8px 10px;border:1px solid var(--line-2);border-radius:var(--r2);font:inherit;background:var(--surface);color:var(--ink)}
.fp-feedback-pagination{display:flex;align-items:center;justify-content:center;gap:var(--s4);margin:var(--s5) 0}
.fp-feedback-admin-settings{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:var(--s3) 0 var(--s2)}
@media(max-width:600px){.fp-feedback-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.fp-feedback-head{padding:var(--s5)}.fp-feedback-body{padding:var(--s4) var(--s5) var(--s5)}.fp-feedback-fields>.field{margin-bottom:var(--s3)}.fp-feedback-actions{flex-wrap:wrap;justify-content:flex-end;gap:var(--s3);margin-top:var(--s4)}.fp-feedback-count{font-size:11px}.fp-feedback-admin-head{display:block}.fp-feedback-admin dl.fp-feedback-meta{grid-template-columns:1fr;gap:4px}.fp-feedback-meta dd{margin-bottom:var(--s2)}.fp-feedback-table :is(th,td){padding:var(--s2)}}
