:root{--ink: #12233F;--ink-soft: #3C5170;--paper: #F2F1EA;--paper-line: #D9D6C8;--steel: #7C8B9A;--safety: #E1571C;--safety-soft: #F6D9C9;--ok: #2E6B4F;--radius: 10px;font-family:IBM Plex Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:linear-gradient(var(--paper-line) 1px,transparent 1px) 0 0 / 100% 28px,var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}.app{max-width:960px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.topbar{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:2px solid var(--ink);padding:calc(env(safe-area-inset-top) + 14px) 16px 12px}.topbar-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.brand{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--safety)}.title{font-size:20px;font-weight:700;margin:2px 0 0}.breadcrumb{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--ink-soft);margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.breadcrumb button{background:none;border:none;padding:0;color:var(--ink-soft);font-family:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.breadcrumb .current{color:var(--ink);font-weight:600;text-decoration:none}.search{margin-top:12px;width:100%;padding:10px 12px;border:2px solid var(--ink);border-radius:var(--radius);background:#fff;font-size:15px;font-family:inherit}.search:focus-visible{outline:3px solid var(--safety);outline-offset:1px}main{flex:1;padding:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.plate{position:relative;background:#fff;border:2px solid var(--ink);border-radius:var(--radius);padding:14px 12px 12px;text-align:left;cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}.plate:hover,.plate:focus-visible{transform:translateY(-2px);box-shadow:3px 3px 0 var(--ink);outline:none}.plate:before,.plate:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--steel);top:8px}.plate:before{left:8px}.plate:after{right:8px}.plate-label{font-size:14px;font-weight:600;line-height:1.25;margin-top:6px}.plate-code{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.plate-count{margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--safety)}.grid+.doclist{margin-top:16px}.doclist{border:2px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:#fff}.doc-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:none;border:none;border-bottom:1px solid var(--paper-line);text-align:left;cursor:pointer;font-family:inherit;color:var(--ink)}.doc-row:last-child{border-bottom:none}.doc-row:hover,.doc-row:focus-visible{background:var(--safety-soft);outline:none}.doc-type{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:3px 6px;border-radius:4px;flex-shrink:0}.doc-name{flex:1;font-size:14px;font-weight:500}.doc-meta{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--steel);flex-shrink:0}.empty{text-align:center;padding:40px 16px;color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:13px}.state-msg{padding:24px 16px;font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--ink-soft)}.viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ink);z-index:50;display:flex;flex-direction:column}.viewer-header{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;color:var(--paper);font-family:IBM Plex Mono,monospace;font-size:13px;gap:12px}.viewer-header button{background:var(--safety);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.viewer-body{flex:1;background:#fff}.viewer-body iframe,.viewer-body video,.viewer-body img{width:100%;height:100%;object-fit:contain;border:none}.viewer-fallback{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--ink);font-family:IBM Plex Mono,monospace;padding:24px;text-align:center}.viewer-fallback a{background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:8px;text-decoration:none;font-weight:600}
