:root{--saffron:#e85d04;--saffron-dark:#c94f02;--saffron-soft:#fdebdc;--teal:#0f3d3e;--teal-2:#155455;--teal-soft:#e3efee;--bg:#faf7f2;--gold:#d4a017;--gold-soft:#fbf1d3;--text:#1f2937;--muted:#6b7280;--line:#e7e1d8;--card:#fff;--danger:#b91c1c;--danger-soft:#fde8e8;--success:#15803d;--success-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--radius:14px;--shadow:0 1px 2px #1f29370d, 0 4px 16px #1f29370f;--sidebar-w:248px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,Noto Sans Gujarati,Noto Sans Devanagari,Nirmala UI,sans-serif;font-size:15.5px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--teal);margin:0;font-weight:700}h1{font-size:26px}h2{font-size:19px}h3{font-size:17px}p{margin:0}a{color:var(--saffron-dark);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px}.row{flex-wrap:wrap;align-items:center;display:flex}.gap{gap:10px}.gap-s{gap:6px}.between{justify-content:space-between}.right{justify-content:flex-end}.mt{margin-top:16px}.mb{margin-bottom:16px}.grow{flex:1}.w100{width:100%}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg, var(--teal) 0%, #0b3132 100%);color:#e6f1f0;z-index:30;flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:22px 20px 18px;display:flex}.brand-mark{background:var(--saffron);color:#fff;border-radius:12px;place-items:center;width:42px;height:42px;font-size:22px;font-weight:800;display:grid;box-shadow:0 4px 12px #e85d0466}.brand strong{color:#fff;letter-spacing:.02em;font-size:18px;display:block}.brand small{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.sidebar nav{flex-direction:column;flex:1;gap:2px;padding:12px;display:flex;overflow-y:auto}.sidebar nav a{color:#cfe0df;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:15px;font-weight:500;transition:background .15s;display:flex}.sidebar nav a:hover{color:#fff;background:#ffffff12;text-decoration:none}.sidebar nav a.active{background:var(--saffron);color:#fff;box-shadow:0 4px 12px #e85d0459}.nav-icon{text-align:center;width:24px;font-size:17px}.sidebar-foot{color:#8fb3b1;border-top:1px solid #ffffff14;padding:14px 20px;font-size:12px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#faf7f2eb;align-items:center;gap:14px;min-height:62px;padding:10px 28px;display:flex;position:sticky;top:0}.topbar-title{color:var(--teal);font-size:17px;font-weight:700}.topbar-user{align-items:center;gap:12px;margin-left:auto;display:flex}.topbar-user-text{flex-direction:column;line-height:1.2;display:flex}.topbar-user-text small{color:var(--muted);font-size:12px}.menu-btn,.nav-backdrop{display:none}.content{width:100%;max-width:1400px;padding:26px 28px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin-top:4px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:18px}.card-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}.span-2{grid-column:span 2}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;align-items:center;gap:14px;padding:18px 20px;transition:transform .15s;display:flex}.stat:hover{transform:translateY(-2px)}.stat-icon{background:var(--saffron-soft);border-radius:12px;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.stat-icon.teal{background:var(--teal-soft)}.stat-icon.gold{background:var(--gold-soft)}.stat strong{color:var(--teal);font-size:26px;line-height:1.1;display:block}.stat small{color:var(--muted);font-size:13px}.btn{font:inherit;cursor:pointer;background:var(--teal-soft);color:var(--teal);white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-size:14.5px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover{background:#d3e5e3}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--saffron);color:#fff;box-shadow:0 2px 8px #e85d044d}.btn-primary:hover{background:var(--saffron-dark)}.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{background:var(--teal-2)}.btn-ghost{border-color:var(--line);color:var(--text);background:0 0}.btn-ghost:hover{background:#f3efe8}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{background:#fbd5d5}.btn-success{background:var(--success-soft);color:var(--success)}.btn-success:hover{background:#c7f0d4}.btn-sm{border-radius:8px;padding:5px 10px;font-size:13px}.btn-xs{border-radius:7px;padding:3px 8px;font-size:12px}.icon-btn{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:15px}.icon-btn:hover{color:var(--text);background:#f3efe8}.actions{flex-wrap:wrap;gap:6px;display:flex}input[type=text],input[type=search],input[type=number],input[type=password],input[type=date],input[type=time],input[type=datetime-local],input[type=url],input[type=email],input[type=tel],select,textarea{width:100%;font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:10px;outline:none;padding:9px 12px;font-size:15px;transition:border .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--saffron);box-shadow:0 0 0 3px #e85d0426}textarea{resize:vertical;min-height:70px}.field{flex-direction:column;gap:5px;font-size:14px;display:flex}.field>span{color:var(--teal);font-size:13.5px;font-weight:600}.field .req{color:var(--saffron);margin-left:3px;font-style:normal}.field .hint{color:var(--muted);font-size:12.5px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.form-grid .full{grid-column:1/-1}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.filters input,.filters select{width:auto;min-width:150px}.filters input[type=search],.filters input[type=text]{flex:1;min-width:240px}.check{cursor:pointer;align-items:center;gap:8px;font-size:14.5px;display:inline-flex}.check input{width:17px;height:17px;accent-color:var(--saffron)}.toggle{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle.disabled{opacity:.5;cursor:not-allowed}.toggle input{display:none}.toggle .track{background:#d6d1c8;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:background .15s;position:relative}.toggle .knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle input:checked+.track{background:var(--success)}.toggle input:checked+.track .knob{left:21px}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14.5px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}th{color:var(--teal);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:#f6f2ea;font-size:13px;font-weight:700}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fcfaf6}td.num{text-align:right;font-variant-numeric:tabular-nums}.cell-person{align-items:center;gap:10px;display:flex}.cell-person strong{display:block}.cell-person small{color:var(--muted);font-size:12.5px}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 4px;display:flex}.badge{text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:12.5px;font-weight:600;display:inline-block}.badge-neutral{color:#4b5563;background:#ece8e0}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-teal{background:var(--teal-soft);color:var(--teal)}.badge-saffron{background:var(--saffron-soft);color:var(--saffron-dark)}.badge-gold{background:var(--gold-soft);color:#8a6508}.avatar{object-fit:cover;background:var(--teal-soft);color:var(--teal);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.modal-backdrop{z-index:100;background:#0f3d3e73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border-radius:16px;width:100%;animation:.15s ease-out pop;box-shadow:0 20px 60px #00000040}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-body{padding:20px 22px}.modal-foot{border-top:1px solid var(--line);background:#fbf9f5;border-radius:0 0 16px 16px;justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.confirm-message{font-size:15px;line-height:1.55}.toast-wrap{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--teal);color:#fff;cursor:pointer;border-radius:12px;align-items:center;gap:10px;min-width:260px;max-width:420px;padding:12px 16px;font-size:14.5px;animation:.2s ease-out pop;display:flex;box-shadow:0 8px 24px #0003}.toast-icon{background:#fff3;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid}.toast-success{background:#166534}.toast-error{background:#991b1b}.loading{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:30px;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--saffron);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.fullscreen-center{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);background:#fbf9f5;padding:36px 20px}.error-box{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:12px 14px;font-size:14px}.warn-box{background:var(--warn-soft);color:var(--warn);border:1px solid #f5d98a;border-radius:10px;padding:12px 14px;font-size:14px}.info-box{background:var(--teal-soft);color:var(--teal);border-radius:10px;padding:12px 14px;font-size:14px}.tabs{border-bottom:2px solid var(--line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{font:inherit;cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 16px;font-weight:600}.tab.active{color:var(--saffron-dark);border-color:var(--saffron)}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 0;display:flex}.list-item:last-child{border-bottom:none}.list-item .grow{min-width:0}.kv{grid-template-columns:150px 1fr;gap:6px 14px;font-size:14.5px;display:grid}.kv dt{color:var(--muted);font-weight:500}.kv dd{margin:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:#f1ede5;border-radius:8px;padding:4px 10px;font-size:13px}pre.json{white-space:pre-wrap;word-break:break-all;background:#f6f2ea;border-radius:10px;max-height:260px;padding:10px 12px;font-size:12.5px;overflow-x:auto}.combo{position:relative}.combo-list{border:1px solid var(--line);z-index:50;background:#fff;border-radius:10px;max-height:300px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #0000001f}.combo-item{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f1ede5;align-items:center;gap:10px;padding:8px 12px;display:flex}.combo-item:hover{background:var(--saffron-soft)}.combo-item strong{font-size:14px;display:block}.member-chip{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:10px;max-width:100%;padding:6px 8px;display:inline-flex}.login-page{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.login-hero{background:linear-gradient(160deg, var(--teal) 0%, #0b2f30 100%);color:#fff;flex-direction:column;justify-content:center;padding:60px;display:flex;position:relative;overflow:hidden}.login-hero:after{content:"";background:radial-gradient(circle,#e85d0480,#0000 70%);border-radius:50%;width:480px;height:480px;position:absolute;bottom:-160px;right:-160px}.login-hero h1{color:#fff;margin:18px 0 10px;font-size:40px}.login-hero p{color:#cfe0df;max-width:440px;font-size:17px}.login-hero ul{color:#cfe0df;gap:8px;margin:26px 0 0;padding:0;list-style:none;display:grid}.login-form{justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-card{width:100%;max-width:400px}.login-card h2{margin-bottom:4px;font-size:24px}.demo-hint{background:var(--gold-soft);border:1px solid #f0d98a;border-radius:10px;margin-top:16px;padding:10px 12px;font-size:13.5px}.demo-hint code{background:#fff;border-radius:5px;padding:1px 6px;font-size:13px}.tree-layout{grid-template-columns:1fr 300px;align-items:start;gap:18px;display:grid}.tree-canvas{border:1px solid var(--line);border-radius:var(--radius);height:72vh;min-height:520px;box-shadow:var(--shadow);background:#fffdf9 radial-gradient(#e7e1d8 1px,#0000 1px) 0 0/22px 22px;position:relative;overflow:hidden}.tree-canvas svg{cursor:grab;width:100%;height:100%;display:block}.tree-canvas svg.dragging{cursor:grabbing}.tree-controls{z-index:5;gap:6px;display:flex;position:absolute;top:12px;right:12px}.tree-controls .btn{border-color:var(--line);background:#fff;justify-content:center;min-width:36px}.tree-legend{border:1px solid var(--line);background:#ffffffe6;border-radius:10px;gap:12px;padding:6px 10px;font-size:12.5px;display:flex;position:absolute;bottom:12px;left:12px}.tree-node{cursor:pointer}.tree-node rect.card{fill:#fff;stroke:#d8d1c5;stroke-width:1.2px;filter:drop-shadow(0 2px 3px #00000014)}.tree-node.male rect.card{stroke:#3b82a0}.tree-node.female rect.card{stroke:#d05a8a}.tree-node.focus rect.card{stroke:var(--saffron);stroke-width:3px}.tree-node.deceased rect.card{stroke-dasharray:4 3;fill:#f7f4ee}.tree-node:hover rect.card{fill:#fff7f0}.tree-node text{fill:var(--text);pointer-events:none;font-family:inherit}.tree-node text.name{font-size:13px;font-weight:700}.tree-node text.sub{fill:var(--muted);font-size:11px}.tree-edge{fill:none;stroke:#9aaeae;stroke-width:1.6px}.tree-edge.secondary{stroke-dasharray:5 4;stroke:#c4b2a0}.tree-spouse{stroke:#d05a8a;stroke-width:2px}.gen-label{fill:var(--muted);letter-spacing:.06em;font-size:12px;font-weight:600}.gen-panel{max-height:72vh;overflow-y:auto}.gen-group{margin-bottom:12px}.gen-group h4{text-transform:uppercase;letter-spacing:.06em;color:var(--saffron-dark);margin-bottom:6px;font-size:13px}.gen-group button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:5px 8px;font-size:14px;display:block}.gen-group button:hover{background:var(--saffron-soft)}.gen-group button.focus{background:var(--saffron-soft);font-weight:700}.album-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.album-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;flex-direction:column;transition:transform .15s;display:flex;overflow:hidden}.album-card:hover{transform:translateY(-2px)}.album-cover{aspect-ratio:3/2;background:linear-gradient(135deg, var(--teal-soft), var(--gold-soft));place-items:center;font-size:40px;display:grid;overflow:hidden}.album-cover img{object-fit:cover;width:100%;height:100%}.album-meta{padding:12px 14px}.album-meta strong{font-size:15px;display:block}.album-meta small{color:var(--muted)}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.photo-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;position:relative;overflow:hidden}.photo-card.cover{outline:3px solid var(--gold)}.photo-card img{aspect-ratio:4/3;object-fit:cover;background:#eee;width:100%;display:block}.photo-card .cap{min-height:36px;padding:8px 10px;font-size:13px}.photo-card .photo-actions{flex-wrap:wrap;gap:4px;padding:0 8px 8px;display:flex}.cover-tag{background:var(--gold);color:#fff;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.progress{background:#ece8e0;border-radius:6px;height:10px;overflow:hidden}.progress>div{background:var(--saffron);height:100%;transition:width .2s}.dropzone{text-align:center;cursor:pointer;background:#fffdf9;border:2px dashed #d8cfbf;border-radius:12px;padding:22px}.dropzone:hover{border-color:var(--saffron)}.bar-chart{gap:7px;display:grid}.bar-row{grid-template-columns:150px 1fr 44px;align-items:center;gap:10px;font-size:13.5px;display:grid}.bar-row .label{white-space:nowrap;text-overflow:ellipsis;text-align:right;color:var(--text);overflow:hidden}.bar-row .bar{background:linear-gradient(90deg, var(--saffron), #f59e42);border-radius:5px;min-width:2px;height:18px;transition:width .4s}.bar-row.teal .bar{background:linear-gradient(90deg, var(--teal), #2c7a7b)}.bar-row.gold .bar{background:linear-gradient(90deg, var(--gold), #e9c24d)}.bar-row .val{font-variant-numeric:tabular-nums;color:var(--teal);font-weight:700}.request-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:1fr auto;gap:16px;padding:18px 20px;display:grid}.request-card+.request-card{margin-top:14px}.request-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.radio-group{flex-wrap:wrap;gap:8px;display:flex}.radio-pill{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;display:inline-flex}.radio-pill input{accent-color:var(--saffron)}.radio-pill.on{background:var(--saffron-soft);border-color:var(--saffron);color:var(--saffron-dark);font-weight:600}.selected-members{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}@media (width<=1100px){.grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.tree-layout{grid-template-columns:1fr}.gen-panel{max-height:340px}}@media (width<=900px){.sidebar{transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.shell.nav-open .sidebar{transform:none}.nav-backdrop{z-index:25;background:#00000059;display:block;position:fixed;inset:0}.menu-btn{display:inline-block}.content{padding:18px 16px 50px}.topbar{padding:8px 16px}.grid-3,.grid-2,.login-page{grid-template-columns:1fr}.login-hero{padding:36px 24px}.form-grid,.form-grid-3,.request-card{grid-template-columns:1fr}.topbar-user-text{display:none}.kv{grid-template-columns:1fr}}.form-section{border-top:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:10px;margin:6px 0 -4px;padding-top:10px;display:flex}.form-grid>.form-section:first-child{border-top:0;margin-top:0;padding-top:0}.form-section-title{letter-spacing:.3px;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.form-section-caret{width:14px;color:var(--primary);display:inline-block}.form-section.as-button{border-width:0;border-top:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0}.form-section.as-button:hover .form-section-title{color:var(--primary)}.lang-select{border:1px solid var(--border,#e2e8f0);color:inherit;background:0 0;border-radius:8px;max-width:110px;padding:5px 8px;font-size:13px}
