:root{--color-bg: #f3f6f4;--color-surface: #ffffff;--color-ink: #15352c;--color-muted: #5b7269;--color-primary: #1a5f4a;--color-primary-soft: #d8eee6;--color-accent: #c45c26;--color-border: #c9d6d0;--color-danger: #b42318;--color-ok: #1a7a4c;--shadow: 0 10px 30px rgba(21, 53, 44, .08);--radius: 14px;--font-display: "DM Sans", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:radial-gradient(circle at top left,rgba(26,95,74,.12),transparent 40%),radial-gradient(circle at bottom right,rgba(196,92,38,.08),transparent 35%),var(--color-bg)}button,input,select,textarea{font:inherit}a{color:inherit}.loading-screen{display:grid;place-items:center;min-height:100vh;font-family:var(--font-display);color:var(--color-muted)}.shell{max-width:1400px;margin:0 auto;padding:1.25rem 1rem 3rem}.shell-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.shell-header h1,.login-card h1,.page h2,.matrix-title h3{margin:.15rem 0 0;font-family:var(--font-display);letter-spacing:-.02em}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;color:var(--color-primary)}.shell-user{display:flex;gap:.75rem;align-items:center;color:var(--color-muted)}.shell-nav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.shell-nav a{text-decoration:none;padding:.55rem .9rem;border-radius:999px;border:1px solid transparent;color:var(--color-muted);background:transparent}.shell-nav a.active{background:var(--color-primary);color:#fff}.shell-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem}.muted{color:var(--color-muted)}.error-text{color:var(--color-danger)}.btn{border:1px solid transparent;border-radius:10px;padding:.6rem 1rem;cursor:pointer;background:transparent}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-ghost{border-color:var(--color-border);background:#fff}.btn-ghost.danger{color:var(--color-danger)}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:1.75rem;display:grid;gap:.9rem}.login-card label,.panel-form label,.modal label{display:grid;gap:.35rem;font-size:.92rem}.login-card input,.panel-form input,.panel-form select,.modal input{border:1px solid var(--color-border);border-radius:10px;padding:.65rem .75rem;background:#fcfffe}.page-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap}.toolbar-actions,.row-actions,.modal-actions{display:flex;gap:.5rem;flex-wrap:wrap}.summary-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.summary-card{border:1px solid var(--color-border);border-radius:12px;padding:.9rem 1rem;background:linear-gradient(180deg,#fff,#f7fbf9);display:grid;gap:.35rem}.summary-card span{color:var(--color-muted);font-size:.85rem}.summary-card strong{font-family:var(--font-display);font-size:1.2rem}.summary-card.accent{background:var(--color-primary-soft);border-color:#a9cfc2}.matrix-scroll{overflow:auto;border:1px solid var(--color-border);border-radius:12px}.matrix-export{display:inline-block;width:fit-content;min-width:max-content;background:#fff;padding:1rem}.matrix-title{margin-bottom:.75rem}.matrix-title p{margin:.25rem 0 0;color:var(--color-muted)}.matrix-table,.data-table{width:100%;border-collapse:collapse;font-size:.78rem}.matrix-table th,.matrix-table td,.data-table th,.data-table td{border:1px solid #b8c7c0;padding:.28rem .35rem;text-align:center;white-space:nowrap}.matrix-table th,.data-table th{background:#e7f2ed;font-weight:600}.matrix-table th.subhead{background:#f3f8f6;font-weight:500;font-size:.7rem}.matrix-table td:nth-child(2),.data-table td:nth-child(2){text-align:left}.matrix-table td.paid{background:#f0faf5;color:var(--color-ok)}.matrix-table .total-row td{background:#fff7ef;font-weight:700}tr.gender-p td:nth-child(1),tr.gender-p td:nth-child(2){background:#ead1dc}tr.gender-l td:nth-child(1),tr.gender-l td:nth-child(2){background:#9fc5e8}.name-btn{border:0;background:transparent;color:var(--color-primary);cursor:pointer;font-weight:600;padding:0}.panel-form{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem;padding:.9rem;border:1px dashed var(--color-border);border-radius:12px}.panel-form .grow{flex:1 1 220px}.rp-input{display:flex;align-items:center;gap:.35rem;border:1px solid var(--color-border);border-radius:10px;padding:0 .75rem;background:#fcfffe}.rp-input__prefix{color:var(--color-muted);font-weight:600;-webkit-user-select:none;user-select:none}.rp-input input{border:0;padding:.65rem 0;background:transparent;width:100%;min-width:8rem;outline:none}.table-wrap{overflow:auto}.data-table{font-size:.92rem}.data-table th,.data-table td{padding:.55rem .65rem}tr.inactive{opacity:.55}.check-inline{display:inline-flex;gap:.4rem;align-items:center;color:var(--color-muted)}.modal-backdrop{position:fixed;inset:0;background:#12241e73;display:grid;place-items:center;padding:1rem;z-index:40}.modal{width:min(560px,100%);background:#fff;border-radius:16px;padding:1.25rem;display:grid;gap:.85rem;box-shadow:var(--shadow)}.month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.month-grid label{display:flex;gap:.4rem;align-items:center;border:1px solid var(--color-border);border-radius:10px;padding:.45rem .55rem}.month-grid label.already{background:#f3f8f6}@media(max-width:800px){.summary-cards{grid-template-columns:1fr}.month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
