:root{--bg:#F4F5FA;--surface:#FFFFFF;--surface-2:#F9FAFD;--ink:#151A33;--muted:#586080;--border:#DADEEB;--border-strong:#BCC4DA;--primary:#1E2A5E;--primary-hover:#2B3B85;--on-primary:#FFFFFF;--primary-soft:#E7EBF7;--gold:#B8862B;--gold-soft:#F7EDD6;--focus:#C48A1E;--ok:#1D7A4C;--ok-soft:#DFF3E8;--warn:#8F5E06;--warn-soft:#FBEFD3;--bad:#B8322A;--bad-soft:#FBE4E1;--info:#2F5BB7;--info-soft:#E3ECFB;--side:#161F4C;--side-ink:#C6CDEC;--side-active:#232E66;--side-line:#2C3878;--shadow-pop:0 14px 36px rgba(20,26,60,.2), 0 2px 8px rgba(20,26,60,.1);--font-ui:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;--font-head:"Fraunces",Georgia,"Times New Roman",serif;--font-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B0F22;--surface:#141A38;--surface-2:#10162F;--ink:#E6E9F6;--muted:#98A1C4;--border:#28305A;--border-strong:#3A4482;--primary:#A5B4F7;--primary-hover:#BDC8FA;--on-primary:#0B0F22;--primary-soft:#1D2550;--gold:#E2B75E;--gold-soft:#372B10;--focus:#E2B75E;--ok:#5FD19A;--ok-soft:#12362A;--warn:#EDB84E;--warn-soft:#3A2C0C;--bad:#F0847B;--bad-soft:#3F1A18;--info:#8FB1F6;--info-soft:#16294F;--side:#080B1B;--side-ink:#98A1C8;--side-active:#171E46;--side-line:#222A55;--shadow-pop:0 14px 36px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.4)}}:root[data-theme=dark]{--bg:#0B0F22;--surface:#141A38;--surface-2:#10162F;--ink:#E6E9F6;--muted:#98A1C4;--border:#28305A;--border-strong:#3A4482;--primary:#A5B4F7;--primary-hover:#BDC8FA;--on-primary:#0B0F22;--primary-soft:#1D2550;--gold:#E2B75E;--gold-soft:#372B10;--focus:#E2B75E;--ok:#5FD19A;--ok-soft:#12362A;--warn:#EDB84E;--warn-soft:#3A2C0C;--bad:#F0847B;--bad-soft:#3F1A18;--info:#8FB1F6;--info-soft:#16294F;--side:#080B1B;--side-ink:#98A1C8;--side-active:#171E46;--side-line:#222A55;--shadow-pop:0 14px 36px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.4)}.tn-ic{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tn-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;padding:0 1rem;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font:600 .9rem/1 var(--font-ui);cursor:pointer;text-decoration:none;white-space:nowrap}.tn-btn:hover{background:var(--primary-soft)}.tn-btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tn-btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.tn-btn.ghost{background:transparent;border-color:transparent;color:var(--primary)}.tn-btn.ghost:hover{background:var(--primary-soft)}.tn-btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.tn-btn.danger:hover{filter:brightness(.92)}.tn-btn.danger-o{color:var(--bad);border-color:var(--bad);background:var(--surface)}.tn-btn.danger-o:hover{background:var(--bad-soft)}.tn-btn.success{background:var(--ok);border-color:var(--ok);color:#fff}.tn-btn.success:hover{filter:brightness(.92)}.tn-btn.link{background:none;border:0;padding:0;min-height:0;color:var(--primary);text-decoration:underline;text-underline-offset:3px}.tn-btn.sm{min-height:2rem;padding:0 .7rem;font-size:.84rem;border-radius:7px}.tn-btn.lg{min-height:3rem;padding:0 1.4rem;font-size:1rem}.tn-btn:disabled,.tn-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none}:root[data-theme=dark] .tn-btn.danger,:root[data-theme=dark] .tn-btn.success{color:#0b0f22}.tn-icon-btn{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;position:relative}.tn-icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.tn-icon-btn.bordered{border-color:var(--border-strong)}.tn-btn-group{display:inline-flex}.tn-btn-group .tn-btn{border-radius:0;margin-left:-1px}.tn-btn-group .tn-btn:first-child{border-radius:8px 0 0 8px;margin-left:0}.tn-btn-group .tn-btn:last-child{border-radius:0 8px 8px 0}@keyframes tn-spin{to{transform:rotate(360deg)}}.tn-field{display:flex;flex-direction:column;gap:.35rem}.tn-field>label{font-weight:500;font-size:.87rem}.tn-err{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--bad)}.tn-ok-msg{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--ok)}.tn-input{display:flex;align-items:center;gap:.5rem;width:100%;min-height:2.5rem;padding:.45rem .75rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;text-align:left}.tn-input:focus,.tn-input:focus-within{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.tn-is-invalid .tn-input{border-color:var(--bad)}.tn-is-valid .tn-input{border-color:var(--ok)}.tn-pw{position:relative;display:inline-block;width:100%}.tn-pop{position:fixed;z-index:200;min-width:11rem;max-width:min(22rem,calc(100vw - 1rem));max-height:20rem;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop);padding:.3rem}.tn-pop [role=menuitem],.tn-pop [role=option]{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .65rem;border:0;border-radius:7px;background:none;text-align:left;cursor:pointer;color:var(--ink);font:inherit}.tn-pop [role=menuitem]:hover,.tn-pop [role=option]:hover,.tn-pop [role=menuitem]:focus-visible,.tn-pop [role=option]:focus-visible{background:var(--primary-soft);outline:none}.tn-pop [role=option] .tn-ic:last-child{margin-left:auto;opacity:0;color:var(--primary)}.tn-pop [role=option][aria-selected=true] .tn-ic:last-child{opacity:1}.tn-pop hr{border:0;border-top:1px solid var(--border);margin:.3rem 0}.tn-pop-empty{padding:.7rem;color:var(--muted);font-size:.87rem}.tn-select-btn{cursor:pointer;justify-content:space-between}.tn-select-btn .tn-sel-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tn-select-btn .tn-ph,.tn-select-btn .tn-ic{color:var(--muted)}.tn-multi-box{flex-wrap:wrap;gap:.35rem;cursor:text;padding:.3rem .5rem}.tn-multi-box input{flex:1;min-width:6rem;border:0;outline:0;background:transparent;padding:.2rem;font:inherit;color:inherit}.tn-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .3rem .15rem .6rem;border-radius:99px;background:var(--primary-soft);color:var(--primary);font-size:.83rem;font-weight:500}.tn-chip button{display:grid;place-items:center;width:1.2rem;height:1.2rem;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer}.tn-chip button:hover{background:var(--border)}.tn-chip .tn-ic{width:.8rem;height:.8rem}.tn-cal{width:17rem;padding:.4rem}.tn-cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.tn-cal-h b{font-weight:600}.tn-cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.tn-cal-g span{font-size:.72rem;color:var(--muted);padding:.3rem 0}.tn-cal-g button{aspect-ratio:1;border:0;border-radius:8px;background:none;cursor:pointer;font-size:.85rem;color:var(--ink)}.tn-cal-g button:hover{background:var(--primary-soft)}.tn-cal-g button.out{color:var(--muted);opacity:.55}.tn-cal-g button.today{box-shadow:inset 0 0 0 1.5px var(--gold)}.tn-cal-g button.sel{background:var(--primary);color:var(--on-primary)}.tn-tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--border);overflow-x:auto}.tn-tabs[role=tablist] [role=tab]{padding:.65rem .9rem;border:0;background:none;border-bottom:3px solid transparent;margin-bottom:-1px;font:500 inherit;color:var(--muted);cursor:pointer;white-space:nowrap}.tn-tabs [role=tab][aria-selected=true]{color:var(--primary);border-bottom-color:var(--gold);font-weight:600}.tn-tabs.pills{border:0}.tn-tabs.pills [role=tab]{border-radius:8px;border:0;margin:0}.tn-tabs.pills [role=tab][aria-selected=true]{background:var(--primary-soft);color:var(--primary)}.tn-seg{display:inline-flex;padding:3px;border-radius:9px;background:var(--primary-soft);gap:2px}.tn-seg button{border:0;background:none;padding:.3rem .8rem;border-radius:7px;font:500 .85rem inherit;color:var(--muted);cursor:pointer}.tn-seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #141a3c2e}.tn-toasts{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:500;display:flex;flex-direction:column;gap:.6rem;width:min(22rem,calc(100vw - 2rem))}.tn-toast{display:flex;align-items:flex-start;gap:.7rem;padding:.8rem .9rem;border-radius:10px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--info);box-shadow:var(--shadow-pop);animation:tn-toast-in .2s ease-out}.tn-toast.ok{border-left-color:var(--ok)}.tn-toast.warn{border-left-color:var(--warn)}.tn-toast.danger{border-left-color:var(--bad)}.tn-toast>.tn-ic{margin-top:.1rem;color:var(--info)}.tn-toast.ok>.tn-ic{color:var(--ok)}.tn-toast.warn>.tn-ic{color:var(--warn)}.tn-toast.danger>.tn-ic{color:var(--bad)}.tn-toast div{flex:1;font-size:.88rem}.tn-toast b{display:block;font-weight:600}.tn-toast div span{color:var(--muted)}@keyframes tn-toast-in{0%{opacity:0;translate:0 .6rem}to{opacity:1;translate:0 0}}.tn-dialog{border:0;padding:0;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);width:min(34rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);font-family:var(--font-ui)}.tn-dialog::backdrop{background:#090d2299}.tn-dialog[open]{display:flex;flex-direction:column;animation:tn-dlg-in .15s ease-out}@keyframes tn-dlg-in{0%{opacity:0}to{opacity:1}}.tn-dialog.drawer{margin:0 0 0 auto;height:100dvh;max-height:none;width:min(30rem,100vw);border-radius:14px 0 0 14px}.tn-dlg-h{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem .5rem}.tn-dlg-h h2{font:700 1.25rem/1.3 var(--font-head);margin:0}.tn-dlg-h p{color:var(--muted);font-size:.87rem;margin:.15rem 0 0}.tn-dlg-b{padding:.7rem 1.25rem 1rem;overflow-y:auto;flex:1;min-height:0}.tn-dlg-f{display:flex;justify-content:flex-end;gap:.6rem;padding:.9rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 14px 14px}.tn-pager{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.tn-pager span{padding:0 .3rem;color:var(--muted)}.tn-chart{position:relative}.tn-chart svg{display:block;width:100%;height:auto}.tn-chart .tn-gl{stroke:var(--border);stroke-width:1}.tn-chart .tn-ax{fill:var(--muted);font-size:11px;font-family:var(--font-ui)}.tn-chart .tn-hit{fill:transparent}.tn-chart .tn-col:hover .tn-hit{fill:var(--primary-soft)}.tn-chart .tn-b-ok{fill:var(--primary)}.tn-chart .tn-b-bad{fill:var(--bad)}.tn-chart-tip{position:absolute;top:0;z-index:5;pointer-events:none;min-width:8.5rem;padding:.5rem .7rem;border-radius:8px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);font-size:.82rem;translate:-50% 0}.tn-chart-tip b{display:block;margin-bottom:.2rem}.tn-app{display:grid;grid-template-columns:15.5rem minmax(0,1fr);min-height:100vh}.tn-side{position:sticky;top:0;height:100dvh;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;padding:1.1rem .8rem;z-index:30;overflow:auto}.tn-brand-row{display:flex;align-items:center;gap:.35rem;padding:0 .2rem 1rem}.tn-brand{display:flex;align-items:center;gap:.65rem;min-width:0;text-decoration:none;color:#fff;flex:1}.tn-brand svg{width:1.7rem;height:1.7rem;flex:none}.tn-brand-name{font:700 1.35rem/1 var(--font-head);letter-spacing:-.01em}.tn-collapse{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:8px;border:1px solid var(--side-line);background:transparent;color:var(--side-ink);cursor:pointer;flex:none}.tn-collapse:hover{background:var(--side-active);color:#fff}.tn-nav{display:flex;flex-direction:column;gap:.15rem}.tn-nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .7rem;border-radius:8px;color:var(--side-ink);text-decoration:none;font-weight:500;position:relative}.tn-nav a:hover,.tn-nav a.active{background:var(--side-active);color:#fff}.tn-nav a.active:before{content:"";position:absolute;left:-.8rem;top:.5rem;bottom:.5rem;width:3px;border-radius:0 3px 3px 0;background:#d9a441}.tn-nav-label{font-size:.78rem;padding:1.1rem .7rem .4rem;color:#8e98c6}.tn-side-foot{margin-top:auto;padding:.9rem;border:1px solid var(--side-line);border-radius:10px;font-size:.82rem}.tn-side-foot b{display:block;color:#fff;font-weight:600;margin-bottom:.15rem}.tn-scrim{display:none}.tn-main{min-width:0}.tn-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.6rem;padding:.65rem 1.5rem;background:var(--bg);border-bottom:1px solid var(--border)}.tn-menu-btn{display:none}.tn-content{padding:1.6rem 1.5rem 4rem;max-width:80rem}.tn-search-trigger{display:flex;align-items:center;gap:.6rem;flex:1;max-width:26rem;min-height:2.5rem;padding:0 .8rem;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;text-align:left}.tn-search-trigger kbd{margin-left:auto}@media(min-width:60.01rem){.tn-app.is-collapsed{grid-template-columns:4.25rem minmax(0,1fr)}.tn-app.is-collapsed .tn-brand-row{flex-direction:column;align-items:center;padding-left:0;padding-right:0}.tn-app.is-collapsed .tn-brand{flex:none;justify-content:center}.tn-app.is-collapsed .tn-brand-name,.tn-app.is-collapsed .tn-nav a .tn-label,.tn-app.is-collapsed .tn-nav-label,.tn-app.is-collapsed .tn-side-foot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tn-app.is-collapsed .tn-nav a{justify-content:center;padding:.65rem}.tn-app.is-collapsed .tn-side{padding-left:.45rem;padding-right:.45rem}}@media(max-width:60rem){.tn-app,.tn-app.is-collapsed{grid-template-columns:minmax(0,1fr)}.tn-side{position:fixed;left:0;top:0;height:100dvh;width:16rem;translate:-105% 0;transition:translate .2s}.tn-app.nav-open .tn-side{translate:0}.tn-app.nav-open .tn-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#090d228c;z-index:25}.tn-menu-btn{display:inline-grid}.tn-top{padding:.6rem 1rem}.tn-content{padding:1.2rem 1rem 3rem}}.tn-hint{font-size:.8rem;color:var(--muted)}.tn-req{color:var(--bad)}.tn-input-wrap{position:relative;display:flex;align-items:center;width:100%}.tn-input-wrap>.tn-ic.lead{position:absolute;left:.75rem;color:var(--muted);pointer-events:none}.tn-input.has-lead{padding-left:2.4rem}.tn-input-wrap>.trail{position:absolute;right:.25rem;width:2rem;height:2rem}.tn-input.has-trail{padding-right:2.4rem}.tn-affix{display:flex;align-items:stretch}.tn-affix .pre,.tn-affix .suf{display:grid;place-items:center;padding:0 .75rem;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--muted);font-size:.87rem;font-weight:500}.tn-affix .pre{border-right:0;border-radius:8px 0 0 8px}.tn-affix .suf{border-left:0;border-radius:0 8px 8px 0}.tn-affix .tn-input{border-radius:0;flex:1;min-width:0}.tn-affix .tn-input:first-child{border-radius:8px 0 0 8px}.tn-affix .tn-input:last-child{border-radius:0 8px 8px 0}.tn-counter{align-self:flex-end;font-size:.78rem;color:var(--muted)}.tn-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem}.tn-form-grid .full{grid-column:1/-1}.tn-num{display:inline-flex;align-items:stretch;width:9rem}.tn-num button{width:2.5rem;border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;font-size:1.1rem;color:var(--ink)}.tn-num button:first-child{border-radius:8px 0 0 8px}.tn-num button:last-child{border-radius:0 8px 8px 0}.tn-num button:hover{background:var(--primary-soft)}.tn-num input{flex:1;text-align:center;border-radius:0;min-width:0}.tn-check,.tn-radio{display:flex;align-items:flex-start;gap:.6rem;cursor:pointer;line-height:1.4}.tn-check input,.tn-radio input{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:1.15rem;height:1.15rem;margin:.1rem 0 0;border:1.5px solid var(--border-strong);background:var(--surface);position:relative;cursor:pointer}.tn-check input{border-radius:5px}.tn-radio input{border-radius:50%}.tn-check input:checked,.tn-check input:indeterminate,.tn-radio input:checked{background:var(--primary);border-color:var(--primary)}.tn-check input:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--on-primary);opacity:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/85% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/85% no-repeat}.tn-check input:checked:after,.tn-check input:indeterminate:after{opacity:1}.tn-check input:indeterminate:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}.tn-radio input:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--on-primary);opacity:0}.tn-radio input:checked:after{opacity:1}.tn-check small,.tn-radio small{display:block;color:var(--muted);font-size:.8rem}.tn-choice{display:flex;flex-direction:column;gap:.6rem}.tn-radio-card{position:relative;display:flex;gap:.7rem;padding:.8rem .9rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);cursor:pointer}.tn-radio-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--gold)}.tn-radio-card input{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.tn-radio-card b{display:block;font-weight:600}.tn-radio-card small{color:var(--muted)}.tn-switch{display:flex;align-items:center;gap:.65rem;cursor:pointer}.tn-switch input{position:absolute;opacity:0;width:0;height:0}.tn-switch .track{position:relative;flex:none;width:2.5rem;height:1.4rem;border-radius:99px;background:var(--border-strong)}.tn-switch .track:after{content:"";position:absolute;top:2px;left:2px;width:1.1rem;height:1.1rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:translate .15s}.tn-switch input:checked+.track{background:var(--ok)}.tn-switch input:checked+.track:after{translate:1.1rem 0}.tn-switch input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}.tn-switch input:disabled+.track{opacity:.45}input[type=range].tn-range{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:1.4rem;background:transparent}input[type=range].tn-range::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--gold) var(--pct,50%),var(--border) var(--pct,50%))}input[type=range].tn-range::-moz-range-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--gold) var(--pct,50%),var(--border) var(--pct,50%))}input[type=range].tn-range::-webkit-slider-thumb{-webkit-appearance:none;width:1.2rem;height:1.2rem;margin-top:-.32rem;border-radius:50%;background:var(--primary);border:3px solid var(--surface)}.tn-slider-row{display:flex;align-items:center;gap:.9rem}.tn-slider-row output{min-width:3.2rem;text-align:right;font:500 .9rem var(--font-mono)}.tn-chip-toggle{display:inline-flex;align-items:center;padding:.3rem .8rem;border-radius:99px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:.85rem;font-weight:500;color:var(--ink)}.tn-chip-toggle[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tn-dropzone{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.6rem 1rem;text-align:center;border:2px dashed var(--border-strong);border-radius:12px;background:var(--surface-2);cursor:pointer}.tn-dropzone:hover,.tn-dropzone.over{border-color:var(--gold);background:var(--gold-soft)}.tn-dropzone .tn-ic{width:1.8rem;height:1.8rem;color:var(--primary)}.tn-files{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.tn-file{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:10px}.tn-file b{display:block;font-weight:500}.tn-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .55rem;border-radius:99px;font-size:.77rem;font-weight:600;background:var(--primary-soft);color:var(--primary)}.tn-badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:currentColor}.tn-badge.plain:before{display:none}.tn-badge.ok{background:var(--ok-soft);color:var(--ok)}.tn-badge.bad{background:var(--bad-soft);color:var(--bad)}.tn-badge.warn{background:var(--warn-soft);color:var(--warn)}.tn-badge.info{background:var(--info-soft);color:var(--info)}.tn-badge.neutral{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--border)}.tn-alert{display:flex;align-items:flex-start;gap:.75rem;padding:.8rem 1rem;border-radius:10px;border:1px solid transparent;font-size:.9rem}.tn-alert .body{flex:1}.tn-alert b{display:block;font-weight:600}.tn-alert .body span{color:var(--ink)}.tn-alert.info{background:var(--info-soft);color:var(--info)}.tn-alert.ok{background:var(--ok-soft);color:var(--ok)}.tn-alert.warn{background:var(--warn-soft);color:var(--warn)}.tn-alert.bad{background:var(--bad-soft);color:var(--bad)}.tn-progress{height:.5rem;border-radius:99px;background:var(--border);overflow:hidden}.tn-progress>span{display:block;height:100%;width:0;border-radius:99px;background:var(--gold)}.tn-progress.ind>span{width:35%;animation:tn-ind 1.3s ease-in-out infinite}@keyframes tn-ind{0%{translate:-100% 0}to{translate:300% 0}}.tn-spinner{display:inline-block;width:1.4rem;height:1.4rem;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:tn-spin .8s linear infinite}.tn-skel{border-radius:6px;background:linear-gradient(90deg,var(--border) 25%,var(--surface-2) 50%,var(--border) 75%);background-size:200% 100%;animation:tn-shim 1.3s linear infinite}@keyframes tn-shim{to{background-position:-200% 0}}.tn-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:2.5rem 1rem;color:var(--muted)}.tn-empty h3{font:600 1.1rem var(--font-head);color:var(--ink);margin:0}.tn-steps{display:flex;gap:.5rem;list-style:none;margin:0;padding:0;counter-reset:s}.tn-steps li{flex:1;display:flex;align-items:center;gap:.55rem;font-size:.85rem;color:var(--muted);counter-increment:s}.tn-steps li:before{content:counter(s);display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;border:2px solid var(--border-strong);font-weight:600;font-size:.8rem;flex:none}.tn-steps li:after{content:"";flex:1;height:2px;background:var(--border);min-width:.8rem}.tn-steps li:last-child:after{display:none}.tn-steps li.done{color:var(--ink)}.tn-steps li.done:before{content:"✓";background:var(--ok);border-color:var(--ok);color:#fff}.tn-steps li.cur{color:var(--ink);font-weight:600}.tn-steps li.cur:before{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.tn-acc{border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}.tn-acc+.tn-acc{margin-top:.5rem}.tn-acc summary{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;cursor:pointer;font-weight:500;list-style:none}.tn-acc summary::-webkit-details-marker{display:none}.tn-acc summary:after{content:"";width:.55rem;height:.55rem;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);rotate:45deg}.tn-acc[open] summary:after{rotate:225deg}.tn-acc[open] summary{border-bottom:1px solid var(--border)}.tn-acc .tn-acc-b{padding:.9rem 1rem;color:var(--muted);font-size:.9rem}.tn-crumbs{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--muted)}.tn-crumbs a{color:var(--muted);text-decoration:none}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;translate:-50% 0;padding:.3rem .6rem;border-radius:6px;background:#151a33;color:#fff;font-size:.78rem;font-weight:500;white-space:nowrap;z-index:150;pointer-events:none}.tn-avatar{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:.8rem}.tn-avatar.lg{width:3.6rem;height:3.6rem;font-size:1.1rem}.tn-avatar-group{display:inline-flex}.tn-avatar-group .tn-avatar+.tn-avatar{margin-left:-.55rem}.tn-kv{display:grid;grid-template-columns:8rem 1fr;gap:.5rem 1rem;font-size:.9rem;margin:0}.tn-kv dt{color:var(--muted)}.tn-kv dd{margin:0}.tn-stat{display:flex;flex-direction:column;gap:.15rem}.tn-stat .lbl{color:var(--muted);font-size:.85rem}.tn-stat .val{font:700 1.9rem/1.15 var(--font-head)}.tn-stat .delta{font-size:.82rem;font-weight:600;color:var(--ok)}.tn-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.15rem 1.25rem}.tn-card-h{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.tn-card-h h2{font:600 1.05rem/1.3 var(--font-head);margin:0}.tn-stack{display:flex;flex-direction:column;gap:1rem}.tn-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.tn-grid{display:grid;gap:1rem}.tn-g3{grid-template-columns:repeat(3,minmax(0,1fr))}.tn-g2{grid-template-columns:repeat(2,minmax(0,1fr))}.tn-muted{color:var(--muted)}.tn-small{font-size:.83rem}.tn-demo-lbl{font-size:.78rem;font-weight:600;color:var(--muted);margin:0 0 .5rem}.tn-ph h1{font:700 1.85rem/1.2 var(--font-head);margin:.3rem 0 0}.tn-ph .sub{color:var(--muted);margin:.25rem 0 0}kbd.tn-kbd{font:400 .75rem var(--font-mono);padding:.1rem .4rem;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);color:var(--muted)}.tn-dialog.cmd{margin-top:12vh;width:min(38rem,calc(100vw - 2rem))}.tn-cmd-in{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border)}.tn-cmd-in input{flex:1;border:0;outline:0;background:transparent;font-size:1rem;color:inherit}.tn-cmd-list{list-style:none;margin:0;padding:.4rem;max-height:20rem;overflow-y:auto}.tn-cmd-list button{display:flex;align-items:center;gap:.7rem;width:100%;padding:.6rem .7rem;border:0;border-radius:8px;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.tn-cmd-list button[aria-selected=true]{background:var(--primary-soft)}.tn-cmd-list small{margin-left:auto;color:var(--muted)}.tn-cmd-foot{padding:.5rem 1rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--muted);display:flex;gap:1rem}.tn-pop.bad,[role=menuitem].bad{color:var(--bad)}.tn-btn[data-loading],.tn-btn.loading,.tn-icon-btn[data-loading],.tn-icon-btn.loading{pointer-events:none;color:transparent!important}.tn-btn[data-loading]:disabled,.tn-btn.loading:disabled{opacity:1}.tn-btn[data-loading]:after,.tn-btn.loading:after,.tn-icon-btn[data-loading]:after,.tn-icon-btn.loading:after{content:"";position:absolute;width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--on-primary);border-right-color:transparent;animation:tn-spin .7s linear infinite}.tn-btn:not(.primary):not(.danger):not(.success)[data-loading]:after,.tn-btn:not(.primary):not(.danger):not(.success).loading:after,.tn-icon-btn[data-loading]:after,.tn-icon-btn.loading:after{border-color:var(--primary);border-right-color:transparent}.tn-input-wrap[data-loading],.tn-pw[data-loading],.tn-affix[data-loading],.tn-num[data-loading]{position:relative;pointer-events:none}.tn-input-wrap[data-loading]:after,.tn-pw[data-loading]:after{content:"";position:absolute;right:.65rem;top:50%;width:.9rem;height:.9rem;margin-top:-.45rem;border-radius:50%;border:2px solid var(--primary);border-right-color:transparent;animation:tn-spin .7s linear infinite;z-index:2;pointer-events:none}.tn-input-wrap[data-loading]>.tn-input,.tn-pw[data-loading]>.tn-input{pointer-events:none}.tn-card[data-loading],.tn-table[data-loading],.tn-chart[data-loading],.tn-dlg-b[data-loading],.tn-content[data-loading],.tn-stat[data-loading]{position:relative;pointer-events:none}.tn-card[data-loading]:before,.tn-table[data-loading]:before,.tn-chart[data-loading]:before,.tn-dlg-b[data-loading]:before,.tn-content[data-loading]:before,.tn-stat[data-loading]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--surface) 62%,transparent);z-index:4;border-radius:inherit}.tn-card[data-loading]:after,.tn-table[data-loading]:after,.tn-chart[data-loading]:after,.tn-dlg-b[data-loading]:after,.tn-content[data-loading]:after,.tn-stat[data-loading]:after{content:"";position:absolute;left:50%;top:50%;width:1.4rem;height:1.4rem;margin:-.7rem 0 0 -.7rem;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:tn-spin .8s linear infinite;z-index:5}.tn-tabs[data-loading],.tn-seg[data-loading],.tn-pager[data-loading],.tn-pop[data-loading],.tn-switch[data-loading],.tn-check[data-loading],.tn-radio[data-loading],.tn-chip[data-loading],.tn-chip-toggle[data-loading],.tn-radio-card[data-loading]{opacity:.55;pointer-events:none}[data-loading]{pointer-events:none}.tn-pop-h{padding:.4rem .65rem;font-size:.78rem;color:var(--muted);font-weight:600}.tn-dialog.drawer[open]{animation:tn-drawer-in .2s ease-out}@keyframes tn-drawer-in{0%{translate:2.5rem 0;opacity:0}to{translate:0 0;opacity:1}}@media(max-width:40rem){.tn-g3,.tn-g2,.tn-form-grid{grid-template-columns:1fr}.tn-search-trigger span,.tn-search-trigger kbd{display:none}.tn-search-trigger{flex:none;width:2.5rem;justify-content:center;padding:0}}[data-brand=payroll]{--primary: #13714c;--primary-hover: #0f5a3c;--on-primary: #ffffff;--primary-soft: #e3f5ec;--gold: #c4a035;--gold-soft: #f7f0d6;--focus: #2a9d6a;--bg: #f3f7f5;--surface: #ffffff;--surface-2: #f7faf8;--ink: #1a1f1c;--muted: #5c6b63;--border: #d5dbd8;--border-strong: #b8c4bc;--side: #0b3d2e;--side-ink: #b8d4c8;--side-active: #145c42;--side-line: #1a6b4c}:root[data-theme=dark] body[data-brand=payroll]{--primary: #5fd19a;--primary-hover: #8ad9b3;--on-primary: #062218;--primary-soft: #12362a;--gold: #e2c25e;--gold-soft: #372f10;--focus: #5fd19a;--bg: #0a1410;--surface: #12201a;--surface-2: #0e1a15;--ink: #e6f2ec;--muted: #98b4a6;--border: #243830;--border-strong: #355347;--side: #071a12;--side-ink: #98b4a6;--side-active: #12362a;--side-line: #1a4032}[data-brand=payroll] .tn-nav a.active:before{background:var(--gold)}[data-brand=payroll] .tn-nav-label{color:#7aab96}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font:400 .94rem/1.55 var(--font-ui);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.co-page-title,.tn-ph h1{margin:.3rem 0 0;font:700 1.85rem/1.2 var(--font-head);color:var(--ink)}.co-page-sub,.tn-ph .sub{margin:.25rem 0 1.25rem;color:var(--muted);font-size:.95rem}.co-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}@media(max-width:960px){.co-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.co-stat-grid{grid-template-columns:1fr}}.co-stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.co-stat .label{color:var(--muted);font-size:.85rem}.co-stat .value{margin-top:8px;font-size:1.75rem;font-weight:700;color:var(--primary);font-family:var(--font-head)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--side)}.login-brand{display:flex;flex-direction:column;justify-content:flex-end;padding:48px;color:var(--side-ink)}.login-brand .tn-kicker{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;margin-bottom:.75rem}.login-brand h1{margin:0;font:700 clamp(2.4rem,5vw,3.6rem)/1.05 var(--font-head);color:#fff;letter-spacing:-.03em}.login-brand p{margin:12px 0 0;max-width:28rem;opacity:.9;font-size:1.05rem}.login-panel{display:flex;align-items:center;justify-content:center;padding:32px;background:var(--bg)}.login-card{width:100%;max-width:420px;background:var(--surface);border-radius:16px;padding:32px;border:1px solid var(--border);box-shadow:var(--shadow-pop)}.login-card h2{margin:0 0 .75rem;font:700 1.45rem/1.2 var(--font-head)}@media(max-width:860px){.login-shell{grid-template-columns:1fr}.login-brand{padding:32px 24px 16px}}.tn-content .ant-card{border-color:var(--border);border-radius:12px}.tn-content .ant-table{background:transparent}.tn-lang{min-width:8.5rem;height:2.1rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:0 .6rem}.pe-run-page .ant-table-expanded-row>td{background:#f4f6f5!important;padding:12px 16px 16px!important}.pe-inline{background:#f4f6f5}.pe-inline-loading{padding:24px;text-align:center}.pe-inline-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.pe-inline-totals{font-size:13px;color:#5c6b63}.pe-ded-inline{color:#c0392b}.pe-check{margin:8px 0}.pe-page{margin:-24px;padding:16px 20px 28px;background:#f4f6f5;min-height:calc(100vh - 120px)}.pe-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.pe-emp-code{font-weight:700;color:#13714c}.pe-emp-name{font-size:13px;color:#5c6b63}.pe-period{color:#5c6b63;font-size:13px}.pe-readonly-badge{background:#e9ebed;padding:4px 10px;border-radius:6px;font-size:12px;color:#5c6b63}.pe-summary-bar{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;background:#fff;border:1px solid #d5dbd8;border-radius:10px;padding:12px 14px;margin-bottom:14px}.pe-summary-bar>div{display:flex;flex-direction:column;gap:4px}.pe-summary-bar span{font-size:11px;color:#5c6b63;text-transform:uppercase;letter-spacing:.03em}.pe-summary-bar strong{font-size:14px}.pe-summary-bar .pe-net{color:#13714c;font-size:16px}.pe-grid{display:grid;grid-template-columns:1.1fr 1fr .95fr;gap:12px;align-items:start}.pe-col,.pe-sub{background:#fff;border:1px solid #d5dbd8;border-radius:10px;overflow:hidden}.pe-col>header,.pe-sub>header{padding:10px 14px;font-weight:700;font-size:13px;letter-spacing:.04em;color:#000}.pe-earning>header{background:#c8deff}.pe-deduction>header{background:#ffb9b2}.pe-company>header{background:#c2baff}.pe-pcb>header,.pe-prorate>header{background:#b5d1c2}.pe-summary>header{background:#8fd3b8}.pe-body{padding:12px 14px 16px}.pe-right{display:flex;flex-direction:column;gap:12px;background:transparent;border:none}.pe-field{display:grid;grid-template-columns:1fr 140px;gap:8px;align-items:center;margin-bottom:8px}.pe-field label{font-size:13px;color:#1a1f1c}.pe-block-label{margin:10px 0 6px;font-size:12px;font-weight:700;color:#5c6b63;text-transform:uppercase}.pe-named-list{margin-bottom:8px}.pe-named-row{display:grid;grid-template-columns:1fr 120px 32px;gap:6px;margin-bottom:6px;align-items:center}.pe-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pe-sum-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e9ebed;font-size:14px}.pe-ded-total strong{color:#c0392b}.pe-net-row{border-bottom:none;margin-bottom:8px}.pe-net-row strong{color:#13714c;font-size:18px}@media(max-width:1100px){.pe-grid{grid-template-columns:1fr}.pe-summary-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.pe-field{grid-template-columns:1fr}.pe-named-row{grid-template-columns:1fr 100px 28px}.pe-summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.org-page{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 140px);min-height:560px}.org-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.org-canvas-wrap{flex:1;min-height:0;border:1px solid #d5dbd8;border-radius:12px;overflow:hidden;background:#f4f6f5;position:relative}.org-canvas-wrap .react-flow{width:100%;height:100%}.org-node{min-width:160px;max-width:220px;border-radius:10px;border:1px solid #cfd6d2;background:#fff;box-shadow:0 1px 2px #0000000a;padding:10px 12px;cursor:pointer}.org-node.selected{border-color:#13714c;box-shadow:0 0 0 2px #13714c33}.org-node-kind{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}.org-node-title{font-weight:700;font-size:13px;color:#1a1f1c;line-height:1.3}.org-node-sub{font-size:11px;color:#5c6b63;margin-top:2px}.org-node.company{border-color:#13714c;background:linear-gradient(180deg,#e8f6ef,#fff 70%)}.org-node.company .org-node-kind{color:#13714c}.org-node.branch{border-color:#1f6feb;background:linear-gradient(180deg,#eaf2ff,#fff 70%)}.org-node.branch .org-node-kind{color:#1f6feb}.org-node.department{border-color:#6c5ce7;background:linear-gradient(180deg,#f1efff,#fff 70%)}.org-node.department .org-node-kind{color:#6c5ce7}.org-node.employee{border-color:#5c6b63;min-width:140px}.org-node.employee .org-node-kind{color:#5c6b63}.org-node.employee.is-hod{border-color:#13714c;background:linear-gradient(180deg,#e8f6ef,#fff 65%)}.org-node-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.org-tag{font-size:10px;border-radius:999px;padding:2px 7px;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.org-tag.type{background:#ffefed;color:#c0392b}.org-tag.access{background:#eaf2ff;color:#1f6feb}.org-tag.muted{background:#e9ebed;color:#5c6b63}.org-node-locate,.org-node.selected.org-node-locate,.react-flow__node.org-node-locate .org-node,.org-node.locate{box-shadow:0 0 0 3px #13714c8c,0 0 16px #3ab67d73!important;border-color:#13714c!important;animation:org-pulse 1.2s ease-in-out 2}@keyframes org-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.org-hod-badge{display:inline-block;margin-top:6px;font-size:10px;background:#e9ebed;color:#1a1f1c;border-radius:999px;padding:2px 8px}.org-legend{position:absolute;left:12px;bottom:12px;z-index:5;background:#ffffffeb;border:1px solid #d5dbd8;border-radius:8px;padding:8px 10px;font-size:11px;color:#5c6b63;display:flex;gap:10px;flex-wrap:wrap}.org-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.org-legend .l-branch:before{background:#1f6feb}.org-legend .l-dept:before{background:#6c5ce7}.org-legend .l-emp:before{background:#5c6b63}.org-legend .l-type:before{background:#c0392b}
