:root{--bg:#f5f6f8;--panel:#fff;--ink:#1f2733;--muted:#6b7785;--line:#e6e9ee;--brand:#2e7d4f;--brand-ink:#fff;--danger:#c0392b;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:inherit;text-decoration:none}h1{margin:0 0 1rem;font-size:1.5rem}h2{margin:1.5rem 0 .75rem;font-size:1.1rem}.login-screen{background:linear-gradient(135deg,#2e7d4f 0%,#1f5c39 100%);place-items:center;min-height:100vh;display:grid}.login-card{background:var(--panel);border-radius:14px;flex-direction:column;gap:.9rem;width:360px;padding:2rem;display:flex;box-shadow:0 20px 50px #00000040}.login-brand{font-size:1.4rem;font-weight:700}.login-sub{color:var(--muted);margin:-.4rem 0 .5rem;font-size:.9rem}.login-card label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.login-error{color:var(--danger);font-size:.85rem}.login-hint{color:var(--muted);text-align:center;margin-top:.25rem;font-size:.78rem}.login-hint code{background:var(--bg);border-radius:4px;padding:1px 5px}.app-shell{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.sidebar{color:#cfe3d7;background:#15211b;flex-direction:column;gap:1rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.sidebar-brand{color:#fff;font-size:1.1rem;font-weight:700}.sidebar nav{flex-direction:column;gap:.25rem;display:flex}.nav-link{color:#cfe3d7;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem .75rem;font-size:.95rem;transition:background .15s;display:flex}.nav-link:hover{background:#ffffff12}.nav-link.active{background:var(--brand);color:#fff}.btn-logout{color:#cfe3d7;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:8px;margin-top:auto;padding:.55rem;transition:background .15s}.btn-logout:hover{background:#ffffff14}.content{min-width:0;padding:1.75rem 2rem;overflow:auto}.stat-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:.5rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.25rem}.stat-value{font-size:1.6rem;font-weight:700}.stat-label{color:var(--muted);margin-top:.25rem;font-size:.85rem}.data-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);padding:.7rem .9rem;font-size:.9rem}.data-table th{color:var(--muted);background:#fafbfc;font-weight:600}.data-table tr:last-child td{border-bottom:none}.clickable{cursor:pointer}.clickable:hover{background:#fafbfc}.detail-row td{background:#fbfdfc;font-size:.85rem}.detail-row ul{margin:.4rem 0;padding-left:1.1rem}.truncate{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:1.5rem}.badge{text-transform:capitalize;border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:600}.badge-pending{color:#946c00;background:#fff4d6}.badge-awaiting_payment{color:#a85400;background:#ffe9d6}.badge-confirmed{color:#11589c;background:#d9ecff}.badge-paid{color:#1c7a42;background:#d7f5e0}.badge-delivered{color:#0f6e4f;background:#d7ede4}.badge-failed{color:#b02525;background:#fbdcdc}input[type=text],input[type=email],input[type=password],input[type=number],.product-form input{border:1px solid var(--line);background:#fff;border-radius:8px;padding:.55rem .65rem;font-size:.9rem}input:focus{border-color:var(--brand);outline:2px solid #2e7d4f4d}.product-form{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.25rem;display:flex}.inline-check{color:var(--muted);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.image-field{border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem .8rem;font-size:.85rem;display:inline-flex}.image-field input[type=file]{display:none}.image-preview{align-items:center;gap:.4rem;display:inline-flex}.image-preview img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:38px;height:38px}.thumb{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:40px;height:40px;display:inline-block}.thumb-empty{color:var(--muted);background:#f3f5f7;justify-content:center;align-items:center;display:inline-flex}.page-head{justify-content:space-between;align-items:center;display:flex}.btn-primary{background:var(--brand);color:var(--brand-ink);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.1rem;font-weight:600}.btn-primary:hover{background:#266a43}.btn-secondary{border:1px solid var(--line);cursor:pointer;background:#eef1f4;border-radius:8px;padding:.55rem 1rem}.btn-link{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0 .4rem;font-size:.85rem}.btn-link.danger{color:var(--danger)}.row-actions{white-space:nowrap}.error-banner{color:#b02525;background:#fbdcdc;border-radius:8px;margin-bottom:1rem;padding:.7rem 1rem;font-size:.9rem}.filter-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0 1.1rem;display:flex}.chip{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;transition:all .12s}.chip:hover{border-color:var(--brand)}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.chip .count{opacity:.65;font-variant-numeric:tabular-nums;margin-left:.35rem}.chip.active .count{opacity:.85}select{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:.5rem .65rem;font-size:.9rem}.filter-label{color:var(--muted);font-size:.85rem}
