:root{--page:#eef3f8;--card:#fff;--text:#182230;--muted:#6c7b8f;--line:#dce5ef;--purple:#7758d8;--purple-dark:#5d3fc2;--green:#159b63;--red:#cf3f4a;--blue:#377ee6;--shadow:0 18px 50px rgba(35,50,70,.10);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0;color:var(--text);background:linear-gradient(135deg,#f1f5fa,#dfe9f3)}a{color:inherit}.app-shell{display:grid;grid-template-columns:244px minmax(0,1fr);width:min(1480px,calc(100% - 48px));min-height:calc(100vh - 48px);margin:24px auto;border:1px solid rgba(255,255,255,.9);border-radius:28px;overflow:hidden;background:rgba(255,255,255,.48);box-shadow:var(--shadow)}.sidebar{display:flex;flex-direction:column;padding:28px 18px;border-right:1px solid var(--line);background:rgba(255,255,255,.62)}.brand,.auth-brand{display:flex;gap:11px;align-items:center;text-decoration:none}.brand{padding:5px 11px 28px}.brand-mark{display:grid;width:39px;height:39px;place-items:center;border-radius:13px;color:#fff;background:linear-gradient(135deg,#b79cff,#7758d8);font-size:1.1rem;font-weight:850;box-shadow:0 9px 22px rgba(119,88,216,.28)}.brand strong,.auth-brand strong{display:block;font-size:.95rem}.brand small,.auth-brand small,.profile small{display:block;margin-top:2px;color:var(--muted);font-size:.74rem}.menu{display:grid;gap:5px}.menu-item,.logout-form button{display:flex;gap:11px;align-items:center;min-height:43px;width:100%;padding:10px 12px;border:0;border-radius:12px;color:#657386;background:transparent;font:inherit;font-size:.9rem;text-decoration:none;text-align:left;cursor:pointer}.menu-item:hover,.logout-form button:hover{background:#eef3f8}.menu-item.active{color:#1f2a39;background:#e7eef8;font-weight:750}.logout-form{margin-top:auto;padding-top:24px}.logout-form button:hover{color:#a51d2a;background:#fff1f2}.main-content{min-width:0;padding:26px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.profile{display:flex;align-items:center;gap:9px}.profile strong{display:block;font-size:.85rem}.avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#ffcf9c,#cf8858);font-size:.9rem;font-weight:800}.hero,.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.hero h1,.page-heading h1{margin:0;font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:-.045em}.hero p,.page-heading p{margin:8px 0 0;color:var(--muted)}.date-chip{padding:11px 13px;border:1px solid var(--line);border-radius:12px;color:#627185;background:#fff;font-size:.81rem;font-weight:700}.notice{margin:0 0 20px;padding:13px 15px;border:1px solid;border-radius:13px;font-size:.9rem}.notice.success{color:#0d7046;border-color:#a8e5c8;background:#edfff5}.notice.error{color:#a12733;border-color:#f1bbc0;background:#fff3f4}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stat-card,.panel,.form-panel,.filter-panel{border:1px solid #e7edf4;border-radius:19px;background:rgba(255,255,255,.86);box-shadow:0 10px 28px rgba(35,50,70,.055)}.stat-card{display:flex;flex-direction:column;min-height:132px;padding:17px}.stat-label{color:#66768a;font-size:.78rem;font-weight:700}.stat-card strong{margin:18px 0 5px;font-size:1.48rem;letter-spacing:-.04em}.stat-card small{color:var(--muted);font-size:.76rem}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.content-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.85fr);gap:18px;margin-bottom:18px}.panel{padding:21px;margin-bottom:18px}.content-grid .panel{margin:0}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.panel h2{margin:0;font-size:1rem}.panel p{margin:4px 0 0;color:var(--muted);font-size:.78rem}.text-link{color:var(--purple);font-size:.85rem;font-weight:750;text-decoration:none}.payment-list{display:grid;gap:16px}.payment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.payment-row strong{font-size:.88rem}.bar{height:7px;margin-top:8px;border-radius:999px;overflow:hidden;background:#edf2f7}.bar span{display:block;height:100%;min-width:2px;border-radius:inherit;background:linear-gradient(90deg,#8b69de,#b79cff)}.quick-actions{display:grid;gap:10px}.quick-action{display:flex;gap:11px;align-items:center;padding:13px;border:1px solid #e9eef5;border-radius:12px;color:#536275;background:#f9fbfd;font-size:.87rem;font-weight:700;text-decoration:none}.quick-action:hover{border-color:#cdbfff;background:#f6f2ff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:710px}th,td{padding:12px 10px;border-bottom:1px solid #edf1f5;text-align:left;font-size:.84rem}th{color:#748296;font-size:.74rem;letter-spacing:.03em;text-transform:uppercase}td.amount{text-align:right;font-weight:800}.empty{padding:28px;text-align:center;color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:750}.badge.income{color:#087444;background:#e6f8ef}.badge.expense{color:#b72c38;background:#fff0f1}.badge.confirmed{color:#2b609c;background:#eaf2ff}.badge.cancelled{color:#6d7784;background:#eef1f5}.form-panel{padding:22px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.form-grid label,.form-stack label,.filters label,.inline-form label{display:grid;gap:7px;color:#4d5e73;font-size:.84rem;font-weight:700}.form-grid label span{color:#8a99aa;font-size:.75rem;font-weight:500}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d9e2ec;border-radius:10px;color:var(--text);background:#fff;font:inherit}textarea{resize:vertical}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:42px;padding:10px 15px;border:0;border-radius:10px;color:#fff;background:var(--purple);font:inherit;font-size:.88rem;font-weight:750;text-decoration:none;cursor:pointer}.button:hover{background:var(--purple-dark)}.button.secondary{color:#5b6b7f;background:#edf2f7}.button.small{min-height:38px}.filter-panel{padding:16px;margin-bottom:18px}.filters,.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters label{min-width:150px}.link-danger{border:0;color:#b72c38;background:transparent;font:inherit;font-size:.8rem;font-weight:750;cursor:pointer}.closure-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.closure-summary div{padding:14px;border:1px solid #e7edf4;border-radius:12px;background:#f9fbfd}.closure-summary span,.closure-summary strong{display:block}.closure-summary span{color:var(--muted);font-size:.75rem}.closure-summary strong{margin-top:6px;font-size:1.1rem}.auth-body{display:grid;min-height:100vh;place-items:center;padding:20px}.auth-card{width:min(100%,440px);padding:32px;border:1px solid #e7edf4;border-radius:24px;background:#fff;box-shadow:var(--shadow)}.auth-card.wide{width:min(100%,540px)}.auth-card h1{margin:28px 0 7px;font-size:1.65rem;letter-spacing:-.04em}.auth-card>p{margin:0 0 24px;color:var(--muted);line-height:1.55}.form-stack{display:grid;gap:15px}.auth-card .button{margin-top:6px}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.app-shell{display:block;width:100%;min-height:100vh;margin:0;border:0;border-radius:0}.sidebar{display:block;padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0}.menu{display:flex;overflow:auto;margin-top:14px}.menu-item{width:auto;white-space:nowrap}.logout-form{display:none}.main-content{padding:20px 16px 32px}.topbar{margin-bottom:22px}.profile small{display:none}}@media(max-width:540px){.stats-grid,.form-grid,.closure-summary{grid-template-columns:1fr}.hero,.page-heading{display:block}.date-chip{display:inline-block;margin-top:14px}.form-actions{justify-content:stretch}.form-actions .button{flex:1}.filters{display:grid;grid-template-columns:1fr}.filters label{min-width:0}}
.monospace { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: .85rem; }
