:root{--black-100: #0A0E15;--black-90: #212631;--black-80: #373F4E;--black-70: #4E576A;--black-60: #667085;--white-100: #FFFFFF;--white-mist: #F5F8FD;--white-90: #F0F1F5;--white-80: #E0E2EB;--white-70: #D1D6E0;--white-60: #BFC0D4;--palette-ink: var(--black-100);--palette-text: var(--black-100);--palette-gray: var(--black-60);--palette-canvas: var(--white-100);--palette-surface: var(--white-100);--palette-elevated: var(--black-100);--palette-accent: var(--black-100);--palette-danger: #F95C4B;--palette-success: #6AF15C;--palette-warn: #FEBE10;--palette-brand: var(--black-100);--palette-muted: var(--black-60);--palette-line: var(--white-80);--mav-bg: var(--black-100);--mav-surface: var(--black-90);--mav-panel: var(--black-90);--mav-line: rgba(255, 255, 255, .1);--mav-text: var(--white-90);--mav-muted: var(--white-80);--mav-white: var(--white-100);--mav-danger: #F95C4B;--mav-radius: 22px;--font: "Inter", system-ui, -apple-system, sans-serif;--font-display: var(--font);--font-body: var(--font);--type-title: 1.25rem;--type-subtitle: .9375rem;--type-lead: .8125rem;--type-body: .75rem;--type-label: .6875rem;--type-caption: .625rem;--type-button: .7rem}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;max-height:100dvh;overflow:hidden}body{margin:0;font-family:var(--font-body);font-size:var(--type-body);line-height:1.5;color:var(--mav-text);background:var(--mav-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font-family:inherit;font-size:inherit}.login-shell{position:relative;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;background:var(--palette-brand)}.login-brand,.login-panel{position:relative;z-index:1}.login-brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,5vw,56px);min-height:100dvh;overflow:hidden;background:var(--palette-brand);border-right:1px solid rgba(255,255,255,.08);animation:brandIn .7s ease both}.login-brand__texture{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 20% 20%,rgba(255,255,255,.06),transparent 55%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px}.login-brand__content,.login-brand__footer{position:relative;z-index:1}.login-brand__content{margin-top:auto;margin-bottom:auto;max-width:420px}.mav-wordmark{display:flex;flex-direction:column;align-items:flex-start;gap:0;color:#fff;font-family:var(--font-display);font-weight:800;line-height:.78;letter-spacing:-.07em;-webkit-user-select:none;user-select:none}.mav-wordmark--inline{flex-direction:row;align-items:baseline;gap:.01em;line-height:.85;letter-spacing:-.08em}.mav-wordmark__row{display:inline-flex;align-items:baseline}.mav-wordmark__row--top{margin-bottom:-.02em}.mav-wordmark__letter{display:inline-block;animation:letterIn .7s cubic-bezier(.22,1,.36,1) calc(var(--i) * .08s) both}.mav-wordmark__v{transform-origin:left bottom}.login-brand__logo{display:block;width:auto;height:auto;margin:0 0 22px;font-size:clamp(3.8rem,9vw,6.2rem)}.login-brand__name{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:700;letter-spacing:.18em;line-height:1;color:#fff;animation:textRise .7s cubic-bezier(.22,1,.36,1) .2s both}.login-brand__product{margin:0 0 14px;color:#ffffffc7;font-size:.82rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;animation:textRise .7s cubic-bezier(.22,1,.36,1) .24s both}.login-brand__tagline{margin:0;max-width:28ch;color:#ffffffad;font-size:1.02rem;line-height:1.55;animation:textRise .7s cubic-bezier(.22,1,.36,1) .28s both}.login-brand__footer{margin:0;color:#ffffff73;font-size:.82rem;letter-spacing:.04em}.login-panel{display:grid;place-items:center;padding:clamp(24px,4vw,48px);animation:panelIn .7s ease .08s both;background:var(--palette-elevated)}.login-card{position:relative;width:min(460px,100%);overflow:visible;padding:clamp(8px,2vw,12px) 0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.login-card:before{display:none}.login-card__brand{position:relative;margin-bottom:22px;display:flex;flex-direction:column;align-items:center;text-align:center}.login-card__wordmark{font-size:clamp(2.8rem,8vw,3.6rem);margin-bottom:8px;color:#fff;filter:none;justify-content:center}.login-card__corp{margin:0;color:#ffffff9e;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;text-align:center}.login-card__foot{display:flex;align-items:center;gap:8px;margin-top:22px;padding:0;border-radius:0;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#ffffff8c;font-size:.78rem}.login-card__divider{height:1px;margin:0 auto 22px;width:min(280px,100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent)}.login-card__intro{margin-bottom:28px}.login-card__intro h1{margin:0 0 8px}.login-secure-dot{width:7px;height:7px;border-radius:50%;background:#6af15c;box-shadow:0 0 10px #6af15c8c;animation:securePulse 2.4s ease-in-out infinite}.login-kicker{display:inline-flex;margin:0 0 12px;color:#ffffff80;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.field span{font-size:.76rem;font-weight:600;color:#ffffffe6}.field input{width:100%;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:transparent;color:var(--mav-white);padding:10px 12px;font-size:.9rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.field input::placeholder{color:#ffffff61}.field input:focus{border-color:#ffffff7a;background:transparent;box-shadow:0 0 0 3px #ffffff14,inset 0 1px #ffffff38}.field-password{position:relative}.field-password input{padding-right:44px}.field-password .ghost-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%)}.ghost-btn{border:1px solid rgba(255,255,255,.24);background:transparent;color:#ffffffd9;cursor:pointer;padding:6px 10px;border-radius:10px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px #ffffff24}.ghost-btn--icon{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.ghost-btn--icon svg{display:block}.ghost-btn:hover{color:var(--mav-white);background:#ffffff0f;border-color:#ffffff5c}.ghost-btn--icon:hover{background:transparent;border-color:transparent;box-shadow:none;color:#fff}.login-error,.login-notice{margin:0;padding:10px 12px;border-radius:10px;font-size:.82rem}.login-error{background:#f95c4b1f;border:1px solid rgba(249,92,75,.4);color:#f95c4b}.login-notice{background:#ffffff0a;border:1px solid rgba(255,255,255,.16);color:#ffffffd1}.login-form__row{display:flex;justify-content:flex-end}.login-text-btn{border:0;padding:0;background:transparent;color:#ffffff9e;font-size:.78rem;font-weight:600;cursor:pointer}.login-text-btn:hover{color:#fff}.login-submit{margin-top:4px;width:auto;min-width:180px;max-width:100%;display:inline-flex;justify-content:center;align-self:center;border:1px solid rgba(255,255,255,.4);border-radius:10px;padding:10px 22px;background:transparent;color:#fff;font-family:var(--font-display);font-weight:700;font-size:.88rem;letter-spacing:.02em;cursor:pointer;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);box-shadow:inset 0 1px #ffffff47,0 10px 28px #0000002e}.login-form{display:grid;gap:12px;justify-items:stretch}.login-form .login-submit{justify-self:center}.login-submit:hover:not(:disabled){transform:translateY(-1px);background:transparent;border-color:#ffffff8c;box-shadow:inset 0 1px #ffffff5c,0 14px 34px #00000038}.login-submit:disabled{opacity:.65;cursor:wait}.login-card h1,.dash-body h1{margin:0 0 8px;font-family:var(--font-display);font-size:var(--type-title);font-weight:700;letter-spacing:-.02em;text-shadow:0 1px 0 rgba(255,255,255,.08)}.login-subtitle,.dash-body p{margin:0;color:#ffffffad;line-height:1.5}.field{display:grid;gap:8px}.dash{min-height:100dvh;padding:28px clamp(20px,4vw,48px);background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(255,255,255,.06),transparent 55%),var(--mav-bg)}.dash-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px}.dash-logo{width:auto;height:auto;font-size:2.4rem;color:#fff}.dash-logo.mav-wordmark--inline,.dash .mav-wordmark{flex-direction:row;line-height:.85}.dash-body{max-width:560px}@keyframes brandIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes panelIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes logoRise{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes letterIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes textRise{0%{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes taglinePulse{0%,to{opacity:.72;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes pulseGlow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}@keyframes securePulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@media(prefers-reduced-motion:reduce){.login-brand,.login-brand__logo,.login-brand__name,.login-brand__product,.login-brand__tagline,.login-brand__footer,.login-panel,.mav-wordmark__letter,.login-secure-dot{animation:none!important}.login-brand__name{color:var(--mav-white)}}@media(max-width:960px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:auto;padding:28px 24px 24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.login-brand__content{margin:28px 0 8px}.login-brand__logo{font-size:clamp(2.8rem,15vw,4rem);margin-bottom:12px}.login-brand__name{font-size:1.15rem;letter-spacing:.14em}.login-brand__tagline{font-size:.95rem}.login-brand__footer{display:none}.login-panel{padding:24px 18px 36px;align-items:start}.login-card{box-shadow:none;background:transparent;padding:0}.login-card__wordmark{font-size:clamp(2.4rem,12vw,3.1rem)}}@media(max-width:480px){.login-brand__name{letter-spacing:.12em}.field input{padding:10px 12px}.login-panel{padding:20px 16px 32px}.login-actions{flex-direction:column}.login-actions .btn,.login-actions button{width:100%}}.app-soft{--soft-brand: var(--palette-brand);--soft-text: var(--palette-text);--soft-muted: var(--palette-muted);--soft-line: var(--palette-line);--soft-bg: var(--palette-canvas);--soft-surface: var(--palette-surface);--soft-elevated: var(--palette-elevated);--soft-ink: var(--palette-ink);--soft-accent: var(--black-100);--soft-danger: var(--palette-danger);--soft-success: var(--palette-success);--soft-warn: var(--palette-warn);--soft-accent-soft: var(--white-90);--soft-danger-soft: color-mix(in srgb, var(--palette-danger) 14%, var(--white-100));--soft-success-soft: color-mix(in srgb, var(--palette-success) 22%, var(--white-100));--soft-warn-soft: color-mix(in srgb, var(--palette-warn) 26%, var(--white-100));--soft-hover: var(--white-90);--soft-sidebar: var(--black-100);--soft-sidebar-line: rgba(255, 255, 255, .08);--soft-sidebar-muted: var(--black-60);--soft-nav-hover: var(--black-90);--soft-nav-active: var(--black-80);--soft-radius: 16px;--soft-font: var(--font);--soft-sidebar-w: 248px;--soft-rail-w: 76px;--ctrl-h: 34px;--ctrl-radius: 16px;--ctrl-pad-x: 12px;min-height:100dvh;display:grid;grid-template-columns:var(--soft-sidebar-w) 1fr;align-items:stretch;background:linear-gradient(var(--soft-sidebar),var(--soft-sidebar)) 0 0 / var(--soft-sidebar-w) 100% no-repeat,var(--soft-bg);color:var(--soft-text);font-family:var(--soft-font);font-size:var(--type-body);line-height:1.5;letter-spacing:normal;font-stretch:normal;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:grid-template-columns .28s ease,background-size .28s ease}.app-soft.is-sidebar-collapsed{--soft-sidebar-w: var(--soft-rail-w)}.app-soft button,.app-soft input,.app-soft select,.app-soft textarea,.app-soft a,.app-soft p,.app-soft span,.app-soft strong,.app-soft em,.app-soft li,.app-soft h1,.app-soft h2,.app-soft h3,.app-soft th,.app-soft td{font-family:var(--soft-font);letter-spacing:normal}.soft-icon{display:block;flex-shrink:0}.soft-sidebar{display:flex;flex-direction:column;position:sticky;top:0;align-self:start;width:100%;height:100dvh;min-height:100dvh;max-height:100dvh;min-width:0;padding:0;background:var(--soft-sidebar);color:var(--white-90);border-right:1px solid var(--black-90);overflow:hidden;transition:width .28s ease}.app-soft.is-sidebar-collapsed .soft-sidebar{overflow:visible;z-index:6}.soft-brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 14px 18px;flex-shrink:0}.soft-brand__row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.soft-sidebar-toggle{width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:#ffffff0f;color:var(--white-80);cursor:pointer}.soft-sidebar-toggle:hover{background:#ffffff1f;color:var(--white-100)}.soft-sidebar-float{position:absolute;top:24px;right:-13px;z-index:35;width:26px;height:26px;padding:0;display:grid;place-items:center;border-radius:999px;border:none;background:var(--black-100);color:var(--white-100);cursor:pointer}.soft-sidebar-float:hover{background:var(--black-80)}.soft-brand__product{margin:0;color:#ffffff8c;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.app-soft.is-sidebar-collapsed .soft-brand{justify-content:center;align-items:center;padding:16px 8px 18px}.app-soft.is-sidebar-collapsed .soft-brand__row{justify-content:center}.soft-brand__logo{display:block;height:24px;width:auto;max-width:100%}.soft-brand__logo.is-mark{height:28px;width:28px;max-width:none;border-radius:8px}.soft-search{display:flex;align-items:center;gap:8px;margin:0 14px 14px;padding:4px 11px;border-radius:10px;background:#ffffff0a;border:1px solid var(--soft-sidebar-line);flex-shrink:0}.soft-search__icon{color:var(--soft-sidebar-muted)}.soft-sidebar .soft-search input,.soft-sidebar .soft-search input:focus{width:100%;min-height:32px!important;padding:4px 0!important;border:0!important;border-radius:0;background:transparent!important;color:var(--white-100)!important;box-shadow:none!important;outline:none;font:inherit}.soft-search input::placeholder{color:#ffffff61}.soft-search-btn{width:42px;height:42px;margin:0 auto 12px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--white-80);cursor:pointer}.soft-search-btn:hover{color:var(--white-100);background:#ffffff0f}.soft-nav{display:flex;flex-direction:column;gap:18px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 10px 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.soft-nav::-webkit-scrollbar{width:6px}.soft-nav::-webkit-scrollbar-track{background:transparent}.soft-nav::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.soft-nav::-webkit-scrollbar-thumb:hover{background:#ffffff52}.soft-nav__empty{margin:18px 8px;color:var(--soft-sidebar-muted);font-size:.8rem}.soft-nav__category{display:grid;gap:3px}.soft-nav__label{position:sticky;top:0;z-index:1;margin:0 0 4px;padding:6px 10px;color:var(--black-60);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;line-height:1.2;background:linear-gradient(180deg,var(--soft-elevated) 70%,rgba(17,17,17,0))}.app-soft.is-sidebar-collapsed .soft-nav{align-items:center;gap:14px;padding:0 8px 12px;overflow-x:hidden;overflow-y:auto}.app-soft.is-sidebar-collapsed .soft-nav__label,.app-soft.is-sidebar-collapsed .soft-nav__module-label,.app-soft.is-sidebar-collapsed .soft-nav__chevron,.app-soft.is-sidebar-collapsed .soft-nav__empty{display:none}.soft-nav__link,.soft-nav__module-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:10px;color:var(--white-80);text-decoration:none;font-weight:500;font-size:var(--type-body);line-height:1.25;background:transparent;border:0;cursor:pointer;font-family:inherit;text-align:left;transition:color .16s ease,background .16s ease}.app-soft.is-sidebar-collapsed .soft-nav__link,.app-soft.is-sidebar-collapsed .soft-nav__module-btn{width:44px;height:44px;padding:0;justify-content:center}.soft-nav__link:hover,.soft-nav__module-btn:hover,.soft-nav__sublink:hover,.soft-popper__link:hover{color:var(--white-100);background:var(--soft-nav-hover)}.soft-nav__link.is-active,.soft-nav__module.has-active>.soft-nav__module-btn,.soft-nav__sublink.is-active,.soft-popper__link.is-active{color:var(--white-100);background:var(--soft-nav-active);font-weight:600}.soft-nav__link.is-active:hover,.soft-nav__module.has-active>.soft-nav__module-btn:hover,.soft-nav__sublink.is-active:hover,.soft-popper__link.is-active:hover{color:var(--white-100);background:var(--black-80)}.soft-nav__link:focus-visible,.soft-nav__module-btn:focus-visible,.soft-nav__sublink:focus-visible,.soft-popper__link:focus-visible{outline:1px solid rgba(255,255,255,.4);outline-offset:2px}.soft-nav__module-label{flex:1;min-width:0}.soft-nav__chevron{display:inline-flex;color:var(--black-60);transition:transform .22s ease,color .18s ease}.soft-nav__module.is-open>.soft-nav__module-btn .soft-nav__chevron{transform:rotate(90deg);color:currentColor}.soft-nav__subwrap{display:grid;grid-template-rows:0fr;opacity:0;pointer-events:none;transition:grid-template-rows .28s ease,opacity .22s ease}.soft-nav__module.is-open>.soft-nav__subwrap{grid-template-rows:1fr;opacity:1;pointer-events:auto}.soft-nav__sublist{display:grid;gap:2px;margin-left:18px;padding:2px 0 6px 10px;border-left:1px solid rgba(255,255,255,.12);overflow:hidden;min-height:0}.soft-nav__sublink{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;color:var(--white-70);text-decoration:none;font-size:var(--type-body);font-weight:500;transition:color .16s ease,background .16s ease}.soft-popper{position:fixed;z-index:60;min-width:208px;padding:8px;border-radius:14px;background:var(--soft-elevated);border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 40px #00000047}.soft-popper__title{margin:0 0 6px;padding:6px 10px 8px;color:var(--black-60);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.08)}.soft-popper__link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;color:var(--white-70);text-decoration:none;font-size:.8rem;font-weight:500}.soft-main{min-width:0;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden;background:var(--soft-bg)}.soft-top{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:80px;padding:16px 28px;background:var(--white-100);border-bottom:0}.soft-top__copy{min-width:0}.soft-top__title{margin:0;min-width:0;font-size:1.8rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;color:var(--black-100);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.soft-top-search{position:relative;display:flex;align-items:center;gap:8px;width:min(320px,38vw);height:40px;padding:0 14px;border-radius:16px;background:var(--white-mist);border:1px solid transparent;color:var(--black-60)}.soft-top-search:focus-within{border-color:var(--white-80);background:var(--white-100)}.soft-top-search input{width:100%;min-height:0!important;height:100%!important;padding:0!important;border:0!important;border-radius:0;background:transparent!important;color:var(--black-100)!important;box-shadow:none!important;outline:none;font:inherit}.soft-top-search input::placeholder{color:var(--black-60)}.soft-top-search__hint{flex-shrink:0;margin:0;padding:3px 6px;border-radius:8px;border:1px solid rgba(0,0,0,.08);background:var(--white-100);color:var(--black-60);font-family:inherit;font-size:.68rem;font-weight:650;letter-spacing:.01em;line-height:1.3}.soft-top-search:focus-within .soft-top-search__hint,.soft-top-search.has-value .soft-top-search__hint{display:none}.soft-search-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:min(420px,72vw);max-height:min(420px,60vh);overflow:auto;padding:6px;border-radius:16px;background:var(--white-100);border:1px solid var(--white-80);box-shadow:0 16px 40px #1018281f}.soft-search-pop__status,.soft-search-pop__group{margin:0;padding:8px 10px 4px;color:var(--black-60);font-size:12px}.soft-search-pop__group{font-size:11px;letter-spacing:.04em;text-transform:uppercase}.soft-search-pop__item{width:100%;display:grid;grid-template-columns:92px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:8px 10px;border:0;border-radius:12px;background:transparent;cursor:pointer;color:var(--black-100)}.soft-search-pop__item.is-active,.soft-search-pop__item:hover{background:var(--white-mist)}.soft-search-pop__kind{grid-row:1 / span 2;font-size:11px;font-weight:600;line-height:1.2;color:var(--black-70)}.soft-search-pop__title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.soft-search-pop__place{font-size:12px;color:var(--black-60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.soft-top__actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.soft-icon-btn{position:relative;width:40px;min-width:40px;height:40px;padding:0;display:grid;place-items:center;border-radius:16px;border:0;background:transparent;color:var(--black-70);cursor:pointer;transition:color .18s ease,background .18s ease}.soft-icon-btn:hover,.soft-icon-btn.is-open{color:var(--black-100);background:var(--white-mist)}.soft-notif{position:relative}.soft-notif__badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--soft-danger);color:var(--white-100);font-size:.62rem;font-weight:700;line-height:16px;text-align:center}.soft-notif__panel{position:absolute;top:calc(100% + 10px);right:0;z-index:40;width:min(400px,calc(100vw - 32px));background:var(--soft-surface);border:1px solid var(--soft-line);border-radius:16px;box-shadow:0 18px 48px #0000001f;overflow:hidden}.soft-notif__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--soft-line)}.soft-notif__head strong{font-size:.86rem;font-weight:700;color:var(--soft-brand)}.soft-notif__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.soft-notif__mark{border:0;background:transparent;color:var(--soft-muted);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;padding:0}.soft-notif__mark:hover{color:var(--soft-brand)}.soft-notif__list{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto;scrollbar-width:thin}.soft-notif__row{display:grid;grid-template-columns:1fr auto;align-items:stretch;border-bottom:1px solid rgba(0,0,0,.05)}.soft-notif__item{width:100%;display:grid;gap:3px;padding:12px 8px 12px 16px;border:0;background:var(--soft-surface);text-align:left;cursor:pointer;font-family:inherit}.soft-notif__item:hover,.soft-notif__item.is-unread{background:var(--white-90)}.soft-notif__item.is-unread .soft-notif__title:before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:var(--soft-ink);vertical-align:middle}.soft-notif__delete{width:40px;border:0;border-left:1px solid rgba(0,0,0,.05);background:var(--soft-surface);color:var(--soft-muted);cursor:pointer;display:grid;place-items:center}.soft-notif__delete:hover{color:var(--soft-brand);background:var(--white-90)}.soft-notif__title{font-size:.82rem;font-weight:600;color:var(--soft-text)}.soft-notif__body{font-size:.76rem;color:var(--soft-muted);line-height:1.35}.soft-notif__time{font-size:.68rem;color:var(--soft-muted)}.soft-notif__empty{margin:0;padding:28px 16px;text-align:center;color:var(--soft-muted);font-size:.82rem}.soft-notif__people{list-style:none;margin:8px 0 2px;padding:0;display:grid;gap:8px}.soft-notif__people li{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:var(--white-90)}.soft-notif__people strong{font-size:.78rem;font-weight:650;color:var(--soft-text)}.soft-notif__people span{font-size:.7rem;color:var(--soft-muted);line-height:1.35}.soft-user{position:relative}.soft-user__btn{display:flex;align-items:center;gap:0;padding:0;border-radius:16px;border:0;background:transparent;cursor:pointer;color:inherit}.soft-user__btn:hover,.soft-user__btn.is-open{background:transparent}.soft-user__meta,.soft-user__caret{display:none}.soft-user__btn.is-open .soft-user__caret{transform:rotate(-90deg)}.soft-user__menu{position:absolute;top:calc(100% + 10px);right:0;z-index:50;width:228px;padding:8px;border-radius:14px;background:var(--soft-surface);border:1px solid var(--soft-line);box-shadow:0 16px 40px #0000001f}.soft-user__menu-head{display:grid;gap:2px;padding:8px 10px 10px;margin-bottom:6px;border-bottom:1px solid rgba(0,0,0,.06)}.soft-user__menu-head strong{font-size:.82rem;color:var(--soft-brand)}.soft-user__menu-head span{font-size:.72rem;color:var(--soft-muted);text-transform:capitalize}.soft-user__item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--soft-text);text-decoration:none;font:inherit;font-size:.8rem;font-weight:500;cursor:pointer;text-align:left}.soft-user__item:hover{background:var(--soft-bg)}.soft-user__item--danger{margin-top:4px;border-top:1px solid rgba(0,0,0,.06);border-radius:0 0 9px 9px;color:var(--soft-text);font-weight:600}.soft-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--black-100);color:var(--white-100);font-weight:700;font-size:.7rem;letter-spacing:.02em}.soft-user__meta{display:none}.soft-user__meta strong{font-size:.8rem;font-weight:600;color:var(--soft-text);white-space:nowrap}.soft-user__meta span{font-size:.68rem;color:var(--soft-muted);text-transform:capitalize;white-space:nowrap}.soft-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:2px 28px 0;background:var(--soft-bg);color:var(--soft-text)}.soft-home,.soft-module{display:flex;flex-direction:column;gap:16px;width:100%;max-width:none;flex:1;min-height:0;overflow:auto}.soft-module:has(>.soft-module__body){overflow:hidden}.soft-module__body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:16px;padding-bottom:28px}.soft-page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:nowrap;flex-shrink:0;position:sticky;top:0;z-index:4;background:var(--soft-bg);padding-bottom:4px}.soft-page-head>div:not(.soft-page-head__actions){display:flex;align-items:center;min-width:0;flex:1 1 auto}.soft-page-head .soft-eyebrow,.soft-page-head h1{display:none}.soft-page-head:not(:has(.soft-page-lead,.soft-page-head__actions,.soft-btn,a.soft-btn,.soft-text-link)){display:none}.soft-page-head__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0;margin-left:auto}.soft-eyebrow{margin:0 0 6px;color:var(--soft-muted);font-size:var(--type-caption);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.soft-page-head h1,.soft-placeholder h1{margin:0;font-size:var(--type-title);font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--soft-brand)}.usr-perm-matrix{display:flex;flex-direction:column;gap:16px}.usr-perm-matrix__group h3{margin:0 0 8px;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--black-60)}.soft-btn,.soft-text-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:600;font-size:var(--type-button);border-radius:var(--ctrl-radius);cursor:pointer;white-space:nowrap;line-height:1;box-sizing:border-box}.soft-btn{height:var(--ctrl-h);padding:0 12px;border:1px solid var(--black-100);background:var(--black-100);color:var(--white-100);transition:background .18s ease,color .18s ease,border-color .18s ease}.soft-btn:hover{background:var(--black-90);border-color:var(--black-90);color:var(--white-100)}.soft-btn:disabled{opacity:.55;cursor:not-allowed}.soft-btn--ghost{background:var(--white-100);color:var(--black-100);border-color:var(--white-80)}.soft-btn--ghost:hover{background:var(--white-90);border-color:var(--white-70);color:var(--black-100)}.soft-text-link{color:var(--soft-text);border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:1px}.soft-text-link:hover{border-bottom-color:var(--soft-brand)}.soft-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.soft-metric,.soft-card,.soft-placeholder{background:var(--white-mist);border:0;border-radius:16px;box-shadow:none}.soft-metric{padding:18px 18px 16px;display:grid;gap:8px}.soft-metric__icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--soft-ink);color:var(--white-100)}.soft-metric__label{margin:6px 0 0;color:var(--soft-muted);font-size:var(--type-label);font-weight:600}.soft-metric__value{font-size:var(--type-title);font-weight:700;letter-spacing:-.02em;color:var(--soft-brand);line-height:1}.soft-metric__meta{display:flex;justify-content:space-between;gap:8px;color:var(--soft-muted);font-size:.72rem}.soft-metric__meta em{font-style:normal;color:var(--soft-text);font-weight:600}.soft-split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.9fr);gap:12px;align-items:start}.soft-split--module{grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr)}.soft-card{padding:18px 20px 8px;min-width:0}.soft-card--hero{padding:0;min-height:280px;display:grid}.soft-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.soft-card h2,.soft-card__head h2,.soft-modal__form-head h2{margin:0 0 14px;font-size:var(--type-subtitle);font-weight:600;line-height:1.3;color:var(--soft-brand)}.soft-card__head h2{margin-bottom:0}.soft-card h3{margin:16px 0 8px;font-size:var(--type-body);font-weight:600;color:var(--soft-brand)}.soft-card__head p{margin:4px 0 0;color:var(--soft-muted);font-size:var(--type-label)}.soft-table-wrap{overflow:auto;margin:0 -8px}.soft-table{width:100%;border-collapse:collapse;min-width:560px;background:var(--white-100)}.soft-table th,.soft-table td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--white-80);font-size:var(--type-body)}.soft-table th{color:var(--black-60);font-size:var(--type-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--white-90)}.soft-table td{color:var(--black-100);background:var(--white-100)}.soft-table tbody tr:nth-child(2n) td{background:var(--white-90)}.soft-table tbody tr:hover td{background:var(--white-80)}.soft-table tr:last-child td{border-bottom:0}.soft-table .is-mono{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em}.soft-table .is-muted{color:var(--soft-muted)}.soft-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 4px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06)}.soft-pager__meta,.soft-pager__page{margin:0;color:var(--soft-muted);font-size:var(--type-body);font-weight:500}.soft-pager__nav{display:flex;align-items:center;gap:8px}.soft-pager__btn{width:var(--ctrl-h);height:var(--ctrl-h);display:grid;place-items:center;border-radius:var(--ctrl-radius);border:1px solid var(--white-80);background:var(--white-100);color:var(--black-100);cursor:pointer}.soft-pager__btn .soft-icon{transform:rotate(180deg)}.soft-pager__btn--next .soft-icon{transform:rotate(0)}.soft-pager__btn:hover:not(:disabled){background:var(--white-90);border-color:var(--white-70);color:var(--black-100)}.soft-pager__btn:disabled{opacity:.4;cursor:default}.soft-status{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;background:var(--soft-bg);color:var(--soft-text);font-size:.7rem;font-weight:700;letter-spacing:.01em}.soft-status--completado{background:var(--soft-elevated);color:var(--soft-surface)}.soft-status--pendiente{background:var(--soft-line)}.soft-status--programado,.soft-status--en-revisión{border:1px solid var(--soft-elevated);background:var(--soft-surface)}.soft-bars{list-style:none;margin:0 0 10px;padding:4px 0 12px;display:grid;gap:16px}.soft-bars__row{display:flex;justify-content:space-between;margin-bottom:7px;font-size:.82rem}.soft-bars__row strong{font-variant-numeric:tabular-nums}.soft-bars__track{height:6px;border-radius:999px;background:var(--soft-line);overflow:hidden}.soft-bars__track span{display:block;height:100%;background:var(--soft-brand);border-radius:inherit}.soft-empty{display:grid;place-items:center;text-align:center;padding:48px 32px;gap:10px}.soft-empty__mark{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--soft-brand);color:var(--soft-surface);margin-bottom:6px}.soft-empty h2{margin:0;font-size:1.15rem}.soft-empty p{margin:0;max-width:42ch;color:var(--soft-muted);font-size:.9rem}.soft-related{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}.soft-related__link{display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:10px;color:var(--soft-text);text-decoration:none;font-weight:600;font-size:.86rem}.soft-related__link span{flex:1}.soft-related__link:hover{background:var(--soft-bg)}.soft-empty-note{color:var(--soft-muted);font-size:.84rem;padding-bottom:12px}.soft-placeholder{padding:28px}@media(max-width:1100px){.soft-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.soft-split,.soft-split--module{grid-template-columns:1fr}}.soft-backdrop{display:none}@media(max-width:900px){.app-soft,.app-soft.is-sidebar-collapsed{grid-template-columns:var(--soft-rail-w) 1fr}.app-soft{background:linear-gradient(var(--soft-sidebar),var(--soft-sidebar)) 0 0 / var(--soft-rail-w) 100% no-repeat,var(--soft-bg)}.soft-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;border:0;background:#0000006b;cursor:pointer}.app-soft.is-sidebar-collapsed .soft-backdrop{display:none}.soft-sidebar{position:sticky;top:0;z-index:30;width:var(--soft-rail-w);height:100dvh;min-height:100dvh;max-height:100dvh}.app-soft:not(.is-sidebar-collapsed) .soft-sidebar{position:fixed;inset:0 auto 0 0;width:min(280px,88vw);height:100dvh;min-height:100dvh;max-height:100dvh;box-shadow:16px 0 40px #00000047}.soft-top{padding:10px 14px;min-height:60px;gap:10px}.soft-top__title{font-size:1.45rem}.soft-top-search{width:min(180px,42vw);height:36px}.soft-user__btn{padding:3px}.soft-content{padding:16px 14px 0}.soft-page-head{align-items:center;gap:12px}.soft-page-head__actions{width:auto}.soft-page-head__actions .soft-btn,.soft-page-head>.soft-btn{width:auto;justify-content:center}.soft-page-head__actions.pr-toolbar,.soft-page-head__actions .pr-toolbar{width:100%}.soft-page-head__actions.pr-toolbar .soft-btn,.pr-toolbar .soft-btn{width:auto;flex:0 0 auto}.soft-page-lead{max-width:none}.soft-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.soft-notif__panel{position:fixed;top:64px;right:12px;left:12px;width:auto}.soft-card,.soft-card--form{padding:16px}.soft-photo{flex-direction:column;align-items:flex-start}.soft-inline-search{width:100%;flex-direction:column;align-items:stretch}.soft-inline-search .soft-btn{width:100%;justify-content:center}.soft-table-wrap{margin:0 -4px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.soft-row-actions{flex-wrap:wrap;justify-content:flex-end}.soft-modal{padding:12px;align-items:end}.soft-modal__dialog,.soft-modal__dialog--feedback,.soft-modal__dialog--detail,.soft-modal__dialog--form{width:100%;max-height:min(88dvh,100%);overflow:auto}.soft-modal__dialog--detail{border-radius:18px 18px 14px 14px}.soft-inline-tools{width:100%;justify-content:stretch}.soft-inline-tools .soft-inline-search,.soft-inline-tools .soft-btn{flex:1 1 auto}}@media(max-width:640px){.soft-metrics{grid-template-columns:1fr}.soft-page-head h1{font-size:1.25rem}.soft-form-grid,.soft-card--form .soft-form-grid{grid-template-columns:1fr}.soft-card__head--row{flex-direction:column}.soft-action-btn{min-width:0;flex:1 1 auto;padding:0 10px}.soft-person-cell{align-items:flex-start}.soft-detail__grid,.soft-detail__fields{grid-template-columns:1fr}.soft-detail__head{flex-direction:column}.soft-detail__identity{align-items:flex-start}.soft-table{min-width:640px}.soft-form__actions{flex-direction:column}.soft-form__actions .soft-btn{width:100%;justify-content:center}}.soft-split--rrhh{display:grid;gap:14px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}.soft-card--caps .soft-field input:not([type=date]):not([type=email]):not([type=file]),.soft-card--caps .soft-field textarea,.soft-card--caps .soft-field input[type=email]{text-transform:uppercase}.soft-card--form .soft-form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.soft-card--form .soft-form-grid>.soft-field{grid-column:span 2}.soft-card--form .soft-field--wide{grid-column:1 / -1}.soft-card--form .soft-field--span4{grid-column:span 4}@media(max-width:1100px){.soft-card--form .soft-form-grid,.pr-partida .soft-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.soft-card--form .soft-form-grid>.soft-field,.soft-card--form .soft-field--span4,.pr-partida .soft-form-grid>.soft-field,.pr-partida .soft-field--span3{grid-column:span 1}.soft-card--form .soft-form-grid>.soft-field.soft-field--wide,.pr-partida .soft-form-grid>.soft-field.soft-field--wide,.soft-card--form .soft-field--wide,.pr-partida .soft-field--wide{grid-column:1 / -1}}.soft-alert{margin:0 0 12px;padding:10px 12px;border-radius:10px;font-size:.86rem;font-weight:600}.soft-alert--error{background:var(--soft-danger-soft);color:var(--black-100);border:1px solid var(--soft-danger)}.soft-alert--ok{background:var(--soft-success-soft);color:var(--black-100);border:1px solid var(--soft-success)}.soft-form{display:grid;gap:16px;padding:0}.soft-fieldset{margin:0;padding:14px 0 4px;border:0;border-top:1px solid rgba(0,0,0,.08);display:grid;gap:12px}.soft-fieldset:first-of-type{padding-top:0;border-top:0}.soft-fieldset legend{display:flex;align-items:center;gap:10px;width:100%;padding:0;margin:0;font-size:.92rem;font-weight:750;letter-spacing:.02em;text-transform:none;color:var(--black-100)}.soft-fieldset legend:before{content:"";width:4px;height:1.05em;border-radius:999px;background:var(--black-100);flex:0 0 auto}.soft-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.soft-field{display:grid;gap:6px;min-width:0;font-size:var(--type-label);font-weight:500;color:var(--black-80)}.soft-field--wide{grid-column:1 / -1}.soft-field select:focus,.app-soft select:focus{border-color:#00000059;outline:none}.soft-project-field,.soft-project-select{position:relative}.soft-project-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:var(--ctrl-h);height:var(--ctrl-h);padding:0 var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(0,0,0,.12);background:var(--white-100);color:var(--black-100);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.soft-project-select__trigger:hover:not(:disabled),.soft-project-select__trigger.is-open,.soft-project-select__trigger:focus-visible{border-color:#00000059;outline:none}.soft-project-select__trigger:disabled{opacity:.65;cursor:wait}.soft-project-select__trigger>em{font-style:normal;color:var(--black-60);font-size:.75rem}.soft-project-select__menu{position:absolute;z-index:40;left:0;top:calc(100% + 6px);display:flex;align-items:stretch;min-width:100%;border-radius:16px;border:1px solid rgba(0,0,0,.12);background:var(--white-100);box-shadow:0 12px 28px #0000001f;overflow:hidden}.soft-project-select__list{flex:1 1 auto;min-width:220px;max-height:260px;overflow:auto}.soft-project-select__option{display:block;width:100%;padding:10px 12px;border:0;background:transparent;color:var(--black-100);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.soft-project-select__option:hover,.soft-project-select__option.is-hover,.soft-project-select__option:focus-visible{background:var(--white-90);outline:none}.soft-project-select__option.is-selected{background:var(--soft-hover);color:var(--soft-text);font-weight:600}.soft-project-select__tip{flex:0 0 180px;padding:12px;border-left:1px solid rgba(0,0,0,.08);background:var(--black-100);color:var(--white-100)}.soft-project-select__tip-title{margin:0 0 8px;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#ffffffa6}.soft-project-select__tip-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.soft-project-select__tip-list li{display:flex;justify-content:space-between;gap:12px;font-size:.8rem}.soft-project-select__tip-list strong{font-weight:650}.soft-project-select__tip-list span{color:#ffffffd9;font-variant-numeric:tabular-nums}.soft-project-select__tip-empty{margin:0;font-size:.8rem;color:#ffffffb3}.soft-project-horario-chips{display:flex;flex-wrap:wrap;gap:6px}.soft-project-horario-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--white-90);border:1px solid rgba(0,0,0,.1);font-size:.78rem;color:var(--black-90)}.soft-project-horario-chip strong{font-weight:650}@media(max-width:720px){.soft-project-select__menu{right:0;flex-direction:column}.soft-project-select__tip{flex-basis:auto;border-left:0;border-top:1px solid rgba(255,255,255,.08)}}.soft-schedule-toolbar{display:flex;flex-wrap:wrap;gap:8px}.soft-schedule-list{display:grid;gap:8px}.soft-schedule-row{display:grid;grid-template-columns:minmax(120px,1.1fr) 1fr 1fr;gap:10px;align-items:end;padding:10px 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:var(--white-90);opacity:.72}.soft-schedule-row.is-active{background:var(--white-100);border-color:#0000002e;opacity:1}.soft-schedule-row__day{align-self:center;font-weight:650}@media(max-width:720px){.soft-schedule-row{grid-template-columns:1fr}}.soft-applied__label{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--black-60)}.soft-picker-chips--readonly{padding:0}.soft-picker-chip--static{cursor:default;background:var(--white-90);border-color:#0000001f;color:var(--black-90)}.soft-picker-chip--static:hover{background:var(--white-90);border-color:#0000001f}.soft-field input,.soft-field textarea,.soft-inline-search input{width:100%;min-height:var(--ctrl-h);padding:6px var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid var(--white-80);background:var(--white-100);color:var(--black-100);font:inherit;outline:none}.soft-field textarea{height:auto;min-height:72px;resize:vertical}.soft-field input:focus,.soft-field textarea:focus,.soft-inline-search input:focus{border-color:var(--soft-text)}.soft-check{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--black-90)}.soft-picker__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px;width:min(100%,380px)}.soft-picker__head>span{font-size:.78rem;font-weight:650;color:var(--black-80)}.soft-picker__count{font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--black-100);background:var(--white-90);border-radius:999px;padding:3px 9px}.soft-picker-panel{width:min(100%,380px);max-width:100%;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:var(--white-100);overflow-x:hidden;overflow-y:hidden}.soft-picker-chips{display:flex;flex-wrap:wrap;gap:5px;padding:10px 10px 0}.soft-picker-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;border:1px solid var(--soft-ink);background:var(--soft-ink);color:var(--white-100);border-radius:999px;padding:4px 7px 4px 9px;font:inherit;font-size:.7rem;font-weight:650;cursor:pointer;transition:background .16s ease,border-color .16s ease}.soft-picker-chip:hover{background:var(--black-90);border-color:var(--black-90)}.soft-picker-chip.soft-picker-chip--static,.soft-detail__field .soft-picker-chip.soft-picker-chip--static{cursor:default;background:var(--white-90);border:1px solid rgba(0,0,0,.16);color:var(--black-100)}.soft-picker-chip.soft-picker-chip--static:hover{background:var(--white-90);border-color:#00000029;color:var(--black-100)}.soft-picker-chip>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.soft-picker-chip__x{width:14px;height:14px;border-radius:999px;display:grid;place-items:center;background:#ffffff29;font-size:.8rem;line-height:1}.soft-picker-empty{margin:0;padding:10px 10px 0;font-size:.76rem;color:var(--black-60)}.soft-picker-search{display:block;padding:8px 10px}.soft-picker-search input{width:100%;height:34px;border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:0 10px;font:inherit;font-size:.8rem;background:var(--white-90);color:var(--black-100);box-sizing:border-box}.soft-picker-search input:focus{outline:none;border-color:#00000059;background:var(--white-100)}.soft-picker-list{display:flex;flex-direction:column;gap:4px;max-height:156px;overflow-x:hidden;overflow-y:auto;padding:0 10px 10px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.25) transparent}.soft-picker-list::-webkit-scrollbar{width:5px;height:0}.soft-picker-list::-webkit-scrollbar-thumb{background:#00000038;border-radius:999px}.soft-picker{position:relative;display:flex;align-items:center;gap:9px;min-width:0;min-height:0;margin:0;padding:7px 9px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:var(--white-90);cursor:pointer;box-sizing:border-box;transition:border-color .18s ease,background .18s ease}.soft-picker--row{align-items:center}.soft-picker:hover{border-color:#00000047;box-shadow:none}.soft-picker input{position:absolute;opacity:0;pointer-events:none}.soft-picker__mark{flex:0 0 auto;width:15px;height:15px;border-radius:4px;border:1.5px solid rgba(0,0,0,.22);background:var(--white-100);color:transparent;display:grid;place-items:center;transition:background .16s ease,border-color .16s ease,color .16s ease}.soft-picker__body{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.soft-picker__body--row{flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:6px}.soft-picker__code{flex:0 0 auto;font-size:.64rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--black-60)}.soft-picker__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:700;color:var(--black-100);line-height:1.2}.soft-picker__meta{flex:0 0 auto;font-size:.66rem;font-weight:650;color:var(--black-60)}.soft-picker.is-selected{border-color:var(--soft-ink);background:var(--soft-ink);box-shadow:none}.soft-picker.is-selected .soft-picker__mark{background:var(--white-100);border-color:var(--white-100);color:var(--black-100)}.soft-picker.is-selected .soft-picker__code{color:#ffffff9e}.soft-picker.is-selected .soft-picker__name{color:var(--white-100)}.soft-picker.is-selected .soft-picker__meta{color:#ffffff8c}.soft-picker.is-inactive{opacity:.72}.soft-picker:focus-within{outline:none;border-color:var(--soft-text);box-shadow:0 0 0 2px #0000001a}.soft-picker.is-selected:focus-within{box-shadow:0 0 0 2px #00000029}.soft-field__hint{margin:8px 0 0;font-size:.78rem;color:var(--black-60)}.soft-table__wrap-cell{max-width:260px;white-space:normal;line-height:1.35}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.soft-form__actions{display:flex;flex-wrap:wrap;gap:8px}.soft-card__head--row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.soft-inline-search{display:flex;gap:8px;align-items:center;min-width:min(280px,100%)}.soft-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin:0 0 16px}.soft-toolbar input[type=search],.soft-toolbar input[type=text]{flex:1 1 220px;min-width:180px;max-width:360px}.soft-toolbar select{flex:0 1 220px;min-width:180px;max-width:260px}.soft-toolbar .soft-btn{flex:0 0 auto}.app-soft select,.soft-field select,.soft-toolbar select,.soft-inline-search select,.soft-table select,.asist-filters select,.punch-obra-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;min-height:var(--ctrl-h);padding:6px 34px 6px var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(0,0,0,.14);background-color:var(--white-100);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23111111' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px;color:var(--black-100);font-family:var(--soft-font);font-size:var(--type-body);font-weight:500;line-height:1.3;cursor:pointer}.app-soft select:hover,.soft-field select:hover{border-color:#00000047}.app-soft select:disabled,.soft-field select:disabled{background-color:var(--white-90);color:var(--black-60);cursor:not-allowed;opacity:1}.app-soft select option,.soft-field select option{font-family:var(--font);font-size:14px;font-weight:500;color:var(--black-100);background:var(--white-100)}.soft-row-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.soft-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:var(--ctrl-h);padding:0 12px;border-radius:var(--ctrl-radius);border:1px solid var(--white-80);background:var(--white-100);color:var(--black-100);font:inherit;font-size:var(--type-button);font-weight:600;line-height:1;text-decoration:none;cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:background .16s ease,border-color .16s ease,color .16s ease}.soft-action-btn:hover{background:var(--white-90);border-color:var(--white-70);color:var(--black-100)}.soft-action-btn--danger{color:var(--soft-danger);border-color:color-mix(in srgb,var(--soft-danger) 28%,var(--white-100))}.soft-action-btn--danger:hover{background:var(--soft-danger);border-color:var(--soft-danger);color:var(--white-100)}.soft-text-link--danger{color:#8a1f1f;border-bottom-color:#8a1f1f59}.soft-table td:last-child{width:1%;white-space:nowrap;vertical-align:middle}.soft-tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;background:var(--black-100);color:var(--white-100);font-size:.7rem;font-weight:700}.soft-tag--muted{background:var(--white-80);color:var(--black-70)}.soft-empty--compact{padding:28px 18px}@media(max-width:1100px){.soft-split--rrhh{grid-template-columns:1fr}}.soft-photo{display:flex;align-items:center;gap:16px;padding:4px 0 6px}.soft-photo__preview{width:88px;height:88px;border-radius:16px;overflow:hidden;display:grid;place-items:center;background:var(--white-90);border:1px solid rgba(0,0,0,.1);color:var(--black-60);flex-shrink:0}.soft-photo__preview img{width:100%;height:100%;object-fit:cover}.soft-photo__meta{display:grid;gap:10px;min-width:0}.soft-photo__meta p{margin:0;color:var(--black-60);font-size:.84rem}.soft-photo__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.soft-photo__pick{cursor:pointer}.soft-modal .soft-photo{flex-direction:row;align-items:center}.soft-person-cell{display:flex;align-items:center;gap:10px}.soft-person-cell__avatar{width:36px;height:36px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:var(--white-90);border:1px solid rgba(0,0,0,.08);color:var(--black-60);flex-shrink:0}.soft-person-cell__avatar img{width:100%;height:100%;object-fit:cover}.soft-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:20px}.soft-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#05050580;cursor:pointer;opacity:0;animation:softBackdropIn .28s ease forwards}.soft-modal__dialog{position:relative;z-index:1;width:min(420px,100%);display:grid;gap:16px;padding:22px 22px 18px;border-radius:18px;background:var(--white-100);border:1px solid rgba(0,0,0,.08);box-shadow:0 24px 60px #00000038;animation:softModalIn .28s cubic-bezier(.22,1,.36,1) both}.soft-modal__icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--black-100);color:var(--white-100);font-size:1.1rem;font-weight:700}.soft-modal__body h2{margin:0 0 6px;font-size:1.1rem;font-weight:700;color:var(--black-100)}.soft-modal__body p{margin:0;color:var(--black-60);font-size:.9rem;line-height:1.45}.soft-modal__actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.soft-btn--danger{background:var(--soft-danger);border-color:var(--soft-danger);color:var(--white-100)}.soft-btn--danger:hover{background:color-mix(in srgb,var(--soft-danger) 78%,var(--black-100));border-color:color-mix(in srgb,var(--soft-danger) 78%,var(--black-100))}.soft-modal__dialog--feedback{justify-items:center;text-align:center;padding:30px 24px 20px;animation:softModalPop .42s cubic-bezier(.16,1,.3,1) both}.soft-modal__dialog--feedback .soft-modal__body,.soft-modal__dialog--feedback .soft-modal__actions{opacity:0;animation:softFadeUp .35s ease forwards}.soft-modal__dialog--feedback .soft-modal__body{animation-delay:.42s}.soft-modal__dialog--feedback .soft-modal__actions{animation-delay:.55s}.soft-modal__badge{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin-bottom:6px}.soft-modal__badge--success{background:var(--soft-success-soft);color:color-mix(in srgb,var(--soft-success) 28%,var(--black-100));box-shadow:0 12px 28px color-mix(in srgb,var(--soft-success) 28%,transparent);animation:softBadgeIn .4s cubic-bezier(.22,1,.36,1) both}.soft-modal__badge--error{background:var(--soft-danger);color:var(--white-100)}.soft-modal__bang{font-size:1.4rem;font-weight:700;line-height:1}.soft-modal__body--center h2{margin-bottom:8px}.soft-modal__actions--center{justify-content:center;width:100%}.soft-check-anim{display:block;overflow:visible}.soft-check-anim__circle{stroke:var(--white-100);stroke-width:2.4;stroke-linecap:round;fill:none;stroke-dasharray:140;stroke-dashoffset:140;animation:softCheckCircle .55s ease forwards;animation-delay:.18s}.soft-check-anim__mark{stroke:var(--white-100);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:36;stroke-dashoffset:36;animation:softCheckMark .35s ease forwards;animation-delay:.55s}@keyframes softBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes softModalIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes softModalPop{0%{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes softBadgeIn{0%{opacity:0;transform:scale(.55)}70%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes softFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes softCheckCircle{to{stroke-dashoffset:0}}@keyframes softCheckMark{to{stroke-dashoffset:0}}.soft-modal__dialog--detail{width:min(720px,100%);gap:18px;padding:22px;animation:softModalPop .36s cubic-bezier(.16,1,.3,1) both}.soft-modal__dialog--form{width:min(820px,100%);max-height:min(92vh,920px);overflow:auto;gap:14px;padding:22px;align-content:start}.soft-modal__dialog--form-sm{width:min(560px,100%)}.soft-modal__dialog--form-xl{width:min(1080px,100%)}.soft-modal__form-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.soft-modal__form-head h2{margin:0 0 4px;font-size:var(--type-subtitle);font-weight:600;color:var(--black-100)}.soft-modal__form-head p{margin:0;color:var(--black-60);font-size:.88rem;line-height:1.4}.soft-inline-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.soft-map-preview--modal iframe{height:260px}.soft-empty--compact .soft-btn{margin-top:10px}.soft-detail__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.soft-detail__identity{display:flex;align-items:center;gap:14px;min-width:0}.soft-detail__avatar{width:72px;height:72px;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:var(--white-90);border:1px solid rgba(0,0,0,.08);color:var(--black-60);flex-shrink:0}.soft-detail__avatar img{width:100%;height:100%;object-fit:cover}.soft-detail__eyebrow{margin:0 0 4px;color:var(--black-60);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.soft-detail__identity h2{margin:0 0 4px;font-size:1.2rem;color:var(--black-100)}.soft-detail__identity p{margin:0;color:var(--black-60);font-size:.88rem}.soft-detail__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.soft-detail__section{padding:14px;border-radius:14px;background:var(--white-90);border:1px solid rgba(0,0,0,.05)}.soft-detail__section--wide{grid-column:1 / -1}.soft-detail__section h3{margin:0 0 12px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--black-60)}.soft-detail__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}.soft-detail__field{display:grid;gap:3px;min-width:0}.soft-detail__field span{font-size:.72rem;color:var(--black-60);font-weight:600}.soft-detail__field strong{font-size:.9rem;font-weight:600;color:var(--black-100);word-break:break-word}.soft-detail__field .soft-picker-chips{margin-top:2px}.soft-detail__field .soft-project-horario-chip,.soft-detail__field .soft-project-horario-chip strong{color:var(--black-100)}.soft-detail__notes{margin:0;color:var(--black-90);font-size:.9rem;line-height:1.45;white-space:pre-wrap}.soft-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:650;letter-spacing:.02em;background:var(--soft-ink);color:var(--white-100)}.soft-badge--muted{background:var(--soft-bg);color:var(--soft-muted)}.soft-badge--warn{background:var(--soft-warn-soft);color:color-mix(in srgb,var(--soft-warn) 35%,var(--black-100))}.soft-muted{margin:2px 0 0;color:var(--soft-muted);font-size:var(--type-caption);font-weight:500}.eq-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}.eq-kpi{background:var(--white-mist);border:0;border-radius:16px;padding:12px 14px}.eq-kpi p{margin:0;color:var(--soft-muted);font-size:var(--type-caption)}.eq-kpi strong{display:block;margin-top:4px;font-size:1.2rem;letter-spacing:-.02em}.soft-table tr.is-warn td{background:#fff8ee}.soft-person-cell strong{display:block;font-weight:650}.soft-inline-tools .soft-select{min-width:148px}.soft-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:4px;border:1px solid var(--white-80);border-radius:12px;background:var(--white-100)}.soft-tabs__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--black-60);font:inherit;font-size:.84rem;font-weight:650;padding:9px 14px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .16s ease,color .16s ease}.soft-tabs__btn:hover{background:var(--white-90);color:var(--black-100)}.soft-tabs__btn.is-active{background:var(--black-100);color:var(--white-100)}.soft-tabs__panel{min-width:0}.soft-map-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:4px 0 10px}.soft-map-toolbar__hint{margin:0;font-size:.82rem;color:var(--soft-muted)}.soft-map-preview{width:100%;min-height:280px;border:1px solid var(--soft-line);border-radius:12px;overflow:hidden;background:var(--white-90);margin-bottom:12px}.soft-map-preview iframe{display:block;width:100%;height:320px;border:0}@media(max-width:720px){.soft-detail__grid,.soft-detail__fields{grid-template-columns:1fr}.soft-detail__head{flex-direction:column}.soft-map-preview iframe{height:240px}.soft-tabs{flex-direction:column}.soft-tabs__btn{width:100%;text-align:left}.soft-picker-panel{width:100%}.soft-picker-list{max-height:140px}}.soft-feedback-message{white-space:pre-line}.punch-module{gap:18px}.punch-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:12px;background:var(--white-80)}.punch-tab{border:0;background:transparent;color:var(--black-70);font:inherit;font-size:.84rem;font-weight:650;padding:8px 14px;border-radius:10px;cursor:pointer}.punch-tab.is-active{background:var(--black-100);color:var(--white-100)}.punch-identify{display:grid;place-items:center;min-height:min(70vh,640px);border-radius:22px;background:radial-gradient(1200px 420px at 12% -10%,rgba(0,0,0,.08),transparent 55%),linear-gradient(160deg,var(--white-90) 0%,var(--white-80) 48%,var(--white-80) 100%);border:1px solid rgba(0,0,0,.08);padding:28px 18px}.punch-identify__panel{width:min(440px,100%);padding:28px 26px;border-radius:20px;background:var(--white-100);border:1px solid rgba(0,0,0,.08);box-shadow:0 18px 40px #00000014}.punch-identify__panel h2{margin:18px 0 6px;font-size:1.35rem}.punch-identify__panel>p{margin:0 0 18px;color:var(--black-60);font-size:.92rem}.punch-identify__form{display:grid;gap:12px}.punch-clock__date{margin:0;text-transform:capitalize;color:var(--black-60);font-size:.78rem;font-weight:650;letter-spacing:.02em}.punch-clock__time{margin:2px 0 0;font-size:clamp(2.4rem,6vw,3.2rem);font-weight:750;letter-spacing:.04em;font-variant-numeric:tabular-nums;line-height:1;color:var(--black-100)}.punch-clock--compact .punch-clock__time{font-size:2rem}.punch-btn-primary{width:100%;justify-content:center;min-height:46px}.punch-workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:16px;align-items:start}.punch-status{display:grid;gap:14px;padding:18px;border-radius:18px;background:var(--black-100);color:var(--white-100)}.punch-status__identity{display:flex;gap:12px;align-items:center}.punch-avatar{width:56px;height:56px;border-radius:16px;overflow:hidden;display:grid;place-items:center;background:var(--black-90);color:var(--white-100);flex:0 0 auto}.punch-avatar img{width:100%;height:100%;object-fit:cover}.punch-status__eyebrow{margin:0;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c}.punch-status h2{margin:2px 0;font-size:1.05rem;line-height:1.25}.punch-status__identity p{margin:0;color:#ffffffb3;font-size:.82rem}.punch-status .punch-clock__date,.punch-status .punch-clock__time{color:var(--white-100)}.punch-status .punch-clock__date{color:#ffffff8c}.punch-fase{padding:12px 14px;border-radius:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.1)}.punch-fase>span{display:inline-block;margin-bottom:4px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ffffffb3}.punch-fase p{margin:0;font-size:.9rem;line-height:1.4}.punch-fase--pendiente_entrada{background:#ffffff1a}.punch-fase--en_jornada,.punch-fase--cierre_pendiente{background:#ffffff24}.punch-fase--completo{background:#ffffff2e}.punch-meta{display:grid;gap:10px}.punch-meta>div{display:grid;gap:2px}.punch-meta span{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:#ffffff80}.punch-meta strong{font-size:.88rem;font-weight:650}.punch-obra-field{display:grid;gap:6px}.punch-obra-field select{width:100%;min-height:var(--ctrl-h);height:var(--ctrl-h);padding:6px 34px 6px var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(255,255,255,.2);background-color:#ffffff14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23ffffff' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px;color:var(--white-100);font:inherit;font-size:var(--type-body)}.punch-obra-field select option{color:var(--black-100);background:var(--white-100)}.punch-today h3{margin:0 0 8px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#ffffff80}.punch-today ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.punch-today li{display:grid;grid-template-columns:72px 1fr auto;gap:4px 8px;align-items:center;padding:8px 10px;border-radius:10px;background:#ffffff0f;font-size:.8rem}.punch-today__obra{grid-column:1 / -1;color:#ffffffa6;font-size:.72rem}.punch-today em{font-style:normal;font-weight:700}.punch-today .is-in{color:#b8f5c5}.punch-today .is-out{color:#ffd0a8}.punch-status .soft-btn--ghost{border-color:#ffffff40;color:var(--white-100);background:transparent}.punch-status .soft-btn--ghost:hover{background:#ffffff14}.punch-main{display:grid;gap:12px;min-width:0}.punch-grid{display:grid;grid-template-columns:minmax(0,560px);gap:14px}.punch-panel{display:grid;gap:12px;padding:16px;border-radius:18px;background:var(--white-100);border:1px solid rgba(0,0,0,.08)}.punch-panel header h3{margin:0 0 4px;font-size:1rem}.punch-panel header p{margin:0;color:var(--black-60);font-size:.84rem}.punch-camera{position:relative;aspect-ratio:4 / 3;border-radius:16px;overflow:hidden;background:var(--black-100)}.punch-camera__video,.punch-camera__shot{width:100%;height:100%;object-fit:cover;display:block;transform:scaleX(-1)}.punch-camera__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;text-align:center;background:#0000008c;color:var(--white-100);font-size:.9rem}.punch-camera__actions{display:flex;flex-wrap:wrap;gap:8px}.punch-camera__actions .soft-btn{flex:1 1 160px;width:auto;justify-content:center}.punch-range{padding:12px 14px;border-radius:12px;border:1px solid rgba(0,0,0,.1);background:var(--white-90)}.punch-range strong{display:block;font-size:1rem;margin-bottom:2px}.punch-range p{margin:0;color:var(--black-70);font-size:.82rem}.punch-range--dentro{background:#eef8f0;border-color:#14783233}.punch-range--dentro strong{color:#14632a}.punch-range--fuera{background:#fff4ec;border-color:#a0460a38}.punch-range--fuera strong{color:#9a3f0a}.punch-map{border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.1);background:var(--white-80);height:260px;min-height:240px}.punch-map iframe{width:100%;height:calc(100% + 40px);margin-bottom:-40px;border:0;display:block}.punch-map__empty{display:grid;place-items:center;min-height:240px;color:var(--black-60);font-size:.88rem}@media(max-width:1100px){.punch-workspace,.punch-grid{grid-template-columns:1fr}}@media(max-width:720px){.punch-tabs{width:100%}.punch-tab{flex:1;text-align:center}.soft-page-head{align-items:stretch}}.soft-table-wrap--wide{overflow-x:auto}.soft-table--asistencia{min-width:1180px}.soft-table--asistencia th,.soft-table--asistencia td{white-space:nowrap}.soft-table--asistencia .soft-table__wrap-cell{white-space:normal;min-width:140px}.asist-rule-note{margin:8px 0 0;padding:10px 12px;border-radius:10px;background:var(--white-90);border:1px solid rgba(0,0,0,.08);color:var(--black-80);font-size:.82rem;line-height:1.4}.asist-recuerda{display:grid;gap:4px;padding:8px 10px;border-radius:10px;background:var(--white-90);border:1px solid rgba(0,0,0,.1);max-width:320px}.asist-recuerda strong{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--black-60)}.asist-recuerda span{font-size:.8rem;color:var(--black-90);white-space:normal;line-height:1.35}.asist-obs-extra{margin-top:6px;font-size:.78rem;color:var(--black-70);white-space:normal}.asist-hora-btn{border:0;background:transparent;padding:4px 6px;margin:0;border-radius:8px;font:inherit;font-variant-numeric:tabular-nums;color:inherit;cursor:pointer}.asist-hora-btn:hover{background:var(--white-90)}.asist-hora-edit{display:grid;gap:4px;min-width:110px}.asist-hora-edit input{width:100%;min-height:34px;padding:4px 6px;border-radius:8px;border:1px solid rgba(0,0,0,.2);font:inherit;font-variant-numeric:tabular-nums}.asist-hora-edit small{color:#a33;font-size:.7rem}.asist-foto-link{display:inline-block;margin-top:0;border:0;background:transparent;padding:0;font:inherit;font-size:.85rem;color:#1a5f8a;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.asist-foto-link:hover{color:#0d3d5c}.asist-foto-modal{max-width:min(720px,94vw)}.asist-foto-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 4px 8px}.asist-foto-grid figure{margin:0;display:grid;gap:8px}.asist-foto-grid figcaption{font-size:.85rem;font-weight:600;color:var(--black-80)}.asist-foto-grid img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:12px;background:var(--white-90)}.asist-foto-empty{display:grid;place-items:center;aspect-ratio:3 / 4;border-radius:12px;background:var(--white-90);color:var(--black-60);font-size:.9rem}@media(max-width:640px){.asist-foto-grid{grid-template-columns:1fr}}.asist-card-head{flex-direction:column;align-items:stretch;gap:0}.asist-filters{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) minmax(160px,1.3fr) minmax(130px,1fr) minmax(200px,1.8fr) auto;gap:12px 14px;align-items:end;width:100%;margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08)}.asist-filters label{display:grid;gap:6px;margin:0;font-size:.78rem;font-weight:600;color:var(--black-70);text-transform:uppercase;letter-spacing:.03em}.asist-filters label span{line-height:1}.asist-filters input{width:100%;min-height:var(--ctrl-h);height:var(--ctrl-h);padding:6px var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(0,0,0,.14);background:var(--white-100);font:inherit;font-size:var(--type-body);font-weight:500;text-transform:none;letter-spacing:normal;color:var(--black-90)}.asist-filters__search{min-width:0}.asist-filters__search .soft-searchbox{max-width:none;width:100%}.asist-filters__actions{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;justify-content:flex-end}.asist-filters__actions .soft-btn{display:inline-flex;align-items:center;gap:6px;height:var(--ctrl-h);min-height:var(--ctrl-h);white-space:nowrap}@media(max-width:1100px){.asist-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.asist-filters__search{grid-column:span 2}.asist-filters__actions{grid-column:1 / -1;justify-content:flex-start}}.pr-bar,.pr-gantt{margin:12px 0 18px}.pr-bar__meta,.pr-gantt .pr-bar__meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:13px}.pr-bar__track{height:10px;border-radius:999px;background:var(--white-80);overflow:hidden}.pr-bar__fill{height:100%;background:var(--soft-ink, var(--black-100));border-radius:inherit}.pr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.pr-status{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:var(--type-caption);font-weight:600;letter-spacing:.02em;background:var(--white-80);color:var(--black-90)}.pr-status--borrador{background:var(--soft-bg);color:var(--soft-text)}.pr-status--planificacion,.pr-status--en_revision,.pr-status--en_cierre{background:var(--soft-warn-soft);color:color-mix(in srgb,var(--soft-warn) 32%,var(--black-100))}.pr-status--en_ejecucion{background:var(--soft-ink);color:var(--white-100)}.pr-status--aprobado,.pr-status--cerrado{background:var(--soft-success-soft);color:color-mix(in srgb,var(--soft-success) 28%,var(--black-100))}.pr-status--rechazado,.pr-status--paralizado{background:var(--soft-danger-soft);color:color-mix(in srgb,var(--soft-danger) 72%,var(--black-100))}.pr-status--anulado,.pr-status--cancelado{background:var(--soft-bg);color:var(--soft-muted);text-decoration:line-through}.pr-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 0;padding:16px 18px;border-radius:12px;background:var(--soft-ink);color:var(--white-100)}.pr-totals--wide{grid-template-columns:repeat(5,minmax(0,1fr));margin:0 0 16px}.pr-resumen{display:grid;gap:0;border:1px solid var(--soft-line);border-radius:12px;overflow:hidden}.pr-resumen__row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--white-80)}.pr-resumen__row:last-child{border-bottom:0}.pr-resumen__row span{color:var(--soft-muted);font-weight:650}.pr-resumen__row strong{font-weight:650}.pr-resumen__row em{font-style:normal;font-weight:700}.pr-resumen__row--total{background:var(--black-100);color:var(--white-100)}.pr-resumen__row--total span,.pr-resumen__row--total strong,.pr-resumen__row--total em{color:var(--white-100)}.pr-chapter{margin:0 0 16px;padding:16px;border:1px solid rgba(0,0,0,.1);border-radius:14px;background:var(--white-100)}.pr-chapter__head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;align-items:end;margin-bottom:10px}.pr-chapter__title{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:end}.pr-chapter__title>span{display:grid;place-items:center;height:var(--ctrl-h);border-radius:var(--ctrl-radius);background:var(--black-100);color:var(--white-100);font-weight:700}.pr-chapter__meta{display:flex;align-items:end;gap:8px}.pr-chapter__sum{min-width:120px;text-align:right}.pr-chapter__sum span{display:block;color:var(--soft-muted);font-size:var(--type-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pr-chapter__sum strong{display:block;font-size:var(--type-body)}.pr-table{min-width:780px}.pr-table th,.pr-table td{vertical-align:middle}.pr-table .pr-col-item{width:72px;white-space:nowrap}.pr-table .pr-col-und{width:92px}.pr-table .pr-col-num{width:104px}.pr-table .pr-col-act{width:40px;text-align:right}.pr-table .pr-suggest,.pr-table .pr-suggest__input,.pr-table input[type=number],.pr-table .soft-select,.pr-suggest__input{width:100%}.pr-plano{display:flex;align-items:center;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06)}.pr-plano__preview{width:120px;height:88px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:var(--white-90);border:1px solid rgba(0,0,0,.1);color:var(--black-60);flex-shrink:0}.pr-plano__preview img{width:100%;height:100%;object-fit:cover}.pr-plano__meta{display:grid;gap:8px;min-width:0}.pr-plano__meta p{margin:0;color:var(--soft-muted);font-size:var(--type-caption)}.pr-plano__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pr-plano__pick{cursor:pointer}.pr-view{display:grid;gap:16px}.pr-view__head{display:flex;align-items:center;gap:10px}.pr-view__head strong{font-size:var(--type-subtitle)}.pr-view__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px}.pr-view__grid p{margin:0}.pr-view__grid span{display:block;color:var(--soft-muted);font-size:var(--type-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pr-view__grid b{font-weight:650}@media(max-width:800px){.pr-view__grid{grid-template-columns:1fr 1fr}}.pr-view__tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pr-view-table tbody tr:nth-child(2n) td{background:var(--white-100)}.pr-view-table__chapter td{background:var(--white-90);font-weight:650}.pr-view-table__toggle{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:650;cursor:pointer;text-align:left}.pr-view-table__toggle small{color:var(--soft-muted);font-size:var(--type-caption);font-weight:550}.pr-view-table__toggle .soft-icon{transform:rotate(-90deg)}.pr-view-table__chapter.is-open .pr-view-table__toggle .soft-icon{transform:rotate(0)}.pr-view-table__chapter:has(.pr-view-table__toggle:focus-visible) td,.pr-view-table__chapter.is-open td{background:var(--white-80)}.pr-view-table__total td{background:var(--black-100);color:var(--white-100);font-weight:700}.pr-view-table{min-width:720px}.pr-chapter__meta .soft-field{flex:1}.pr-chapter__actions{display:flex;gap:8px;margin-top:8px}.pr-hint{display:block;margin:4px 0 10px;color:var(--soft-muted);font-size:var(--type-caption)}.pr-suggest{position:relative}.pr-suggest__menu{position:fixed;z-index:80;overflow:auto;padding:6px;border-radius:12px;background:var(--white-100);border:1px solid rgba(0,0,0,.1);box-shadow:0 16px 40px #0000001f}.pr-suggest__option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}.pr-suggest__option:hover,.pr-suggest__option:focus-visible{background:var(--white-90)}.pr-suggest__option span{font-size:var(--type-body);font-weight:550}.pr-suggest__option small{color:var(--soft-muted);font-size:var(--type-caption)}.pr-sug-block{margin:0 0 12px}.pr-sug-chips{display:flex;flex-wrap:wrap;gap:8px}.pr-sug-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:280px;padding:8px 10px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:var(--white-100);text-align:left;cursor:pointer}.pr-sug-chip:hover,.pr-sug-chip:focus-visible{border-color:var(--black-100)}.pr-sug-chip span{font-size:var(--type-caption);font-weight:550;line-height:1.3}.pr-sug-chip small{color:var(--soft-muted);font-size:11px}.pr-sug-chip--other{background:var(--white-90)}.pr-add-serv{max-width:420px}@media(max-width:1100px){.pr-chapter__head,.pr-totals--wide{grid-template-columns:1fr}}.pr-totals strong{display:block;margin-bottom:4px;font-size:var(--type-caption);color:#ffffff9e;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.pr-partida{padding:16px;margin:0 0 12px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:var(--white-90)}.pr-partida__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.pr-partida__top h3{margin:0;font-size:var(--type-body);font-weight:600}.pr-partida .soft-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pr-partida .soft-form-grid>.soft-field{grid-column:span 1;min-width:0}.pr-partida .soft-field--wide{grid-column:1 / -1}.pr-partida .soft-field--span3{grid-column:span 2}@media(max-width:1100px){.pr-partida .soft-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-partida .soft-form-grid>.soft-field,.pr-partida .soft-field--span3{grid-column:span 1}.pr-partida .soft-form-grid>.soft-field.soft-field--wide,.pr-partida .soft-field--wide{grid-column:1 / -1}}.pr-parcial{display:flex;align-items:center;min-height:var(--ctrl-h);height:var(--ctrl-h);padding:0 var(--ctrl-pad-x);border-radius:var(--ctrl-radius);background:var(--white-100);border:1px solid rgba(0,0,0,.08);font-weight:600}.pr-add{width:100%;height:var(--ctrl-h);min-height:var(--ctrl-h);justify-content:center;border-style:dashed}.pr-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.pr-section-head h2{margin:0}.pr-section-head p{margin:4px 0 0;color:var(--soft-muted);font-size:var(--type-label)}.pr-adicional{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--white-80)}.pr-adicional__actions{display:flex;gap:6px}@media(max-width:640px){.asist-filters{grid-template-columns:1fr 1fr}.asist-filters__search,.asist-filters__actions{grid-column:1 / -1}.asist-filters__actions{flex-wrap:wrap}}.app-soft input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]),.app-soft textarea{width:100%;min-height:var(--ctrl-h);height:var(--ctrl-h);padding:6px var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid var(--white-80);background:var(--white-100);color:var(--black-100);font-family:var(--soft-font);font-size:var(--type-body);font-weight:500;line-height:1.4;outline:none;box-shadow:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.app-soft input[type=number]{-moz-appearance:textfield}.app-soft input[type=checkbox],.app-soft input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex-shrink:0;display:inline-grid;place-content:center;width:18px;height:18px;margin:0;border:1.5px solid var(--white-60);border-radius:6px;background:var(--white-100);cursor:pointer;vertical-align:middle;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.app-soft input[type=radio]{border-radius:50%}.app-soft input[type=checkbox]:before{content:"";width:10px;height:10px;background:var(--white-100);clip-path:polygon(14% 52%,0 66%,38% 100%,100% 22%,86% 8%,38% 72%);transform:scale(0);transition:transform .12s ease}.app-soft input[type=radio]:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--white-100);transform:scale(0);transition:transform .12s ease}.app-soft input[type=checkbox]:hover:not(:disabled),.app-soft input[type=radio]:hover:not(:disabled){border-color:var(--black-60)}.app-soft input[type=checkbox]:checked,.app-soft input[type=radio]:checked{background:var(--black-100);border-color:var(--black-100)}.app-soft input[type=checkbox]:checked:before,.app-soft input[type=radio]:checked:before{transform:scale(1)}.app-soft input[type=checkbox]:indeterminate{background:var(--black-100);border-color:var(--black-100)}.app-soft input[type=checkbox]:indeterminate:before{height:2px;clip-path:none;border-radius:2px;transform:scale(1)}.app-soft input[type=checkbox]:focus-visible,.app-soft input[type=radio]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--white-80)}.app-soft input[type=checkbox]:disabled,.app-soft input[type=radio]:disabled{cursor:not-allowed;opacity:.45}.app-soft .soft-check{gap:10px;min-height:var(--ctrl-h);padding:4px 12px 4px 10px;border-radius:var(--ctrl-radius);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.app-soft .soft-check:hover{background:var(--white-90)}.app-soft .soft-check:has(input:disabled){cursor:not-allowed;opacity:.7}.app-soft .soft-check:has(input:checked){color:var(--black-100);font-weight:600}.soft-tag--warn{background:var(--soft-warn-soft, #fdf1d8);color:#8a5a00}.marc-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin-bottom:10px}.marc-filters .soft-field{width:170px}.punch-cell{display:grid;gap:2px;justify-items:start}.punch-cell .soft-tag{height:20px;margin-top:2px}.asig-users{display:grid;gap:8px;max-height:300px;overflow:auto;margin:4px 0 12px;padding:2px}.asig-user{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--white-80);border-radius:16px;background:var(--white-100);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.asig-user:hover{background:var(--white-90)}.asig-user.is-selected{border-color:var(--black-100);background:var(--white-90)}.asig-user.is-disabled{cursor:not-allowed;opacity:.6}.asig-user__avatar{display:inline-grid;place-content:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--white-80);color:var(--black-80)}.asig-user__body{display:grid;gap:2px;flex:1;min-width:0}.asig-user__body strong{font-weight:650;color:var(--black-100)}.asig-user__meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--black-60);font-size:.78rem}.soft-table th.soft-col-item,.soft-table td.soft-col-item{width:1%;padding-right:4px;white-space:nowrap;text-align:center;color:var(--black-60);font-variant-numeric:tabular-nums;font-weight:600}.row-menu{position:fixed;z-index:3000;min-width:200px;max-width:280px;padding:6px;border-radius:16px;background:var(--white-100);box-shadow:0 12px 32px #0a0e1529,0 0 0 1px #0a0e150f;font-family:var(--font);animation:row-menu-in .12s ease-out}@keyframes row-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.row-menu__title{padding:6px 10px;color:var(--black-60);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-menu__item{display:flex;align-items:center;gap:10px;width:100%;min-height:34px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--black-100);font:inherit;font-size:.84rem;font-weight:500;text-align:left;cursor:pointer}.row-menu__item:hover:not(:disabled),.row-menu__item:focus-visible{outline:none;background:var(--white-90)}.row-menu__item:disabled{color:var(--black-60);opacity:.55;cursor:not-allowed}.row-menu__item.is-danger{color:var(--palette-danger)}.row-menu__item.is-danger:hover:not(:disabled){background:color-mix(in srgb,var(--palette-danger) 10%,var(--white-100))}.row-menu__icon{display:inline-grid;place-content:center;width:16px;color:currentColor;opacity:.8}.row-menu__label{flex:1}.row-menu__hint{color:var(--black-60);font-size:.72rem}.row-menu__divider{height:1px;margin:5px 6px;background:var(--white-80)}.app-soft input[type=number]::-webkit-outer-spin-button,.app-soft input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.app-soft textarea{height:auto;min-height:72px;resize:vertical}.app-soft input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):focus,.app-soft textarea:focus{border-color:var(--soft-text)}.app-soft input:disabled,.app-soft textarea:disabled{background:var(--white-90);color:var(--black-60)}.app-soft input[type=search]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.app-soft input[type=search]::-webkit-search-decoration,.app-soft input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.app-soft .soft-table input:not([type=checkbox]){min-width:0;min-height:var(--ctrl-h);height:var(--ctrl-h)}.soft-searchbox{display:flex;align-items:center;gap:8px;flex:1 1 240px;min-width:200px;max-width:380px;height:var(--ctrl-h);min-height:var(--ctrl-h);padding:0 var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(0,0,0,.14);background:var(--white-100)}.soft-searchbox .soft-icon{color:var(--black-60)}.soft-searchbox input{border:0!important;height:100%!important;min-height:0!important;padding:0!important;background:transparent!important}.soft-searchbox:focus-within{border-color:var(--black-100)}.soft-select,.soft-date{position:relative;width:100%}.soft-select__trigger,.soft-date__trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;height:var(--ctrl-h);min-height:var(--ctrl-h);padding:0 var(--ctrl-pad-x);border-radius:var(--ctrl-radius);border:1px solid rgba(0,0,0,.14);background:var(--white-100);color:var(--black-100);font-family:var(--soft-font);font-size:var(--type-body);font-weight:500;text-align:left;cursor:pointer}.soft-select__trigger span,.soft-date__trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.soft-select__trigger .is-placeholder,.soft-date__trigger .is-placeholder{color:var(--black-60)}.soft-select__trigger .soft-icon{transform:rotate(90deg);color:var(--black-70);flex-shrink:0}.soft-select.is-open .soft-select__trigger,.soft-date.is-open .soft-date__trigger,.soft-select__trigger:hover:not(:disabled),.soft-date__trigger:hover:not(:disabled){border-color:var(--black-100)}.soft-select.is-open .soft-select__trigger .soft-icon{transform:rotate(-90deg)}.soft-select__trigger:disabled,.soft-date__trigger:disabled{background:var(--white-90);color:var(--black-60);cursor:not-allowed}.soft-select--compact .soft-select__trigger{min-height:var(--ctrl-h);height:var(--ctrl-h);padding:0 var(--ctrl-pad-x)}.soft-select__required{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.soft-select__menu,.soft-date__menu{position:fixed;z-index:80;overflow:auto;padding:6px;border-radius:16px;border:1px solid rgba(0,0,0,.12);background:var(--white-100);color:var(--black-100);box-shadow:0 16px 40px #0000001f}.soft-select__option{display:block;width:100%;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:var(--black-100);font-family:var(--font);font-size:var(--type-body);font-weight:500;text-align:left;cursor:pointer}.soft-select__option:hover,.soft-select__option.is-active{background:var(--white-90);color:var(--black-100)}.soft-select__option.is-muted{color:var(--black-60)}.soft-select__option.is-muted:hover,.soft-select__option.is-muted.is-active{color:var(--black-100)}.soft-select__footer{display:flex;gap:6px;margin-top:4px;padding-top:6px;border-top:1px solid rgba(0,0,0,.08)}.soft-select__footer button{flex:1;height:30px;padding:0 8px;border:0;border-radius:12px;background:var(--white-90);color:var(--black-100);font-size:var(--type-caption);font-weight:650;cursor:pointer}.soft-select__footer button:hover{background:var(--black-100);color:var(--white-100)}.soft-date__menu{width:292px;padding:12px}.soft-date__nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.soft-date__nav strong{font-size:var(--type-body);font-weight:600}.soft-date__nav-btn{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:var(--white-100);cursor:pointer}.soft-date__nav-btn:first-child .soft-icon{transform:rotate(180deg)}.soft-date__week,.soft-date__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.soft-date__week{margin-bottom:6px}.soft-date__week span{text-align:center;font-size:var(--type-caption);font-weight:600;color:var(--black-60)}.soft-date__day{height:32px;border:0;border-radius:12px;background:transparent;color:var(--black-100);font-family:var(--font);font-size:var(--type-body);font-weight:500;cursor:pointer}.soft-date__day:hover{background:var(--white-90);color:var(--black-100)}.soft-date__day.is-today{box-shadow:inset 0 0 0 1px #0003}.soft-date__day.is-active{background:var(--black-100);color:var(--white-100)}.soft-date__foot{display:flex;justify-content:space-between;margin-top:10px}.soft-date__link{border:0;background:none;color:var(--black-100);font-family:var(--soft-font);font-size:var(--type-label);font-weight:600;cursor:pointer}.soft-toolbar .soft-select,.soft-toolbar .soft-searchbox{flex:1 1 200px}.soft-toolbar .soft-select{max-width:240px}.res-wrap{display:grid;gap:16px}.res-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.res-kpi{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--white-mist);border:1px solid transparent}.res-kpi p{margin:0}.res-kpi__icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:var(--black-100);color:var(--white-100)}.res-kpi__label{color:var(--black-60);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.res-kpi__value{margin-top:2px!important;color:var(--black-100);font-size:20px;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums}.res-kpi__hint{margin-top:4px!important;color:var(--black-60);font-size:12px}.res-kpi--danger{background:var(--soft-danger-soft);border-color:color-mix(in srgb,var(--palette-danger) 30%,transparent)}.res-kpi--danger .res-kpi__icon{background:var(--palette-danger)}.res-kpi--danger .res-kpi__value{color:color-mix(in srgb,var(--palette-danger) 80%,var(--black-100))}.res-kpi--ok .res-kpi__icon{background:color-mix(in srgb,var(--palette-success) 55%,var(--black-100))}.res-card h2{margin:0 0 12px;font-size:16px}.res-card .pr-section-head h2{margin:0}.res-range{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--white-90)}.res-range__btn{border:0;padding:6px 14px;border-radius:999px;background:transparent;color:var(--black-70);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.res-range__btn:hover{color:var(--black-100)}.res-range__btn.is-active{background:var(--black-100);color:var(--white-100)}.res-chart{display:grid;grid-template-columns:28px 1fr;gap:8px;margin-top:8px}.res-chart__axis{display:flex;flex-direction:column;justify-content:space-between;height:200px;color:var(--black-60);font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.res-chart__axis span{transform:translateY(-50%)}.res-chart__axis span:last-child{transform:translateY(50%)}.res-chart__plot{position:relative;min-width:0}.res-chart__grid{position:absolute;inset:0 0 auto;height:200px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.res-chart__grid span{border-top:1px dashed var(--white-80)}.res-chart__grid span:last-child{border-top-style:solid;border-color:var(--white-70)}.res-chart__bars{position:relative;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:clamp(2px,.6vw,8px);height:222px}.res-chart__col{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:200px;cursor:default}.res-chart__stack{display:flex;flex-direction:column;width:100%;max-width:34px;min-height:0;flex-shrink:0;border-radius:6px 6px 2px 2px;overflow:hidden;transition:height .35s ease,opacity .15s}.res-chart__col:hover .res-chart__stack{opacity:.8}.res-chart__seg{display:block;background:var(--black-100)}.res-chart__seg--warn{background:var(--palette-warn)}.res-chart__val{margin-bottom:3px;font-style:normal;font-size:11px;font-weight:700;line-height:1;color:var(--black-80);pointer-events:none}.res-chart__x{position:absolute;top:206px;color:var(--black-60);font-size:11px;white-space:nowrap}.res-chart__x.is-hidden{visibility:hidden}.res-legend{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0 0;color:var(--black-60);font-size:12px}.res-legend span{display:inline-flex;align-items:center;gap:6px}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:0 0 10px}.dot--ink{background:var(--black-100)}.dot--muted{background:var(--white-60)}.dot--warn{background:var(--palette-warn)}.dot--ok{background:color-mix(in srgb,var(--palette-success) 70%,var(--black-100))}.dot--danger{background:var(--palette-danger)}.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.res-budget__head{display:flex;align-items:baseline;gap:8px}.res-budget__head strong{font-size:32px;line-height:1;font-variant-numeric:tabular-nums}.res-budget__head span{color:var(--black-60);font-size:13px}.res-budget__track{position:relative;height:14px;margin:14px 0 16px;border-radius:999px;background:var(--white-90);overflow:hidden}.res-budget__track>span{position:absolute;top:0;bottom:0}.res-budget__fill{left:0;border-radius:999px;transition:width .4s ease}.res-budget__fill--ok{background:var(--black-100)}.res-budget__fill--warn{background:var(--palette-warn)}.res-budget__fill--danger{background:var(--palette-danger)}.res-budget__pend{background:repeating-linear-gradient(45deg,var(--palette-warn) 0 4px,transparent 4px 8px);opacity:.7}.res-budget__legend{display:grid;gap:8px;margin:0}.res-budget__legend>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.res-budget__legend dt{display:inline-flex;align-items:center;gap:8px;color:var(--black-70)}.res-budget__legend dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.res-budget__legend .is-total{margin-top:4px;padding-top:10px;border-top:1px solid var(--white-80);font-size:14px}.res-budget__legend .is-total dt{color:var(--black-100);font-weight:700}.res-budget__legend .is-neg{color:var(--palette-danger)}.res-hbars{display:grid;gap:10px;margin:0;padding:0;list-style:none}.res-hbars li{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;font-size:13px}.res-hbars__label{color:var(--black-60);text-transform:capitalize}.res-hbars__track{height:10px;border-radius:999px;background:var(--white-90);overflow:hidden}.res-hbars__track span{display:block;height:100%;border-radius:999px;background:var(--black-100)}.res-hbars__value{display:grid;justify-items:end;min-width:96px;font-weight:600;font-variant-numeric:tabular-nums}.res-hbars__value small{color:var(--black-60);font-weight:400;font-size:11px}.res-foot{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--white-80);color:var(--black-60);font-size:12px}.pr-hero{display:flex;align-items:center;gap:16px;flex-shrink:0;padding:10px 14px;border-radius:16px;background:var(--white-mist)}.pr-hero__main{display:grid;gap:6px;flex:1 1 auto;min-width:0}.pr-hero__codes{display:flex;align-items:center;gap:8px;min-width:0}.pr-hero__codes>*{flex-shrink:0}.pr-hero__code{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:var(--black-100);color:var(--white-100);font-size:12px;font-weight:700;letter-spacing:.02em;text-decoration:none;font-variant-numeric:tabular-nums}.pr-hero__code--link{border:1px solid var(--white-70);background:var(--white-100);color:var(--black-100);transition:border-color .15s}.pr-hero__code--link:hover{border-color:var(--black-100)}.pr-hero__codes .pr-hero__title{flex:1 1 auto;min-width:0;margin:0 0 0 4px;overflow:hidden;color:var(--black-100);font-size:15px;font-weight:700;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}.pr-hero__meta{display:flex;flex-wrap:wrap;gap:2px 0;margin:0;min-width:0}.pr-hero__meta>div{display:inline-flex;align-items:baseline;gap:5px;max-width:280px;min-width:0;padding:0 12px;border-left:1px solid var(--white-70)}.pr-hero__meta>div:first-child{padding-left:0;border-left:0}.pr-hero__meta dt{flex-shrink:0;color:var(--black-60);font-size:11px;font-weight:600}.pr-hero__meta dd{margin:0;overflow:hidden;color:var(--black-100);font-size:12.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.pr-hero__meta dd small{margin-left:6px;color:var(--black-60);font-size:11px;font-weight:600}.pr-hero__meta dd small.is-warn{color:color-mix(in srgb,var(--palette-warn) 70%,var(--black-100))}.pr-hero__meta dd small.is-danger{color:var(--palette-danger)}.pr-hero__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pr-tabs{flex-shrink:0;margin:0}.soft-module:has(>.pr-hero){gap:10px}@media(max-width:860px){.pr-hero,.pr-hero__codes{flex-wrap:wrap}.pr-tabs{flex-wrap:nowrap;overflow-x:auto}}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0}.info-grid>div{padding:12px 14px;border-radius:14px;background:var(--white-mist)}.info-grid__wide{grid-column:1 / -1}.info-grid dt{margin-bottom:4px;color:var(--black-60);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.info-grid dd{display:grid;gap:2px;justify-items:start;margin:0;color:var(--black-100);font-weight:500}.info-grid dd small{color:var(--black-60);font-weight:400}.info-grid dd.is-pre{white-space:pre-wrap}.soft-btn--danger-text{margin-right:auto;color:var(--palette-danger)!important}.gantt-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.gantt{--g-row: 48px;--g-head: 52px;--g-side: 520px;display:grid;grid-template-columns:var(--g-side) minmax(max-content,1fr);max-height:min(62vh,640px);margin-top:4px;border:1px solid var(--white-80);border-radius:16px;overflow:auto;overscroll-behavior:contain;background:var(--white-100);scrollbar-width:thin}.gantt__side{position:sticky;left:0;z-index:5;border-right:1px solid var(--white-80);background:var(--white-100);min-width:0;box-shadow:4px 0 10px -8px #0a0e1540}.gantt__side-head{position:sticky;top:0;z-index:2}.gantt__side-row{background:var(--white-100)!important}.gantt__side-row:hover{background:var(--white-mist)!important}.gantt__side-foot{position:sticky;bottom:0;z-index:2}.gantt__row--foot{position:sticky!important;bottom:0;z-index:2}.gantt-card__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:10px}.gantt-card__title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;min-width:0}.gantt-card__title h2{margin:0;font-size:16px;white-space:nowrap;cursor:help}.soft-btn--icon{width:38px;padding:0!important;justify-content:center}.gantt-card.is-full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;flex-direction:column;margin:0;padding:16px 20px;border-radius:0;background:var(--white-100)}.gantt-card.is-full .gantt{flex:1 1 auto;max-height:none;min-height:0}.gantt__side-head,.gantt__side-row,.gantt__side-foot{display:grid;grid-template-columns:var(--g-cols, 58px minmax(0, 1fr) 112px 100px 44px);align-items:center;gap:8px;padding:0 12px}.gantt__side-head .is-num{text-align:right}.gantt__side-row--group:hover{background:color-mix(in srgb,var(--grp, var(--black-100)) 14%,var(--white-100))!important}.gantt__code{display:inline-flex;align-items:center;gap:5px;color:var(--black-60);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.gantt__code--group{gap:4px;color:var(--black-100);font-size:12px;font-weight:700}.gantt__side-row--task .gantt__code{padding-left:16px}.gantt__side-row--task .gantt__name{padding-left:10px;border-left:1px solid var(--white-80)}.gantt__swatch{width:8px;height:8px;flex:0 0 8px;margin-left:-13px;border-radius:2px}.gantt__outside--group{color:var(--black-100);font-weight:700}.gantt__bar.is-custom{background:color-mix(in srgb,var(--bar) 30%,var(--white-100))}.gantt__bar.is-custom .gantt__fill{background:var(--bar)}.gantt__bar.is-custom .gantt__label{color:var(--white-100);text-shadow:0 0 3px rgba(10,14,21,.55)}.gantt__bar--late.is-custom{box-shadow:0 0 0 2px var(--palette-danger)}.gantt-colors{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gantt-colors__auto{height:28px;padding:0 12px;border:1px solid var(--white-80);border-radius:999px;background:var(--white-100);color:var(--black-70);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.gantt-colors__auto.is-active{border-color:var(--black-100);background:var(--black-100);color:var(--white-100)}.gantt-colors__sw{width:28px;height:28px;padding:0;border:3px solid var(--white-100);border-radius:50%;background:var(--sw);box-shadow:0 0 0 1px var(--white-80);cursor:pointer;transition:transform .12s,box-shadow .12s}.gantt-colors__sw:hover{transform:scale(1.1)}.gantt-colors__sw.is-active{box-shadow:0 0 0 2px var(--sw)}.gantt__side-row--group .gantt__name strong{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.gantt__side-row--group .gantt__name em{color:var(--black-60);font-style:normal;font-size:11px}.gantt__side-row--group .gantt__money,.gantt__side-row--group .gantt__pct{font-weight:700}.gantt__caret{transition:transform .15s}.gantt__caret.is-open{transform:rotate(90deg)}.gantt__side-foot{height:var(--g-row);border-top:1px solid var(--white-80);background:var(--white-mist);font-size:13px;font-weight:700}.gantt__money{font-size:12px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.gantt__state small{color:var(--black-60);font-weight:400}.gantt__nodate{color:var(--black-60);font-style:italic}.gantt__row--foot{border-top:1px solid var(--white-80);border-bottom:0;background:var(--white-mist)}.gantt__summary{position:absolute;top:17px;z-index:1;height:14px;border-radius:4px;background:color-mix(in srgb,var(--grp, var(--black-100)) 35%,var(--white-100));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--grp, var(--black-100)) 60%,transparent);overflow:hidden}.gantt__summary b{display:block;height:100%;background:var(--grp, var(--black-100))}.gantt__ghost{position:absolute;top:12px;z-index:1;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border:1px dashed var(--white-60);border-radius:8px;background:var(--white-100);color:var(--black-60);font:inherit;font-size:11px;font-weight:600;cursor:pointer}.gantt__ghost:hover{border-color:var(--black-100);color:var(--black-100)}.dot--ghost{border:1px dashed var(--black-60);background:transparent}.gantt__bar--none{background:var(--white-80)}.gantt-stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none}.gantt-stats li{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;background:var(--white-mist);color:var(--black-60);font-size:12px;white-space:nowrap}.gantt-stats strong{color:var(--black-100);font-weight:700;font-variant-numeric:tabular-nums}.gantt-stats .is-danger{background:var(--soft-danger-soft)}.gantt-stats .is-danger strong{color:var(--palette-danger)}.gantt-stats__bar{display:block;width:56px;height:5px;border-radius:999px;background:var(--white-80);overflow:hidden}.gantt-stats__bar b{display:block;height:100%;background:var(--black-100)}.gantt-costs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}.gantt-costs>div{padding:10px 12px;border-radius:12px;background:var(--white-mist)}.gantt-costs dt{color:var(--black-60);font-size:11px;font-weight:600;text-transform:uppercase}.gantt-costs dd{margin:2px 0 0;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:640px){.gantt-costs{grid-template-columns:repeat(2,minmax(0,1fr))}}.gantt__side-head{height:var(--g-head);border-bottom:1px solid var(--white-80);background:var(--white-mist);color:var(--black-60);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.gantt__side-row{width:100%;height:var(--g-row);border:0;border-bottom:1px solid var(--white-90);background:transparent;font:inherit;text-align:left;cursor:pointer}.gantt__side-row:hover{background:var(--white-mist)}.gantt__name{display:grid;min-width:0}.gantt__name strong{display:-webkit-box;overflow:hidden;font-size:13px;font-weight:600;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.gantt__side-row--group .gantt__name{display:flex;align-items:center;gap:8px}.gantt__side-row--group .gantt__name strong{-webkit-line-clamp:1;line-clamp:1}.gantt__side-row--group .gantt__name em{flex-shrink:0;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--grp, var(--black-100)) 14%,var(--white-100));color:var(--black-80);font-size:11px;font-weight:700;line-height:18px;text-align:center}.gantt__cell{overflow:hidden;color:var(--black-80);font-size:12px;white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.gantt__cell.is-num{text-align:right}.gantt__side-row--group .gantt__cell{color:var(--black-100);font-weight:700}.gantt__side-foot .gantt__cell{color:var(--black-100);font-size:13px}.gantt__pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.gantt__pill--todo{background:var(--white-90);color:var(--black-70)}.gantt__pill--run{background:var(--black-100);color:var(--white-100)}.gantt__pill--ok{background:var(--soft-success-soft);color:color-mix(in srgb,var(--palette-success) 45%,var(--black-100))}.gantt__pill--late{background:var(--soft-danger-soft);color:color-mix(in srgb,var(--palette-danger) 85%,var(--black-100))}.gantt__pill--none{border:1px dashed var(--white-60);color:var(--black-60)}.gantt-cols{position:relative}.gantt-cols__count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--white-90);font-size:11px;line-height:18px;text-align:center}.gantt-cols__panel{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;gap:2px;width:210px;padding:10px;border:1px solid var(--white-80);border-radius:14px;background:var(--white-100);box-shadow:0 12px 32px #0a0e1524}.gantt-cols__panel>p{margin:0 0 4px;padding:0 6px;color:var(--black-60);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.gantt-cols__opt{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:8px;font-size:13px;cursor:pointer}.gantt-cols__opt:hover{background:var(--white-mist)}.gantt-cols__foot{display:flex;justify-content:space-between;margin-top:6px;padding:8px 6px 0;border-top:1px solid var(--white-80)}.gantt-cols__foot button{border:0;background:none;color:var(--black-100);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.gantt-cols__foot button:hover{text-decoration:underline}.gantt__state{font-style:normal;font-size:11px;font-weight:600}.gantt__state--ok{color:color-mix(in srgb,var(--palette-success) 55%,var(--black-100))}.gantt__state--late{color:var(--palette-danger)}.gantt__state--run{color:var(--black-100)}.gantt__state--todo{color:var(--black-60)}.gantt__dates{display:grid;color:var(--black-80);font-size:12px;font-variant-numeric:tabular-nums}.gantt__dates small{color:var(--black-60);font-size:11px}.gantt__pct{font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.gantt__scroll{min-width:0}.gantt__canvas{position:relative;min-width:100%}.gantt__head{position:sticky;top:0;z-index:3;height:var(--g-head);border-bottom:1px solid var(--white-80);background:var(--white-mist)}.gantt__months,.gantt__ticks{position:relative;height:50%}.gantt__months span,.gantt__ticks span{position:absolute;top:0;bottom:0;display:flex;align-items:center;overflow:hidden;white-space:nowrap}.gantt__months span{padding-left:8px;border-left:1px solid var(--white-70);color:var(--black-100);font-size:12px;font-weight:700}.gantt__head:not(:has(.gantt__ticks)) .gantt__months{height:100%}.gantt__ticks span{justify-content:center;gap:2px;border-left:1px solid var(--white-80);color:var(--black-70);font-size:11px;font-variant-numeric:tabular-nums}.gantt__ticks span small{color:var(--black-60);font-size:9px}.gantt__ticks span.is-weekend{color:var(--black-60);background:var(--white-90)}.gantt__body{position:relative}.gantt__weekend{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--white-90) 60%,transparent);pointer-events:none}.gantt__vline{position:absolute;top:0;bottom:0;border-left:1px solid var(--white-80);pointer-events:none}.gantt__marker{position:absolute;top:0;bottom:0;border-left:2px dashed var(--black-60);opacity:.5;pointer-events:none}.gantt__today{position:absolute;top:0;bottom:0;z-index:2;border-left:2px solid var(--palette-danger);pointer-events:none}.gantt__today em{position:absolute;top:4px;left:-1px;padding:1px 6px;border-radius:0 6px 6px 0;background:var(--palette-danger);color:var(--white-100);font-style:normal;font-size:10px;font-weight:700}.gantt__row{position:relative;height:var(--g-row);border-bottom:1px solid var(--white-90)}.gantt__bar{position:absolute;top:11px;z-index:1;height:26px;padding:0;border:0;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .12s,box-shadow .12s}.gantt__bar:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0a0e152e}.gantt__fill{position:absolute;inset:0 auto 0 0}.gantt__label{position:relative;display:block;padding:0 8px;font-size:11px;font-weight:700;line-height:26px;text-align:left}.gantt__bar--todo .gantt__label{color:var(--black-100)}.gantt__bar--run{background:var(--black-60)}.gantt__bar--run .gantt__fill{background:var(--black-100)}.gantt__bar--run .gantt__label{color:var(--white-100)}.gantt__bar--ok{background:color-mix(in srgb,var(--palette-success) 70%,var(--black-100))}.gantt__bar--ok .gantt__label{color:var(--white-100)}.gantt__bar--late{background:color-mix(in srgb,var(--palette-danger) 40%,var(--white-100))}.gantt__bar--late .gantt__fill{background:var(--palette-danger)}.gantt__bar--late .gantt__label{color:var(--white-100)}.gantt__outside{position:absolute;top:0;z-index:1;overflow:hidden;max-width:220px;color:var(--black-70);font-size:12px;line-height:var(--g-row);white-space:nowrap;text-overflow:ellipsis;pointer-events:none}.gantt-range{width:100%;height:8px;border-radius:999px;background:linear-gradient(to right,var(--black-100) var(--pct),var(--white-80) var(--pct));-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.gantt-range::-webkit-slider-thumb{width:20px;height:20px;border:3px solid var(--white-100);border-radius:50%;background:var(--black-100);box-shadow:0 2px 6px #0a0e154d;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gantt-range::-moz-range-thumb{width:16px;height:16px;border:3px solid var(--white-100);border-radius:50%;background:var(--black-100)}@media(max-width:860px){.gantt{grid-template-columns:minmax(max-content,1fr)}.gantt__side{display:none}.gantt__outside{display:block}}.gantt{--g-row: 40px;--g-head: 46px;border-color:var(--white-90);font-size:12px}.gantt__side{box-shadow:none;border-right-color:var(--white-90)}.gantt__side-head,.gantt__head{background:var(--white-100);border-bottom-color:var(--white-90)}.gantt__side-head{font-size:10.5px;letter-spacing:.06em;color:var(--black-60)}.gantt__side-row{border-bottom-color:color-mix(in srgb,var(--white-90) 70%,transparent)}.gantt__side-row--group,.gantt__row--group{background:color-mix(in srgb,var(--grp, var(--black-100)) 5%,#F6F7F9)!important}.gantt__side-row--group{box-shadow:none}.gantt__side-row--group:hover{background:color-mix(in srgb,var(--grp, var(--black-100)) 9%,#F3F4F7)!important}.gantt__side-row--group .gantt__name strong{font-size:12px;letter-spacing:.02em}.gantt__name strong{font-size:12px;font-weight:500;color:var(--black-90)}.gantt__code,.gantt__code--group{font-size:11px}.gantt__code--group{color:var(--black-70)}.gantt__side-row--task .gantt__name{border-left:0;padding-left:14px}.gantt__cell{font-size:11.5px;color:var(--black-70)}.gantt__side-row--group .gantt__cell{font-weight:600}.gantt__side-foot{font-size:12px;border-top-color:var(--white-90);background:var(--white-100)}.gantt__side-foot .gantt__cell{font-size:12px}.gantt__pill{padding:1px 7px;font-size:10.5px;font-weight:500}.gantt__avance{display:flex;align-items:center;gap:8px}.gantt__avance i{flex:1 1 auto;height:4px;border-radius:999px;background:var(--white-90);overflow:hidden}.gantt__avance b{display:block;height:100%;border-radius:999px;background:var(--av, var(--black-100))}.gantt__avance em{min-width:30px;color:var(--black-70);font-style:normal;font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.gantt__months span{padding-left:6px;border-left:0;color:var(--black-60);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.gantt__ticks span{border-left:0;color:var(--black-60);font-size:10.5px}.gantt__ticks span.is-weekend{background:transparent;color:var(--white-60)}.gantt__body{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--grid) - 1px),color-mix(in srgb,var(--white-90) 80%,transparent) calc(var(--grid) - 1px),color-mix(in srgb,var(--white-90) 80%,transparent) var(--grid));background-position-x:var(--grid-off, 0)}.gantt__weekend{background:color-mix(in srgb,var(--white-mist) 80%,transparent)}.gantt__vline{border-left-color:var(--white-80)}.gantt__row{border-bottom-color:color-mix(in srgb,var(--white-90) 70%,transparent)}.gantt__marker{border-left-width:1px;opacity:.35}.gantt__today{border-left:1px solid color-mix(in srgb,var(--palette-danger) 75%,transparent)}.gantt__today em{top:2px;padding:0 5px;border-radius:4px;font-size:9px;line-height:14px;transform:translate(-50%);left:0}.gantt__bar{top:calc((var(--g-row) - 12px) / 2);height:12px;border-radius:999px}.gantt__bar:hover{transform:none;box-shadow:0 2px 8px #0a0e152e}.gantt__fill{border-radius:999px}.gantt__label{display:none}.gantt__bar--todo{background:var(--white-80)}.gantt__bar--todo .gantt__fill{background:var(--black-60)}.gantt__bar--run{background:color-mix(in srgb,var(--black-100) 30%,var(--white-100))}.gantt__bar--late{background:color-mix(in srgb,var(--palette-danger) 35%,var(--white-100))}.gantt__bar.is-custom{background:color-mix(in srgb,var(--bar) 32%,var(--white-100))}.gantt__bar--late.is-custom{box-shadow:0 0 0 1.5px var(--palette-danger)}.gantt__summary{top:calc((var(--g-row) - 12px) / 2);height:12px;border-radius:999px;box-shadow:none;background:color-mix(in srgb,var(--grp, var(--black-100)) 28%,var(--white-100))}.gantt__summary b{border-radius:999px}.gantt__ghost{top:calc((var(--g-row) - 22px) / 2);height:22px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:500}.gantt-card__title h2{font-size:15px}.gantt-stats li{height:24px;padding:0 9px;font-size:11.5px}.gantt-card .res-legend{margin-top:10px;font-size:11px}.gantt{--g-row: 38px}.gantt__side-row--group,.gantt__row--group{background:#f5f9fc!important}.gantt__side-row--group:hover{background:#edf3f9!important}.gantt__side-row--group .gantt__name strong{color:var(--black-100);font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none}.gantt__side-row--group .gantt__name em{background:#e6eef6;color:var(--black-70);font-weight:600}.gantt__side-head{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}.gantt__swatch{width:7px;height:7px;flex-basis:7px;border-radius:50%}.gantt__avance{justify-content:flex-end;gap:8px}.gantt__avance em{min-width:0;color:var(--black-80);font-size:11.5px;font-weight:500}.gantt__side-row--group .gantt__avance em{font-weight:700;color:var(--black-100)}.gantt__avance svg{flex:0 0 16px}.gantt__ring-bg{fill:none;stroke:#e3e8ef;stroke-width:2.4}.gantt__ring{fill:none;stroke:var(--av, var(--black-100));stroke-width:2.4;stroke-linecap:round;transition:stroke-dasharray .3s ease}.gantt__bar,.gantt__bar.is-custom{top:calc((var(--g-row) - 20px) / 2);height:20px;background:color-mix(in srgb,var(--bar, #2F80ED) 55%,var(--white-100))}.gantt__bar .gantt__fill,.gantt__bar.is-custom .gantt__fill{background:var(--bar, #2F80ED)}.gantt__bar:hover{box-shadow:0 4px 12px color-mix(in srgb,var(--bar, #2F80ED) 40%,transparent)}.gantt__bar--late,.gantt__bar--late.is-custom{box-shadow:0 0 0 2px var(--white-100),0 0 0 3.5px var(--palette-danger)}.gantt__bar-text{position:relative;display:flex;align-items:center;gap:4px;height:100%;padding:0 10px;overflow:hidden;color:var(--white-100);font-size:11px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 2px color-mix(in srgb,var(--bar, #000) 60%,transparent)}.gantt__summary{top:calc((var(--g-row) - 4px) / 2);height:4px;background:#c9d3df}.gantt__summary b{background:var(--grp, var(--black-60))}.gantt__summary-label{position:absolute;top:0;z-index:1;color:var(--black-60);font-size:10.5px;line-height:var(--g-row);white-space:nowrap;pointer-events:none}.dot--bar{width:18px;flex-basis:18px;border-radius:999px;background:linear-gradient(to right,#2f80ed 55%,color-mix(in srgb,#2F80ED 55%,#fff) 55%)}.dot--late{border-radius:999px;background:color-mix(in srgb,#2F80ED 55%,#fff);box-shadow:0 0 0 1.5px var(--palette-danger)}.row-menu{min-width:190px;padding:5px;border-radius:12px;box-shadow:0 10px 30px #0a0e151f,0 0 0 1px #0a0e150d}.row-menu__title{padding:6px 10px 4px;font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}.row-menu__item{min-height:32px;padding:0 10px;border-radius:8px;font-size:12.5px;font-weight:400}.row-menu__item:hover:not(:disabled),.row-menu__item:focus-visible,.row-menu__item.is-open{background:#f3f5f8}.row-menu__icon{color:var(--black-60);opacity:1}.row-menu__item.is-danger .row-menu__icon{color:currentColor}.row-menu__swatch{display:block;width:12px;height:12px;border-radius:50%}.row-menu__check{color:var(--black-100)}.row-menu__chev{margin-right:-4px;color:var(--black-60)}.row-menu__divider{margin:4px 6px;background:var(--white-90)}.row-menu__group{position:relative}.row-menu.row-menu__sub{position:absolute;top:-5px;left:calc(100% + 6px);min-width:150px;max-height:min(60vh,420px);overflow-y:auto;animation:row-menu-in .1s ease-out}.row-menu.row-menu__sub.is-left{left:auto;right:calc(100% + 6px)}.row-menu.row-menu__sub:before{content:"";position:absolute;top:0;bottom:0;left:-10px;width:10px}.row-menu.row-menu__sub.is-left:before{left:auto;right:-10px}.row-menu.row-menu__sub{min-width:170px;max-height:none}.row-menu__sub .row-menu__label{white-space:nowrap}.gantt__side-row,.gantt__row{cursor:default;-webkit-user-select:none;user-select:none}.gantt__side-row:focus-visible{outline:2px solid #2F80ED;outline-offset:-2px}.gantt__side-row.is-selected,.gantt__row.is-selected,.gantt__side-row--group.is-selected,.gantt__row--group.is-selected{background:#e8f1fd!important}.gantt__side-row.is-selected{box-shadow:inset 3px 0 #2f80ed}.gantt__row:not(.gantt__row--foot):hover:not(.is-selected){background-color:color-mix(in srgb,#F5F9FC 60%,transparent)}.gantt__bar{display:block;cursor:default}.gantt__ghost{cursor:default;pointer-events:none}.gantt__toggle{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:-4px;padding:0;border:0;border-radius:5px;background:transparent;color:inherit;cursor:pointer}.gantt__toggle:hover{background:#e1eaf4}.export-progress{width:min(400px,100%);justify-items:center;text-align:center;padding:28px 26px 22px;animation:softModalPop .42s cubic-bezier(.16,1,.3,1) both}.export-progress__copy h2{margin:0 0 6px;font-size:var(--type-subtitle);font-weight:650;letter-spacing:-.02em}.export-progress__copy p{margin:0;color:var(--black-60);font-size:.92rem;line-height:1.45}.export-progress__spinner{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:var(--black-100)}.export-progress__spinner span{width:26px;height:26px;border-radius:50%;border:2.5px solid rgba(255,255,255,.28);border-top-color:var(--white-100);animation:exportSpin .75s linear infinite}.export-progress__mark{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:var(--soft-danger);color:var(--white-100);font-size:1.4rem;font-weight:700}.export-progress__check{width:54px;height:54px;padding:12px;box-sizing:border-box;border-radius:50%;background:var(--black-100)}.export-progress__meter{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.export-progress__track{height:8px;border-radius:999px;background:var(--white-80);overflow:hidden}.export-progress__fill{display:block;height:100%;border-radius:inherit;background:var(--black-100);position:relative;overflow:hidden;transition:width .35s cubic-bezier(.16,1,.3,1)}.export-progress__fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translate(-120%);animation:exportShimmer 1.15s ease-in-out infinite}.export-progress__fill.is-done:after{animation:none}.export-progress__percent{min-width:3ch;font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:700;color:var(--black-80)}@keyframes exportSpin{to{transform:rotate(360deg)}}@keyframes exportShimmer{to{transform:translate(120%)}}.personal-tools{position:relative}.row-menu.personal-tools__menu{position:absolute;top:calc(100% + 6px);right:0;left:auto;z-index:30}
