@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

:root { --ink: #15222b; --muted: #68757c; --paper: #f5f4ef; --line: #e4e5df; --teal: #0f766e; --teal-soft: #dcefeb; --coral: #e76f51; --yellow: #f2d18a; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: 'Manrope', sans-serif; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.display { font-family: 'DM Sans', sans-serif; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px 1fr; }
.sidebar { background: var(--ink); color: #f9faf7; padding: 28px 18px; display: flex; flex-direction: column; }
.brand-mark { width: 38px; height: 38px; border-radius: 12px; background: var(--yellow); color: var(--ink); display: grid; place-items: center; font-weight: 700; }
.nav-link { display: flex; align-items: center; gap: 12px; padding: 11px 13px; margin: 3px 0; border-radius: 10px; color: #9fabb0; font-size: 13px; font-weight: 600; border: 0; background: transparent; width: 100%; text-align: left; }
.nav-link:hover, .nav-link.active { color: white; background: #24343d; }
.main { min-width: 0; padding: 24px 34px 40px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; }
.card { background: white; border: 1px solid var(--line); border-radius: 14px; }
.metric-card { padding: 20px; min-height: 132px; position: relative; overflow: hidden; }
.metric-card::after { content: ''; position: absolute; right: -25px; bottom: -45px; width: 100px; height: 100px; border: 18px solid var(--teal-soft); border-radius: 50%; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; min-width: 680px; }
th { color: var(--muted); font-size: 11px; text-align: left; letter-spacing: .08em; text-transform: uppercase; padding: 13px 18px; border-bottom: 1px solid var(--line); }
td { font-size: 13px; padding: 15px 18px; border-bottom: 1px solid #eff0eb; }
tr:last-child td { border-bottom: 0; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 11px; font-weight: 700; }
.badge-green { background: #e0f2e9; color: #16704b; } .badge-amber { background: #fff2cf; color: #996b12; } .badge-blue { background: #e2eef6; color: #27627e; } .badge-red { background: #fde5df; color: #a34431; }
.btn { border: 0; border-radius: 9px; padding: 10px 14px; font-size: 12px; font-weight: 700; transition: transform .15s, opacity .15s; } .btn:hover { transform: translateY(-1px); opacity: .9; }
.btn-primary { background: var(--teal); color: white; } .btn-ghost { background: #eef1ef; color: var(--ink); } .btn-coral { background: var(--coral); color: white; }
.input, .select { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; outline: none; font-size: 12px; } .input:focus, .select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px #dcefeb; }
.toast { position: fixed; right: 24px; bottom: 24px; background: var(--ink); color: white; padding: 13px 17px; border-radius: 9px; font-size: 12px; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .2s; } .toast.show { opacity: 1; transform: translateY(0); }
.login { min-height: 100vh; display: grid; grid-template-columns: 1.15fr .85fr; background: var(--ink); } .login-art { padding: 8vw; color: white; background: radial-gradient(circle at 75% 25%, #2d5557 0, transparent 30%), linear-gradient(145deg, #15222b 20%, #1c403f); } .login-panel { background: var(--paper); display: grid; place-items: center; padding: 30px; } .login-card { width: min(410px, 100%); }
@media (max-width: 900px) { .app-shell { grid-template-columns: 1fr; } .sidebar { padding: 15px; position: sticky; top: 0; z-index: 2; } .side-nav { display: flex; overflow-x: auto; gap: 4px; } .nav-link { width: auto; white-space: nowrap; } .side-footer { display: none; } .main { padding: 22px 16px 35px; } .login { grid-template-columns: 1fr; } .login-art { min-height: 260px; padding: 42px 28px; } }
