/* ORZUVO Design System V3 — reusable components */
.oz-card,.oz-panel{background:var(--oz-surface-glass);border:1px solid rgba(223,229,238,.92);box-shadow:var(--oz-shadow-2);backdrop-filter:blur(18px);border-radius:var(--oz-r4)}
.oz-card{padding:var(--oz-s5)}.oz-panel{padding:clamp(18px,2vw,28px)}
.oz-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border-radius:13px;border:1px solid transparent;font:inherit;font-size:13px;font-weight:850;text-decoration:none;cursor:pointer;transition:transform var(--oz-fast) var(--oz-ease),box-shadow var(--oz-fast) var(--oz-ease),background var(--oz-fast) var(--oz-ease)}
.oz-btn:hover{transform:translateY(-1px)}.oz-btn-primary{background:linear-gradient(135deg,var(--oz-brand),#684df8);color:#fff!important;box-shadow:0 10px 24px rgba(49,87,246,.24)}.oz-btn-secondary{background:#fff;color:var(--oz-ink)!important;border-color:var(--oz-line)}.oz-btn-ghost{background:transparent;color:var(--oz-brand)!important}.oz-btn-danger{background:var(--oz-danger);color:#fff!important}
.oz-badge{display:inline-flex;align-items:center;gap:6px;width:max-content;padding:6px 10px;border-radius:var(--oz-pill);background:var(--oz-surface-soft);color:var(--oz-text);font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.oz-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--oz-subtle)}.oz-badge.success:before{background:var(--oz-success)}.oz-badge.warning:before{background:var(--oz-warning)}.oz-badge.danger:before{background:var(--oz-danger)}
.oz-kpi{position:relative;overflow:hidden;display:grid;gap:12px;padding:18px;border-radius:var(--oz-r3);border:1px solid var(--oz-line-soft);background:linear-gradient(180deg,#fff,#fbfcff)}.oz-kpi-label{display:flex;align-items:center;justify-content:space-between;color:var(--oz-muted);font-size:11px;font-weight:850}.oz-kpi-value{font-size:clamp(27px,3vw,38px);font-weight:900;letter-spacing:-.05em}.oz-kpi-meta{display:flex;justify-content:space-between;gap:8px;color:var(--oz-muted);font-size:10px}.oz-kpi-trend{color:var(--oz-success);font-weight:850}
.oz-focus-card{position:relative;overflow:hidden;padding:22px;border-radius:var(--oz-r4);background:linear-gradient(135deg,#101828 0%,#263a74 58%,#654ef5 100%);color:#fff;box-shadow:var(--oz-shadow-3)}.oz-focus-card:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-90px;top:-100px;background:rgba(255,255,255,.1)}.oz-focus-card>*{position:relative;z-index:1}.oz-focus-card p{color:rgba(255,255,255,.74);line-height:1.55}.oz-focus-card .oz-btn-secondary{border:0}
.oz-empty{padding:34px 20px;text-align:center;border:1px dashed var(--oz-line);border-radius:var(--oz-r3);background:var(--oz-surface-soft)}.oz-empty strong{display:block;font-size:15px}.oz-empty p{margin:7px auto 16px;max-width:430px;color:var(--oz-muted);font-size:12px;line-height:1.5}
.oz-skeleton{position:relative;overflow:hidden;background:#edf1f6;border-radius:10px;color:transparent!important}.oz-skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:oz-shimmer 1.25s infinite}
.oz-toast{position:fixed;right:24px;bottom:24px;z-index:20000;max-width:380px;padding:14px 16px;border-radius:15px;background:#101828;color:#fff;box-shadow:0 18px 50px rgba(16,24,40,.28);opacity:0;transform:translateY(14px);pointer-events:none;transition:.22s var(--oz-ease)}.oz-toast.show{opacity:1;transform:none}.oz-toast.success{background:#05603a}.oz-toast.error{background:#912018}
.oz-timeline{display:grid;gap:0}.oz-timeline-item{position:relative;display:grid;grid-template-columns:68px 16px 1fr;gap:10px;padding-bottom:18px}.oz-timeline-item:not(:last-child):after{content:"";position:absolute;left:75px;top:17px;bottom:0;width:2px;background:var(--oz-line-soft)}.oz-timeline-time{font-size:10px;color:var(--oz-muted)}.oz-timeline-dot{width:10px;height:10px;margin-top:3px;border-radius:50%;background:var(--oz-brand);box-shadow:0 0 0 4px var(--oz-brand-100)}.oz-timeline-copy strong{display:block;font-size:12px}.oz-timeline-copy small{color:var(--oz-muted)}
.oz-field{display:grid;gap:7px}.oz-field label{font-size:12px;font-weight:850;color:var(--oz-text)}.oz-input{width:100%;min-height:44px;padding:11px 13px;border:1px solid var(--oz-line);border-radius:13px;background:#fff;color:var(--oz-ink);font:inherit;transition:.15s}.oz-input:focus{border-color:var(--oz-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--oz-brand) 12%,transparent)}
@keyframes oz-shimmer{100%{transform:translateX(100%)}}
