:root{--color-bg:#f5f6f8;--color-surface:#fff;--color-text:#1d2433;--color-muted:#6b7385;--color-border:#dde1e8;--color-primary:#2457d6;--color-primary-hover:#1c46ad;--color-danger:#c62f2f;--color-danger-bg:#fdecec;--color-hover:#eef1f6;--badge-founder:#8a5a00;--badge-founder-bg:#fff3d6;--badge-heir:#1f7a43;--badge-heir-bg:#e2f5e9;--badge-marriage:#7b3fb5;--badge-marriage-bg:#f1e7fb;--badge-pj:#1d5fa8;--badge-pj-bg:#e3eefb;--radius:8px;--space:16px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--color-bg:#12151c;--color-surface:#1b2029;--color-text:#e6e9ef;--color-muted:#9aa3b5;--color-border:#2c3340;--color-primary:#5b8cff;--color-primary-hover:#7aa2ff;--color-danger:#ff6b6b;--color-danger-bg:#3a1f22;--color-hover:#232a35;--badge-founder:#ffcf6b;--badge-founder-bg:#3a3020;--badge-heir:#6fdc9b;--badge-heir-bg:#1d3427;--badge-marriage:#cfa3ff;--badge-marriage-bg:#2f2340;--badge-pj:#8cc2ff;--badge-pj-bg:#1d2c40}}*{box-sizing:border-box}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);margin:0}h1,h2{margin:0 0 var(--space)}.muted{color:var(--color-muted)}.center{text-align:center;margin-top:20vh}.topbar{align-items:center;gap:calc(var(--space) * 2);padding:12px calc(var(--space) * 1.5);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.topbar nav{gap:var(--space);flex:1;display:flex}.topbar nav a{color:var(--color-muted);text-decoration:none}.topbar nav a.active{color:var(--color-primary);font-weight:600}.user{align-items:center;gap:8px;display:flex}.content{max-width:1100px;padding:calc(var(--space) * 2) var(--space);margin:0 auto}.page-header{margin-bottom:var(--space);justify-content:space-between;align-items:center;display:flex}.page-header h1{margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:calc(var(--space) * 1.5);margin-bottom:var(--space)}.auth-page{min-height:100vh;padding:var(--space);place-items:center;display:grid}.auth-card{width:100%;max-width:380px}.auth-card h1{margin-bottom:4px}.link{color:var(--color-primary);cursor:pointer;margin-top:var(--space);background:0 0;border:0;padding:0}.form{gap:var(--space);flex-direction:column;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:14px;font-weight:500}.field input,.field textarea{font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);padding:10px 12px}.field input:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.field.has-error input,.field.has-error textarea{border-color:var(--color-danger)}.field-error{color:var(--color-danger)}.form-actions{justify-content:flex-end;gap:8px;display:flex}.btn{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:8px 14px;font-size:14px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-ghost{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-danger{color:var(--color-danger);border-color:var(--color-danger);background:0 0}.alert{border-radius:var(--radius);margin-bottom:var(--space);padding:10px 12px}.alert-error{background:var(--color-danger-bg);color:var(--color-danger)}.table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 14px}.table th{color:var(--color-muted);font-size:13px;font-weight:600}.table tr:last-child td{border-bottom:0}.table .empty{text-align:center;color:var(--color-muted);padding:calc(var(--space) * 2)}.actions-col{text-align:right;white-space:nowrap}.actions-col .btn+.btn{margin-left:8px}.pagination{justify-content:center;align-items:center;gap:var(--space);margin-top:var(--space);display:flex}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--color-hover)}.entity-link{color:var(--color-primary);text-decoration:none}.entity-link:hover{text-decoration:underline}.back-link{color:var(--color-muted);margin-bottom:12px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--color-primary)}h3{margin:0 0 var(--space);font-size:16px}.subtitle{margin:4px 0 0}.header-actions{gap:8px;display:flex}.section{margin-top:calc(var(--space) * 2.5)}.section .page-header h2{margin:0;font-size:20px}.card h2{font-size:18px}.grid-2{gap:var(--space);margin-top:var(--space);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.badge{background:var(--color-hover);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-fundador{background:var(--badge-founder-bg);color:var(--badge-founder)}.badge-heranca{background:var(--badge-heir-bg);color:var(--badge-heir)}.badge-matrimonio{background:var(--badge-marriage-bg);color:var(--badge-marriage)}.badge-ok{background:var(--badge-heir-bg);color:var(--badge-heir)}.badge-pending{background:var(--badge-founder-bg);color:var(--badge-founder)}.field select{font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);padding:10px 12px}.field.has-error select{border-color:var(--color-danger)}.field input:disabled,.field select:disabled{opacity:.6}.required{color:var(--color-danger)}.checkboxes{flex-wrap:wrap;gap:8px 20px;display:flex}.checkbox{align-items:center;gap:6px;display:flex;font-weight:400!important}.family{gap:10px;margin:0;display:grid}.family-row{grid-template-columns:90px 1fr;gap:8px;display:grid}.family-row dt{color:var(--color-muted);font-size:14px}.family-row dd{margin:0}.plain-list{gap:6px;margin:0;padding-left:18px;display:grid}.kinship-answer{font-size:17px}.kinship-path{gap:4px;margin:0;padding-left:22px;display:grid}.badge-admin{background:var(--badge-marriage-bg);color:var(--badge-marriage)}.badge-off{background:var(--color-danger-bg);color:var(--color-danger)}.notice{border-radius:var(--radius);background:var(--badge-heir-bg);color:var(--badge-heir);padding:10px 12px}.form-actions.start{margin-top:var(--space);flex-wrap:wrap;justify-content:flex-start;align-items:center}.back-link.inline{margin:0 0 0 8px}.small{margin-top:var(--space);font-size:13px}.user a{text-decoration:none}.user a:hover{color:var(--color-primary)}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:360px;display:-webkit-box;overflow:hidden}.badge-pf{background:var(--color-hover);color:var(--color-muted)}.badge-pj{background:var(--badge-pj-bg);color:var(--badge-pj)}.card h4{margin:var(--space) 0 6px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:13px}.card h2+h4{margin-top:0}.description{max-width:70ch;margin:8px 0 0}.table tfoot td{border-top:2px solid var(--color-border);background:var(--color-hover);border-bottom:0;font-weight:600}.group+.group{margin-top:calc(var(--space) * 1.5)}.group-title{margin:0 0 8px;font-size:15px}.mismatch{color:var(--color-danger);font-weight:600}.mismatch small{font-size:11px;font-weight:400;display:block}.group .table{table-layout:fixed}.group .table th:first-child{width:18%}.group .table .actions-col{width:185px}.search-bar{align-items:center;gap:var(--space);margin-bottom:var(--space);flex-wrap:wrap;display:flex}.search{flex:1;min-width:220px;max-width:420px;position:relative}.search input{width:100%;font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:10px 36px 10px 12px}.search input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.search input::-webkit-search-cancel-button{display:none}.search-clear{color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:20px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.search-clear:hover{color:var(--color-text)}:root{--urgent:#c62f2f;--urgent-bg:#fdecec;--urgent-border:#f3b9b9;--urgent-on:#fff;--soon:#8a5a00;--soon-bg:#fff3d6;--soon-border:#f3d58f;--none:#6b7385;--none-bg:#eef1f6}@media (prefers-color-scheme:dark){:root{--urgent:#ff7b7b;--urgent-bg:#3a1f22;--urgent-border:#6a2f33;--urgent-on:#2a0d0f;--soon:#ffcf6b;--soon-bg:#3a3020;--soon-border:#5e4a22;--none:#9aa3b5;--none-bg:#232a35}}.small-text{font-size:13px}.hero{gap:calc(var(--space) * 1.5);padding:calc(var(--space) * 1.5);margin-bottom:var(--space);border-radius:calc(var(--radius) * 1.5);background:linear-gradient(135deg, var(--urgent-bg), var(--color-surface) 70%);border:1px solid var(--urgent-border);border-left:6px solid var(--urgent);align-items:flex-start;display:flex}.hero-empty{border-left-color:var(--none);border-color:var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center}.hero-body{flex:1;min-width:0}.hero-label{letter-spacing:.06em;text-transform:uppercase;color:var(--urgent);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 6px;font-size:12px;font-weight:700;display:flex}.hero-empty .hero-label{color:var(--color-muted)}.hero h2{margin:0 0 4px;font-size:26px}.hero h2 a{color:inherit;text-decoration:none}.hero h2 a:hover{color:var(--urgent)}.hero-date{margin:0 0 10px;font-size:16px}.hero-date:first-letter{text-transform:uppercase}.hero-summary{white-space:pre-line;max-width:70ch;margin:0 0 8px}.hero .btn{text-decoration:none}.date-block{border-radius:var(--radius);background:var(--none-bg);width:56px;height:60px;color:var(--none);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.date-block-month{text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.date-block-day{margin-top:4px;font-size:24px;font-weight:700}.date-block.large{width:92px;height:100px}.date-block.large .date-block-month{font-size:14px}.date-block.large .date-block-day{font-size:42px}.date-block.urgent{background:var(--urgent);color:var(--urgent-on);box-shadow:0 6px 18px -8px var(--urgent)}.date-block.soon{background:var(--soon-bg);color:var(--soon);border:1px solid var(--soon-border)}.countdown{letter-spacing:0;text-transform:none;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.countdown.urgent{background:var(--urgent);color:var(--urgent-on)}.countdown.soon{background:var(--soon-bg);color:var(--soon)}.home-grid{gap:var(--space);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}.home-side{gap:var(--space);flex-direction:column;display:flex}.home-side .card,.home-grid>.card{margin-bottom:0}@media (width<=860px){.home-grid{grid-template-columns:1fr}.hero{flex-direction:column}}.agenda-month+.agenda-month{margin-top:var(--space)}.agenda-month h4:first-letter{text-transform:uppercase}.agenda{gap:4px;margin:0;padding:0;list-style:none;display:grid}.agenda-item{border-radius:var(--radius);border-left:3px solid var(--soon-border);gap:12px;padding:8px;display:flex}.agenda-item:hover{background:var(--color-hover)}.agenda-body{flex-direction:column;gap:2px;min-width:0;display:flex}.agenda-title{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.agenda-summary{max-width:none;margin:4px 0 0;font-size:13px}.attention{border-top:3px solid var(--soon)}.attention-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.attention-list li{border-left:3px solid var(--soon-border);flex-direction:column;gap:2px;padding-left:12px;display:flex}.attention-list li .small-text{color:var(--soon)}.attention-list li.critical{border-left-color:var(--urgent)}.attention-list li.critical .small-text{color:var(--urgent);font-weight:600}.recent li{font-size:14px}.chip{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.chip.urgent{background:var(--urgent);color:var(--urgent-on)}.chip.soon{background:var(--soon-bg);color:var(--soon);border:1px solid var(--soon-border)}.chip.none{background:var(--none-bg);color:var(--none)}.legend{flex-wrap:wrap;gap:8px;display:flex}.home .section .page-header h2{margin:0;font-size:20px}.home .page-header .subtitle:first-letter{text-transform:uppercase}:root{--series-1:#2a78d6;--series-2:#eb6834;--chart-grid:#e6e9ef;--chart-axis:#6b7385}@media (prefers-color-scheme:dark){:root{--series-1:#3987e5;--series-2:#d95926;--chart-grid:#2a313d;--chart-axis:#9aa3b5}}.line-chart{position:relative}.chart-area{width:100%;position:relative}.chart-legend{color:var(--color-muted);gap:16px;margin:0 0 8px;padding:0;font-size:13px;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:flex}.chart-key{border-radius:2px;width:14px;height:3px;display:inline-block}.chart-grid{stroke:var(--chart-grid);stroke-width:1px}.chart-axis{fill:var(--chart-axis);font-size:11px}.chart-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart-dot{stroke:var(--color-surface);stroke-width:2px}.chart-end-label{fill:var(--color-text);font-size:12px;font-weight:600}.chart-crosshair{stroke:var(--chart-axis);stroke-width:1px}.chart-tooltip{pointer-events:none;background:var(--color-surface);min-width:180px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 10px;font-size:12px;position:absolute;box-shadow:0 6px 20px -8px #00000059}.chart-tooltip strong{margin-bottom:4px;display:block}.chart-tooltip-row{align-items:center;gap:6px;display:flex}.chart-tooltip-value{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.atr-panel{margin-top:var(--space)}.atr-header{justify-content:space-between;align-items:flex-start;gap:var(--space);flex-wrap:wrap;display:flex}.atr-header h2{margin-bottom:2px}.atr-stats{gap:var(--space);margin:var(--space) 0;grid-template-columns:1.4fr repeat(3,1fr);display:grid}@media (width<=860px){.atr-stats{grid-template-columns:1fr 1fr}}.atr-stat{border-radius:var(--radius);background:var(--color-bg);flex-direction:column;gap:4px;padding:12px;display:flex}.atr-stat-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.atr-stat-value{font-variant-numeric:tabular-nums;font-size:48px;font-weight:700;line-height:1.05}.atr-stat-value.small{font-size:24px}.atr-stat-value small{color:var(--color-muted);margin-left:4px;font-size:14px;font-weight:500}.change{font-size:13px;font-weight:600}.change.up{color:var(--badge-heir)}.change.down{color:var(--color-danger)}.chart-marker{stroke:var(--chart-axis);stroke-width:1px;opacity:.45}.chart-marker-label{fill:var(--chart-axis);font-size:11px}.import-bar{align-items:center;gap:var(--space);margin-bottom:var(--space);flex-wrap:wrap;display:flex}.inline-notice{margin:0;padding:6px 12px}.import-panel h3{margin-bottom:4px}.dropzone{padding:calc(var(--space) * 2);border:2px dashed var(--color-border);border-radius:var(--radius);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.dropzone:hover{border-color:var(--color-primary)}.dropzone strong{color:var(--color-primary)}.reading p{margin:0 0 8px}.progress{background:var(--color-hover);border-radius:999px;height:6px;overflow:hidden}.progress>div{background:var(--color-primary);height:100%;transition:width .2s}.import-preview{gap:calc(var(--space) * 1.5);margin-top:var(--space);grid-template-columns:minmax(0,2fr) minmax(0,3fr);display:grid}@media (width<=860px){.import-preview{grid-template-columns:1fr}}.import-image{margin:0}.import-image img{border:1px solid var(--color-border);border-radius:var(--radius);width:100%}.import-form{flex-direction:column;gap:12px;min-width:0;display:flex}.import-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.import-options .field span{font-size:14px;font-weight:500}.import-options input,.import-table input{font:inherit;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text);padding:6px 8px}.import-table th,.import-table td{vertical-align:top;padding:6px 8px}.import-table tr.has-warning input{border-color:var(--soon);background:var(--soon-bg)}.warning-text{color:var(--soon);margin-top:4px}.link.danger{color:var(--color-danger);margin:0;font-size:20px;line-height:1}.import-form>.link{align-self:flex-start;margin:0}.ocr-text{white-space:pre-wrap;background:var(--color-bg);border-radius:var(--radius);max-height:200px;padding:8px;font-size:12px;overflow:auto}
