:root{--bg:#fff;--surface:#fafafa;--text:#333;--text-soft:#666;--border:#ddd;--error:#b00020;--ok:#2e7d32;--color-primary:#333;--color-primary-text:#fff;--radius:4px;--font-family:system-ui, "Segoe UI", Roboto, sans-serif;--page-max-width:640px;font-size:16px;line-height:1.5;font-family:var(--font-family);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}html.embedded #root{min-height:0}h1{color:var(--text);font-size:22px;font-weight:600}h2{color:var(--text);font-size:16px;font-weight:600}p{margin:0}.page{width:100%;max-width:var(--page-max-width);margin:0 auto;padding:24px 16px 48px}.page h1{text-align:center;margin:0 0 20px}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-bottom:16px;padding:16px}.card h2{margin:0 0 12px}label{color:var(--text-soft);margin:12px 0 4px;font-size:13px;display:block}input[type=text],input[type=file],textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;color:var(--text);background:var(--bg);padding:8px}input[type=text]:focus,textarea:focus{border-color:var(--text-soft);outline:none}textarea{resize:vertical}.search-row{gap:8px;margin-top:8px;display:flex}.search-row input{flex:1}button{border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary);color:var(--color-primary-text);font:inherit;cursor:pointer;padding:8px 16px}button:disabled{opacity:.5;cursor:not-allowed}.details{margin:0}.details>div{border-top:1px solid var(--border);grid-template-columns:160px 1fr;gap:8px;padding:8px 0;display:grid}.details>div:first-child{border-top:none}.details dt{color:var(--text-soft)}.details dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.expandable-text{white-space:pre-wrap;overflow-wrap:anywhere}.expandable-text.collapsed{max-height:6em;position:relative;overflow:hidden}.expandable-text.has-fade:after{content:"";background:linear-gradient(#fff0, var(--bg));pointer-events:none;height:2.5em;position:absolute;bottom:0;left:0;right:0}.link-btn{color:var(--text-soft);font:inherit;cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:13px;text-decoration:underline}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-top:1px solid var(--border);padding:12px 0}.timeline li:first-child{border-top:none;padding-top:0}.timeline-meta{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.timeline-type{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:11px}.timeline-author{color:var(--text);font-size:13px;font-weight:600}.timeline-title{margin-bottom:2px;font-weight:600}.timeline-date{color:var(--text-soft);font-size:12px}.timeline-body{white-space:pre-wrap;overflow-wrap:anywhere}.timeline-files{margin:6px 0 0;padding:0;font-size:13px;list-style:none}.timeline-files li{margin-top:2px}.timeline-files a{color:var(--text-soft)}.msg{margin-top:12px;font-size:14px}.msg.error{color:var(--error)}.msg.ok{color:var(--ok)}.muted{color:var(--text-soft)}.drawer-overlay{z-index:10;background:#0000004d;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg);border-left:1px solid var(--border);flex-direction:column;width:380px;max-width:90vw;height:100%;animation:.18s ease-out drawer-in;display:flex}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.drawer-head h2{margin:0}.drawer-actions{align-items:center;gap:4px;display:flex}.drawer-close{color:var(--text-soft);cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:22px;line-height:1}.drawer-refresh{color:var(--text-soft);cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:20px;line-height:1}.drawer-refresh:disabled{cursor:default;opacity:.7}.drawer-refresh.spinning{animation:.7s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.drawer-body{padding:16px;overflow-y:auto}@media (width<=480px){.drawer{border-left:none;width:100%;max-width:100%}}.footer{text-align:center;color:var(--text-soft);margin-top:32px;font-size:12px}@media (width<=480px){.page{padding:16px 12px 32px}.details>div{grid-template-columns:1fr;gap:2px}.search-row{flex-direction:column;align-items:stretch}}
