:root { color-scheme: light; --green:#1f6b3a; --green-dark:#173e2a; --cream:#f6f3e9; --paper:#fffdf8; --line:#d9d5c8; --text:#1f3025; --muted:#667168; --red:#a52f2f; --amber:#8b5a09; --shadow:0 18px 50px rgba(25,54,35,.12); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--cream); color:var(--text); }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.login-shell { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at top right,#d9ead8,transparent 38%),var(--cream); }
.login-card { width:min(440px,100%); background:var(--paper); border:1px solid var(--line); border-radius:24px; padding:34px; box-shadow:var(--shadow); }
.login-brand { display:flex; justify-content:center; margin:-12px 0 4px; }.login-brand img { display:block; width:min(230px,72%); height:auto; object-fit:contain; }
.brand { display:flex; align-items:center; gap:10px; color:var(--green-dark); font-size:21px; font-weight:850; }
.brand-icon { width:46px; height:46px; object-fit:contain; }
.brand small { color:var(--muted); font-size:12px; font-weight:700; border-left:1px solid var(--line); padding-left:10px; }
.eyebrow { margin:26px 0 5px; color:var(--green); font-size:12px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:8px; font-size:clamp(28px,4vw,42px); letter-spacing:-.04em; } h2 { margin-bottom:5px; } h3 { margin:6px 0 0; font-size:24px; }
.muted { color:var(--muted); line-height:1.55; }
.stack,.result-form { display:grid; gap:16px; margin-top:26px; }
label { display:grid; gap:7px; color:#405347; font-size:13px; font-weight:750; }
input,textarea { width:100%; border:1px solid #c7c9bf; border-radius:11px; background:#fff; color:var(--text); padding:12px 13px; outline:none; }
input { min-height:48px; } input:focus,textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(31,107,58,.12); }
.password-wrap { position:relative; display:block; }.password-wrap input { padding-right:48px; }.icon-button { position:absolute; right:4px; top:4px; width:40px; height:40px; border:0; background:transparent; color:var(--green); }
.primary,.secondary,.ghost { min-height:46px; border-radius:11px; padding:0 18px; font-weight:800; border:1px solid transparent; }
.primary { color:white; background:var(--green); }.primary:hover { background:#18572f; }.secondary { color:var(--green); background:white; border-color:var(--green); }.ghost { color:var(--green-dark); background:transparent; border-color:var(--line); }
button:disabled { cursor:not-allowed; opacity:.55; }
.topbar { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px max(22px,calc((100vw - 1180px)/2)); background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.user-area { display:flex; align-items:center; gap:12px; font-size:14px; }
.workspace { width:min(1180px,calc(100% - 32px)); margin:0 auto; padding:40px 0 70px; }.page-heading { display:flex; justify-content:space-between; }
.tabs { display:flex; gap:8px; margin:26px 0 12px; }.tab { min-height:44px; padding:0 18px; border:1px solid var(--line); border-radius:12px; background:#ece9df; color:var(--muted); font-weight:800; }.tab.active { color:white; background:var(--green-dark); border-color:var(--green-dark); }
.panel { background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:24px; box-shadow:0 8px 25px rgba(25,54,35,.05); }.panel-heading { display:flex; justify-content:space-between; gap:16px; }
.search-row { display:flex; align-items:end; gap:10px; margin:22px 0; }.grow { flex:1; }
.message { padding:12px 14px; border-radius:10px; background:#eef5ec; color:var(--green-dark); font-weight:700; }.message.error { background:#fbe8e6; color:var(--red); }.message.success { background:#e3f3e6; color:#185d31; }
.sample-card { margin:25px 0; padding:20px; border:1px solid #b9d1bd; border-radius:16px; background:#f0f7ee; display:flex; justify-content:space-between; gap:24px; }.status { display:inline-block; padding:5px 9px; border-radius:99px; background:#d6ead8; color:#185d31; font-size:12px; font-weight:850; }.sample-card dl { margin:0; display:grid; grid-template-columns:repeat(2,minmax(150px,1fr)); gap:15px 30px; }.sample-card dt { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; }.sample-card dd { margin:3px 0 0; font-weight:750; }
.section-title { padding-top:12px; border-top:1px solid var(--line); }.form-grid { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:15px; }.meta-grid { grid-template-columns:repeat(3,1fr); }.actions { display:flex; justify-content:flex-end; margin-top:8px; }
.upload-box { margin-top:22px; padding:20px; display:flex; align-items:end; gap:14px; border:1px dashed #91ab96; border-radius:14px; background:#f2f7ef; }.upload-box label { flex:1; }
.preview-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:24px 0 15px; }.preview-summary div { padding:15px; border-radius:12px; background:#f0efe8; }.preview-summary span { display:block; color:var(--muted); font-size:12px; }.preview-summary strong { display:block; margin-top:4px; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:12px; }table { width:100%; border-collapse:collapse; min-width:980px; }th,td { padding:13px; text-align:left; border-bottom:1px solid var(--line); font-size:13px; vertical-align:top; }th { background:#eeece4; color:#46554a; }.result-list { max-width:360px; color:#45554a; line-height:1.5; }.ok { color:var(--green); font-weight:800; }.not-ok { color:var(--red); font-weight:800; }
.modal { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; background:rgba(13,31,20,.68); }.modal-card { width:min(680px,100%); max-height:90vh; overflow:auto; padding:26px; background:var(--paper); border-radius:20px; box-shadow:var(--shadow); }.modal-card .eyebrow { margin-top:0; }.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }.confirm-content { padding:14px; border:1px solid var(--line); border-radius:12px; background:#f7f5ee; }.confirm-content dl { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }.confirm-content dt { color:var(--muted); font-size:12px; }.confirm-content dd { margin:2px 0 0; font-weight:750; }.warning { color:var(--amber); margin:14px 0 0; font-weight:700; }.scanner-card video { width:100%; max-height:55vh; margin:10px 0 15px; background:#111; border-radius:14px; object-fit:cover; }
@media (max-width:760px) { .workspace { width:min(100% - 20px,1180px); padding-top:24px; }.panel,.login-card { padding:20px; }.topbar { padding:10px 14px; }.user-area span { display:none; }.tabs { display:grid; grid-template-columns:1fr 1fr; }.search-row,.upload-box,.sample-card { align-items:stretch; flex-direction:column; }.form-grid,.meta-grid,.preview-summary { grid-template-columns:1fr; }.sample-card dl { grid-template-columns:1fr; }.modal-actions { flex-direction:column-reverse; }.modal-actions button { width:100%; }}
