:root{--bg: #eef1f4;--bg-elev: #f7f8fa;--bg-soft: #e6eaef;--bg-ink: #12171c;--line: #d4dae2;--line-strong: #b8c1cd;--text: #14191f;--muted: #5f6b78;--accent: #0f7a72;--accent-dim: #0a5c56;--accent-soft: rgba(15, 122, 114, .12);--accent-glow: rgba(15, 122, 114, .22);--warn: #b7791f;--danger: #c04545;--info: #3b6ea5;--orange: #c56a2f;--success: #1f7a4d;--radius: 14px;--radius-sm: 10px;--font: "Sora", system-ui, sans-serif;--display: "Fraunces", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--shadow: 0 18px 50px rgba(18, 23, 28, .08);--shadow-soft: 0 8px 24px rgba(18, 23, 28, .05)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:radial-gradient(900px 480px at 8% -8%,rgba(15,122,114,.1),transparent 55%),radial-gradient(700px 420px at 96% 4%,rgba(59,110,165,.08),transparent 50%),linear-gradient(180deg,#f4f6f8 0%,var(--bg) 40%,#e9eef2 100%);background-attachment:fixed;color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:248px 1fr;min-height:100%;animation:shell-in .45s ease both}@keyframes shell-in{0%{opacity:0}to{opacity:1}}.sidebar{background:linear-gradient(180deg,#f7f8faf5,#eef1f4eb);border-right:1px solid var(--line);padding:1.35rem 1rem;display:flex;flex-direction:column;gap:1.1rem;position:sticky;top:0;height:100vh;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.8rem;padding:.35rem .45rem 1.1rem;border-bottom:1px solid var(--line)}.brand-mark{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#22b3a8 0%,var(--accent) 48%,#063833 100%);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:-.03em;box-shadow:0 10px 24px var(--accent-glow);flex-shrink:0;animation:mark-in .55s cubic-bezier(.22,1,.36,1) both}@keyframes mark-in{0%{transform:scale(.82) rotate(-6deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.brand h1{font-family:var(--display);font-size:1.2rem;font-weight:560;margin:0;letter-spacing:-.03em;color:var(--bg-ink)}.brand span{color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;font-weight:500}.nav{display:flex;flex-direction:column;gap:.2rem;flex:1;overflow:auto}.nav a{color:var(--muted);padding:.58rem .8rem;border-radius:var(--radius-sm);transition:background .18s ease,color .18s ease,transform .18s ease}.nav a:hover{background:#0f7a720f;color:var(--text);transform:translate(2px)}.nav a.active{background:var(--accent-soft);color:var(--accent-dim);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.main{padding:1.4rem 1.7rem 5rem;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.35rem}.topbar h2{margin:0;font-family:var(--display);font-size:1.55rem;font-weight:560;letter-spacing:-.03em}.card{background:#f7f8fae0;border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;box-shadow:var(--shadow-soft);transition:border-color .2s ease,box-shadow .2s ease}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.grid{display:grid;gap:1rem}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-label{color:var(--muted);font-size:.78rem;margin-bottom:.35rem;letter-spacing:.02em;text-transform:uppercase;font-weight:500}.stat-value{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.mono{font-family:var(--mono);font-size:.85rem}.btn{border:1px solid var(--line);background:var(--bg-elev);color:var(--text);border-radius:var(--radius-sm);padding:.52rem .9rem;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:hover{border-color:var(--line-strong);box-shadow:var(--shadow-soft)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(180deg,#14958c,var(--accent-dim));border-color:transparent;color:#f3fffd;font-weight:600;box-shadow:0 8px 18px var(--accent-glow)}.btn-primary:hover{border-color:transparent;filter:brightness(1.04)}.btn-danger{background:#f8ecec;border-color:#e4b8b8;color:#9b2e2e}.btn-ghost{background:transparent}.btn-sm{padding:.3rem .55rem;font-size:.85rem}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#f7f8fae6;box-shadow:var(--shadow-soft)}table{width:100%;border-collapse:collapse;min-width:640px}th,td{text-align:left;padding:.72rem .9rem;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:.74rem;font-weight:560;letter-spacing:.03em;text-transform:uppercase;background:#e6eaefbf}tr:last-child td{border-bottom:none}tr:hover td{background:#0f7a7208}.badge{display:inline-flex;align-items:center;padding:.16rem .55rem;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.02em}.badge-invoice{background:#e8edf3;color:#445568}.badge-pending{background:#e4eef8;color:#2f5f8f}.badge-success{background:#dff3ea;color:#1f6b48}.badge-cancelled,.badge-expired{background:#f4e4e4;color:#8f3a3a}.badge-dispute{background:#f6ecd9;color:#8a5a18}.form{display:grid;gap:.8rem}label{display:grid;gap:.35rem;font-size:.85rem;color:var(--muted)}input,select,textarea{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.58rem .75rem;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem;align-items:center}.empty{padding:2.2rem;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--radius);background:#fff6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10161c6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:1rem;animation:fade-in .2s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:min(520px,100%);background:var(--bg-elev);border:1px solid var(--line);border-radius:16px;padding:1.2rem;box-shadow:var(--shadow);animation:modal-up .28s cubic-bezier(.22,1,.36,1) both}@keyframes modal-up{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal h3{margin:0 0 .85rem;font-family:var(--display);font-weight:560;letter-spacing:-.02em}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.toast-wrap{position:fixed;right:1rem;bottom:1rem;z-index:80;display:grid;gap:.5rem}.toast{background:var(--bg-elev);border:1px solid var(--line);padding:.75rem .95rem;border-radius:12px;min-width:220px;box-shadow:var(--shadow);animation:toast-in .28s ease both}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.toast.error{border-color:#e0a0a0;background:#fff7f7}.toast.ok{border-color:#9fd4cd;background:#f3fbfa}.login-page{min-height:100%;display:grid;place-items:center;padding:1.5rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(15,122,114,.16),transparent 68%);top:-160px;right:-120px;animation:drift 12s ease-in-out infinite alternate;pointer-events:none}.login-page:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(59,110,165,.12),transparent 70%);bottom:-140px;left:-100px;animation:drift 14s ease-in-out infinite alternate-reverse;pointer-events:none}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-24px,18px)}}.login-card{width:min(400px,100%);background:#f7f8faeb;border:1px solid var(--line);border-radius:20px;padding:1.9rem 1.75rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:relative;z-index:1;animation:login-in .5s cubic-bezier(.22,1,.36,1) both}@keyframes login-in{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.login-card .brand{border:none;padding:0 0 1.35rem}.login-card .brand h1{font-size:1.55rem}.banner{background:#f7efdf;border:1px solid #e4d2a8;color:#7a5a18;padding:.65rem .85rem;border-radius:var(--radius-sm);margin-bottom:1rem}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;background:#f7f8faf0;border-top:1px solid var(--line);padding:.4rem .5rem calc(.4rem + env(safe-area-inset-bottom));z-index:40;justify-content:space-around;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav a{color:var(--muted);font-size:.72rem;display:grid;place-items:center;gap:.15rem;padding:.35rem;transition:color .15s ease}.bottom-nav a.active{color:var(--accent);font-weight:600}.sidebar .btn{font-size:.82rem;color:var(--muted)}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.bottom-nav{display:flex}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr}.main{padding-bottom:5.5rem}}@media(max-width:640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}
