:root{
  --brand:#295f8e; --brand-600:#1d466b; --bg:#ffffff; --ink:#295f8e;
  --muted:#5f86a9; --panel:#f2f4f7; --panel-2:#e7ebf0; --border:#cfd9e3; --ring: rgba(41,95,142,.25);
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:Arial,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;margin:0;padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
h1,h2{color:var(--ink);margin:0 0 .25rem}
header.site-header{display:flex;align-items:center;gap:12px;max-width:860px;width:100%;margin:0 auto}
img.logo{width:56px;height:56px;object-fit:contain;margin:0}
.branding{text-align:left}.branding .subtitle{color:var(--muted);font-size:.95rem;margin-top:2px}
.form-container{background:var(--panel);padding:18px;border-radius:12px;max-width:860px;width:100%;margin:6px auto 0;text-align:left;border:1px solid var(--border);box-shadow:0 2px 18px rgba(0,0,0,.06)}
fieldset{border:none;padding:0;margin:10px 0 16px}legend{font-weight:bold;margin-bottom:6px}
label{display:block;margin-top:10px;font-weight:700;font-size:.98rem}
input,select,textarea,button{width:100%;padding:12px 12px;margin-top:6px;border:1px solid var(--border);border-radius:10px;font-size:16px;background:#fff;color:var(--ink);outline:none;transition:box-shadow .15s ease,border-color .15s ease}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem var(--ring)}
.helper{color:var(--muted);font-size:.9rem;margin-top:4px}
.inline-container{display:grid;grid-template-columns:1fr;gap:10px;align-items:end}.inline-container>*{width:100%}.inline-container .remember{display:flex;align-items:center;gap:8px;white-space:nowrap}
@media (min-width:560px){.inline-container{grid-template-columns:1fr auto}}
.article-container{border:1px dashed var(--border);background:var(--panel-2);padding:12px;margin-top:12px;border-radius:10px}
.article-grid{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:560px){.article-grid{grid-template-columns:120px 1fr 1fr}}
.article-row-actions{display:flex;gap:8px;margin-top:8px}
.small-muted{color:var(--muted);font-size:.9rem}
button{background:var(--brand);color:#fff;cursor:pointer;margin-top:12px;border-color:var(--brand)}
button:hover{background:var(--brand-600)}
button.ghost{background:#fff;color:var(--brand);border-color:var(--brand)}
button.ghost:hover{background:#f5f7fb}
button.remove{background:#fff;color:#b42318;border-color:#f0b3ad}
button.remove:hover{background:#fff1f0;border-color:#eea39b}
footer{margin-top:10px;font-size:12px;color:#b8b8aa;text-align:center}
.hp{position:absolute !important;left:-10000px !important;width:0;height:0;opacity:0;pointer-events:none}
.req{color:var(--brand)}.actions{display:flex;gap:10px;flex-wrap:wrap}
/* Modal */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}
.modal.hidden{display:none}
.modal-card{background:#fff;border:1px solid var(--border);border-radius:14px;max-width:520px;width:100%;padding:18px;box-shadow:0 12px 40px rgba(0,0,0,.25);text-align:left}
.modal-card h2{margin:0 0 8px}
.modal-card p{margin:6px 0 12px}
.modal-card .error{color:#b42318}
/* Input + Scan Button */
.input-with-button{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.input-with-button .scan-btn{padding:10px 12px;border:1px solid var(--border);background:#fff;color:var(--brand);border-radius:10px;cursor:pointer}
.input-with-button .scan-btn:hover{background:#f5f7fb}
/* Scanner-Video */
.video-wrap{position:relative;background:#000;border-radius:12px;overflow:hidden;border:1px solid var(--border)}
#scanVideo{width:100%;max-height:60vh;display:block;background:#000}
.scan-hint{padding:8px 10px;text-align:center}
