:root{--bg:#f4f6f9;--card:#fff;--text:#1c2733;--muted:#64748b;--primary:#7c2d12;--danger:#b91c1c;--ok:#15803d;--warn-bg:#fef3c7;--error-bg:#fee2e2;--info-bg:#dbeafe}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}h1{margin:.2rem 0;font-size:1.5rem}h2{margin:.3rem 0 .6rem;font-size:1.05rem}a{color:var(--primary);text-decoration:none}.shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#291410;flex-direction:column;flex-shrink:0;gap:1rem;width:240px;padding:1rem;display:flex}.sidebar .brand strong{font-size:1rem}.sidebar nav{flex-direction:column;gap:.25rem;display:flex}.sidebar nav a{color:#e7d5cf;border-radius:6px;padding:.5rem .6rem}.sidebar nav a:hover{color:#fff;background:#ffffff14}.sidebar-footer{flex-direction:column;gap:.5rem;margin-top:auto;display:flex}.content{flex:1;max-width:1200px;padding:1.5rem 2rem}.muted{color:var(--muted)}.small{font-size:.8rem}.center{justify-content:center;align-items:center;display:flex}.full-height{height:100vh}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.card{background:var(--card);border-radius:10px;margin-bottom:1.2rem;padding:1.2rem;box-shadow:0 1px 3px #10243d1f}.login{flex-direction:column;gap:.4rem;width:340px;display:flex}.form-grid{grid-template-columns:1fr 1fr;align-items:end;gap:.8rem 1.2rem;display:grid}.form-grid label{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.span2{grid-column:span 2}input,select,textarea{color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.45rem .6rem;font-size:.9rem}.btn{color:var(--text);cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.45rem .9rem;font-size:.88rem}.btn:hover{background:#f1f5f9}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{filter:brightness(1.15)}.btn.danger-btn{color:var(--danger);border-color:#fecaca}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:#64748b1f}.tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.search{width:100%;padding:.55rem}.pagination{align-items:center;gap:.6rem;margin-top:1rem;display:flex}.table{border-collapse:collapse;background:var(--card);width:100%}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.55rem .7rem;font-size:.88rem}.table th{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:600}.actions{flex-wrap:wrap;gap:.35rem;display:flex}.chip{background:#e2e8f0;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;display:inline-block}.chip.ok{color:var(--ok);background:#dcfce7}.chip.danger{background:var(--error-bg);color:var(--danger)}.banner{border-radius:6px;margin-bottom:.8rem;padding:.6rem .8rem;font-size:.88rem}.banner.error{background:var(--error-bg);color:var(--danger)}.banner.info{background:var(--info-bg)}.inline-edit{align-items:center;gap:.4rem;display:inline-flex}.modal-backdrop{z-index:50;background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:min(480px,92vw)}.modal textarea{width:100%;margin-bottom:.8rem}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.code-box{text-align:center;letter-spacing:2px;color:#fff;background:#0f172a;border-radius:8px;margin:.6rem 0;padding:.6rem;font-family:monospace}.code-box.big{padding:1rem;font-size:1.4rem}.mobile-topbar,.sidebar-backdrop{display:none}@media (width<=860px){.mobile-topbar{color:#fff;z-index:40;background:#291410;align-items:center;gap:.8rem;padding:.7rem 1rem;display:flex;position:sticky;top:0}.mobile-topbar strong{font-size:.95rem}.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:1.4rem;line-height:1}.shell{flex-direction:column}.sidebar{z-index:50;width:260px;max-width:82vw;height:100vh;transition:transform .22s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:45;background:#0f172a8c;display:block;position:fixed;inset:0}.content{max-width:100%;padding:1rem}}@media (width<=560px){.content{padding:.75rem}.tabs{gap:.3rem}.card{overflow-x:auto}.table{min-width:560px}.login{width:100%;max-width:340px}h1{font-size:1.25rem}}
