@import "https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@500;600&family=Heebo:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap";:root{color:#292b27;font-synthesis:none;text-rendering:optimizelegibility;--ink:#292b27;--muted:#787b72;--line:#dedbd1;--paper:#fffefa;--canvas:#f5f3ed;--green:#2f6a55;--green-soft:#e2eee7;--rose:#9b5d59;--rose-soft:#f2e5e2;--blue:#4d6f83;--blue-soft:#e4edf2;--gold:#9a792e;--gold-soft:#f1ead8;background:#f6f3ec;font-family:Manrope,Heebo,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{background:var(--canvas);flex-direction:column;height:100vh;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--line);z-index:20;background:#fffefaf5;flex:none;align-items:center;gap:24px;height:72px;padding:0 22px;display:flex;position:relative}.demo-notice{background:var(--green-soft);color:var(--green);z-index:20;border-bottom:1px solid #c3d8cc;flex:none;align-items:center;gap:12px;padding:8px 22px;font-size:12px;display:flex;position:relative}.demo-notice p{flex:1;margin:0;line-height:1.4}.demo-notice-dismiss{color:var(--green);cursor:pointer;opacity:.7;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;width:24px;height:24px;display:grid}.demo-notice-dismiss:hover{opacity:1;background:#2f6a551a}.brand{align-items:center;gap:10px;min-width:190px;display:flex}.brand-mark{color:#fff;background:var(--green);border-radius:11px;place-items:center;width:38px;height:38px;display:grid;transform:rotate(-4deg)}.brand-mark svg{transform:rotate(4deg)}.brand div{line-height:1.1;display:grid}.brand strong{letter-spacing:.01em;font-family:Frank Ruhl Libre,serif;font-size:20px}.brand div span{color:var(--muted);font-family:Heebo,sans-serif;font-size:12px}.tree-title-field{flex:1;justify-items:center;gap:1px;display:grid}.tree-title-field span{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:10px;font-weight:700}.tree-title-field input{text-align:center;width:min(320px,100%);color:var(--ink);background:0 0;border:0;border-radius:6px;outline:0;font:600 18px Frank Ruhl Libre,serif}.tree-title-field input:focus{background:#f2efe7}.header-actions{justify-content:flex-end;align-items:center;gap:6px;min-width:400px;display:flex}.saved-status{align-items:center;display:inline-flex}.saved-indicator{color:var(--green);white-space:nowrap;font-family:inherit;font-size:12px;font-weight:inherit;background:0 0;border:0;align-items:center;gap:6px;margin-inline-end:6px;padding:0;display:inline-flex}.saved-indicator:enabled{cursor:pointer}.saved-indicator.pending{color:var(--gold)}.saved-indicator.failed,.saved-indicator.conflicted{color:var(--rose)}.saved-indicator.pending svg{animation:1s linear infinite saved-indicator-spin}@keyframes saved-indicator-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.saved-indicator.pending svg{animation:none}}.header-button,.icon-button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:7px;height:36px;padding:0 11px;display:inline-flex}.header-button:hover,.icon-button:hover{background:#f1eee6;border-color:#cac6bb}.header-button:disabled{opacity:.4;cursor:not-allowed}.header-button.icon-only{width:36px;padding:0}.workspace{flex:1;grid-template-columns:364px minmax(0,1fr);min-height:0;display:grid}.rtl .workspace{grid-template-columns:minmax(0,1fr) 364px}.rtl .person-sidebar{grid-area:1/2}.rtl .tree-area{grid-area:1/1}.person-sidebar{background:var(--paper);border-inline-end:1px solid var(--line);z-index:10;flex-direction:column;min-height:0;display:flex;position:relative;box-shadow:8px 0 30px #32302909}.rtl .person-sidebar{border-inline-end:0;border-inline-start:1px solid var(--line);box-shadow:-8px 0 30px #32302909}.person-search-wrap{border:1px solid var(--line);background:#f8f6f0;border-radius:10px;align-items:center;gap:9px;height:40px;margin:15px 18px 0;padding:0 11px;display:flex;position:relative}.person-search-wrap>svg{color:var(--muted);flex:none}.person-search-wrap>input{background:0 0;border:0;outline:0;width:100%;font-size:13px}.search-results{top:45px;border:1px solid var(--line);z-index:30;background:#fff;border-radius:10px;padding:6px;position:absolute;inset-inline:0;box-shadow:0 12px 28px #2c2b2621}.search-results button{text-align:start;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;width:100%;padding:7px;font-size:12px;display:flex}.search-results button:hover{background:#f3f0e8}.search-results p{color:var(--muted);padding:4px 8px;font-size:12px}.search-avatar{background:var(--green-soft);width:28px;height:28px;color:var(--green);border-radius:50%;place-items:center;font-weight:700;display:grid}.selected-person-header{align-items:center;gap:12px;margin:18px 18px 13px;display:flex}.profile-avatar{border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.profile-avatar.gender-female{background:var(--rose-soft);color:var(--rose)}.profile-avatar.gender-male{background:var(--blue-soft);color:var(--blue)}.profile-avatar.gender-unknown{background:var(--gold-soft);color:var(--gold)}.selected-person-header div{min-width:0}.selected-person-header span{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:700;display:block}.selected-person-header h2{white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font:600 21px Frank Ruhl Libre,Heebo,serif;overflow:hidden}.sidebar-scroll{scrollbar-width:thin;padding:0 18px 28px;overflow-y:auto}.form-section{border-top:1px solid #ebe8df;gap:11px;padding:15px 0 17px;display:grid}.form-section h3{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:11px}.form-section label,.gender-field{color:#666960;gap:5px;font-size:11px;font-weight:600;display:grid}.form-section input,.form-section select,.dialog input{border:1px solid var(--line);width:100%;height:37px;color:var(--ink);background:#fff;border-radius:8px;outline:0;padding:0 10px}.form-section input:focus,.form-section select:focus,.dialog input:focus,textarea:focus{border-color:#8ead9e;box-shadow:0 0 0 3px #2f6a5514}.form-grid{gap:10px;display:grid}.form-grid.two-column{grid-template-columns:1fr 1fr}.section-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.segmented{border:1px solid var(--line);background:#f4f1e9;border-radius:9px;padding:3px;display:flex}.segmented button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;flex:1;padding:6px 10px;font-size:11px}.segmented button.active{color:var(--green);background:#fff;font-weight:700;box-shadow:0 1px 4px #302f281a}.segmented.compact button{padding-inline:7px}.calendar-switch button{padding:4px 7px;font-size:10px}.date-editor{gap:5px;display:grid}.date-error{color:#a14e49;margin:0;font-size:11px}.field-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.date-alternate{color:var(--green);direction:ltr;align-items:center;gap:4px;font-size:10px;font-weight:500;display:inline-flex}.hebrew-date-inputs{direction:ltr;grid-template-columns:60px 1fr 74px;gap:6px;display:grid}.hebrew-date-inputs select{min-width:0}.form-section textarea{resize:vertical;border:1px solid var(--line);border-radius:8px;outline:0;width:100%;min-height:78px;padding:9px 10px;font-size:12px}.delete-button{color:#9a554e;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-top:3px;padding:8px 0;font-size:12px;display:flex}.edit-toggle{border:1px solid var(--line);background:var(--paper);cursor:pointer;width:36px;height:36px;color:var(--muted);border-radius:9px;flex:none;place-items:center;margin-inline-start:auto;display:grid}.edit-toggle:hover{background:#f1eee6;border-color:#cac6bb}.edit-toggle.active{background:var(--green-soft);color:var(--green);border-color:#88a895}.sidebar-tabs{border:1px solid var(--line);background:#f4f1e9;border-radius:10px;gap:3px;margin:0 18px;padding:3px;display:flex}.sidebar-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;height:34px;font-size:12px;font-weight:600;display:flex}.sidebar-tabs button.active{background:var(--paper);color:var(--green);box-shadow:0 1px 4px #302f281a}.counts-row{gap:10px;display:flex}.count-chip{border:1px solid var(--line);background:#f9f7f1;border-radius:11px;flex-direction:column;flex:1;align-items:center;padding:12px 8px;display:flex}.count-number{color:var(--green);font:700 22px/1 Frank Ruhl Libre,Heebo,serif}.count-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:4px;font-size:10px;font-weight:600}.relationships-view{gap:18px;display:grid}.rel-group h3{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:0 0 7px;font-size:11px}.rel-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.rel-list button{border:1px solid var(--line);background:var(--paper);text-align:start;cursor:pointer;width:100%;color:var(--ink);border-radius:8px;padding:8px 11px;font-size:12px}.rel-list button:hover{background:var(--green-soft);color:var(--green);border-color:#88a895}.rel-empty{color:var(--muted);margin:0;font-size:12px}.attribution{color:var(--muted);margin:12px 0 0;font-size:12px}.form-section input[readonly],.form-section textarea[readonly]{color:var(--ink);cursor:default;background:#f8f6f0}.form-section input[readonly]:focus,.form-section textarea[readonly]:focus{border-color:var(--line);box-shadow:none}.gender-field .segmented button:disabled{opacity:.5;cursor:default}.error-screen{z-index:100;background:var(--canvas);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.error-card{background:var(--paper);border:1px solid var(--line);text-align:center;border-radius:18px;justify-items:center;gap:14px;width:min(440px,100%);padding:36px;display:grid;box-shadow:0 25px 65px #1e1f1b26}.error-icon{background:var(--gold-soft);width:72px;height:72px;color:var(--gold);border-radius:50%;place-items:center;display:grid}.error-card h1{margin:0;font:600 24px Frank Ruhl Libre,Heebo,serif}.error-card p{color:var(--muted);max-width:320px;margin:0;font-size:13px;line-height:1.5}.error-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.error-actions .button{align-items:center;gap:7px;display:inline-flex}.error-actions .button.danger{color:#fff;background:#9a554e;border-color:#9a554e}.error-actions-danger{margin-top:4px}.error-actions-danger .button{opacity:.8;font-size:11px}.error-actions-danger .button:hover{opacity:1}.tree-area{flex-direction:column;min-width:0;min-height:0;display:flex}.tree-toolbar{border-bottom:1px solid var(--line);background:#fffefad1;flex:none;align-items:center;gap:18px;height:64px;padding:0 20px;display:flex}.selected-context{min-width:115px;line-height:1.15;display:grid}.selected-context span{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;font-size:9px;font-weight:700}.selected-context strong{font:600 16px Frank Ruhl Libre,Heebo,serif}.relative-actions{flex:1;gap:7px;display:flex}.relative-actions button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:9px;align-items:center;gap:7px;height:36px;padding:0 12px;font-size:12px;display:inline-flex}.relative-actions button:hover{background:var(--green-soft);color:var(--green);border-color:#8ead9e}.people-count{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.tree-viewport{background-color:var(--canvas);background-image:radial-gradient(#d8d5ca 1px,#0000 1px);background-size:22px 22px;flex:1;min-height:0;position:relative;overflow:hidden}.print-heading{display:none}.tree-scroll{scrollbar-width:thin;width:100%;height:100%;overflow:auto}.tree-scale{margin:0 auto}.tree-canvas{transform-origin:0 0;position:relative}.tree-lines{position:absolute;inset:0;overflow:visible}.tree-lines path{fill:none;stroke:#aaa79e;stroke-width:1.5px}.tree-lines path.spouse{stroke:#837b6d;stroke-width:2px;stroke-dasharray:3 3}.person-card{text-align:start;background:#fffefaf7;border:1px solid #d8d4ca;border-radius:13px;width:216px;height:118px;transition:border-color .16s,box-shadow .16s,transform .16s;position:absolute;box-shadow:0 5px 15px #37342b12}.person-card:before{content:"";background:var(--gold);border-radius:0 3px 3px 0;width:3px;position:absolute;inset-block:14px;inset-inline-start:0}.rtl .person-card:before{border-radius:3px 0 0 3px}.person-card.gender-female:before{background:var(--rose)}.person-card.gender-male:before{background:var(--blue)}.person-card:hover{border-color:#b6b1a5;transform:translateY(-2px);box-shadow:0 9px 22px #37342b1c}.person-card.selected{border:2px solid var(--green);box-shadow:0 0 0 4px #2f6a5517,0 9px 24px #37342b1a}.person-card-main{text-align:start;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:11px;width:100%;height:100%;padding:14px;display:flex}.branch-toggle{inset-inline-end:9px;background:var(--paper);width:25px;height:25px;color:var(--green);cursor:pointer;z-index:2;border:1px solid #c8c4b9;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-12px;box-shadow:0 2px 7px #302e281f}.branch-toggle:hover{background:var(--green-soft);border-color:#88a895}.avatar{background:var(--gold-soft);width:38px;height:38px;color:var(--gold);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.gender-female .avatar{background:var(--rose-soft);color:var(--rose)}.gender-male .avatar{background:var(--blue-soft);color:var(--blue)}.gender-unknown .avatar{background:var(--gold-soft);color:var(--gold)}.person-content{flex-direction:column;width:100%;min-width:0;display:flex}.person-name{white-space:nowrap;text-overflow:ellipsis;font:600 16px Frank Ruhl Libre,Heebo,serif;overflow:hidden}.person-hebrew{color:var(--muted);text-align:start;direction:rtl;font-family:Heebo,sans-serif;font-size:12px}.person-date{color:var(--green);text-align:start;direction:ltr;margin-top:7px;font-size:10px}.person-place{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:3px;margin-top:3px;font-size:9px;display:flex;overflow:hidden}.zoom-controls{z-index:8;inset-inline-end:18px;background:var(--paper);border:1px solid var(--line);border-radius:10px;align-items:center;height:38px;display:flex;position:absolute;bottom:17px;overflow:hidden;box-shadow:0 5px 16px #32312b1a}.zoom-controls button{border:0;border-inline-end:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;width:38px;height:100%;display:grid}.zoom-controls button:last-child{border-inline-start:1px solid var(--line);border-inline-end:0}.zoom-controls button:hover{background:#f1eee6}.zoom-controls .expand-all{color:var(--green);width:42px}.zoom-controls span{text-align:center;width:50px;color:var(--muted);font-size:10px}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#22231f61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);border-radius:18px;gap:17px;width:min(440px,100%);padding:24px;display:grid;box-shadow:0 25px 65px #1e1f1b40}.dialog-heading{justify-content:space-between;align-items:flex-start;display:flex}.dialog-heading span{color:var(--green);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}.dialog-heading h2{margin:2px 0 0;font:600 24px Frank Ruhl Libre,Heebo,serif}.dialog label{color:var(--muted);gap:5px;font-size:11px;font-weight:600;display:grid}.dialog .gender-field{color:var(--muted)}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:3px;display:flex}.button{cursor:pointer;border:1px solid var(--line);border-radius:9px;height:39px;padding:0 15px}.button.secondary{background:#fff}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.form-error{color:#a14e49;margin:-6px 0 0;font-size:11px}@media (width<=1000px){.saved-label{display:none}.saved-indicator{justify-content:center;width:36px;min-width:36px;height:36px;margin-inline-end:0;padding:0}.label-optional span{display:none}.header-actions,.brand{min-width:auto}.workspace{grid-template-columns:320px minmax(0,1fr)}.rtl .workspace{grid-template-columns:minmax(0,1fr) 320px}.relative-actions button span{display:none}.relative-actions button{justify-content:center;width:38px;padding:0}}@media (width<=720px){body{overflow:auto}.demo-notice{padding:7px 12px;font-size:11px}.app-header{gap:10px;height:62px;padding:0 12px}.brand div,.tree-title-field span,.header-button.icon-only{display:none}.brand{flex:0}.brand-mark{width:35px;height:35px}.tree-title-field{justify-items:start}.tree-title-field input{text-align:start;font-size:16px}.header-button{width:35px;padding:0}.workspace,.rtl .workspace{flex-direction:column;flex:none;height:auto;min-height:calc(100vh - 62px);display:flex}.person-sidebar{border-top:1px solid var(--line);order:2;height:auto;max-height:none}.tree-area{order:1;height:62vh;min-height:450px}.tree-toolbar{gap:8px;height:58px;padding:0 12px}.selected-context{min-width:88px}.people-count{display:none}.person-sidebar{border-inline:0}.sidebar-scroll{overflow:visible}}@page{size:A3 landscape;margin:8mm}@media print{:root,body,#root,.app-shell{width:auto;height:auto;background:#fff!important;overflow:visible!important}.app-header,.person-sidebar,.tree-toolbar,.zoom-controls,.demo-notice{display:none!important}.workspace,.rtl .workspace{height:auto;display:block}.tree-area,.tree-viewport,.tree-scroll{width:auto;height:auto;display:block;background:#fff!important;overflow:visible!important}.tree-scale{margin:0;width:auto!important;height:auto!important}.print-heading{text-align:center;color:var(--ink);padding:5mm 0 3mm;display:block}.print-heading span{color:var(--green);text-transform:uppercase;letter-spacing:.12em;font-size:9pt;font-weight:700}.print-heading h1{margin:1mm 0;font:600 24pt Frank Ruhl Libre,Heebo,serif}.print-heading p{color:var(--muted);margin:0;font-size:8pt}.tree-canvas{margin-inline:auto;transform:scale(var(--print-scale))!important;transform-origin:top!important}.rtl .tree-canvas{transform-origin:100% 0!important}.person-card{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.branch-toggle{display:none}}.auth-screen{background:var(--bg,#f5f5f7);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:#fff;border-radius:12px;flex-direction:column;gap:1rem;width:100%;max-width:400px;padding:2rem;display:flex;box-shadow:0 2px 12px #00000014}.auth-brand{color:var(--accent,#3b82f6);align-items:center;gap:.5rem;display:flex}.auth-brand strong{font-size:1.4rem}.auth-brand span{color:#666;font-size:.85rem}.auth-title{margin:0;font-size:1.25rem;font-weight:600}.auth-info{color:#1e40af;background:#eff6ff;border-radius:8px;margin:0;padding:.75rem 1rem;font-size:.9rem}.auth-error{color:#dc2626;background:#fef2f2;border-radius:8px;margin:0;padding:.75rem 1rem;font-size:.9rem}.auth-form{flex-direction:column;gap:.75rem;display:flex}.auth-field{flex-direction:column;gap:.25rem;display:flex}.auth-field span{color:#555;font-size:.85rem;font-weight:500}.auth-field input{border:1px solid #d1d5db;border-radius:8px;padding:.625rem .75rem;font-size:.95rem;transition:border-color .15s}.auth-field input:focus{border-color:var(--accent,#3b82f6);outline:none;box-shadow:0 0 0 3px #3b82f626}.auth-submit{background:var(--accent,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.95rem;font-weight:500;transition:background .15s;display:flex}.auth-submit:hover:not(:disabled){background:#2563eb}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-links{flex-direction:column;align-items:center;gap:.5rem;display:flex}.auth-link{color:var(--accent,#3b82f6);cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.auth-link:hover{color:#2563eb}.auth-language-toggle{color:#999;cursor:pointer;background:0 0;border:none;align-self:center;font-size:.8rem}.auth-language-toggle:hover{color:#555}.tree-list-screen{background:var(--bg,#f5f5f7);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.tree-list-container{background:#fff;border-radius:12px;width:100%;max-width:600px;padding:2rem;box-shadow:0 2px 12px #00000014}.tree-list-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.tree-list-header h1{margin:0;font-size:1.5rem;font-weight:600}.tree-list-loading{color:#999;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.tree-list-empty{text-align:center;color:#999;padding:2rem 0}.tree-list-items{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.tree-list-item{cursor:pointer;text-align:start;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:.75rem;width:100%;padding:.875rem 1rem;transition:background .15s;display:flex}.tree-list-item:hover{background:#eff6ff;border-color:#bfdbfe}.tree-list-name{flex:1;font-weight:500}.tree-list-role{color:#999;text-transform:capitalize;font-size:.8rem}.tree-list-create{gap:.5rem;margin-bottom:1rem;display:flex}.tree-list-create input{border:1px solid #d1d5db;border-radius:8px;flex:1;padding:.625rem .75rem;font-size:.95rem}.tree-list-create input:focus{border-color:var(--accent,#3b82f6);outline:none}.tree-list-create button{background:var(--accent,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.9rem;display:flex}.tree-list-create button:disabled{opacity:.5}.tree-list-migrate{cursor:pointer;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:.5rem;width:100%;padding:.625rem 1rem;font-size:.9rem;display:flex}.tree-list-migrate:hover:not(:disabled){background:#dcfce7}.tree-list-migrate:disabled{opacity:.5}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.manage-access-overlay{z-index:200;background:#00000059;justify-content:center;align-items:flex-start;padding-top:6vh;display:flex;position:fixed;inset:0;overflow-y:auto}.manage-access-overlay.rtl{direction:rtl}.manage-access-panel{background:var(--paper);border-radius:12px;width:min(560px,92vw);max-height:82vh;padding:24px 28px 28px;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.manage-access-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.manage-access-header h2{margin:0;font-size:1.15rem}.manage-access-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px}.manage-access-close:hover{background:var(--canvas);color:var(--ink)}.manage-access-error{background:var(--rose-soft);color:var(--rose);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;font-size:.875rem;display:flex}.manage-access-section{margin-bottom:24px}.manage-access-section h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:.95rem}.invite-form{flex-wrap:wrap;gap:8px;display:flex}.invite-form input[type=email]{border:1px solid var(--line);border-radius:8px;flex:1;min-width:180px;padding:8px 12px}.invite-form input[type=email]:focus{border-color:var(--green);outline:none}.invite-form select{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 12px}.invite-form button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;display:flex}.invite-form button:disabled{opacity:.5}.role-hint{color:var(--muted);margin:8px 0 0;font-size:.8rem;line-height:1.5}.invite-result{background:var(--canvas);border-radius:8px;margin-top:12px;padding:12px}.invite-success,.invite-warning{align-items:center;gap:8px;margin:0 0 8px;font-size:.875rem;display:flex}.invite-success{color:var(--green)}.invite-warning{color:var(--gold)}.invite-link-row{gap:8px;display:flex}.invite-link{border:1px solid var(--line);color:var(--muted);background:var(--paper);border-radius:6px;flex:1;padding:6px 10px;font-size:.8rem}.invite-link-row button{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:var(--paper);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;display:flex}.invite-link-row button:hover{background:var(--canvas)}.manage-access-loading{color:var(--muted);justify-content:center;padding:16px;display:flex}.manage-access-empty{color:var(--muted);margin:0;font-size:.875rem}.member-list,.invitation-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.member-item{border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.member-item:hover{background:var(--canvas)}.member-info{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.member-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.member-you{color:var(--muted);font-size:.8rem}.member-role-badge{background:var(--green-soft);color:var(--green);white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:.75rem}.member-role-select{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:20px;padding:2px 8px;font-size:.75rem}.remove-member-btn{cursor:pointer;color:var(--muted);opacity:.6;background:0 0;border:none;border-radius:6px;padding:4px}.remove-member-btn:hover{opacity:1;color:var(--rose);background:var(--rose-soft)}.invitation-item{border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.invitation-item:hover{background:var(--canvas)}.invitation-info{align-items:center;gap:12px;display:flex}.invitation-email{font-size:.875rem}.invitation-role{background:var(--gold-soft);color:var(--gold);border-radius:20px;padding:2px 10px;font-size:.75rem}.revoke-btn{border:1px solid var(--line);cursor:pointer;color:var(--muted);background:0 0;border-radius:6px;padding:4px 12px;font-size:.8rem}.revoke-btn:hover{color:var(--rose);border-color:var(--rose)}.invite-accept-screen{background:var(--canvas);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.invite-accept-screen.rtl{direction:rtl}.invite-accept-card{background:var(--paper);border-radius:12px;max-width:420px;padding:32px 40px;box-shadow:0 2px 12px #00000014}.invite-accept-card h1{margin:0 0 12px;font-size:1.25rem}.invite-accept-card p{color:var(--muted);margin:0 0 20px;line-height:1.6}.invite-accept-card .icon-row{color:var(--muted);justify-content:center;margin-bottom:16px;display:flex}.invite-accept-card .icon-row.error{color:var(--rose)}
