body{margin:0}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#root{height:100%}:root{--primary:#3b6939;--on-primary:#fff;--primary-container:#bcf0b4;--on-primary-container:#002105;--secondary:#52634f;--secondary-container:#d5e8cf;--on-secondary-container:#101f0f;--tertiary:#39656b;--tertiary-container:#bcebf1;--on-tertiary-container:#001f23;--error:#ba1a1a;--error-container:#ffdad6;--on-error-container:#410002;--surface:#f7fbf1;--surface-lowest:#fff;--surface-low:#f1f5ec;--surface-container:#ebefe6;--surface-high:#e6e9e0;--surface-highest:#e0e4db;--on-surface:#181d17;--on-surface-variant:#424940;--outline:#72796f;--outline-variant:#c2c8bd;--inverse-surface:#2d322c;--inverse-on-surface:#eef2e9;--inverse-primary:#a0d49a;--scrim:#00000052;--shadow:#0000002e;--edge:#8c9388;--edge-hl:#3b6939;--grid:#42494012;--font-body:"Roboto Flex", Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;--font-name:"Roboto Serif", Georgia, "Times New Roman", serif;--font-icon:"Material Symbols Outlined"}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--primary:#a0d49a;--on-primary:#0a390f;--primary-container:#235024;--on-primary-container:#bcf0b4;--secondary:#b9ccb4;--secondary-container:#3b4b39;--on-secondary-container:#d5e8cf;--tertiary:#a1ced5;--tertiary-container:#1f4d53;--on-tertiary-container:#bcebf1;--error:#ffb4ab;--error-container:#93000a;--on-error-container:#ffdad6;--surface:#10140f;--surface-lowest:#0b0f0a;--surface-low:#181d17;--surface-container:#1c211b;--surface-high:#262b25;--surface-highest:#31362f;--on-surface:#e0e4db;--on-surface-variant:#c2c8bd;--outline:#8c9388;--outline-variant:#424940;--inverse-surface:#e0e4db;--inverse-on-surface:#2d322c;--inverse-primary:#3b6939;--scrim:#0000008c;--shadow:#00000080;--edge:#6f776c;--edge-hl:#a0d49a;--grid:#c2c8bd0f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--primary:#a0d49a;--on-primary:#0a390f;--primary-container:#235024;--on-primary-container:#bcf0b4;--secondary:#b9ccb4;--secondary-container:#3b4b39;--on-secondary-container:#d5e8cf;--tertiary:#a1ced5;--tertiary-container:#1f4d53;--on-tertiary-container:#bcebf1;--error:#ffb4ab;--error-container:#93000a;--on-error-container:#ffdad6;--surface:#10140f;--surface-lowest:#0b0f0a;--surface-low:#181d17;--surface-container:#1c211b;--surface-high:#262b25;--surface-highest:#31362f;--on-surface:#e0e4db;--on-surface-variant:#c2c8bd;--outline:#8c9388;--outline-variant:#424940;--inverse-surface:#e0e4db;--inverse-on-surface:#2d322c;--inverse-primary:#3b6939;--scrim:#0000008c;--shadow:#00000080;--edge:#6f776c;--edge-hl:#a0d49a;--grid:#c2c8bd0f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--surface);color:var(--on-surface);font-family:var(--font-body);font-size:14px;line-height:1.45;overflow:hidden}*{box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit}.ms{font-family:var(--font-icon);letter-spacing:normal;text-transform:none;white-space:nowrap;-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0, "opsz" 20;-webkit-user-select:none;user-select:none;direction:ltr;flex:none;font-size:20px;font-style:normal;font-weight:400;line-height:1;display:inline-block}.ms.fill{font-variation-settings:"FILL" 1, "opsz" 20}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app{height:100%;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));flex-direction:column;gap:8px;padding-block:8px 16px;display:flex}.topbar{flex-wrap:wrap;flex:none;align-items:center;gap:12px;min-height:56px;display:flex}.brand{align-items:center;gap:12px;min-width:0;margin-right:auto;display:flex}.brand-mark{background:var(--primary-container);width:40px;height:40px;color:var(--on-primary-container);border-radius:12px;place-items:center;display:grid}.brand-mark .ms{font-size:24px}.brand-text{flex-direction:column;min-width:0;display:flex}.brand-name{font-family:var(--font-name);letter-spacing:.01em;font-size:20px;font-weight:600;line-height:1.15}.tree-name{text-align:left;color:var(--on-surface-variant);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:4px;max-width:46vw;padding:0;font-size:13px;display:flex;overflow:hidden}.tree-name .ms{opacity:.7;font-size:16px}.tree-name:hover{color:var(--on-surface)}.search{flex:280px;min-width:0;max-width:420px;position:relative}.search-box{background:var(--surface-high);height:48px;color:var(--on-surface-variant);border-radius:24px;align-items:center;gap:8px;padding:0 16px;display:flex}.search-box:focus-within{background:var(--surface-highest);outline:2px solid var(--primary)}.search-box input{min-width:0;color:var(--on-surface);background:0 0;border:0;outline:none;flex:1;font-size:15px}.kbd{border:1px solid var(--outline-variant);color:var(--on-surface-variant);background:var(--surface-container);white-space:nowrap;border-radius:6px;flex:none;padding:4px 7px;font-family:inherit;font-size:12px;line-height:1}.search-box:focus-within .kbd{display:none}@media (hover:none){.kbd{display:none}}.menu{z-index:30;background:var(--surface-container);box-shadow:0 4px 16px var(--shadow);border-radius:16px;max-height:360px;padding:6px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.menu-item{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 16px;display:flex}.menu-item:hover,.menu-item.active{background:color-mix(in srgb, var(--on-surface) 8%, transparent)}.menu-item .mi-main{flex-direction:column;min-width:0;display:flex}.menu-item .mi-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.menu-item .mi-sub{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.menu-empty{color:var(--on-surface-variant);padding:12px 16px}.seg{border:1px solid var(--outline);border-radius:20px;height:40px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--on-surface);background:0 0;border:0;align-items:center;gap:6px;padding:0 16px;font-weight:500;display:flex}.seg button+button{border-left:1px solid var(--outline)}.seg button[aria-selected=true]{background:var(--secondary-container);color:var(--on-secondary-container)}.actions{align-items:center;gap:4px;display:flex}.icon-btn{cursor:pointer;width:40px;height:40px;color:var(--on-surface-variant);background:0 0;border:0;border-radius:20px;place-items:center;display:grid}.icon-btn:hover{background:color-mix(in srgb, var(--on-surface) 8%, transparent)}.icon-btn .ms{font-size:22px}.status{border:1px solid var(--outline-variant);height:32px;color:var(--on-surface-variant);white-space:nowrap;cursor:default;background:0 0;border-radius:8px;align-items:center;gap:6px;max-width:260px;padding:0 12px;font-size:13px;display:inline-flex}.status .lbl{text-overflow:ellipsis;overflow:hidden}.status.clickable{cursor:pointer}.status.clickable:hover{background:color-mix(in srgb, var(--on-surface) 8%, transparent)}.status .ms{font-size:18px}.status.warn{background:var(--tertiary-container);color:var(--on-tertiary-container);border-color:#0000}.status.err{background:var(--error-container);color:var(--on-error-container);border-color:#0000}.banner{background:var(--tertiary-container);color:var(--on-tertiary-container);border-radius:16px;flex-wrap:wrap;flex:none;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex}.banner .ms{font-size:22px}.banner-text{flex:260px;min-width:0}.banner-actions{flex-wrap:wrap;gap:8px;display:flex}.btn{cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:0;border-radius:20px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 20px;font-weight:500;display:inline-flex}.btn .ms{margin-left:-4px;font-size:18px}.btn.filled{background:var(--primary);color:var(--on-primary)}.btn.tonal{background:var(--secondary-container);color:var(--on-secondary-container)}.btn.outlined{border:1px solid var(--outline);color:var(--primary);background:0 0}.btn.text{color:var(--primary);background:0 0;padding:0 12px}.btn.danger{color:var(--error);background:0 0;padding:0 12px}.btn.danger-filled{background:var(--error);color:var(--surface-lowest)}.btn:hover{filter:brightness(1.04);box-shadow:0 1px 3px var(--shadow)}.btn.text:hover,.btn.danger:hover,.btn.outlined:hover{box-shadow:none;background:color-mix(in srgb, currentColor 8%, transparent)}.btn:disabled{opacity:.38;cursor:default;box-shadow:none;filter:none}.banner .btn.text{color:var(--on-tertiary-container)}.main{flex:auto;min-height:240px;display:flex;position:relative}.panel{background:var(--surface-low);border-radius:24px;flex:1;min-width:0;position:relative;overflow:hidden}.viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background-image:radial-gradient(var(--grid) 1.2px, transparent 1.3px);background-size:24px 24px;outline:none;position:absolute;inset:0;overflow:hidden}.viewport.dragging{cursor:grabbing}.viewport:focus-visible{box-shadow:inset 0 0 0 2px var(--primary)}.stage{transform-origin:0 0;position:absolute;top:0;left:0}.stage.anim{transition:transform .35s cubic-bezier(.2,0,0,1)}.edges{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.edges path{fill:none;stroke:var(--edge);stroke-width:1.6px;stroke-linejoin:round}.edges path.hl{stroke:var(--edge-hl);stroke-width:2.6px}.edges path.dash{stroke-dasharray:5 5}.edges circle{fill:var(--edge);stroke:none}.edges circle.hl{fill:var(--edge-hl)}.edges.dim path:not(.hl),.edges.dim circle:not(.hl){opacity:.35}.card{border:1px solid var(--outline-variant);background:var(--surface-lowest);text-align:left;cursor:pointer;width:212px;height:96px;color:var(--on-surface);border-radius:16px;grid-template-columns:40px 1fr;gap:10px;padding:10px 12px 10px 10px;transition:opacity .2s,box-shadow .2s,border-color .2s;display:grid;position:absolute}.card:hover{box-shadow:0 2px 8px var(--shadow)}.card.sel{border:2px solid var(--primary);box-shadow:0 4px 14px var(--shadow);padding:9px 11px 9px 9px}.card.dim{opacity:.42}.card.dead{background:var(--surface-container)}.avatar{letter-spacing:.02em;background:var(--surface-highest);width:40px;height:40px;color:var(--on-surface-variant);border-radius:20px;place-items:center;font-size:14px;font-weight:600;display:grid}.sex-K .avatar,.avatar.sex-K{background:var(--tertiary-container);color:var(--on-tertiary-container)}.sex-M .avatar,.avatar.sex-M{background:var(--secondary-container);color:var(--on-secondary-container)}.card-body{flex-direction:column;gap:1px;min-width:0;display:flex}.card-name{font-family:var(--font-name);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;line-height:1.25;overflow:hidden}.card-sub,.card-line{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:12px;line-height:1.35;overflow:hidden}.card-sub{font-style:italic}.sym{width:1em;color:var(--on-surface-variant);font-weight:600;display:inline-block}.zoom{background:var(--surface-container);box-shadow:0 1px 3px var(--shadow);border-radius:16px;flex-direction:column;gap:4px;padding:4px;display:flex;position:absolute;bottom:12px;left:12px}.icon-btn[aria-pressed=true]{background:var(--secondary-container);color:var(--on-secondary-container)}.arrange-bar{z-index:6;background:var(--surface-container);max-width:calc(100% - 24px);box-shadow:0 2px 8px var(--shadow);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;padding:6px 6px 6px 14px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.arrange-bar>.ms{color:var(--primary)}.arr-text{font-weight:500}.arr-chk{cursor:pointer;color:var(--on-surface-variant);align-items:center;gap:6px;display:inline-flex}.arr-chk input{accent-color:var(--primary);width:16px;height:16px}.viewport.arranging .card{cursor:move}.viewport.arranging~.legend{display:none}.card.lifting{z-index:3;box-shadow:0 10px 28px var(--shadow);transition:none}.hint{color:var(--on-surface-variant);background:color-mix(in srgb, var(--surface-low) 85%, transparent);pointer-events:none;border-radius:8px;padding:4px 10px;font-size:12px;position:absolute;bottom:16px;left:72px}.legend{color:var(--on-surface-variant);background:color-mix(in srgb, var(--surface-low) 85%, transparent);pointer-events:none;border-radius:8px;gap:12px;padding:4px 10px;font-size:12px;display:flex;position:absolute;top:12px;right:12px}.legend b{color:var(--on-surface);font-weight:600}.fab{background:var(--primary-container);height:56px;color:var(--on-primary-container);cursor:pointer;box-shadow:0 3px 8px var(--shadow);z-index:5;border:0;border-radius:16px;align-items:center;gap:12px;padding:0 20px 0 16px;font-size:15px;font-weight:600;display:flex;position:absolute;bottom:16px;right:16px}.fab .ms{font-size:24px}.fab:hover{box-shadow:0 6px 14px var(--shadow)}.empty{text-align:center;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.empty-inner{flex-direction:column;align-items:center;gap:12px;max-width:420px;display:flex}.empty-inner>.ms{color:var(--primary);font-size:48px}.empty h2{font-family:var(--font-name);text-wrap:balance;margin:0;font-size:22px;font-weight:600}.empty p{color:var(--on-surface-variant);margin:0}.empty .row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.list-wrap{padding:0 0 88px;position:absolute;inset:0;overflow:auto}.stats-wrap{padding:16px 16px 96px;position:absolute;inset:0;overflow:auto}.stats{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;gap:12px;max-width:1280px;margin:0 auto;display:grid}.st-card{background:var(--surface-lowest);border-radius:16px;min-width:0;padding:16px 18px}.st-card.wide{grid-column:1/-1}.st-card h3{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:600;display:flex}.st-card h3 .ms{font-size:18px}.kpis{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.kpi{background:var(--surface-container);border-radius:12px;padding:10px 12px}.kpi b{font-family:var(--font-name);font-variant-numeric:tabular-nums;color:var(--on-surface);font-size:28px;font-weight:600;line-height:1.15;display:block}.kpi span{color:var(--on-surface-variant);font-size:12px}.facts-list{flex-direction:column;gap:2px;display:flex}.st-row{border-top:1px solid var(--outline-variant);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;padding:6px 0;display:grid}.st-row:first-child{border-top:0}.st-row .k{color:var(--on-surface-variant);font-size:13px}.st-row .v{font-variant-numeric:tabular-nums;text-align:right;font-weight:500}.st-row .sub{color:var(--on-surface-variant);grid-column:1/-1;margin-top:-2px;font-size:12px}.bars{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:minmax(90px,38%) 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.bar-row .bl{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-track{background:var(--surface-container);border-radius:5px;height:10px;overflow:hidden}.bar-fill{background:var(--primary);border-radius:0 4px 4px 0;min-width:2px;height:100%}.bar-row .bv{font-variant-numeric:tabular-nums;color:var(--on-surface-variant);text-align:right;min-width:3ch}.issue{border-top:1px solid var(--outline-variant);padding:10px 0}.issue:first-of-type{border-top:0;padding-top:0}.issue-h{align-items:baseline;gap:8px;font-weight:500;display:flex}.issue-h .n{font-variant-numeric:tabular-nums;color:var(--on-surface-variant);margin-left:auto;font-weight:400}.issue p{color:var(--on-surface-variant);margin:2px 0 6px;font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.pchip-btn{border:1px solid var(--outline-variant);cursor:pointer;color:var(--on-surface);background:0 0;border-radius:8px;padding:4px 10px;font-size:13px}.pchip-btn:hover{background:color-mix(in srgb, var(--on-surface) 8%, transparent)}.ok-note{color:var(--on-surface-variant);align-items:center;gap:8px;font-size:13px;display:flex}.ok-note .ms{color:var(--primary)}.st-note{color:var(--on-surface-variant);margin:10px 0 0;font-size:12px}.empty.loading{background:var(--surface-low);z-index:4}.db-file{background:var(--surface-container);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.db-file .ms{color:var(--primary)}.db-file b{word-break:break-all;display:block}.db-file small{color:var(--on-surface-variant)}.db-note{color:var(--on-surface-variant);font-size:13px}table.people{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;width:max-content;min-width:100%}.people th{white-space:nowrap;background:var(--surface-low);text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--on-surface-variant);border-bottom:1px solid var(--outline-variant);z-index:1;padding:12px;font-size:12px;font-weight:600;position:sticky;top:0}.people th button{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0;display:inline-flex}.people th .ms{font-size:16px}.people td{border-bottom:1px solid var(--outline-variant);vertical-align:middle;white-space:nowrap;padding:8px 12px}.people td.wrap{white-space:normal;min-width:160px;max-width:260px}.people td.wide{white-space:pre-wrap;min-width:220px;max-width:360px}.people td.none{color:var(--outline)}.people .stk{z-index:1;background-color:var(--surface-low);position:sticky;left:0}.people .stk2{left:var(--stk2,0px);box-shadow:inset -1px 0 var(--outline-variant)}.people th.stk{z-index:2}.people tr.row{cursor:pointer}.people tr.row:hover td{background-image:linear-gradient(color-mix(in srgb, var(--on-surface) 5%, transparent), color-mix(in srgb, var(--on-surface) 5%, transparent))}.people tr.row.sel td{background-image:linear-gradient(color-mix(in srgb, var(--primary) 12%, transparent), color-mix(in srgb, var(--primary) 12%, transparent))}.people .pname{align-items:center;gap:10px;display:flex}.people .pname .avatar{width:32px;height:32px;font-size:12px}.people .nm{font-family:var(--font-name);font-weight:600}.people .sm{color:var(--on-surface-variant);font-size:12px}.people .id{color:var(--outline);font-family:ui-monospace,Menlo,monospace;font-size:11px}.sheet{background:var(--surface-container);border-radius:24px;flex-direction:column;flex:none;width:380px;margin-left:8px;display:flex;position:relative;overflow:auto}.sheet-head{align-items:flex-start;gap:12px;padding:20px 12px 8px 20px;display:flex}.sheet-head .avatar{border-radius:28px;width:56px;height:56px;font-size:20px}.sheet-title{flex:1;min-width:0}.sheet-title h2{font-family:var(--font-name);text-wrap:balance;margin:0;font-size:22px;font-weight:600;line-height:1.2}.sheet-title .sub{color:var(--on-surface-variant);font-style:italic}.sheet-title .life{color:var(--on-surface-variant);margin-top:2px;font-size:13px}.sheet-actions{flex-wrap:wrap;gap:8px;padding:8px 20px 12px;display:flex}.info{background:var(--surface-lowest);border-radius:16px;margin:0 12px;padding:2px 0 6px}.info-sec+.info-sec{border-top:1px solid var(--outline-variant);margin-top:4px}.info-h{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);align-items:center;gap:8px;padding:12px 16px 4px;font-size:12px;font-weight:600;display:flex}.info-h .symbig{text-align:center;width:12px;font-size:16px}.info-row{grid-template-columns:128px 1fr;gap:12px;padding:5px 16px;display:grid}.info-row .k{color:var(--on-surface-variant);font-size:13px}.info-row .v{overflow-wrap:anywhere;font-size:14px}.info-row .v.muted{color:var(--outline)}.info-notes{white-space:pre-wrap;overflow-wrap:anywhere;padding:4px 16px 6px;font-size:14px}.info-notes.muted{color:var(--outline)}.rels{padding:12px 12px 4px}.rel-group{margin-bottom:12px}.rel-group h3{letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant);margin:0 8px 6px;font-size:12px;font-weight:600}.rel-list{flex-direction:column;gap:2px;display:flex}.rel-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;width:100%;padding:6px 8px;display:flex}.rel-item:hover{background:color-mix(in srgb, var(--on-surface) 8%, transparent)}.rel-item .avatar{width:32px;height:32px;font-size:12px}.rel-item .rn{font-weight:500}.rel-item .rs{color:var(--on-surface-variant);font-size:12px}.rel-add{flex-wrap:wrap;gap:4px;margin:0 4px;display:flex}.sheet-foot{color:var(--outline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:8px 12px 16px;font-size:11px;display:flex}.tip{z-index:200;background:var(--surface-high);max-width:280px;color:var(--on-surface-variant);box-shadow:0 3px 12px var(--shadow);pointer-events:none;opacity:0;border:0;border-radius:12px;margin:0;padding:10px 14px;font-size:13px;line-height:1.4;transition:opacity .12s,transform .12s;position:fixed;inset:auto;transform:translateY(2px)}.tip.show{opacity:1;transform:none}.tip b{color:var(--on-surface);margin-bottom:2px;font-size:14px;font-weight:600;display:block}.tip kbd{font:inherit;border:1px solid var(--outline-variant);border-radius:4px;padding:0 5px;font-size:12px}.snackbar{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));opacity:0;pointer-events:none;background:var(--inverse-surface);color:var(--inverse-on-surface);box-shadow:0 4px 12px var(--shadow);z-index:100;border-radius:8px;align-items:center;gap:12px;max-width:min(560px,100% - 32px);padding:14px 16px;transition:opacity .2s,transform .2s;display:flex;position:fixed;transform:translate(-50%)translateY(20px)}.snackbar.show{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.snackbar button{color:var(--inverse-primary);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-weight:600}dialog{background:var(--surface-high);color:var(--on-surface);box-shadow:0 8px 32px var(--shadow);border:0;border-radius:28px;width:100%;max-width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);padding:0}dialog::backdrop{background:var(--scrim)}dialog.narrow{max-width:min(440px,100vw - 32px)}.dlg{flex-direction:column;max-height:calc(100dvh - 32px);display:flex}.dlg-head{align-items:center;gap:12px;padding:24px 24px 8px;display:flex}.dlg-head h2{text-wrap:balance;flex:1;margin:0;font-size:22px;font-weight:500}.dlg-body{flex-direction:column;gap:16px;padding:8px 24px 16px;display:flex;overflow:auto}.dlg-body p{margin:0}.dlg-foot{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:12px 24px 20px;display:flex}.dlg-foot .spacer{flex:1}.section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);align-items:center;gap:8px;margin:4px 0 -4px;font-size:12px;font-weight:600;display:flex}.section-title .symbig{font-size:15px}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:1.1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;min-width:0;display:flex;position:relative}.field input,.field textarea,.field select{border:1px solid var(--outline);background:0 0;border-radius:8px;outline:none;width:100%;min-width:0;height:56px;padding:18px 14px 6px;font-size:15px}.field textarea{resize:vertical;height:auto;min-height:88px;padding-top:24px}.field label{color:var(--on-surface-variant);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:0 0;max-width:calc(100% - 24px);padding:0 4px;font-size:15px;transition:all .12s;position:absolute;top:17px;left:12px;overflow:hidden}.field input:focus,.field textarea:focus{border:2px solid var(--primary);padding-left:13px}.field input:focus~label,.field input:not(:placeholder-shown)~label,.field textarea:focus~label,.field textarea:not(:placeholder-shown)~label{color:var(--primary);font-size:11.5px;top:5px}.field input:not(:focus):not(:placeholder-shown)~label,.field textarea:not(:focus):not(:placeholder-shown)~label{color:var(--on-surface-variant)}.field input::placeholder,.field textarea::placeholder{color:#0000}.field input:focus::placeholder{color:var(--outline)}.field select{appearance:none;cursor:pointer;color:var(--on-surface);background-image:linear-gradient(45deg, transparent 50%, var(--on-surface-variant) 50%), linear-gradient(135deg, var(--on-surface-variant) 50%, transparent 50%);background-position:calc(100% - 21px) 26px,calc(100% - 16px) 26px;background-repeat:no-repeat;background-size:5px 5px;padding-right:40px}.field select:focus{border:2px solid var(--primary);padding-left:13px}.field select~label{font-size:11.5px;top:5px}.field select:focus~label{color:var(--primary)}.field select option{background:var(--surface-high);color:var(--on-surface)}.field .help{color:var(--on-surface-variant);padding:4px 16px 0;font-size:12px}.field[data-date]>input{padding-right:52px}.date-pick{width:40px;height:40px;color:var(--on-surface-variant);border-radius:20px;place-items:center;display:grid;position:absolute;top:8px;right:6px;overflow:hidden}.date-pick:hover{background:color-mix(in srgb, var(--on-surface) 8%, transparent);color:var(--primary)}.date-pick:focus-within{outline:2px solid var(--primary)}.field .date-pick input{opacity:0;cursor:pointer;border:0;width:100%;min-width:0;height:100%;margin:0;padding:0;position:absolute;inset:0}.date-pick input::-webkit-calendar-picker-indicator{cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.field.invalid input{border-color:var(--error)}.field.invalid label,.field.invalid .help{color:var(--error)!important}.chips-seg{flex-wrap:wrap;gap:8px;display:flex}.chip-opt{border:1px solid var(--outline);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-weight:500;display:inline-flex}.chip-opt[aria-pressed=true]{background:var(--secondary-container);color:var(--on-secondary-container);border-color:#0000}.chip-opt .ms{font-size:18px}.switch-row{align-items:center;gap:12px;min-height:40px;display:flex}.switch{flex:none;width:52px;height:32px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch .track{border:2px solid var(--outline);background:var(--surface-highest);border-radius:16px;transition:background .15s;position:absolute;inset:0}.switch .thumb{background:var(--outline);border-radius:8px;width:16px;height:16px;transition:all .15s;position:absolute;top:6px;left:6px}.switch input:checked+.track{background:var(--primary);border-color:var(--primary)}.switch input:checked+.track .thumb{background:var(--on-primary);border-radius:12px;width:24px;height:24px;top:2px;left:22px}.switch input:focus-visible+.track{outline:2px solid var(--primary);outline-offset:2px}.rel-field{border:1px solid var(--outline-variant);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:relative}.rel-field .rf-label{color:var(--on-surface-variant);justify-content:space-between;gap:8px;padding:0 4px;font-size:12px;font-weight:600;display:flex}.rel-chips{flex-wrap:wrap;gap:6px;display:flex}.pchip{background:var(--secondary-container);height:32px;color:var(--on-secondary-container);border-radius:8px;align-items:center;gap:6px;max-width:100%;padding:0 4px;display:inline-flex}.pchip .avatar{width:24px;height:24px;font-size:10px}.pchip.new{background:var(--tertiary-container);color:var(--on-tertiary-container)}.pchip span.t{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.pchip button{cursor:pointer;width:24px;height:24px;color:inherit;background:0 0;border:0;border-radius:12px;place-items:center;display:grid}.pchip button:hover{background:color-mix(in srgb, currentColor 12%, transparent)}.pchip button .ms{font-size:16px}.rel-input{background:var(--surface-container);border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 6px;display:flex}.rel-input input{background:0 0;border:0;outline:none;flex:1;min-width:0}.rel-input:focus-within{outline:2px solid var(--primary)}.rel-menu{background:var(--surface-lowest);border:1px solid var(--outline-variant);border-radius:12px;max-height:240px;padding:4px 0;overflow:auto}.rel-menu .menu-item{min-height:44px;padding:6px 12px}.rel-menu .mi-tag{color:var(--primary);white-space:nowrap;margin-left:auto;font-size:11px;font-weight:600}.form-error{background:var(--error-container);color:var(--on-error-container);border-radius:12px;padding:10px 14px}.quick{background:var(--surface-container);border-radius:16px;flex-direction:column;gap:10px;padding:14px;display:flex}.quick-label{font-size:15px;font-weight:600}.quick .rel-field{background:var(--surface-lowest)}.quick-hint{color:var(--on-tertiary-container);background:var(--tertiary-container);border-radius:10px;padding:8px 12px;font-size:13px}.add-btn{margin-left:4px}@media (width>=641px){.fab{display:none}}@media (width<=640px){.add-btn{display:none}}.drop{border:2px dashed var(--outline);text-align:center;color:var(--on-surface-variant);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:20px;display:flex}.drop.over{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.drop .ms{color:var(--primary);font-size:32px}.radio-row{flex-direction:column;gap:4px;display:flex}.radio-row label{cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:8px;display:flex}.radio-row label:hover{background:color-mix(in srgb, var(--on-surface) 6%, transparent)}.radio-row input{accent-color:var(--primary);width:18px;height:18px;margin-top:3px}.radio-row small{color:var(--on-surface-variant);display:block}.summary{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.summary div{background:var(--surface-container);text-align:center;border-radius:12px;padding:10px}.summary b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;display:block}.summary span{color:var(--on-surface-variant);font-size:12px}.warnings{background:var(--surface-container);border-radius:12px;max-height:140px;padding:8px 12px;font-size:13px;overflow:auto}.warnings li{margin:2px 0}.cols{border-collapse:collapse;width:100%;font-size:13px}.cols td{border-bottom:1px solid var(--outline-variant);vertical-align:top;padding:5px 8px}.cols code,.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.cols-wrap{background:var(--surface-container);border-radius:12px;padding:4px;overflow-x:auto}textarea.csvbox{border:1px solid var(--outline);background:var(--surface-lowest);resize:vertical;border-radius:8px;width:100%;min-height:160px;padding:10px;font-family:ui-monospace,Menlo,monospace;font-size:12px}@media (width<=900px){.sheet{width:auto;max-height:64%;box-shadow:0 -4px 20px var(--shadow);z-index:8;border-radius:28px 28px 0 0;margin:0;position:absolute;bottom:0;left:0;right:0}.sheet:before{content:"";background:var(--outline);border-radius:2px;flex:none;width:32px;height:4px;margin:10px auto 0;display:block}.legend{display:none}}@media (width<=640px){.people .stk2{box-shadow:none;position:static}.people .stk{box-shadow:inset -1px 0 var(--outline-variant)}.seg button{padding:0 12px}.seg .lbl{display:none}.search{flex-basis:100%;order:5;max-width:none}.hint{display:none}.fab{padding:0 16px}.fab .lbl{display:none}.grid2,.grid3{grid-template-columns:1fr}dialog#dlg-person{border-radius:0;max-width:100vw;height:100dvh;max-height:100dvh}dialog#dlg-person .dlg{height:100%;max-height:100dvh}.summary{grid-template-columns:repeat(2,1fr)}.status .lbl{display:none}}@media (prefers-reduced-motion:reduce){.stage.anim,.card,.snackbar,.tip{transition:none}}.full-page{text-align:center;place-items:center;height:100%;padding:24px;display:grid}.full-page .empty-inner{flex-direction:column;align-items:center;gap:12px;max-width:440px;display:flex}.full-page .empty-inner>.ms{color:var(--primary);font-size:48px}.full-page h2{font-family:var(--font-name);margin:0;font-size:22px;font-weight:600}.full-page p{color:var(--on-surface-variant);margin:0}.full-page .row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.auth-page{place-items:center;height:100%;padding:24px 16px;display:grid;overflow:auto}.auth-card{background:var(--surface-container);border-radius:28px;flex-direction:column;gap:16px;width:100%;max-width:400px;padding:28px 24px;display:flex}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand h1{font-family:var(--font-name);margin:0;font-size:26px;font-weight:600}.auth-lead{color:var(--on-surface-variant);margin:0}.auth-note{color:var(--on-surface-variant);margin:0;font-size:13px}.auth-card .btn{border-radius:24px;width:100%;height:48px}.form-error{background:var(--error-container);color:var(--on-error-container);border-radius:12px;margin:0;padding:10px 14px}.page{flex-direction:column;height:100%;display:flex}.page-head{padding:8px max(16px, env(safe-area-inset-left,0px));flex:none}.page-body{flex-direction:column;flex:1;gap:16px;width:100%;max-width:1100px;margin:0 auto;padding:8px 16px 48px;display:flex;overflow:auto}.admin-card{background:var(--surface-container);border-radius:24px;flex-direction:column;gap:14px;min-width:0;padding:20px;display:flex}.admin-card h2{font-size:20px;font-family:var(--font-name);margin:0;font-weight:600}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.muted{color:var(--on-surface-variant);margin:0}.stats-inline{flex-wrap:wrap;gap:20px;margin:0;display:flex}.stats-inline dt{color:var(--on-surface-variant);font-size:12px}.stats-inline dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.row-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row-form .field{flex:220px}.field.compact{min-width:200px}.table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant);border-bottom:1px solid var(--outline-variant);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}.admin-table td{border-bottom:1px solid var(--outline-variant);vertical-align:middle;padding:8px 10px}.admin-table select{border:1px solid var(--outline-variant);background:0 0;border-radius:8px;height:36px;padding:0 8px}.row-actions{white-space:nowrap;text-align:right}.warn-row td{color:var(--error)}.danger-zone summary{cursor:pointer;color:var(--error);font-weight:500}.danger-zone p{color:var(--on-surface-variant)}.modal-backdrop{background:var(--scrim);z-index:50;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface-high);border-radius:28px;flex-direction:column;gap:12px;width:100%;max-width:520px;padding:24px;display:flex}.modal h2{margin:0;font-size:22px;font-weight:500}.modal p{margin:0}.modal-foot{justify-content:flex-end;gap:8px;display:flex}.link-box{border:1px solid var(--outline);background:var(--surface-lowest);border-radius:8px;width:100%;padding:12px;font-family:ui-monospace,Menlo,monospace;font-size:13px}.avatar{flex:none;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.menu-item .avatar{width:32px;height:32px;font-size:12px}.menu-item .mi-maiden{color:var(--on-surface-variant);font-weight:400}.menu-item .mi-new{color:var(--primary)}.rel-input>.ms{color:var(--on-surface-variant)}.rel-field .rf-hint{font-weight:400}.pchip .pchip-new-icon{margin-left:4px;font-size:18px}.field.faded{opacity:.6}.drop{cursor:pointer}.drop:focus-within{outline:2px solid var(--primary)}.warnings-title{margin-top:12px}.status:not(.clickable){cursor:default}a.btn{text-decoration:none}.account{position:relative}.account-menu{width:280px;left:auto;right:0}.account-email{color:var(--on-surface-variant);border-bottom:1px solid var(--outline-variant);overflow-wrap:anywhere;margin-bottom:4px;padding:8px 16px 10px;font-size:13px}.menu-label{letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant);padding:8px 16px 2px;font-size:12px;font-weight:600}a.menu-item{color:inherit;text-decoration:none}.account-menu .menu-item>.ms{color:var(--on-surface-variant)}.sheet-photo{flex-direction:column;gap:8px;margin:0 12px 12px;display:flex}.sheet-photo img{object-fit:contain;background:var(--surface-lowest);border-radius:16px;width:100%;max-height:320px}.sheet-photo-actions{flex-wrap:wrap;gap:4px;display:flex}fieldset.chips-seg{border:0;min-width:0;margin:0;padding:0}
