.cmp-banner,.cmp-dialog{font-family:var(--font-body);font-size:14px;line-height:1.5;box-sizing:border-box}
.cmp-banner[hidden]{display:none!important}
.cmp-banner{position:fixed;z-index:90;inset:auto var(--space-3) var(--space-3);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2) var(--space-3);align-items:center;padding:var(--space-3);background:var(--night);color:#fff;border:1px solid #53616c;border-radius:var(--radius);max-height:calc(100dvh - 110px);overflow:auto;box-shadow:var(--shadow)}
.cmp-banner h2{font-size:18px;line-height:1.3;margin:0 0 8px;letter-spacing:0}
.cmp-banner p{margin:0;color:#e0e6eb;font-size:13px;line-height:1.5}
.cmp-banner a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.cmp-actions{display:flex;flex-wrap:wrap;gap:8px}
.cmp-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid currentColor;border-radius:var(--radius);font:inherit;font-weight:600;font-size:13px;line-height:1.4;cursor:pointer;background:transparent;color:inherit;text-align:center;white-space:normal}
.cmp-button:hover{background:#ffffff12}
.cmp-button:disabled{opacity:.65;cursor:default}
.cmp-banner :is(a,button):focus-visible,.cmp-dialog :is(a,button,input,summary):focus-visible{outline:3px solid #ff9c69;outline-offset:3px}
.cmp-status:empty{display:none}
.cmp-banner .cmp-status{grid-column:1/-1}
.cmp-dialog{width:min(680px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:var(--space-3);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;overscroll-behavior:contain}
.cmp-dialog::backdrop{background:#14212b80}
.cmp-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.cmp-dialog h2{margin:0;font-size:24px;letter-spacing:-.4px}
.cmp-dialog p{margin:12px 0;font-size:14px}
.cmp-dialog a{color:var(--accent-text);text-decoration:underline}
.cmp-dialog .cmp-button:hover{background:var(--soft)}
.cmp-category{padding:var(--space-2) 0;border-top:1px solid var(--line)}
.cmp-category-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cmp-category label{font-weight:700;cursor:pointer}
.cmp-category input{width:24px;height:24px;flex:none;accent-color:var(--accent-text);margin:0;cursor:pointer}
.cmp-category-head span{font-size:12px;color:var(--muted)}
.cmp-category summary{padding:8px 0;min-height:44px;cursor:pointer;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.cmp-inventory{font-size:13px;overflow-wrap:anywhere}
.cmp-inventory dl{margin:8px 0 16px;padding:12px;border:1px solid var(--line);border-radius:var(--radius)}
.cmp-inventory dt{font-weight:700}
.cmp-inventory dl>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px;margin-block:6px}
.cmp-inventory dd{margin:0}
.cmp-footer-link{white-space:normal}
@media(max-width:1000px){.cmp-banner{grid-template-columns:minmax(0,1fr)}.cmp-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.cmp-banner{inset:auto max(8px,env(safe-area-inset-right)) calc(var(--mobile-dock-height,56px) + env(safe-area-inset-bottom) + 8px) max(8px,env(safe-area-inset-left));padding:12px;gap:12px}.cmp-banner h2{font-size:16px}.cmp-banner p{font-size:12px}.cmp-actions{grid-template-columns:1fr 1fr}.cmp-actions>:first-child{grid-column:1/-1}.cmp-button{font-size:12px;padding:10px 8px}.cmp-dialog{padding:16px;width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.cmp-dialog h2{font-size:21px}.cmp-inventory dl>div{grid-template-columns:1fr;gap:2px}.cmp-inventory dd{margin-bottom:6px}}
