@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--primary:#4f46e5;--primary-dark:#3730a3;--primary-light:#818cf8;--primary-glow:#4f46e566;--secondary:#9333ea;--secondary-glow:#9333ea66;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--bg:#09090b;--bg-card:#0c0c0e;--bg-card-hover:#121215;--bg-input:#09090b;--bg-input-focus:#18181b;--border:#ffffff14;--border-light:#ffffff1f;--border-focus:#818cf880;--text:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--shadow-sm:0 1px 2px #00000080;--shadow:0 4px 12px #00000080;--shadow-lg:0 12px 32px #0009;--shadow-glow:0 0 32px var(--primary-glow);--shadow-inner:inset 0 1px 1px #ffffff0d;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--font:"Inter", system-ui, sans-serif;--font-display:"Plus Jakarta Sans", "Inter", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--text-muted);transition:color var(--transition);text-decoration:none}a:hover{color:var(--text)}img{max-width:100%;display:block}::selection{background:var(--primary-glow);color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;color:#fff;font-weight:700;line-height:1.2}h1{letter-spacing:-.03em;font-size:clamp(2.5rem,6vw,4rem)}h2{font-size:clamp(1.75rem,4vw,2.5rem)}h3{font-size:1.25rem;font-weight:600}p{color:var(--text-muted);line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page{min-height:calc(100vh - 70px);padding:40px 0}.app-layout{background:var(--bg);min-height:100vh;display:flex}.sidebar{-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border);z-index:100;width:260px;min-height:100vh;transition:transform var(--transition-slow);background:#09090bb3;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{padding:24px 24px 20px}.sidebar-logo-text{font-family:var(--font-display);background:linear-gradient(135deg, #fff, var(--primary-light));-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:800}.sidebar-logo-sub{color:var(--primary-light);letter-spacing:.5px;text-transform:uppercase;margin-top:2px;font-size:11px;font-weight:500}.sidebar-nav{flex:1;padding:12px 16px;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);padding:12px 8px 4px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition);align-items:center;gap:12px;margin-bottom:4px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{color:var(--text);background:#ffffff08}.nav-item.active{color:#fff;background:#4f46e51a;box-shadow:inset 0 0 0 1px #4f46e54d}.nav-item svg{stroke-width:2px;flex-shrink:0;width:18px;height:18px}.sidebar-footer{border-top:1px solid var(--border);padding:16px}.sidebar-user{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);align-items:center;gap:12px;padding:8px;display:flex}.sidebar-user:hover{background:#ffffff0d}.user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--secondary), var(--primary));color:#fff;width:36px;height:36px;box-shadow:var(--shadow-inner);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.user-info{flex:1;min-width:0}.user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.user-plan{color:var(--primary-light);font-size:11px}.main-content{flex:1;min-height:100vh;margin-left:260px;position:relative}.topbar{-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);z-index:50;background:#09090b99;justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex;position:sticky;top:0}.topbar-title{color:#fff;letter-spacing:-.01em;font-size:1.1rem;font-weight:600}.topbar-actions{align-items:center;gap:16px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), var(--shadow-inner);transition:all var(--transition);padding:24px}.card:hover{border-color:var(--border-light);box-shadow:var(--shadow), var(--shadow-inner)}.card-glass{-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg), inset 0 1px 1px #ffffff14;background:#0c0c0e80;border:1px solid #ffffff1a}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm), var(--shadow-inner);transition:all var(--transition-slow);flex-direction:column;padding:24px;display:flex;position:relative;overflow:hidden}.stat-card:hover{border-color:#818cf84d;transform:translateY(-4px)scale(1.01);box-shadow:0 12px 24px #0009,0 0 0 1px #818cf81a}.stat-label{color:var(--text-dim);margin-bottom:12px;font-size:13px;font-weight:600}.stat-value{font-size:2.5rem;font-weight:700;font-family:var(--font-display);color:#fff;letter-spacing:-.03em;margin-bottom:8px}.stat-sub{color:var(--text-muted);font-size:13px;font-weight:500}.btn{border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn svg{stroke-width:2.5px;width:16px;height:16px}.btn-primary{color:#000;background:#fff;box-shadow:0 0 0 1px #ffffff1a,0 2px 8px #0006}.btn-primary:hover:not(:disabled){background:#e2e8f0;transform:translateY(-1px);box-shadow:0 4px 16px #ffffff26}.btn-secondary{color:#fff;background:#ffffff0d;border:1px solid #ffffff1a;box-shadow:inset 0 1px #ffffff0d}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.btn-danger{color:#f87171;background:#ef44441a;border:1px solid #ef444433}.btn-danger:hover:not(:disabled){background:#ef444433;border-color:#ef44444d}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){color:#fff;background:#ffffff0d}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:15px}.btn-full{width:100%}.btn-loading{position:relative;color:#0000!important}.btn-loading:after{content:"";border:2px solid #0003;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;position:absolute}.btn-primary.btn-loading:after{border:2px solid #0003;border-top-color:#000}.btn-secondary.btn-loading:after{border:2px solid #fff3;border-top-color:#fff}.form-group{margin-bottom:24px;position:relative}.form-label{color:var(--text-muted);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.form-label .required{color:#f87171;margin-left:4px}.form-input,.form-select,.form-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font);color:#fff;transition:all var(--transition);background:#ffffff08;outline:none;padding:12px 16px;box-shadow:inset 0 2px 4px #0003}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-dim)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-light);background:#ffffff0d;box-shadow:inset 0 2px 4px #0003,0 0 0 2px #6366f133}.form-input.error{border-color:var(--danger)}.form-error{color:#f87171;align-items:center;gap:4px;margin-top:6px;font-size:12px;display:flex}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.form-select option{background:var(--bg-card);color:#fff}.form-textarea{resize:vertical;min-height:120px}.form-row{gap:20px;display:grid}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.table-wrapper{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow-sm);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table thead tr{border-bottom:1px solid var(--border);background:#ffffff05}.table thead th{text-align:left;color:var(--text-muted);white-space:nowrap;padding:16px 20px;font-size:12px;font-weight:600}.table tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition)}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:#ffffff08}.table tbody td{color:var(--text-muted);vertical-align:middle;padding:16px 20px}.table tbody td.primary-cell{color:#fff;font-weight:500}.badge{border-radius:var(--radius-full);letter-spacing:.5px;text-transform:uppercase;border:1px solid #0000;align-items:center;gap:6px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-draft{color:#cbd5e1;background:#94a3b81a;border-color:#94a3b833}.badge-sent{color:#38bdf8;background:#38bdf81a;border-color:#38bdf833}.badge-viewed{color:#a855f7;background:#a855f71a;border-color:#a855f733}.badge-paid{color:#34d399;background:#34d3991a;border-color:#34d39933}.badge-overdue{color:#f87171;background:#f871711a;border-color:#f8717133}.badge-free{color:#fff;background:#ffffff1a;border-color:#fff3}.badge-pro{color:var(--primary-light);background:#818cf81a;border-color:#818cf84d}.line-items-table{border-collapse:separate;border-spacing:0 8px;width:100%}.line-items-table th{color:var(--text-dim);text-align:left;border-bottom:1px solid var(--border);padding:0 12px 8px;font-size:12px;font-weight:500}.line-items-table td{vertical-align:middle;padding:4px}.line-items-table td:last-child{text-align:right}.line-items-table .amount-cell{color:#fff;min-width:100px;padding:8px 12px;font-weight:500}.line-items-table .line-input{border:1px solid var(--border);border-radius:var(--radius-sm);color:#fff;width:100%;font-size:14px;font-family:var(--font);transition:all var(--transition);background:#ffffff08;outline:none;padding:10px 12px}.line-items-table .line-input:focus{border-color:var(--primary-light);background:#ffffff0d}.line-items-table .line-input-sm{text-align:center;max-width:80px}.line-items-table .line-input-md{max-width:120px}.remove-row-btn{color:var(--text-dim);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;display:flex}.remove-row-btn:hover{color:#f87171;background:#ef44441a}.invoice-preview{border-radius:var(--radius-lg);color:#0f172a;background:#fff;min-height:500px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13px;line-height:1.6;overflow:hidden;box-shadow:0 20px 40px #00000080,0 1px 3px #ffffff1a}.preview-header{color:#fff;background:#0f172a;justify-content:space-between;align-items:flex-start;padding:32px;display:flex}.preview-body{padding:32px}.preview-meta-row{gap:32px;margin-bottom:32px;display:flex}.preview-meta-block{flex:1}.preview-section-label{text-transform:uppercase;letter-spacing:1.5px;color:#64748b;margin-bottom:8px;font-size:10px;font-weight:700}.preview-bill-row{gap:32px;margin-bottom:32px;display:flex}.preview-table{border-collapse:collapse;width:100%;margin-bottom:24px;font-size:13px}.preview-table thead th{color:#475569;text-align:left;text-transform:uppercase;letter-spacing:1px;background:#f8fafc;padding:12px;font-size:11px}.preview-table thead th:last-child{text-align:right}.preview-table tbody td{border-bottom:1px solid #e2e8f0;padding:12px}.preview-table tbody td:last-child{text-align:right;font-weight:500}.preview-totals{justify-content:flex-end;display:flex}.preview-totals-box{min-width:240px}.preview-total-row{color:#475569;border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.preview-total-row.final{color:#0f172a;border-bottom:none;padding-top:12px;font-size:16px;font-weight:700}.preview-footer{color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;padding:24px 32px;font-size:11px;display:flex}.invoice-form-layout{grid-template-columns:1fr 440px;align-items:start;gap:32px;display:grid}.invoice-form-panel{flex-direction:column;gap:24px;display:flex}.invoice-preview-sticky{position:sticky;top:100px}.form-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.form-section-header{border-bottom:1px solid var(--border);background:#ffffff03;align-items:center;gap:12px;padding:20px 24px;display:flex}.form-section-icon{color:#fff;background:#ffffff0d;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:inset 0 1px 1px #ffffff1a}.form-section-icon svg{stroke-width:2px;width:18px;height:18px}.form-section-title{color:#fff;font-size:15px;font-weight:600}.form-section-body{padding:24px}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-page:before,.auth-page:after{content:"";filter:blur(120px);pointer-events:none;z-index:0;border-radius:50%;position:absolute}.auth-page:before{background:#4f46e526;width:60vw;height:60vw;animation:10s ease-in-out infinite float;top:-20%;left:-10%}.auth-page:after{background:#9333ea26;width:50vw;height:50vw;animation:12s ease-in-out infinite reverse float;bottom:-20%;right:-10%}.auth-card{z-index:1;-webkit-backdrop-filter:blur(24px);border-radius:var(--radius-xl);background:#0c0c0e99;border:1px solid #ffffff14;width:100%;max-width:440px;padding:48px;position:relative;box-shadow:0 24px 48px #0009,inset 0 1px 1px #ffffff1a}.auth-logo{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;margin-bottom:8px;font-size:1.75rem;font-weight:800}.auth-tagline{color:var(--text-dim);margin-bottom:40px;font-size:14px}.auth-title{color:#fff;letter-spacing:-.02em;margin-bottom:8px;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.auth-divider{color:var(--text-dim);align-items:center;gap:16px;margin:24px 0;font-size:13px;font-weight:500;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.auth-footer{text-align:center;color:var(--text-muted);margin-top:32px;font-size:14px}.landing{background:var(--bg);position:relative;overflow:hidden}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 24px;display:flex}.empty-icon{width:80px;height:80px;color:var(--text-muted);background:#ffffff08;border:1px solid #ffffff14;border-radius:24px;justify-content:center;align-items:center;margin-bottom:24px;display:flex;box-shadow:inset 0 1px 1px #ffffff0d}.empty-icon svg{stroke-width:1.5px;width:40px;height:40px}.empty-title{color:#fff;margin-bottom:12px;font-size:20px;font-weight:700}.empty-desc{color:var(--text-muted);max-width:340px;margin-bottom:32px;font-size:15px;line-height:1.6}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-lg), inset 0 1px 1px #ffffff0d;padding:32px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title{color:#fff;letter-spacing:-.01em;font-size:20px;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:#ffffff0d;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;display:flex}.modal-close:hover{color:#fff;background:#ffffff1a}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-20px)scale(1.05)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.grid{display:grid}.w-full{width:100%}.text-right{text-align:right}.text-center{text-align:center}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.p-4{padding:16px}.p-6{padding:24px}.px-4{padding-left:16px;padding-right:16px}.py-2{padding-top:8px;padding-bottom:8px}.font-bold{font-weight:700}.font-medium{font-weight:500}.text-sm{font-size:14px}.text-xs{font-size:12px}.text-lg{font-size:18px}.text-white{color:#fff}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-primary{color:var(--primary-light)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.divider{background:var(--border);height:1px;margin:24px 0}.highlight{background:linear-gradient(135deg, #fff, var(--primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/200% 100%;animation:2s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=1024px){.invoice-form-layout{grid-template-columns:1fr}.invoice-preview-sticky{position:static}}@media (width<=768px){.sidebar{background:#09090bf2;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.form-row-2,.form-row-3{grid-template-columns:1fr}.topbar{padding:0 20px}}@media (width<=480px){.auth-card{box-shadow:none;background:0 0;border:none;border-radius:0;padding:32px 24px}.stat-value{font-size:2rem}.page{padding:24px 0}}
