*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1e293b;--app-bg:#f8fafc;--app-bg-elevated:#fff;--app-text:#1e293b;--app-muted:#64748b;--app-border:#dbe3f0;--app-surface:#fff;--app-surface-soft:#f8fafc;--app-shadow:0 12px 30px #0f172a1f;--theme-toggle-bg:#ffffffeb;--theme-toggle-color:#0f172a;--theme-toggle-border:#94a3b859;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans TC,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#0b1220;--app-bg-elevated:#111827;--app-text:#e2e8f0;--app-muted:#94a3b8;--app-border:#334155;--app-surface:#111827;--app-surface-soft:#1f2937;--app-shadow:0 16px 36px #0206178c;--theme-toggle-bg:#0f172ae6;--theme-toggle-color:#e2e8f0;--theme-toggle-border:#94a3b873}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{color:var(--app-text);background:var(--app-bg);font-family:inherit;transition:background-color .2s,color .2s}:root{--header-control-height:2.35rem;--non-graph-page-bottom-space:max(2.75rem, env(safe-area-inset-bottom) + 1.5rem);--non-graph-page-bottom-space-mobile:max(2rem, env(safe-area-inset-bottom) + 1rem)}.app{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.loading{justify-content:center;align-items:center;height:100vh;display:flex}.spinner{border:2px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;width:22px;height:22px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-admin-page{-webkit-overflow-scrolling:touch;color:#0f172a;background:linear-gradient(165deg,#eef2ff 0%,#f8fafc 45%,#fff 100%);flex-direction:column;height:100dvh;min-height:100vh;display:flex;overflow:hidden auto}.user-admin-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;box-shadow:0 8px 22px #4338ca40}.user-admin-header-left{align-items:center;gap:1rem;display:flex}.user-admin-header-left h1{margin:0;font-size:1.25rem}.header-title-button{appearance:none;color:inherit;font:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.header-title-button:hover{text-underline-offset:.12em;text-decoration:underline}.header-title-button:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid}.user-admin-header-left p{opacity:.88;margin:.1rem 0 0;font-size:.86rem}.user-admin-header-right{align-items:center;gap:.6rem;display:flex}.user-admin-current-user{min-height:var(--header-control-height);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.85rem;line-height:1;display:inline-flex}.user-admin-main{width:min(1180px,100vw - 2rem);margin:1.2rem auto var(--non-graph-page-bottom-space);flex-direction:column;gap:1rem;display:flex}.user-admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.user-admin-stat-card{background:#fff;border:1px solid #dbe4ff;border-radius:12px;padding:.75rem .95rem;box-shadow:0 8px 20px #6366f114}.user-admin-stat-card span{color:#64748b;font-size:.78rem}.user-admin-stat-card strong{color:#1e3a8a;margin-top:.35rem;font-size:1.2rem;display:block}.user-admin-panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem;box-shadow:0 14px 30px #0f172a14}.user-admin-toolbar{justify-content:flex-end;gap:.6rem;margin-bottom:.8rem;display:flex}.user-admin-btn{color:#1e293b;box-shadow:none;background:#f8fafc;border:1px solid #0000;border-radius:10px;padding:.5rem .8rem;font-size:.86rem;font-weight:600}.user-admin-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #1e293b1a}.user-admin-btn.primary{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%)}.user-admin-btn.secondary{background:#fff;border-color:#cbd5e1}.user-admin-btn.ghost{color:#fff;background:#ffffff1f;border-color:#ffffff59}.user-admin-btn.ghost:hover{box-shadow:none;background:#fff3}.user-admin-btn.danger{color:#b91c1c;background:#fff5f5;border-color:#fecaca}.user-admin-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:.75rem;padding:.65rem .75rem;font-size:.85rem}.user-admin-notice{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;margin-bottom:.75rem;padding:.65rem .75rem;font-size:.85rem}.user-admin-loading{text-align:center;color:#64748b;padding:2.2rem 1rem}.user-admin-table-wrap{overflow-x:auto}.user-admin-table{border-collapse:collapse;width:100%;min-width:980px}.user-admin-table th{text-align:left;color:#64748b;border-bottom:1px solid #e2e8f0;padding:.6rem .55rem;font-size:.78rem;font-weight:700}.user-admin-table td{color:#1e293b;border-bottom:1px solid #f1f5f9;padding:.65rem .55rem;font-size:.88rem}.user-admin-actions{align-items:center;gap:.5rem;display:flex}.user-admin-modal-target{color:#64748b;margin:-.35rem 0 1rem;font-size:.92rem}.user-admin-modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.user-admin-username{align-items:center;gap:.5rem;display:flex}.user-admin-self-badge{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.user-admin-role-select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.36rem .45rem;font-size:.83rem}.user-admin-role-select:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f129}.session-page{-webkit-overflow-scrolling:touch;color:#0f172a;background:linear-gradient(165deg,#eef2ff 0%,#f8fafc 40%,#fff 100%);flex-direction:column;height:100dvh;min-height:100vh;display:flex;overflow:hidden auto}.session-header{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;box-shadow:0 8px 22px #4338ca40}.session-header-left{align-items:center;gap:1rem;display:flex}.session-header-left h1{margin:0;font-size:1.2rem}.session-header-left p{opacity:.88;margin:.1rem 0 0;font-size:.84rem}.session-header-right{align-items:center;gap:.6rem;display:flex}.session-user-chip{min-height:var(--header-control-height);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.84rem;line-height:1;display:inline-flex}.session-main{width:min(1180px,100vw - 2rem);margin:1.2rem auto var(--non-graph-page-bottom-space);flex-direction:column;gap:1rem;display:flex}.session-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.session-stat-card{background:#fff;border:1px solid #dbe4ff;border-radius:12px;padding:.75rem .95rem;box-shadow:0 8px 20px #6366f114}.session-stat-card span{color:#64748b;font-size:.78rem}.session-stat-card strong{color:#1e3a8a;margin-top:.35rem;font-size:1.2rem;display:block}.session-panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem;box-shadow:0 14px 30px #0f172a14}.session-toolbar{justify-content:flex-end;gap:.6rem;margin-bottom:.8rem;display:flex}.session-btn{color:#1e293b;box-shadow:none;background:#f8fafc;border:1px solid #0000;border-radius:10px;padding:.5rem .8rem;font-size:.86rem;font-weight:600}.session-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #1e293b1a}.session-btn.secondary{background:#fff;border-color:#cbd5e1}.session-btn.ghost{color:#fff;background:#ffffff1f;border-color:#ffffff59}.session-btn.ghost:hover{box-shadow:none;background:#fff3}.session-btn.danger{color:#b91c1c;background:#fff5f5;border-color:#fecaca}.session-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:.75rem;padding:.65rem .75rem;font-size:.85rem}.session-loading{text-align:center;color:#64748b;padding:2.2rem 1rem}.session-mfa-card{flex-direction:column;gap:.65rem;display:flex}.session-mfa-card p{color:#475569;margin:0;font-size:.92rem}.session-mfa-setup{border-top:1px solid #e2e8f0;flex-direction:column;gap:.85rem;margin-top:.35rem;padding-top:.9rem;display:flex}.session-mfa-qr-wrap{justify-content:center;display:flex}.session-mfa-qr{background:#fff;border:1px solid #cbd5e1;border-radius:12px;width:220px;height:220px;box-shadow:0 10px 22px #0f172a14}.session-mfa-qr-fallback{color:#64748b;text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;justify-content:center;align-items:center;width:220px;min-height:220px;padding:1rem;display:flex}.session-table-wrap{overflow-x:auto}.session-table{border-collapse:collapse;width:100%;min-width:880px}.session-table th{text-align:left;color:#64748b;border-bottom:1px solid #e2e8f0;padding:.6rem .55rem;font-size:.78rem;font-weight:700}.session-table td{color:#1e293b;border-bottom:1px solid #f1f5f9;padding:.65rem .55rem;font-size:.88rem}.session-device-cell{align-items:center;gap:.5rem;display:flex}.session-current-badge{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.notice-page{-webkit-overflow-scrolling:touch;color:#0f172a;background:linear-gradient(160deg,#eef2ff 0%,#f8fafc 42%,#fff 100%);flex-direction:column;height:100dvh;min-height:100vh;display:flex;overflow:hidden auto}.notice-header{color:#fff;background:linear-gradient(135deg,#0f766e 0%,#0f172a 100%);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;box-shadow:0 10px 24px #0f172a47}.notice-header-left{align-items:center;gap:1rem;display:flex}.notice-header-left h1{margin:0;font-size:1.22rem}.notice-header-left p{opacity:.88;margin:.1rem 0 0;font-size:.84rem}.notice-header-right{align-items:center;gap:.6rem;display:flex}.notice-user-chip{min-height:var(--header-control-height);background:#ffffff29;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.84rem;line-height:1;display:inline-flex}.notice-main{width:min(1180px,100vw - 2rem);margin:1.2rem auto var(--non-graph-page-bottom-space);flex-direction:column;gap:1rem;display:flex}.notice-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.notice-stat-card{background:#fff;border:1px solid #dbeafe;border-radius:12px;padding:.75rem .95rem;box-shadow:0 8px 20px #0e749014}.notice-stat-card span{color:#64748b;font-size:.78rem}.notice-stat-card strong{color:#155e75;margin-top:.35rem;font-size:1.2rem;display:block}.notice-panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem;box-shadow:0 14px 30px #0f172a14}.notice-toolbar{justify-content:flex-end;gap:.6rem;margin-bottom:.8rem;display:flex}.notice-btn{color:#1e293b;box-shadow:none;background:#f8fafc;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;min-height:2.25rem;padding:.5rem .8rem;font-size:.86rem;font-weight:600;line-height:1.1;display:inline-flex}.notice-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #1e293b1a}.notice-btn.secondary{background:#fff;border-color:#cbd5e1}.notice-btn.ghost{color:#fff;background:#ffffff1f;border-color:#ffffff59}.notice-btn.ghost:hover{box-shadow:none;background:#fff3}.notice-btn.danger{color:#b91c1c;background:#fff5f5;border-color:#fecaca}.notice-filter-select,.notice-status-select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.36rem .45rem;font-size:.83rem}.notice-filter-select:focus,.notice-status-select:focus{border-color:#0ea5a3;outline:none;box-shadow:0 0 0 3px #14b8a629}.notice-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:.75rem;padding:.65rem .75rem;font-size:.85rem}.notice-loading{text-align:center;color:#64748b;padding:2.2rem 1rem}.notice-table-wrap{overflow-x:auto}.audit-log-search-input{flex:260px;min-width:240px}.audit-log-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-height:min(70vh,100dvh - 16rem);overflow-y:auto}.audit-log-table-wrap .notice-table th{z-index:1;background:#f8fafc;position:sticky;top:0}.notice-table{border-collapse:collapse;width:100%;min-width:1080px}.notice-table th{text-align:left;color:#64748b;border-bottom:1px solid #e2e8f0;padding:.6rem .55rem;font-size:.78rem;font-weight:700}.notice-table td{color:#1e293b;vertical-align:top;border-bottom:1px solid #f1f5f9;padding:.65rem .55rem;font-size:.88rem}.notice-message{white-space:normal;max-width:300px;line-height:1.4}.notice-empty{text-align:center;color:#64748b;padding:1.2rem .8rem}.relationship-name-page{background:linear-gradient(160deg,#f0fdf4 0%,#f8fafc 44%,#fff 100%);height:100dvh;min-height:100vh;overflow:hidden auto}.relationship-name-header{background:linear-gradient(135deg,#047857 0%,#0f172a 100%);min-height:4.5rem}.relationship-name-header .notice-header-left{align-items:center;min-height:3rem}.relationship-name-header .notice-header-left h1{text-align:left}.relationship-name-header .notice-header-right{align-items:center;min-height:3rem;display:flex}.relationship-name-header .notice-user-chip,.relationship-name-header .notice-btn{justify-content:center;align-items:center;display:inline-flex}.relationship-name-main{width:min(1460px,100vw - 2rem)}.relationship-name-toolbar{flex-wrap:wrap;justify-content:space-between}.relationship-name-search{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:10px;flex:1;min-width:260px;padding:.45rem .6rem;font-size:.86rem}.relationship-name-search:focus{border-color:#059669;outline:none;box-shadow:0 0 0 3px #10b98129}.relationship-name-table{min-width:1360px}.relationship-name-code{flex-direction:column;gap:.2rem;display:flex}.relationship-name-code strong{color:#065f46}.relationship-name-code span{color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem}.relationship-name-input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:min(220px,100%);padding:.38rem .45rem;font-size:.84rem}.relationship-name-description{width:min(320px,100%)}.relationship-name-input:focus{border-color:#059669;outline:none;box-shadow:0 0 0 3px #10b98129}.relationship-name-default{flex-direction:column;gap:.18rem;display:flex}.relationship-name-default strong{color:#0f172a}.relationship-name-default span{color:#64748b;font-size:.8rem}.relationship-name-actions{gap:.45rem;display:flex}.graph-settings-page{color:#0f172a;background:linear-gradient(160deg,#eff6ff 0%,#f8fafc 46%,#fff 100%);flex-direction:column;height:100dvh;min-height:100vh;display:flex;overflow:hidden auto}.graph-settings-header{color:#fff;background:linear-gradient(135deg,#1d4ed8 0%,#0f172a 100%);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;box-shadow:0 10px 24px #1e40af42}.graph-settings-header-left{align-items:center;gap:1rem;display:flex}.graph-settings-header-left h1{margin:0;font-size:1.22rem}.graph-settings-header-left p{opacity:.88;margin:.1rem 0 0;font-size:.84rem}.graph-settings-header-right{align-items:center;gap:.6rem;display:flex}.graph-settings-user-chip{min-height:var(--header-control-height);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.84rem;line-height:1;display:inline-flex}.user-admin-header-left,.session-header-left,.notice-header-left,.graph-settings-header-left{flex:auto;min-width:0}.user-admin-header-right,.session-header-right,.notice-header-right,.graph-settings-header-right{flex:none}.user-admin-header-left h1,.session-header-left h1,.notice-header-left h1,.graph-settings-header-left h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-admin-header-left p,.session-header-left p,.notice-header-left p,.graph-settings-header-left p{display:none}.page-header-icon-btn{width:var(--header-control-height);min-width:var(--header-control-height);height:var(--header-control-height);border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.page-header-icon-btn svg{flex:none;width:1rem;height:1rem}.page-header-menu{margin-left:0}.page-header-menu-trigger{border:1px solid #ffffff61;color:#fff!important;background:#fff3!important}.page-header-menu-trigger:hover{background:#ffffff4d!important}.graph-settings-main{width:min(1180px,100vw - 2rem);margin:1.2rem auto var(--non-graph-page-bottom-space);flex-direction:column;gap:1rem;display:flex}.graph-settings-panel{background:#fff;border:1px solid #dbeafe;border-radius:14px;padding:1rem;box-shadow:0 14px 30px #0f172a14}.graph-settings-panel h2{color:#1e3a8a;margin:0 0 .8rem;font-size:1rem}.graph-settings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;display:grid}.graph-settings-field{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.36rem;padding:.7rem .75rem;display:flex}.graph-settings-field-label{color:#1e293b;font-size:.82rem;font-weight:700}.graph-settings-field small{color:#64748b;font-size:.74rem;line-height:1.35}.graph-settings-input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.4rem .5rem;font-size:.86rem}.graph-settings-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f629}.graph-settings-input-color{min-height:42px;padding:.25rem}.graph-settings-toggle{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:.65rem;padding:.7rem .75rem;display:flex}.graph-settings-toggle input[type=checkbox]{width:1rem;height:1rem;margin-top:.1rem}.graph-settings-toggle small{color:#64748b;margin-top:.28rem;font-size:.74rem;line-height:1.35;display:block}.graph-backup-panel{border-color:#bfdbfe}.graph-backup-hint{color:#475569;margin:0 0 .7rem;font-size:.82rem;line-height:1.45}.graph-backup-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.graph-backup-file-input{color:#1e293b;flex:320px;min-width:220px;max-width:100%;font-size:.82rem}.graph-backup-file-name{color:#334155;margin-top:.5rem;font-size:.78rem;display:block}.graph-backup-error,.graph-backup-success{border-radius:8px;margin-top:.6rem;padding:.5rem .65rem;font-size:.8rem}.graph-backup-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.graph-backup-success{color:#166534;background:#ecfdf5;border:1px solid #bbf7d0}.graph-settings-actions{justify-content:flex-end;gap:.6rem;display:flex}.graph-settings-btn{color:#1e293b;box-shadow:none;background:#f8fafc;border:1px solid #0000;border-radius:10px;padding:.5rem .8rem;font-size:.86rem;font-weight:600}.graph-settings-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #1e293b1a}.graph-settings-btn.primary{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#1e40af 100%)}.graph-settings-btn.secondary{background:#fff;border-color:#cbd5e1}.graph-settings-btn.ghost{color:#fff;background:#ffffff1f;border-color:#ffffff59}.graph-settings-btn.ghost:hover{box-shadow:none;background:#fff3}.login-page{-webkit-overflow-scrolling:touch;background:radial-gradient(circle at top,#0f766e1f,#0000 28%),linear-gradient(145deg,#f8fafc 0%,#f3f7ff 100%);justify-content:center;align-items:flex-start;height:100dvh;min-height:100dvh;padding:clamp(2rem,4vw,3.5rem) clamp(1rem,2vw,1.5rem) 1.5rem;display:flex;overflow:hidden auto}.login-shell{width:min(430px,100%);margin:0 auto;display:block}.landing-panel,.login-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffc7;border:1px solid #ffffffb8;border-radius:28px;position:relative;overflow:hidden;box-shadow:0 18px 50px #0f172a1f}.landing-panel{flex-direction:column;justify-content:space-between;padding:clamp(1.6rem,3vw,2.75rem);display:flex}.landing-panel:after,.login-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#eab3082e 0%,#eab30800 70%);border-radius:999px;width:260px;height:260px;position:absolute;inset:auto -5% -22% auto}.landing-brand,.login-card-heading{z-index:1;position:relative}.landing-brand{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.landing-logo-shell{margin:0}.landing-eyebrow{color:#0f172a;letter-spacing:.08em;text-transform:uppercase;background:#0f172a0f;border-radius:999px;align-items:center;min-height:2rem;padding:.25rem .85rem;font-size:.84rem;font-weight:700;display:inline-flex}.landing-title{letter-spacing:-.05em;color:#111827;max-width:12ch;margin:0;font-size:clamp(2.4rem,5vw,4.9rem);line-height:.95}.landing-body{color:#475569;max-width:64ch;margin:1rem 0 0;font-size:clamp(1rem,1.6vw,1.15rem)}.landing-metric-card{z-index:1;color:#f8fafc;background:linear-gradient(135deg,#0f172aeb 0%,#164e63eb 100%);border-radius:20px;gap:1rem;margin-top:1.6rem;padding:1rem 1.1rem;display:grid;position:relative}.landing-metric-card strong{letter-spacing:.04em;text-transform:uppercase;font-size:.98rem}.landing-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.landing-metric-item{border-top:1px solid #ffffff29;padding-top:.75rem}.landing-metric-item span{font-size:1.3rem;font-weight:800;display:block}.landing-metric-item small{color:#f1f5f9d1;margin-top:.25rem;font-size:.82rem;display:block}.landing-highlight-list{z-index:1;gap:.75rem;margin:1.4rem 0 0;padding:0;list-style:none;display:grid;position:relative}.landing-highlight-list li{color:#334155;align-items:flex-start;gap:.7rem;font-size:.96rem;display:flex}.landing-highlight-list li:before{content:"";background:linear-gradient(135deg,#0f766e 0%,#f59e0b 100%);border-radius:999px;flex:none;width:.72rem;height:.72rem;margin-top:.34rem;box-shadow:0 0 0 5px #0f766e1a}.landing-feature-grid{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.8rem;display:grid;position:relative}.landing-feature-grid h2{color:#0f172a;grid-column:1/-1;margin:0;font-size:1rem}.landing-feature-card{background:#f8fafcb8;border:1px solid #94a3b833;border-radius:18px;padding:1rem}.landing-feature-card strong{color:#0f172a;font-size:.96rem;display:block}.landing-feature-card p{color:#475569;margin:.55rem 0 0;font-size:.9rem}.login-card{text-align:center;flex-direction:column;justify-content:center;width:100%;padding:1.75rem;display:flex}.login-logo-shell{background:linear-gradient(#fffffffa 0%,#f8fafcf5 100%);border:1px solid #e2e8f0f2;border-radius:24px;width:fit-content;margin:0 auto 1rem;padding:.8rem 1rem;box-shadow:0 14px 28px #0f172a14}.login-logo{object-fit:contain;width:min(128px,34vw);height:auto;margin:0 auto;display:block}.login-card h1{color:#1e293b;margin:0 0 .5rem;font-size:1.75rem}.login-card h2{color:#1e293b;margin:0;font-size:1.5rem}.login-card p{color:#64748b;margin:0 0 1.5rem;font-size:.95rem}.login-card-heading p{margin:.6rem 0 1.4rem}.login-card .form-group{text-align:left}.login-card input{width:100%}.login-card .btn-primary{width:100%;margin-top:.5rem}.login-card .auth-secondary-btn{width:100%;margin-top:.75rem}.login-secondary-actions{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.login-secondary-actions .user-admin-btn{width:100%}.login-error{color:#ef4444;text-align:center;margin-top:.75rem;font-size:.875rem}.notice-info{color:#0f766e;text-align:center;margin-top:.75rem;font-size:.875rem}.avatar-picker{flex-direction:column;gap:.85rem;display:flex}.avatar-editor-main{grid-template-columns:minmax(140px,160px) minmax(0,1fr);align-items:start;gap:.95rem;display:grid}.avatar-cropper{color:#7c8da3;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 18% 20%,#fff 0%,#f8fbff 50%,#edf3fb 100%);border:1px solid #cfd8e7;border-radius:20px;justify-content:center;align-items:center;width:140px;height:140px;font-size:.78rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #fffc,0 10px 20px #0f172a14}.avatar-cropper:after{content:"";pointer-events:none;border:1px solid #ffffffbf;border-radius:14px;position:absolute;inset:7px}.avatar-cropper.has-image{cursor:grab;touch-action:none;border-style:solid;border-color:#64748b59}.avatar-cropper.dragging{cursor:grabbing;border-color:#4f6ef7;transform:translateY(-1px);box-shadow:0 0 0 4px #4f6ef72e,0 14px 30px #4f6ef72e}.avatar-cropper img{-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.avatar-editor-meta{flex-direction:column;gap:.55rem;min-width:0;display:flex}.avatar-status-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.avatar-status-badge,.avatar-status-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:.3rem .55rem;font-size:.72rem;line-height:1;display:inline-flex}.avatar-status-badge.tone-accent{color:#1f4cd2;background:#e8efff;border-color:#bfd0ff}.avatar-status-badge.tone-warning{color:#a64b00;background:#fff4e8;border-color:#ffd2a8}.avatar-status-badge.tone-stable{color:#166534;background:#e9f7ef;border-color:#bde8cd}.avatar-status-badge.tone-muted{color:#475569;background:#f1f5f9;border-color:#d9e2ec}.avatar-status-chip{color:#475569;background:#f8fafc;border-color:#dbe5f0}.avatar-editor-hint{color:#64748b;margin:0;font-size:.78rem;line-height:1.45}.avatar-actions-row{flex-wrap:wrap;gap:.5rem;display:flex}.avatar-upload{cursor:pointer;justify-content:center;align-items:center;min-width:6.8rem;display:inline-flex;position:relative;overflow:hidden}.avatar-danger-btn{min-width:6.8rem}.avatar-zoom-wrap{margin-top:.1rem}.avatar-zoom-head{color:#64748b;justify-content:space-between;align-items:center;margin-bottom:.25rem;font-size:.74rem;display:flex}.avatar-zoom{accent-color:#4f6ef7;width:100%}.avatar-library{background:#f8fbff;border:1px solid #dee7f2;border-radius:14px;padding:.65rem}.avatar-library-head{color:#475569;justify-content:space-between;align-items:center;margin-bottom:.55rem;font-size:.78rem;font-weight:600;display:flex}.avatar-gallery{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.55rem;width:100%;display:grid}.avatar-gallery-item{background:#fff;border:1px solid #dbe5f0;border-radius:12px;padding:.35rem .35rem .4rem;transition:border-color .2s,box-shadow .2s,transform .2s}.avatar-gallery-item.is-primary{border-color:#4f6ef7;box-shadow:0 0 0 2px #4f6ef729}.avatar-gallery-item.is-deleted{opacity:.58}.avatar-gallery-preview{cursor:pointer;background:0 0;border:none;border-radius:9px;width:100%;padding:0;position:relative;overflow:hidden}.avatar-gallery-preview:disabled{cursor:not-allowed}.avatar-gallery-preview:hover:not(:disabled){transform:translateY(-1px)}.avatar-gallery-preview:focus-visible{outline:none;box-shadow:0 0 0 3px #4f6ef74d}.avatar-gallery-preview img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%;display:block}.avatar-badge{color:#fff;pointer-events:none;border-radius:999px;padding:.18rem .4rem;font-size:.62rem;font-weight:700;line-height:1;position:absolute;top:.32rem;left:.32rem}.avatar-badge.is-primary{background:#3b82f6f2}.avatar-badge.is-deleted{background:#dc2626e6}.avatar-gallery-actions{grid-template-columns:1fr 1fr;gap:.32rem;margin-top:.4rem;display:grid}.avatar-gallery-actions button{min-width:0;padding:.3rem .35rem;font-size:.68rem}.avatar-danger-btn,.avatar-gallery-danger{color:#b42318;background:linear-gradient(#fff5f5 0%,#ffe8e8 100%);border:1px solid #f2b4b1;font-weight:600;box-shadow:0 1px 2px #0f172a0f,inset 0 1px #ffffffe6}.avatar-danger-btn:hover,.avatar-gallery-danger:hover{color:#a61b11;background:linear-gradient(#feeeee 0%,#ffdede 100%);border-color:#ea9b97;box-shadow:0 4px 10px #dc262629}.avatar-danger-btn:active,.avatar-gallery-danger:active{transform:translateY(0);box-shadow:0 1px 2px #dc262624,inset 0 1px 2px #b91c1c1f}.avatar-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.header{color:#fff;z-index:10;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:relative;box-shadow:0 2px 10px #0000001a}.header h1{margin:0;font-size:1.5rem;font-weight:600}.controls{flex-wrap:nowrap;align-items:center;gap:.75rem;width:100%;min-width:0;display:flex}.mobile-visible{display:none}.desktop-visible{flex:none;display:inline-flex}.header-mobile-menu{position:relative}.header-mobile-panel{color:#1e293b;z-index:1000;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:180px;max-height:min(70vh,480px);padding:.35rem 0;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 10px 24px #0f172a26}.header-mobile-label{color:#64748b;padding:.35rem .85rem;font-size:.8rem}.header-action-menu{position:relative}.header-action-panel{color:#1e293b;z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:160px;padding:.35rem 0;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 24px #0f172a26}.header-overflow-menu{margin-left:auto}.header-overflow-panel{min-width:220px;max-height:min(72vh,560px);overflow-y:auto}.header-action-item{text-align:left;color:#1e293b;cursor:pointer;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:.5rem;width:100%;padding:.45rem .85rem;font-size:.85rem;display:flex}.header-action-item-with-badge{justify-content:space-between}.header-action-main{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.header-action-icon{flex:none;width:.95rem;height:.95rem;display:inline-flex}.header-action-icon svg{width:100%;height:100%}.header-action-text{line-height:1.2}.icon-only-btn{width:var(--header-control-height);min-width:var(--header-control-height);height:var(--header-control-height);justify-content:center;padding:0}.icon-only-btn .btn-icon{gap:0}.header-action-item:hover{background:#f1f5f9;transform:none}.header-action-item.danger{color:#b91c1c}.search-box{flex:auto;align-items:center;gap:.5rem;min-width:0;display:flex;position:relative}.layer-switcher{align-items:center;gap:.5rem;display:inline-flex}.layer-select{min-width:11rem;height:var(--header-control-height);color:#fff;background:#ffffff2e;border:1px solid #ffffff59;border-radius:999px;padding:0 .85rem}.layer-select option{color:#0f172a}.header-mobile-layer-picker{flex-direction:column;gap:.35rem;padding:.35rem .85rem .6rem;display:flex}.search-input{color:#fff;background:#fff3;border:1px solid #fff6;border-radius:999px;width:100%;min-width:0;height:2.25rem;margin-inline:.25rem;padding:0 .75rem}.search-input::placeholder{color:#fffc}.mobile-search-results{z-index:40;-webkit-overflow-scrolling:touch;background:#fff;border-radius:10px;max-height:min(60vh,360px);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden auto;box-shadow:0 12px 28px #0f172a33}.mobile-search-item{color:#0f172a;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.5rem .75rem;font-size:.9rem;display:flex}.mobile-search-item:hover{background:#f1f5f9;transform:none}.mobile-search-sub{color:#64748b;font-size:.75rem}.header-user{border-left:1px solid #ffffff40;align-items:center;gap:.5rem;padding-left:.5rem;display:flex}.header-menu{margin:0;padding:0;list-style:none}.header-menu-item{align-items:center;display:inline-flex}.header .btn-primary,.header .btn-secondary,.header-profile-btn{min-height:var(--header-control-height);height:var(--header-control-height);justify-content:center;align-items:center;display:inline-flex}.header .btn-label,.header-user span{align-items:center;display:inline-flex}.header-notice-btn{position:relative}.header-notice-badge{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex;box-shadow:0 0 0 1px #ffffff26}.header-user span{color:#ffffffd9;font-size:.875rem}.header-profile-btn{color:#fff;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;padding:.28rem .62rem;font-size:.82rem;font-weight:600}.header-profile-btn:hover{box-shadow:none;background:#ffffff38;transform:none}.readonly-badge{min-height:var(--header-control-height);height:var(--header-control-height);color:#ffffffe6;background:#fff3;border:1px solid #fff6;border-radius:999px;justify-content:center;align-items:center;padding:.15rem .45rem;font-size:.75rem;display:inline-flex}.btn-icon{align-items:center;gap:.4rem;display:inline-flex}.btn-icon svg{flex:none;width:1rem;height:1rem}button{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s}button:hover{background:#ffffff4d;transform:translateY(-1px)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}button:disabled:hover{background:#fff3}.btn-primary{color:#667eea!important;background:#fffffff2!important}.btn-primary:hover{box-shadow:0 4px 12px #00000026;background:#fff!important}.btn-secondary{background:#ffffff40!important}.flow-container{touch-action:none;overscroll-behavior:contain;flex:1;min-height:0;position:relative}.drag-guide-line{pointer-events:none;z-index:4;border-top:1px dashed #3b82f699;position:absolute;left:0;right:0}.react-flow__handle.handle-hot{background:#ef4444;border-color:#ef4444;box-shadow:0 0 0 4px #ef444440}.drag-guide-line.vertical{border-top:none;border-left:1px dashed #3b82f699;width:0;inset:0 auto 0 0}.person-node{box-sizing:border-box;cursor:pointer;-ms-overflow-style:none;scrollbar-width:none;background:#fff;border:2px solid #e2e8f0;border-radius:12px;flex-direction:column;width:132px;height:132px;min-height:132px;max-height:132px;padding:0;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden visible;box-shadow:0 4px 12px #0000001a}.person-node::-webkit-scrollbar{width:0;height:0;display:none}.react-flow__node-person::-webkit-scrollbar{width:0;height:0;display:none}.react-flow__node-person{-ms-overflow-style:none;scrollbar-width:none}.person-node:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.person-node.selected{border-color:var(--highlight-color,#2563eb);box-shadow:0 0 0 3px var(--highlight-color-35,#2563eb59), 0 10px 24px var(--highlight-color-18,#2563eb2e);transform:translateY(-2px)}.person-node.floating{z-index:1000;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s ease-out;transform:scale(1.05);box-shadow:0 12px 30px #0006,0 0 0 2px #2563eb;cursor:grabbing!important}.person-node.search-flash{animation:.6s ease-in-out 2 node-bounce}.person-node.focus-hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}@keyframes node-bounce{0%{transform:translateY(0)}40%{transform:translateY(-6px)}70%{transform:translateY(0)}to{transform:translateY(0)}}.node-collapse-indicator{z-index:2;background:#dd604a;border-radius:50%;width:14px;height:14px;position:absolute;top:1px;left:1px;box-shadow:0 0 0 2px #f59e0b40}.person-node.center{box-shadow:0 0 0 3px #f59e0b59,0 8px 18px #f59e0b2e}.person-node.center-flash{animation:.9s ease-out centerPulse}@keyframes centerPulse{0%{transform:translateY(0);box-shadow:0 0 #f59e0b99,0 0 0 6px #f59e0b40}70%{transform:translateY(-1px);box-shadow:0 0 0 10px #f59e0b00,0 0 0 18px #f59e0b00}to{transform:translateY(0);box-shadow:0 0 #f59e0b00,0 0 #f59e0b00}}.person-node.gender-m{border-top:4px solid #3b82f6}.person-node.gender-f{border-top:4px solid #ec4899}.person-node.gender-o{border-top:4px solid #8b5cf6}.node-avatar{color:#fff;touch-action:manipulation;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:2px solid #0f172a1f;border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;margin:8px auto;font-size:1.25rem;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;box-shadow:0 6px 14px #0f172a2e}.node-avatar:hover{border-width:3px;border-color:#fffffff2;transform:translateY(-1px)scale(1.03);box-shadow:0 10px 18px #0f172a40,0 0 0 3px #ffffffbf}.node-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.gender-m .node-avatar{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%)}.gender-f .node-avatar{background:linear-gradient(135deg,#ec4899 0%,#db2777 100%)}.node-name{text-align:center;color:#1e293b;min-height:1.4rem;padding:.25rem .6rem .2rem;font-size:.95rem;font-weight:600;position:relative}.node-meta{flex-wrap:nowrap;justify-content:center;align-items:center;gap:.28rem;width:100%;min-width:0;height:1.15rem;min-height:1.05rem;padding:0 .48rem .1rem;display:flex;overflow:hidden}.node-meta-chip{color:#334155;white-space:nowrap;text-overflow:ellipsis;text-align:center;background:#e2e8f0;border-radius:999px;flex:1 1 0;min-width:0;max-width:100%;padding:.08rem .35rem;font-size:.64rem;line-height:1.2;overflow:hidden}.node-meta-chip:only-child{flex:0 100%}.node-meta-chip-plain{color:#64748b;background:0 0;border:none;padding-inline:0}.node-name-text{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.node-name-tooltip{color:#f9fafb;white-space:nowrap;text-align:center;opacity:0;pointer-events:none;z-index:30;background:#111827;border-radius:6px;padding:.35rem .5rem;font-size:.75rem;line-height:1.2;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0f172a40}.node-name-tooltip:after{content:"";border:6px solid #0000;border-top-color:#111827;border-bottom-width:0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.node-name:hover .node-name-tooltip{opacity:1}.node-title{text-align:center;color:#64748b;z-index:5;background:#f1f5f9;border-radius:0 0 8px 8px;min-height:1.85rem;margin-top:auto;padding:.25rem .6rem .5rem;font-size:.75rem;position:relative}.node-title-text{max-height:1.2em;color:inherit;display:block;overflow:hidden}.node-title-tooltip{color:#f9fafb;white-space:nowrap;text-align:center;opacity:0;pointer-events:none;z-index:30;background:#111827;border-radius:6px;padding:.35rem .5rem;font-size:.75rem;line-height:1.2;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0f172a40}.node-title-tooltip:after{content:"";border:6px solid #0000;border-top-color:#111827;border-bottom-width:0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.node-title:hover .node-title-tooltip{opacity:1}.modal-overlay{z-index:3000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:90%;max-width:400px;max-height:90vh;padding:1.5rem;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal.modal-edit-person{max-width:560px}.modal h2{color:#1e293b;margin:0 0 1rem}.avatar-modal{background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:.75rem;max-width:94vw;max-height:94vh;padding:1.25rem;display:flex;position:relative;box-shadow:0 24px 60px #00000040}.avatar-modal img{object-fit:contain;background:#f1f5f9;border-radius:16px;max-width:min(560px,92vw);max-height:82vh}.avatar-modal-name{color:#1f2937;font-size:1rem;font-weight:600}.avatar-modal-count{color:#64748b;font-size:.85rem}.avatar-carousel-btn{z-index:3;color:#fff;cursor:pointer;background:#0f172a9e;border:none;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.8rem;line-height:1;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.avatar-carousel-btn-left{left:.7rem}.avatar-carousel-btn-right{right:.7rem}.avatar-overlay{align-items:center}@media (width>=1024px){.avatar-modal{width:95vw;max-width:95vw;height:95vh;max-height:95vh;padding:.75rem 1rem}.avatar-modal img{width:100%;max-width:100%;max-height:calc(95vh - 3.5rem)}}.relationship-choice-modal{background:#fff;border-radius:14px;width:min(92vw,360px);padding:1rem;box-shadow:0 24px 56px #0f172a47}.relationship-choice-modal h3{color:#0f172a;margin:0 0 .5rem}.relationship-choice-modal p{color:#475569;margin:0 0 .9rem;font-size:.9rem}.relationship-choice-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:.8rem;display:grid}.relationship-choice-btn{color:#0f172a;background:#e2e8f0;border:1px solid #cbd5e1}.relationship-choice-btn:hover{background:#cbd5e1}.relationship-choice-btn.is-suggested{color:#fff;background:#2563eb;border-color:#1d4ed8}.relationship-choice-btn.is-suggested:hover{background:#1d4ed8}.relationship-choice-cancel{color:#334155;background:#f1f5f9;border:1px solid #cbd5e1;width:100%}.relationship-choice-cancel:hover{background:#e2e8f0}.form-group{margin-bottom:1rem}.form-group label{color:#475569;margin-bottom:.5rem;font-weight:500;display:block}.name-lock-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.name-lock-row label{margin-bottom:0}.name-lock-btn{letter-spacing:.01em;border:1px solid #d9770652;border-radius:999px;align-items:center;gap:.45rem;padding:.42rem .8rem;font-size:.88rem;font-weight:800;display:inline-flex;box-shadow:0 8px 18px #f59e0b2e;color:#92400e!important;background:linear-gradient(135deg,#fffbebfa 0%,#fef08aeb 100%)!important}.name-lock-btn:hover:not(:disabled){box-shadow:0 10px 22px #f59e0b3d;color:#78350f!important;background:linear-gradient(135deg,#fff7ed 0%,#fde047fa 100%)!important}.name-lock-btn-icon{flex:none;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.name-lock-btn-icon svg{width:1rem;height:1rem}.name-lock-btn-label{line-height:1}.name-lock-chip{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe;border-radius:999px;align-items:center;padding:.18rem .55rem;font-size:.72rem;display:inline-flex}.name-input-locked{color:#64748b;cursor:not-allowed;background:#f8fafc}.name-lock-hint{color:#64748b;margin-top:.35rem;font-size:.76rem;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid #e2e8f0;border-radius:6px;width:100%;padding:.625rem;font-size:1rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea33}.form-group textarea{resize:vertical;min-height:110px}.person-email-row{align-items:stretch;gap:.6rem;display:flex}.person-email-row input{flex:1}.person-invite-btn{border:1px solid #bfdbfe;border-radius:999px;flex:none;min-width:6.5rem;font-weight:700;color:#1d4ed8!important;background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%)!important}.person-invite-btn:hover:not(:disabled){background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%)!important}.person-invite-btn.is-loading{cursor:wait}.person-email-hint{color:#64748b;margin-top:.4rem;font-size:.78rem;display:block}.person-email-hint.is-success{color:#047857}.report-issue-person{color:#475569;margin:-.25rem 0 .75rem;font-size:.9rem}.report-issue-hint{color:#64748b;text-align:right;margin-top:.4rem;font-size:.78rem}.report-issue-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:.5rem;padding:.55rem .65rem;font-size:.82rem}.date-input-row{align-items:center;gap:.75rem;display:flex}.date-input-main{flex-wrap:nowrap;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.date-input-main input[type=date]{flex:1}.date-input-main>input,.date-input-main>select{min-width:0}.date-year-group{flex:none;align-items:center;display:inline-flex}.date-year-group .date-year-input{text-align:center;box-sizing:border-box;border-left:none;border-right:none;border-radius:0;width:4.8rem;height:38px;padding:0 .25rem}.date-year-group .date-year-btn{color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#f8fafc;border:1px solid #cbd5e1;justify-content:center;align-items:center;width:28px;height:38px;padding:0;font-size:1rem;font-weight:700;transition:background-color .15s,color .15s;display:inline-flex}.date-year-group .date-year-btn-prev{border-radius:6px 0 0 6px}.date-year-group .date-year-btn-next{border-radius:0 6px 6px 0}.date-year-group .date-year-btn:hover:not(:disabled){color:#1e293b;background:#e2e8f0}.date-year-group .date-year-btn:disabled{opacity:.45;cursor:not-allowed}.date-input-main>.date-year-input{flex:0 0 6rem;max-width:6rem;height:38px}.date-month-select,.date-day-select{flex:1 1 0;min-width:0;height:38px}.date-unknown-toggle{white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:.35rem;font-weight:500;display:inline-flex}.custom-fields{flex-direction:column;gap:.5rem;display:flex}.custom-fields-empty{color:#94a3b8;padding:.5rem 0;font-size:.875rem}.custom-field-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:.5rem;display:grid}.custom-field-row input{width:100%}.custom-field-remove{color:#b91c1c;cursor:pointer;background:#fee2e2;border:none;border-radius:6px;padding:.5rem .75rem;font-size:.875rem}.custom-field-remove:hover{background:#fecaca}.custom-field-add{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:6px;width:100%;margin-top:.5rem;padding:.625rem;font-weight:500}.custom-field-add:hover{background:#e2e8f0}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.form-actions button{cursor:pointer;border:none;border-radius:6px;padding:.625rem 1.25rem;font-weight:500}.form-actions button[type=button]{color:#64748b;background:#f1f5f9}.form-actions button[type=submit]{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.modal-save-btn{justify-content:center;align-items:center;gap:.45rem;min-width:7.25rem;display:inline-flex}.modal-save-btn.is-loading{cursor:wait}.btn-inline-spinner{border:2px solid #ffffff61;border-top-color:#fff;border-radius:50%;width:.95rem;height:.95rem;animation:.8s linear infinite spin}.link-indicator{color:#fff;z-index:100;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);border-radius:50px;align-items:center;gap:1rem;padding:.75rem 1.5rem;font-weight:500;animation:2s infinite pulse;display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #f59e0b66}@keyframes pulse{0%,to{box-shadow:0 4px 20px #f59e0b66}50%{box-shadow:0 4px 30px #f59e0b99}}.link-indicator button{background:#fff3;border:1px solid #ffffff4d;padding:.25rem .75rem}.toast{color:#fff;z-index:1100;border-radius:999px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 16px #0f172a40}.toast-success{background:linear-gradient(135deg,#16a34a 0%,#22c55e 100%)}.toast-warning{background:linear-gradient(135deg,#f59e0b 0%,#f97316 100%)}@media (width<=640px){.person-email-row{flex-direction:column}.person-invite-btn{width:100%}.date-input-row{flex-direction:column;align-items:stretch;gap:.5rem}.date-input-main{flex-wrap:nowrap;gap:.35rem;width:100%}.date-year-group{flex:none}.date-year-group .date-year-input{width:3.8rem}.date-year-group .date-year-btn{width:26px}.date-input-main>.date-year-input{flex:calc(33.333% - .3rem);min-width:0;max-width:none}.date-month-select,.date-day-select{flex:1 1 0;min-width:0;max-width:none}.date-unknown-toggle{align-self:flex-start}.avatar-editor-main{grid-template-columns:1fr;gap:.75rem}.avatar-cropper{margin:0 auto}.avatar-editor-meta{width:100%}.avatar-actions-row>*{flex:calc(50% - .25rem)}.avatar-gallery{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.login-page{padding:1.25rem .85rem;justify-content:center;align-items:flex-start;padding-top:4dvh}.login-shell{width:min(420px,100%)}.login-card{width:min(420px,100%);margin:0 auto;padding:1.35rem}.login-logo{width:min(140px,44vw);margin-bottom:.85rem}.landing-title{max-width:none}.landing-feature-grid,.landing-metrics{grid-template-columns:1fr}.user-admin-header{gap:.45rem;padding:.65rem .75rem}.user-admin-header-left{justify-content:flex-start;gap:.5rem;width:auto;min-width:0}.user-admin-header-right{gap:.35rem;width:auto}.user-admin-main{width:calc(100vw - 1rem);margin:.8rem auto var(--non-graph-page-bottom-space-mobile)}.user-admin-stats{grid-template-columns:1fr}.user-admin-toolbar{justify-content:stretch}.user-admin-toolbar .user-admin-btn{flex:1}.session-header{gap:.45rem;padding:.65rem .75rem}.session-header-left{justify-content:flex-start;gap:.5rem;width:auto;min-width:0}.session-header-right{gap:.35rem;width:auto}.session-main{width:calc(100vw - 1rem);margin:.8rem auto var(--non-graph-page-bottom-space-mobile)}.session-stats{grid-template-columns:1fr 1fr}.session-toolbar{justify-content:stretch}.session-toolbar .session-btn{flex:1}.notice-header{gap:.45rem;padding:.65rem .75rem}.notice-header-left{justify-content:flex-start;gap:.5rem;width:auto;min-width:0}.notice-header-right{gap:.35rem;width:auto}.notice-main{width:calc(100vw - 1rem);margin:.8rem auto var(--non-graph-page-bottom-space-mobile)}.notice-stats{grid-template-columns:1fr 1fr}.notice-toolbar{flex-wrap:wrap;justify-content:stretch}.notice-filter-select{flex:100%}.audit-log-search-input{flex:100%;min-width:100%}.notice-toolbar .notice-btn{flex:1}.relationship-name-search{flex:100%;min-width:100%}.relationship-name-actions{flex-direction:column}.graph-settings-header{gap:.45rem;padding:.65rem .75rem}.graph-settings-header-left{justify-content:flex-start;gap:.5rem;width:auto;min-width:0}.graph-settings-header-right{gap:.35rem;width:auto}.notice-user-chip,.session-user-chip,.user-admin-current-user,.graph-settings-user-chip{display:none}.user-admin-header-left h1,.session-header-left h1,.notice-header-left h1,.graph-settings-header-left h1{font-size:.98rem}.graph-settings-main{width:calc(100vw - 1rem);margin:.8rem auto var(--non-graph-page-bottom-space-mobile)}.graph-settings-grid{grid-template-columns:1fr}.audit-log-table-wrap{max-height:min(62vh,100dvh - 15rem)}.graph-settings-actions{flex-direction:column-reverse}.graph-settings-actions .graph-settings-btn{width:100%}.graph-backup-actions{align-items:stretch}.graph-backup-actions .graph-settings-btn,.graph-backup-file-input{flex:100%;width:100%;min-width:0}.header{flex-direction:column;align-items:stretch;gap:.4rem;padding:.5rem .75rem}.header h1{text-align:center;font-size:1.1rem}.controls{justify-content:flex-start;gap:.5rem;width:100%}.controls>:not(.search-box):not(.mobile-visible),.desktop-visible{display:none}.search-box{width:100%}.layer-select{color:#0f172a;background:#fff;border-color:#cbd5e1;width:100%;min-width:0}.mobile-visible{display:inline-flex}.mobile-search-results{position:fixed;top:3.25rem;left:.75rem;right:.75rem}.header-mobile-panel{position:fixed;top:3.25rem;right:.75rem}.search-box .btn-label{display:inline}.search-input{flex:auto;min-width:130px}.header-user,.header-action-menu{display:none}.page-header-menu{display:inline-flex}.react-flow__panel.react-flow__controls,.react-flow__minimap{display:none}.controls button{padding:.4rem .75rem;font-size:.8rem}.controls .btn-icon{justify-content:center;width:2.5rem;height:2.5rem;padding:0}.controls .btn-icon svg{width:1.1rem;height:1.1rem}.controls .btn-label{display:none}.modal-overlay{align-items:flex-end;padding:.75rem}.avatar-overlay{padding-top:max(.75rem, env(safe-area-inset-top) + .5rem);align-items:flex-start;padding-bottom:.75rem}.avatar-modal{border-radius:12px;gap:.5rem;width:min(98vw,560px);max-height:92dvh;padding:.75rem}.avatar-modal img{border-radius:10px;width:100%;max-width:100%;max-height:84dvh}.avatar-modal-name{font-size:.9rem}.avatar-carousel-btn{width:38px;height:38px;font-size:1.6rem}.person-node{min-width:80px}.node-avatar{width:40px;height:40px;font-size:1rem}}@media (width<=480px){.controls{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:.25rem;overflow-x:auto}.controls::-webkit-scrollbar{height:6px}.controls::-webkit-scrollbar-thumb{background:#ffffff59;border-radius:999px}}@media (orientation:landscape) and (width<=1024px) and (height<=560px){.header{flex-direction:row;align-items:center;gap:.45rem;padding:.45rem .75rem}.controls{flex-wrap:nowrap;align-items:center;gap:.45rem;width:100%;min-width:0}.controls>:not(.search-box):not(.mobile-visible),.desktop-visible,.react-flow__panel.react-flow__controls,.react-flow__minimap{display:none}.search-box{flex:auto;gap:.35rem;width:auto;min-width:0}.search-input{width:100%;min-width:0}.search-box .btn-label{display:none}.search-box .btn-icon{justify-content:center;width:2.25rem;height:2.25rem;padding:0}.mobile-visible{flex:none;display:inline-flex}.header-user,.header-action-menu{display:none}.page-header-menu{display:inline-flex}.mobile-search-results{top:max(2.9rem, env(safe-area-inset-top) + 2.4rem);position:fixed;left:.75rem;right:.75rem}.header-mobile-panel{top:max(2.9rem, env(safe-area-inset-top) + 2.4rem);max-height:calc(100dvh - max(3.3rem, env(safe-area-inset-top) + 2.8rem));position:fixed;right:.75rem;overflow-y:auto}}.react-flow__minimap{background:#f8fafc!important}.react-flow__controls{box-shadow:0 4px 12px #0000001a}.react-flow__controls button{color:#64748b;background:#fff;border-color:#e2e8f0}.react-flow__handle{z-index:6;border-width:2px;width:14px;height:14px}.react-flow__edge-label{color:#64748b;background:#fff;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:500}.theme-toggle{min-width:5.25rem;min-height:var(--header-control-height);height:var(--header-control-height);border:1px solid var(--theme-toggle-border);background:var(--theme-toggle-bg);color:var(--theme-toggle-color);box-shadow:var(--app-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2500;border-radius:999px;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex;position:fixed;top:.9rem;right:.9rem}.user-admin-header-right .user-admin-btn,.session-header-right .session-btn,.notice-header-right .notice-btn,.graph-settings-header-right .graph-settings-btn,.notice-header-right .notice-user-chip,.session-header-right .session-user-chip,.user-admin-header-right .user-admin-current-user,.graph-settings-header-right .graph-settings-user-chip{min-height:var(--header-control-height);height:var(--header-control-height);justify-content:center;align-items:center;line-height:1;display:inline-flex}.theme-toggle:hover{filter:brightness(1.03);transform:translateY(-1px)}@media (width>=641px){.header,.user-admin-header,.session-header,.notice-header,.graph-settings-header{padding-right:13.2rem}}:root[data-theme=dark] .app,:root[data-theme=dark] .login-page,:root[data-theme=dark] .user-admin-page,:root[data-theme=dark] .session-page,:root[data-theme=dark] .notice-page,:root[data-theme=dark] .relationship-name-page,:root[data-theme=dark] .graph-settings-page{color:var(--app-text);background:linear-gradient(160deg,#0b1220 0%,#111827 48%,#020617 100%)}:root[data-theme=dark] .loading p,:root[data-theme=dark] .user-admin-stat-card span,:root[data-theme=dark] .session-stat-card span,:root[data-theme=dark] .notice-stat-card span,:root[data-theme=dark] .graph-settings-field small,:root[data-theme=dark] .user-admin-loading,:root[data-theme=dark] .session-loading,:root[data-theme=dark] .notice-loading,:root[data-theme=dark] .notice-empty,:root[data-theme=dark] .mobile-search-sub,:root[data-theme=dark] .header-mobile-label{color:var(--app-muted)}:root[data-theme=dark] .header,:root[data-theme=dark] .user-admin-header,:root[data-theme=dark] .session-header,:root[data-theme=dark] .notice-header,:root[data-theme=dark] .graph-settings-header{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);box-shadow:0 8px 24px #0206178c}:root[data-theme=dark] .user-admin-panel,:root[data-theme=dark] .session-panel,:root[data-theme=dark] .notice-panel,:root[data-theme=dark] .graph-settings-panel,:root[data-theme=dark] .login-card,:root[data-theme=dark] .modal,:root[data-theme=dark] .avatar-modal,:root[data-theme=dark] .relationship-choice-modal,:root[data-theme=dark] .header-mobile-panel,:root[data-theme=dark] .header-action-panel,:root[data-theme=dark] .mobile-search-results{background:var(--app-surface);border:1px solid var(--app-border);color:var(--app-text);box-shadow:var(--app-shadow)}:root[data-theme=dark] .login-logo-shell{background:linear-gradient(#f1f5f9f5 0%,#e2e8f0e6 100%);border-color:#94a3b86b;box-shadow:0 18px 34px #0206175c}:root[data-theme=dark] .landing-panel,:root[data-theme=dark] .login-card{background:#0f172acc;border-color:#94a3b82e}:root[data-theme=dark] .login-page{background:radial-gradient(circle at top,#0f766e29,#0000 28%),linear-gradient(160deg,#0b1220 0%,#111827 48%,#020617 100%)}:root[data-theme=dark] .landing-eyebrow{color:#e2e8f0;background:#94a3b81f}:root[data-theme=dark] .landing-title,:root[data-theme=dark] .landing-feature-grid h2,:root[data-theme=dark] .landing-feature-card strong{color:#f8fafc}:root[data-theme=dark] .landing-body,:root[data-theme=dark] .landing-feature-card p,:root[data-theme=dark] .landing-highlight-list li{color:#cbd5e1}:root[data-theme=dark] .landing-feature-card{background:#1e293bb3;border-color:#94a3b824}:root[data-theme=dark] .user-admin-stat-card,:root[data-theme=dark] .session-stat-card,:root[data-theme=dark] .notice-stat-card,:root[data-theme=dark] .graph-settings-field,:root[data-theme=dark] .graph-settings-toggle{background:var(--app-surface);border-color:var(--app-border);box-shadow:none}:root[data-theme=dark] .graph-settings-field,:root[data-theme=dark] .graph-settings-toggle{background:var(--app-surface-soft)}:root[data-theme=dark] .graph-backup-hint,:root[data-theme=dark] .graph-backup-file-name{color:var(--app-muted)}:root[data-theme=dark] .graph-backup-file-input{color:var(--app-text)}:root[data-theme=dark] .graph-backup-error{color:#fecaca;background:#991b1b33;border-color:#f8717173}:root[data-theme=dark] .graph-backup-success{color:#bbf7d0;background:#0596692e;border-color:#4ade8059}:root[data-theme=dark] .node-meta-chip{color:#dbe7f8;background:#94a3b82e}:root[data-theme=dark] .user-admin-table th,:root[data-theme=dark] .session-table th,:root[data-theme=dark] .notice-table th,:root[data-theme=dark] .user-admin-table td,:root[data-theme=dark] .session-table td,:root[data-theme=dark] .notice-table td{color:var(--app-text);border-bottom-color:#94a3b82e}:root[data-theme=dark] .audit-log-table-wrap{border-color:var(--app-border);background:var(--app-surface)}:root[data-theme=dark] .audit-log-table-wrap .notice-table th{background:#111827}:root[data-theme=dark] .relationship-name-search,:root[data-theme=dark] .relationship-name-input{background:var(--app-surface-soft);border-color:var(--app-border);color:var(--app-text)}:root[data-theme=dark] .relationship-name-page .notice-table th{color:#f8fafc}:root[data-theme=dark] .relationship-name-page .notice-table td{color:#e6edf7}:root[data-theme=dark] .relationship-name-page .relationship-name-code span,:root[data-theme=dark] .relationship-name-page .relationship-name-default span{color:#cbd5e1}:root[data-theme=dark] .relationship-name-page .relationship-name-input::placeholder,:root[data-theme=dark] .relationship-name-page .relationship-name-search::placeholder{color:#cbd5e1;opacity:.9}:root[data-theme=dark] .relationship-name-header .notice-header-left h1{color:#f8fafc}:root[data-theme=dark] .relationship-name-header .notice-header-left p{color:#e2e8f0;opacity:.95}:root[data-theme=dark] .notice-btn.secondary{color:#f8fafc;background:#1e293bdb;border-color:#94a3b880}:root[data-theme=dark] .notice-btn.secondary:hover{color:#fff;background:#334155fa}:root[data-theme=dark] .notice-btn.danger{color:#fff1f2;text-shadow:0 1px #00000038;background:linear-gradient(#7f1d1db8 0%,#7f1d1df2 100%);border-color:#f87171bf}:root[data-theme=dark] .notice-btn.danger:hover{color:#fff;background:linear-gradient(#991b1bd9 0%,#991b1b 100%);border-color:#fca5a5e0}:root[data-theme=dark] .relationship-name-code strong,:root[data-theme=dark] .relationship-name-default strong{color:var(--app-text)}:root[data-theme=dark] .name-lock-chip{color:#bfdbfe;background:#1e40af52;border-color:#93c5fd59}:root[data-theme=dark] .name-lock-btn{border-color:#fbbf246b;box-shadow:0 10px 24px #78350f57;color:#fef3c7!important;background:linear-gradient(135deg,#78350ff2 0%,#b45309eb 100%)!important}:root[data-theme=dark] .name-lock-btn:hover:not(:disabled){color:#fffbeb!important;background:linear-gradient(135deg,#92400efa 0%,#d97706f2 100%)!important}:root[data-theme=dark] .name-input-locked{color:#94a3b8;background:#1e293b8c}:root[data-theme=dark] .name-lock-hint{color:#94a3b8}:root[data-theme=dark] .node-meta-chip-plain{color:#94a3b8;background:0 0;border:none}:root[data-theme=dark] .notice-message,:root[data-theme=dark] .report-issue-person,:root[data-theme=dark] .form-group label,:root[data-theme=dark] .graph-settings-field-label,:root[data-theme=dark] .login-card p{color:var(--app-muted)}:root[data-theme=dark] .login-card h1,:root[data-theme=dark] .modal h2,:root[data-theme=dark] .graph-settings-panel h2,:root[data-theme=dark] .avatar-modal-name,:root[data-theme=dark] .relationship-choice-modal h3{color:var(--app-text)}:root[data-theme=dark] .avatar-modal-count{color:var(--app-muted)}:root[data-theme=dark] .avatar-carousel-btn{background:#0f172acc}:root[data-theme=dark] .search-input{color:#f8fafc;background:#0f172a59;border-color:#94a3b873}:root[data-theme=dark] .layer-select{color:#f8fafc;background:#0f172a7a;border-color:#94a3b873}:root[data-theme=dark] .header-mobile-layer-picker{color:var(--app-muted)}:root[data-theme=dark] .search-input::placeholder{color:#e2e8f0b8}:root[data-theme=dark] .header-action-item,:root[data-theme=dark] .mobile-search-item,:root[data-theme=dark] .user-admin-btn,:root[data-theme=dark] .session-btn,:root[data-theme=dark] .notice-btn,:root[data-theme=dark] .graph-settings-btn{color:var(--app-text)}:root[data-theme=dark] .btn-secondary{border:1px solid #94a3b873;color:#f8fafc!important;background:#0f172aad!important}:root[data-theme=dark] .btn-secondary:hover{color:#fff!important;background:#1e293be6!important}:root[data-theme=dark] .btn-primary{border:1px solid #e2e8f0b3;color:#0f172a!important;background:linear-gradient(135deg,#e2e8f0 0%,#cbd5e1 100%)!important}:root[data-theme=dark] .header-action-item:hover,:root[data-theme=dark] .mobile-search-item:hover{background:#94a3b82e}:root[data-theme=dark] .avatar-danger-btn,:root[data-theme=dark] .avatar-gallery-danger{color:#fecaca;box-shadow:none;background:linear-gradient(#7f1d1d7a 0%,#7f1d1db3 100%);border-color:#f8717173}:root[data-theme=dark] .avatar-danger-btn:hover,:root[data-theme=dark] .avatar-gallery-danger:hover{color:#fee2e2;background:linear-gradient(#991b1b9e 0%,#991b1bd1 100%);border-color:#fca5a59e}:root[data-theme=dark] .avatar-library{background:var(--app-surface-soft);border-color:var(--app-border)}:root[data-theme=dark] .avatar-gallery-item{background:var(--app-surface);border-color:#94a3b847}:root[data-theme=dark] .avatar-editor-hint,:root[data-theme=dark] .avatar-zoom-head,:root[data-theme=dark] .avatar-library-head{color:var(--app-muted)}:root[data-theme=dark] .avatar-status-chip{color:#d7e1ef;background:#94a3b81f;border-color:#94a3b847}:root[data-theme=dark] .avatar-status-badge.tone-accent{color:#bfdbfe;background:#3b82f633;border-color:#60a5fa66}:root[data-theme=dark] .avatar-status-badge.tone-warning{color:#fcd34d;background:#f59e0b33;border-color:#fbbf2461}:root[data-theme=dark] .avatar-status-badge.tone-stable{color:#bbf7d0;background:#22c55e33;border-color:#4ade8059}:root[data-theme=dark] .avatar-status-badge.tone-muted{color:#cbd5e1;background:#94a3b81f;border-color:#94a3b84d}:root[data-theme=dark] .user-admin-btn.secondary,:root[data-theme=dark] .session-btn.secondary,:root[data-theme=dark] .notice-btn.secondary,:root[data-theme=dark] .graph-settings-btn.secondary,:root[data-theme=dark] .relationship-choice-btn,:root[data-theme=dark] .relationship-choice-cancel,:root[data-theme=dark] .date-year-btn,:root[data-theme=dark] .custom-field-add,:root[data-theme=dark] .form-actions button[type=button]{background:var(--app-surface-soft);border-color:var(--app-border);color:var(--app-text)}:root[data-theme=dark] .session-btn.secondary{color:#f8fafc;background:#1e293beb;border-color:#94a3b894}:root[data-theme=dark] .session-btn.secondary:hover{color:#fff;background:#334155fa}:root[data-theme=dark] .session-btn.danger{color:#fff1f2;text-shadow:0 1px #0000003d;background:linear-gradient(#991b1bd1 0%,#991b1bfa 100%);border-color:#fca5a5d1}:root[data-theme=dark] .session-btn.danger:hover{color:#fff;background:linear-gradient(#b91c1ce6 0%,#b91c1c 100%);border-color:#fecacaeb}:root[data-theme=dark] .user-admin-btn{color:#f8fafc;font-weight:700}:root[data-theme=dark] .user-admin-btn.primary{color:#fff;text-shadow:0 1px #0f172a73;background:linear-gradient(135deg,#6366f1 0%,#818cf8 100%);border-color:#e0e7ff59}:root[data-theme=dark] .user-admin-btn.secondary{color:#f8fafc;background:#1e293beb;border-color:#94a3b894}:root[data-theme=dark] .user-admin-btn.secondary:hover{color:#fff;background:#334155fa}:root[data-theme=dark] .user-admin-btn.danger{color:#fff1f2;text-shadow:0 1px #0000003d;background:linear-gradient(#991b1bd1 0%,#991b1bfa 100%);border-color:#fca5a5d1}:root[data-theme=dark] .user-admin-btn.danger:hover{color:#fff;background:linear-gradient(#b91c1ce6 0%,#b91c1c 100%);border-color:#fecacaeb}:root[data-theme=dark] .user-admin-role-select,:root[data-theme=dark] .notice-filter-select,:root[data-theme=dark] .notice-status-select,:root[data-theme=dark] .graph-settings-input,:root[data-theme=dark] .form-group input,:root[data-theme=dark] .form-group select,:root[data-theme=dark] .form-group textarea{background:var(--app-surface-soft);border-color:var(--app-border);color:var(--app-text)}:root[data-theme=dark] .person-node{background:var(--app-surface);border-color:#334155;box-shadow:0 8px 20px #02061773}:root[data-theme=dark] .node-name{color:var(--app-text)}:root[data-theme=dark] .node-title{background:var(--app-surface-soft);color:var(--app-muted)}:root[data-theme=dark] .react-flow__minimap{background:var(--app-surface-soft)!important}:root[data-theme=dark] .react-flow__controls{box-shadow:0 8px 20px #02061773}:root[data-theme=dark] .react-flow__controls button{background:var(--app-surface);border-color:var(--app-border);color:var(--app-text)}:root[data-theme=dark] .react-flow__edge-label{background:var(--app-surface);color:var(--app-muted)}@media (width<=640px){.login-page{padding:.9rem}.landing-panel,.login-card{border-radius:22px;padding:1.25rem}.landing-brand{flex-direction:column;align-items:flex-start}.landing-title{font-size:2.5rem}.theme-toggle{top:auto;bottom:.75rem;right:.75rem}.account-avatar-row{flex-direction:column;align-items:stretch}.account-avatar-frame{margin:0 auto}.account-avatar-actions{flex-direction:column}.account-avatar-actions .session-btn,.account-upload-btn{justify-content:center;width:100%}.account-meta-grid{grid-template-columns:1fr}}.account-panel{gap:1rem;display:grid;overflow:hidden}.account-form{gap:1rem;display:grid}.account-section-hint{color:var(--app-muted);margin:.35rem 0 0;font-size:.9rem}.account-avatar-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.account-avatar-frame{border:1px solid var(--app-border);width:96px;height:96px;color:var(--app-muted);text-align:center;background:#94a3b829;border-radius:999px;place-items:center;font-size:.85rem;display:grid;overflow:hidden}.account-avatar-frame img{object-fit:cover;width:100%;height:100%}.account-avatar-actions{flex-wrap:wrap;gap:.75rem;display:flex}.account-upload-btn{position:relative;overflow:hidden}.account-upload-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.passkey-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.passkey-list{gap:1rem;margin-top:1rem;display:grid}.passkey-card{border:1px solid var(--app-border);background:#f8fafcd9;border-radius:16px;grid-template-columns:minmax(0,1fr);gap:1rem;padding:1rem 1.1rem;display:grid;box-shadow:0 10px 24px #0f172a0d}.passkey-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.passkey-card-head p{color:var(--app-muted);margin:.35rem 0 0;font-size:.88rem;line-height:1.5}.passkey-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.passkey-meta-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;display:grid}.passkey-meta-item{color:var(--app-muted);background:#94a3b814;border:1px solid #94a3b829;border-radius:12px;gap:.3rem;padding:.8rem .9rem;font-size:.84rem;display:grid}.passkey-empty-state{color:var(--app-muted);margin:1rem 0 0}.account-meta-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.account-meta-card{border:1px solid var(--app-border);background:#94a3b81a;border-radius:16px;gap:.35rem;padding:.9rem 1rem;display:grid}.account-meta-card span{color:var(--app-muted);font-size:.85rem}.account-meta-card strong{font-size:.95rem}
