.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--header-gradient);color:#fff;display:grid;place-items:center}.brand-name{font-weight:700;font-size:20px;color:var(--teal-dark);letter-spacing:.5px}.brand-sub{font-size:12px;color:var(--txt-light)}.nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.nav-divider{height:1px;background:var(--border);margin:10px 8px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r);color:var(--txt-mid);font-weight:500;font-size:15px;transition:var(--transition);width:100%;text-align:left}.nav-item:hover{background:#0a6b6e0f;color:var(--txt)}.nav-item.active{background:#0a6b6e1f;color:var(--teal-dark);font-weight:700}.nav-item.active svg{color:var(--teal)}.nav-item.logout{color:var(--red);margin-top:8px}.nav-item.logout:hover{background:#c0392b14}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;position:sticky;top:0;z-index:50}.topbar-search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:22px;padding:8px 14px;width:380px;max-width:40vw;color:var(--txt-light)}.topbar-search input{border:none;background:none;outline:none;width:100%}.topbar-right{display:flex;align-items:center;gap:14px;position:relative}.user-chip{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:24px;transition:var(--transition)}.user-chip:hover{background:var(--bg)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}.user-meta{display:flex;flex-direction:column;line-height:1.2;text-align:left}.user-name{font-weight:700;font-size:14px}.user-role{font-size:12px;color:var(--txt-light)}.user-menu{position:absolute;top:52px;right:0;min-width:200px;padding:6px;z-index:60}.menu-item{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:8px;font-size:15px}.menu-item:hover{background:var(--bg)}.menu-item.danger{color:var(--red)}.cap-chip{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:22px;background:#fbf3e0;border:1px solid #efdcb0;font-size:13px;font-weight:600;color:var(--gold);cursor:pointer}.cap-chip.warn{background:#fdecea;border-color:#f5c6c0;color:var(--red)}.company-switch{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:22px;background:var(--bg);border:1px solid var(--border);font-size:14px;font-weight:600}.company-menu{position:absolute;top:52px;right:0;min-width:240px;padding:6px;z-index:60}.content{padding:28px 32px;max-width:1400px;width:100%;margin:0 auto}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:var(--header-gradient);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between}.auth-brand .mark{display:flex;align-items:center;gap:12px}.auth-brand .mark .box{width:46px;height:46px;border-radius:12px;background:#ffffff29;display:grid;place-items:center}.auth-brand h1{font-size:42px;font-weight:700;line-height:1.15;letter-spacing:-.5px;margin-bottom:14px}.auth-brand p{color:#ffffffd1;font-size:17px;max-width:420px}.auth-brand .foot{font-size:13px;color:#fff9}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px}.auth-card{width:100%;max-width:380px}.auth-card h2{font-size:29px;font-weight:700;color:var(--teal-dark);margin-bottom:4px}.auth-card .lede{color:var(--txt-light);margin-bottom:26px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-row{display:flex;align-items:center;justify-content:space-between}.auth-link{color:var(--teal);font-weight:600;font-size:14px}.remember{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--txt-mid)}.auth-card-wide{max-width:460px}.auth-divider{height:1px;background:var(--border);margin:22px 0 16px}.auth-alt{display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;color:var(--txt-mid)}.auth-alt+.auth-alt{margin-top:10px}.auth-foot-links{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:22px;font-size:14px;color:var(--txt-mid)}button.auth-link{background:none;border:0;padding:0;cursor:pointer}.chip-group{display:flex;flex-wrap:wrap;gap:8px}.invite-preview{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--r);margin-bottom:18px}.invite-preview-icon{width:46px;height:46px;flex:none;border-radius:12px;background:#0a6b6e1a;color:var(--teal);display:grid;place-items:center}.invite-preview strong{font-size:18px;color:var(--txt)}.invite-note{padding:12px;border-radius:12px;margin-bottom:18px;background:#0a6b6e14;font-size:14px;color:var(--txt-mid);line-height:1.45}@media(max-width:860px){.auth-wrap{grid-template-columns:1fr}.auth-brand{display:none}}:root{--teal: #0a6b6e;--teal-light: #0d9094;--teal-dark: #064b4e;--gold: #c8922a;--gold-light: #f0b830;--red: #c0392b;--red-light: #ff6b5b;--green: #1a7a4a;--green-light: #2ecc71;--orange: #d35400;--purple: #5b4a8b;--bg: #f4f1eb;--bg-card: #fffdf8;--border: #ddd8ce;--border-strong: #c9c3b6;--txt: #1a1a1a;--txt-mid: #5a5550;--txt-light: #8a857e;--white: #ffffff;--header-gradient: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 100%);--status-open-bg: #e8f4ff;--status-open-fg: #1a5a9a;--status-partial-bg: #fff3cd;--status-partial-fg: #8a5a00;--status-completed-bg: #d4edda;--status-completed-fg: #155724;--status-closed-bg: #e8e8e8;--status-closed-fg: #555555;--status-transit-bg: #e3f0ff;--status-transit-fg: #1a4a8a;--status-received-bg: #d4f5ea;--status-received-fg: #0a6b4a;--status-settled-bg: #e8e8e8;--status-settled-fg: #444444;--status-disputed-bg: #fdecea;--status-disputed-fg: #9b1c1c;--r: 8px;--r-lg: 12px;--r-xl: 18px;--shadow-sm: 0 1px 3px rgba(26, 26, 26, .06), 0 1px 2px rgba(26, 26, 26, .04);--shadow-md: 0 4px 16px rgba(26, 26, 26, .08), 0 2px 6px rgba(26, 26, 26, .05);--shadow-lg: 0 12px 40px rgba(26, 26, 26, .12), 0 4px 12px rgba(26, 26, 26, .07);--font: "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--transition: .16s cubic-bezier(.4, 0, .2, 1);--sidebar-w: 248px;--topbar-h: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--txt);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:15px;color:var(--txt)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px}.h1{font-size:31px;font-weight:700;letter-spacing:-.5px}.h2{font-size:24px;font-weight:700}.h3{font-size:20px;font-weight:700}.h4{font-size:17px;font-weight:700}.label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-mid)}.caption{font-size:12px;color:var(--txt-light)}.amount-words{font-size:12px;font-style:italic;color:var(--teal);font-weight:600;letter-spacing:.01em}.muted{color:var(--txt-light)}.mono{font-variant-numeric:tabular-nums}.fade-in{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-in{animation:slideIn .24s cubic-bezier(.34,1.2,.64,1)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.num{font-variant-numeric:tabular-nums}.party-link{color:var(--teal);text-decoration:none;font-weight:inherit}.party-link:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:var(--r);font-weight:600;font-size:15px;transition:var(--transition);white-space:nowrap;border:1px solid transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--teal);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--teal-dark)}.btn-secondary{background:var(--bg-card);color:var(--txt);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--border-strong);background:#fff}.btn-danger{background:var(--red);color:var(--white)}.btn-danger:hover:not(:disabled){filter:brightness(.94)}.btn-ghost{background:transparent;color:var(--teal)}.btn-ghost:hover:not(:disabled){background:#0a6b6e14}.btn-sm{padding:6px 11px;font-size:14px}.btn-block{width:100%}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:18px 20px}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);font-size:14px;font-weight:600;color:var(--txt-mid);transition:var(--transition)}.chip:hover{border-color:var(--border-strong)}.chip-active{background:var(--teal);color:var(--white);border-color:var(--teal)}.segmented{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:3px}.segmented button{padding:7px 18px;border-radius:6px;font-weight:600;font-size:15px;color:var(--txt-mid);transition:var(--transition)}.segmented button.on{background:var(--teal);color:var(--white);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--txt-mid)}.input,.select,.textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg-card);transition:var(--transition);outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0a6b6e1f}.input.err,.select.err,.textarea.err{border-color:var(--red)}.pw-wrap{position:relative}.pw-input{padding-right:42px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--txt-light);transition:var(--transition)}.pw-toggle:hover{color:var(--txt-mid);background:var(--bg)}.otp-input{position:relative;display:flex;gap:10px}.otp-input .otp-hidden{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;cursor:pointer}.otp-box{flex:1;min-width:0;height:54px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--r);background:var(--bg-card);font-size:22px;font-weight:700;color:var(--txt);transition:var(--transition)}.otp-box.filled{border-color:var(--border-strong)}.otp-box.active{border-color:var(--teal);box-shadow:0 0 0 3px #0a6b6e1f}.field-err{font-size:13px;color:var(--red)}.req:after{content:" *";color:var(--red)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:15px}.table thead th{text-align:left;padding:12px 16px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-light);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:1}.table tbody td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr{transition:background .12s}.table tbody tr.clickable{cursor:pointer}.table tbody tr.clickable:hover{background:#0a6b6e0a}.table tbody tr.selected{background:#0a6b6e14}.table .num{text-align:right;font-variant-numeric:tabular-nums}.progress{height:6px;border-radius:4px;background:var(--border);overflow:hidden}.progress>span{display:block;height:100%;background:var(--teal);border-radius:4px}.money-neg{color:var(--red)}.money-pos{color:var(--green)}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;text-align:center;color:var(--txt-light)}.state-apology{padding:64px 24px;gap:12px}.state-apology span{max-width:360px;line-height:1.55}.state-illus{margin-bottom:4px}.crash-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.crash-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;max-width:420px;padding:40px 32px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}.crash-card h1{margin:0;font-size:20px;color:var(--txt-mid)}.crash-card p{margin:0 0 8px;line-height:1.55;color:var(--txt-light)}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-host{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:1000}.toast{min-width:260px;max-width:380px;padding:12px 16px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);background:var(--txt);color:#fff;font-size:15px}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.toast.info{background:var(--teal-dark)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a66;display:flex;align-items:center;justify-content:center;z-index:900;padding:24px}.modal{background:var(--bg-card);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);max-width:480px;width:100%;padding:24px}.mini-stat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:15px;color:var(--txt-mid)}.mini-stat:last-child{border-bottom:none}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header .title{font-size:29px;font-weight:700;letter-spacing:-.4px;color:var(--teal-dark)}.page-header .subtitle{color:var(--txt-light);font-size:15px;margin-top:2px}.page-actions{display:flex;gap:10px}
