:root{--bg:#f5f2ea;--surface:#fffdf8;--surface-strong:#f7efe1;--text:#2e2922;--muted:#6f6354;--line:#dfd3c1;--accent:#0c7a6a;--accent-ink:#dff6f2;--danger:#a2363c;--priority-low-bg:#ecf9f0;--priority-normal-bg:#fff7e8;--priority-high-bg:#ffecec;--role-director-bg:#fcefc7;--role-equipo-bg:#e8f4ff;--milestone-chip-bg:#eef8f4;--milestone-chip-alt-bg:#e9f1ff;--milestone-chip-warn-bg:#fff2e8;--project-role-chip-a-bg:#edf7ff;--project-role-chip-b-bg:#f1f0ff;--project-role-chip-c-bg:#e9f8ef;--state-active-bg:#e8f8ef;--state-paused-bg:#f3ecff;--state-warning-bg:#fff4dd;--state-closed-bg:#f7e8e8;--state-neutral-bg:#efefef;--form-border-color:#dfd3c1;--table-border-color:#dfd3c1;--form-field-bg:#fff;--placeholder-text-color:#9a8f80;--form-border-top-width:1px;--form-border-right-width:1px;--form-border-bottom-width:1px;--form-border-left-width:1px;--table-border-top-width:0px;--table-border-right-width:0px;--table-border-bottom-width:1px;--table-border-left-width:0px;--font-body-size:16px;--font-table-header-size:.95rem;--font-table-cell-size:1rem;--form-radius-top-left:10px;--form-radius-top-right:10px;--form-radius-bottom-right:10px;--form-radius-bottom-left:10px;--form-padding-y:.75rem;--form-padding-x:.9rem;--app-logo-url:none;--brand-text-color:#2e2922;--brand-title-size:1.08rem;--brand-subtitle-size:.85rem;--heading-font:"Fraunces", Georgia, serif;--body-font:"Source Sans 3", "Trebuchet MS", sans-serif}:root[data-color-mode=dark]{--bg:#1e2326;--surface:#242a2e;--surface-strong:#2c3439;--text:#ece7dc;--muted:#b8b0a1;--line:#4b5a61;--accent:#2ba894;--accent-ink:#e8fffb;--danger:#ff8f96;--form-field-bg:#1f262b;--placeholder-text-color:#8798a0}*{box-sizing:border-box}body{font-family:var(--body-font);font-size:var(--font-body-size);color:var(--text);background:radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--surface-strong) 55%, transparent) 0%, transparent 40%), radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--accent) 25%, transparent) 0%, transparent 35%), var(--bg);margin:0}a{color:inherit}.auth-page{place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;width:min(460px,100%);padding:2rem;box-shadow:0 20px 45px #1916121f}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.8rem}h1,h2,h3{font-family:var(--heading-font);margin:0 0 .75rem}h1{font-size:clamp(1.9rem,3.5vw,2.5rem)}h2{font-size:clamp(1.4rem,2.4vw,1.9rem)}h3{font-size:1.1rem}.auth-copy{color:var(--muted);margin:0 0 1.2rem}.auth-form{gap:1rem;display:grid}.auth-link{text-align:center;color:var(--accent);font-size:.9rem;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-success{background:color-mix(in srgb, var(--accent) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));color:var(--text);border-radius:10px;gap:.6rem;padding:1rem;font-size:.95rem;display:grid}.input-with-icon{display:grid;position:relative}.input-with-icon input{padding-right:2.6rem}.input-icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;place-items:center;padding:.25rem;transition:color .12s;display:inline-grid;position:absolute;top:50%;right:.55rem;transform:translateY(-50%)}.input-icon-btn:hover{color:var(--text)}.form-hint{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.temp-password-box{border:1px solid var(--line);background:var(--surface-strong);border-radius:10px;align-items:center;gap:.75rem;margin:.5rem 0;padding:.75rem 1rem;display:flex}.temp-password-box code{letter-spacing:.08em;color:var(--accent);word-break:break-all;flex:1;font-family:Courier New,monospace;font-size:1.1rem;font-weight:700}label{color:color-mix(in srgb, var(--muted) 90%, var(--text));gap:.4rem;font-size:.93rem;font-weight:500;display:grid}input{border-style:solid;border-color:var(--form-border-color);border-top-width:var(--form-border-top-width);border-right-width:var(--form-border-right-width);border-bottom-width:var(--form-border-bottom-width);border-left-width:var(--form-border-left-width);background:var(--form-field-bg);border-top-left-radius:var(--form-radius-top-left);border-top-right-radius:var(--form-radius-top-right);border-bottom-right-radius:var(--form-radius-bottom-right);border-bottom-left-radius:var(--form-radius-bottom-left);padding:var(--form-padding-y) var(--form-padding-x);font:inherit}textarea{border-style:solid;border-color:var(--form-border-color);border-top-width:var(--form-border-top-width);border-right-width:var(--form-border-right-width);border-bottom-width:var(--form-border-bottom-width);border-left-width:var(--form-border-left-width);background:var(--form-field-bg);border-top-left-radius:var(--form-radius-top-left);border-top-right-radius:var(--form-radius-top-right);border-bottom-right-radius:var(--form-radius-bottom-right);border-bottom-left-radius:var(--form-radius-bottom-left);padding:var(--form-padding-y) var(--form-padding-x);font:inherit;resize:vertical;min-height:88px}.form-select{border-style:solid;border-color:var(--form-border-color);border-top-width:var(--form-border-top-width);border-right-width:var(--form-border-right-width);border-bottom-width:var(--form-border-bottom-width);border-left-width:var(--form-border-left-width);background:var(--form-field-bg);border-top-left-radius:var(--form-radius-top-left);border-top-right-radius:var(--form-radius-top-right);border-bottom-right-radius:var(--form-radius-bottom-right);border-bottom-left-radius:var(--form-radius-bottom-left);padding:var(--form-padding-y) var(--form-padding-x);font:inherit}input::placeholder,textarea::placeholder{color:var(--placeholder-text-color)}input:focus,textarea:focus,.form-select:focus{border-color:var(--accent);outline:2px solid #0c7a6a47}.primary-button,.ghost-button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;font-weight:700;transition:transform .12s,opacity .12s}.icon-button{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 84%, white);cursor:pointer;border-radius:999px;place-items:center;width:36px;height:36px;transition:transform .14s,box-shadow .16s,border-color .16s;display:inline-grid}.section-gap-sm{height:.9rem}.section-gap-md{height:1.2rem}.icon-button:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));transform:translateY(-1px);box-shadow:0 6px 12px #18120e24}.icon-button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 25%, var(--line))}.icon-button.danger:hover{border-color:color-mix(in srgb, var(--danger) 45%, var(--line))}.primary-button:focus-visible,.ghost-button:focus-visible,.danger-button:focus-visible,.dashboard-dot:focus-visible,.event-link:focus-visible,.inline-link:focus-visible,.nav-link:focus-visible,.icon-picker-item:focus-visible,.chip:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 78%, white);outline-offset:2px}.primary-button{background:var(--accent);color:var(--accent-ink);padding:.8rem 1rem}.ghost-button{border-color:var(--line);background:0 0;padding:.55rem .85rem}.danger-button{background:var(--danger);color:#fff;border-color:color-mix(in srgb, var(--danger) 85%, #000 15%);align-items:center;gap:.35rem;display:inline-flex}.danger-button:hover{filter:brightness(.95)}:root[data-color-mode=dark] .ghost-button,:root[data-color-mode=dark] .notifications-trigger,:root[data-color-mode=dark] .modal-card,:root[data-color-mode=dark] .chip,:root[data-color-mode=dark] .table-wrap,:root[data-color-mode=dark] .notification-item,:root[data-color-mode=dark] .calendar-day-card,:root[data-color-mode=dark] .calendar-month-cell,:root[data-color-mode=dark] .calendar-year-card,:root[data-color-mode=dark] .calendar-drawer{color:var(--text);background:#1f262b}:root[data-color-mode=dark] .nav-link.active,:root[data-color-mode=dark] .tab-button.active{background:#39444a}.primary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.primary-button:disabled,.ghost-button:disabled{opacity:.6;cursor:default;transform:none}.form-error,.status-text.error{color:var(--danger)}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.app-header{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.3rem;display:flex}.header-left-zone{align-items:stretch;gap:.85rem;display:flex}.header-brand-wrap{align-items:center;gap:.65rem;display:flex}.brand{letter-spacing:.02em;color:var(--brand-text-color);font-weight:800;font-size:var(--brand-title-size);margin:0}.brand-logo{background-image:var(--app-logo-url);background-position:100%;background-repeat:no-repeat;background-size:auto 100%;width:88px;height:52px;display:none}:root[data-app-logo="1"] .brand-logo{display:block}.header-brand-wrap .subtitle{color:var(--brand-text-color);font-size:var(--brand-subtitle-size)}.header-quick-wrap{border-left:1px solid var(--line);align-items:center;padding-left:.85rem;display:flex}.quick-project-button{align-self:center}.subtitle,.user-role,.page-head p,.status-text{color:var(--muted);margin:0}.user-role{border:1px solid var(--line);border-radius:999px;padding:.1rem .45rem;display:inline-block}.user-role.role-director{background:var(--role-director-bg)}.user-role.role-equipo{background:var(--role-equipo-bg)}.session-box{align-items:center;gap:.95rem;display:flex}.header-bell-wrap{margin-right:.2rem}.header-user-wrap{align-items:center;gap:.6rem;display:flex}.header-user-meta{gap:.15rem;display:grid}.header-user-links-row{align-items:center;gap:.5rem;display:inline-flex}:root[data-header-preset=moderno] .session-box{gap:.72rem}:root[data-header-preset=moderno] .header-user-links-row{gap:.35rem}:root[data-header-preset=editorial] .session-box,:root[data-header-preset=editorial] .header-user-wrap{align-items:flex-start}:root[data-header-preset=editorial] .header-user-links-row{gap:.18rem;display:grid}:root[data-header-preset=tecnico] .session-box{gap:1.1rem}:root[data-header-preset=tecnico] .header-user-meta{gap:.05rem}:root[data-header-preset=tecnico] .header-user-links-row{gap:.8rem}.notifications-menu{position:relative}.notifications-trigger{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;width:40px;height:40px;position:relative}.notifications-trigger:hover{border-color:#b9a98f}.bell-icon{font-size:1rem}.bell-badge{color:#fff;background:#d2575f;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.7rem;font-weight:700;display:grid;position:absolute;top:-5px;right:-5px}.notifications-dropdown{border:1px solid var(--line);background:var(--surface);z-index:40;border-radius:12px;width:min(360px,80vw);padding:.75rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 32px #110d0a2e}.dropdown-list{gap:.5rem;margin:.6rem 0;padding:0;list-style:none;display:grid}.dropdown-list li{border:1px solid var(--line);background:#ffffff8c;border-radius:9px;padding:.5rem}.dropdown-title{align-items:center;gap:.3rem;margin:0;font-size:.92rem;font-weight:700;display:flex}.dropdown-copy{color:var(--muted);margin:.2rem 0 0;font-size:.85rem}.rich-content{color:var(--muted);line-height:1.45}.rich-content p{margin:.35rem 0}.rich-content ul,.rich-content ol{margin:.35rem 0 .35rem 1rem;padding:0}.rich-content a{color:var(--accent);text-decoration:underline}.user-name{text-align:left;margin:0;font-weight:700}.app-body{grid-template-columns:240px minmax(0,1fr);transition:grid-template-columns .26s;display:grid}.app-body.sidebar-collapsed{grid-template-columns:86px minmax(0,1fr)}.app-sidebar{border-right:1px solid var(--line);background:#fffdf8a6;flex-direction:column;padding:1rem;transition:padding .22s;display:flex}.app-sidebar.collapsed{padding:.85rem .55rem}.sidebar-head{justify-content:flex-end;margin-bottom:.45rem;display:flex}.sidebar-nav-zone{gap:0;display:grid}.sidebar-foot{border-top:1px solid color-mix(in srgb, var(--line) 72%, transparent);justify-content:flex-end;margin-top:auto;padding-top:.6rem;display:flex}.app-sidebar.collapsed .sidebar-foot{justify-content:center}.sidebar-toggle{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.rotate-180{transition:transform .16s;transform:rotate(180deg)}.nav-link{border-radius:10px;align-items:center;gap:.45rem;padding:.7rem .8rem;text-decoration:none;transition:background-color .15s,transform .15s;display:flex;position:relative}.nav-link:hover{background:color-mix(in srgb, var(--surface-strong) 70%, transparent);transform:translate(1px)}.nav-link.active{background:var(--surface-strong);font-weight:700}.nav-label{transition:opacity .2s,transform .2s}.app-sidebar.collapsed .nav-link{justify-content:center;padding:.72rem .3rem}.app-sidebar.collapsed .nav-link svg{width:18px;height:18px;transition:transform .15s}.app-sidebar.collapsed .nav-link:hover svg{transform:scale(1.14)}.app-sidebar.collapsed .nav-label,.app-sidebar.collapsed .nav-submenu,.app-sidebar.collapsed .nav-toggle-icon{opacity:0;pointer-events:none;width:0;transform:translate(-6px)}.app-sidebar.collapsed .nav-group{gap:0}.app-sidebar.collapsed .nav-group-head{grid-template-columns:1fr}.app-sidebar.collapsed .nav-link[data-tooltip]:hover:after,.app-sidebar.collapsed .nav-link[data-tooltip]:focus-visible:after{content:attr(data-tooltip);background:color-mix(in srgb, var(--surface) 90%, #111 10%);color:var(--text);border:1px solid var(--line);white-space:nowrap;z-index:10;border-radius:8px;padding:.32rem .5rem;font-size:.78rem;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 8px 20px #0e0d0b24}.nav-submenu{gap:.2rem;margin:.2rem 0 .55rem .8rem;display:grid}.nav-group{gap:.15rem;display:grid}.nav-group-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem;display:grid}.nav-toggle-icon{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.rotate-0{transition:transform .16s;transform:rotate(0)}.rotate-90{transition:transform .16s;transform:rotate(90deg)}.collapsible-nav{opacity:0;max-height:0;transition:max-height .22s,opacity .18s,transform .18s;overflow:hidden;transform:translateY(-4px)}.collapsible-nav.open{opacity:1;max-height:240px;transform:translateY(0)}.nav-sublink{color:var(--muted);border-radius:8px;padding:.42rem .6rem;font-size:.92rem;text-decoration:none;transition:background-color .15s,color .15s;display:block}.nav-sublink:hover{background:color-mix(in srgb, var(--surface-strong) 60%, transparent);color:var(--text)}.nav-sublink.active{color:var(--text);background:#f7efe1b3;font-weight:700}.app-main{padding:1.3rem}.page-head{justify-content:space-between;align-items:baseline;margin-bottom:1rem;display:flex}.table-wrap{border:1px solid var(--table-border-color);background:var(--surface);border-radius:14px;overflow-x:auto}.projects-table{border-collapse:collapse;width:100%}.projects-table th,.projects-table td{text-align:left;vertical-align:middle;border-style:solid;border-color:var(--table-border-color);border-top-width:var(--table-border-top-width);border-right-width:var(--table-border-right-width);border-bottom-width:var(--table-border-bottom-width);border-left-width:var(--table-border-left-width);font-size:var(--font-table-cell-size);padding:.8rem}.projects-table th{font-size:var(--font-table-header-size);background:#f7efe18c}.inline-link{color:var(--accent);font-weight:700;text-decoration:none}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem;transition:box-shadow .22s,transform .22s}.card:hover{box-shadow:0 10px 22px color-mix(in srgb, var(--text) 9%, transparent);transform:translateY(-1px)}.card ul{margin:0;padding-left:1.1rem}.inline-form{gap:.55rem;margin-top:.8rem;display:grid}.inline-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.inline-actions{gap:.4rem;display:inline-flex}.pagination-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.65rem;display:flex}.pagination-controls label{align-items:center;gap:.45rem;display:inline-flex}.dashboard-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:1rem;display:grid}.dashboard-side{align-content:start;gap:.85rem;display:grid}.dashboard-main{gap:1rem;display:grid}.dashboard-main>.card{opacity:0;animation:.34s forwards dashboard-card-in}.dashboard-main>.card:first-child{animation-delay:40ms}.dashboard-main>.card:nth-child(2){animation-delay:.12s}@keyframes dashboard-card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.compact-card{padding:.65rem}.dashboard-month-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;display:grid;position:relative}.dashboard-month-card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, white);border-radius:12px;padding:.5rem}.dashboard-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;display:grid}.dashboard-weekday{color:var(--muted);text-align:center;font-size:.72rem}.dashboard-day{border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:8px;align-content:space-between;min-height:34px;padding:.12rem;display:grid}.dashboard-day.today{border-color:color-mix(in srgb, var(--accent) 62%, var(--line));background:color-mix(in srgb, var(--accent-soft) 58%, transparent)}.dashboard-day.muted{opacity:.45}.dashboard-dot-list{flex-wrap:wrap;gap:.12rem;display:flex}.dashboard-dot{cursor:pointer;border:0;border-radius:999px;width:7px;height:7px;transition:transform .12s}.dashboard-dot:hover,.dashboard-dot:focus-visible{transform:scale(1.16)}.dashboard-dot.selected{box-shadow:0 0 0 2px color-mix(in srgb, var(--surface) 75%, transparent);transform:scale(1.22)}.dashboard-rollover{border:1px dashed var(--line);border-radius:10px;margin-top:.65rem;padding:.5rem .7rem}.dashboard-event-tooltip{border:1px solid var(--line);background:var(--surface);pointer-events:none;z-index:4;border-radius:10px;min-width:220px;max-width:300px;padding:.55rem .7rem;animation:.14s fade-up;position:absolute;top:.7rem;right:.7rem;box-shadow:0 10px 22px #16110c2e}@keyframes fade-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.collapsible-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.6rem;font-weight:700;list-style:none;display:flex}.collapsible-card summary::-webkit-details-marker{display:none}.collapsible-body{margin-top:.7rem;animation:.16s fade-up}.users-grid{grid-template-columns:360px minmax(0,1fr)}.users-list{gap:.8rem;display:grid}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-projects-card{grid-column:1/-1}.user-edit-form{border:1px solid var(--line);background:#ffffff80;border-radius:10px;padding:.75rem}.user-projects-panel{border:1px dashed var(--line);background:#fff9;border-radius:10px;margin-top:.55rem;padding:.6rem}.user-projects-list{gap:.5rem;display:grid}.user-project-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:.5rem}.project-card-title{margin:0;font-weight:700}.notifications-grid{grid-template-columns:1fr 1fr}.notifications-list{gap:.7rem;display:grid}.notification-item{border:1px solid var(--line);background:#ffffff8c;border-radius:10px;padding:.7rem;transition:border-color .18s,background-color .18s}.notification-item:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--surface) 84%, white)}.notification-item p{margin:.35rem 0 .6rem}.notification-date-small{color:var(--muted);margin:0;font-size:.78rem}.badge{border:1px solid var(--line);border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.badge-ok{background:#eef9f2;border-color:#a5d9b9}.badge-pending{background:#fff6ea;border-color:#e4c79d}.status-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.create-alert-form{border-top:1px dashed var(--line);margin-top:.8rem;padding-top:.8rem}.create-alert-form h4{margin:0}.wysiwyg-wrap .tox.tox-tinymce{border-color:var(--line);border-radius:10px}.wysiwyg-wrap .tox .tox-toolbar,.wysiwyg-wrap .tox .tox-toolbar__primary,.wysiwyg-wrap .tox .tox-toolbar-overlord{background:#f8fafb}.report-filters{grid-template-columns:minmax(0,1fr) auto;align-items:center}.projects-toolbar{grid-template-columns:minmax(0,2fr) minmax(200px,1fr) auto;align-items:end;gap:.7rem;margin-bottom:.8rem;display:grid}.sort-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.projects-list-table tbody tr.clickable-row{cursor:pointer}.projects-list-table tbody tr.clickable-row:hover{background:#f7efe18c}.projects-table tbody tr{transition:background-color .16s}.editable-title{cursor:text}.title-inline-input{font-family:var(--heading-font);font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700}.barcode-card{margin-bottom:.8rem}.project-meta-top-row{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-soft) 72%, #fff);border-radius:10px;grid-template-columns:minmax(180px,1fr) minmax(160px,.8fr) minmax(280px,1.25fr);align-items:start;gap:.55rem 1rem;padding:.65rem .75rem;display:grid}.project-meta-column{gap:.45rem;display:grid}.project-meta-item{gap:.12rem;margin:0;display:grid}.project-meta-code-cell{min-width:0}.button-text-sm{font-size:.82rem;font-weight:600}.member-inline-form{grid-template-columns:minmax(0,1fr)}.member-field{min-width:0}.member-field .form-select{width:100%}.member-field.role{margin-top:.2rem}.member-new-user-button{justify-self:start}.barcode-preview{border:1px dashed var(--line);border-radius:10px;align-items:flex-end;gap:2px;min-height:64px;padding:.7rem;display:flex}.barcode-field-wrap{gap:.6rem;display:grid}.barcode-meta-line{justify-content:space-between;align-items:center;gap:.55rem;width:100%;display:flex}.barcode-meta-right{justify-content:flex-end;justify-items:end;gap:.35rem;width:100%;max-width:380px;margin-left:auto;display:inline-grid}.barcode-meta-line>span{color:var(--muted);font-size:.88rem;font-weight:600}.barcode-meta-line .barcode-code-text{text-align:right}.barcode-meta-right .barcode-inline{justify-content:flex-end}.barcode-meta-right .barcode-real{margin-left:auto}.barcode-real{border:1px dashed var(--line);background:#fff;border-radius:10px;align-items:flex-end;gap:1px;min-height:72px;padding:.8rem;display:flex}.barcode-small{min-height:38px;padding:.35rem .45rem}.barcode-small .barcode-real-bar{height:30px}.barcode-inline{align-items:center;gap:.75rem;display:flex}.barcode-code-text{letter-spacing:.04em;-webkit-user-select:none;user-select:none;font-size:.95rem}.barcode-code-input{width:180px}.barcode-real-bar{background:#111;border-radius:1px;height:58px;display:inline-block}.floating-save-toast{border:1px solid var(--line);z-index:50;background:#fff;border-radius:12px;max-width:420px;padding:.8rem;position:fixed;bottom:16px;right:16px;box-shadow:0 14px 28px #120e0a33}.toast-title{margin:0;font-weight:700}.toast-summary-list{color:var(--muted);margin:.4rem 0 .7rem;padding-left:1rem}.modal-footer{justify-content:flex-end;margin-top:.8rem}.barcode-bar{background:#2e2922;border-radius:1px;width:3px;display:inline-block}.barcode-bar.w1{height:22px}.barcode-bar.w2{height:34px}.barcode-bar.w3{height:46px}.barcode-bar.w4{height:58px}.project-tabs{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.8rem;display:flex}.tab-step-controls{gap:.4rem;margin-left:auto;display:inline-flex}.tab-button{border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:.45rem .8rem;transition:transform .14s,background-color .16s}.tab-button:hover{transform:translateY(-1px)}.tab-button.active{background:var(--surface-strong);font-weight:700}.tab-panel-enter{animation:.2s panel-in}.tab-panel-next{animation-name:panel-slide-next}.tab-panel-prev{animation-name:panel-slide-prev}@keyframes panel-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-slide-next{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes panel-slide-prev{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.project-three-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.project-two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.users-table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:auto}.users-head-actions{margin-bottom:.55rem}.settings-table input{width:100%}.users-table-wrap .projects-table tbody td{vertical-align:middle}.users-table-wrap .projects-table tbody tr:hover td{background:color-mix(in srgb, var(--surface-strong) 68%, transparent)}.toggle-row{cursor:pointer}.user-toggle-indicator{width:18px;color:color-mix(in srgb, var(--muted) 86%, var(--text));place-items:center;margin-right:.2rem;display:inline-grid}.project-name-cell{gap:.1rem;display:inline-grid}.project-name-link{color:color-mix(in srgb, var(--accent) 78%, #0f4f46);font-weight:700;text-decoration:none}.project-name-link:hover{text-decoration:underline}.project-info-shell{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:color-mix(in srgb, var(--surface-soft) 78%, #fff);border-radius:12px;padding:.95rem 1rem}.project-info-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.4rem;display:grid}.project-info-col{gap:.45rem;display:grid}.project-expanded-two-columns{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:1.15rem;display:grid}.project-ficha-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;display:grid}.project-ficha-head h4{margin:0;font-size:1.45rem}.project-ficha-state-pill{font-size:.76rem;line-height:1.1em}.inline-row.align-start{justify-content:flex-start;align-items:flex-start;gap:.55rem}.project-comment-row{margin-bottom:.45rem}.project-comments-scroll{background:color-mix(in srgb, var(--surface-soft) 76%, transparent);border:1px solid color-mix(in srgb, var(--line) 78%, transparent);border-radius:10px;max-height:500px;padding:.35rem .35rem .25rem;overflow-y:auto}.project-ficha-panel{background:color-mix(in srgb, var(--surface-soft) 72%, #fff);border:1px solid color-mix(in srgb, var(--line) 75%, transparent);border-radius:12px;padding:1.15rem;box-shadow:0 8px 18px #0f172a0d}@media (width<=900px){.project-info-columns,.project-expanded-two-columns{grid-template-columns:1fr}}.nested-table-wrap{width:100%;margin-top:.6rem}.nested-projects-table th,.nested-projects-table td{padding:.5rem .6rem;font-size:.9rem}.expanded-user-row>td{border-bottom:1px solid var(--line);padding:0}.user-detail-anim{animation:.2s expand-fade}@keyframes expand-fade{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.full-width-panel{background:#ffffffbf;border:0;border-radius:0;width:100%;margin:0;padding:.9rem}.full-width-panel .table-wrap{width:100%}.user-cell{align-items:center;gap:.55rem;min-width:0;display:flex}.avatar-wrap{border:1px solid var(--line);background:#f2eadc;border-radius:999px;flex:none;overflow:hidden}.avatar-wrap.sm{width:34px;height:34px}.avatar-wrap.md{width:48px;height:48px}.avatar-image{object-fit:cover;width:100%;height:100%;display:block}.avatar-fallback{color:#3a3228;place-items:center;width:100%;height:100%;font-size:.85rem;font-weight:700;display:grid}.priority-buttons{gap:.4rem;margin-bottom:.6rem;display:flex}.priority-button{border:1px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:10px;padding:.45rem .8rem}.priority-button.p0{background:var(--priority-low-bg)}.priority-button.p1{background:var(--priority-normal-bg)}.priority-button.p2{background:var(--priority-high-bg)}.priority-button.active{font-weight:700;box-shadow:inset 0 0 0 2px #2e2922}.team-list,.compact-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.team-item{border:1px solid var(--line);background:#fff9;border-radius:10px;padding:.6rem;position:relative}.team-remove-button{position:absolute;top:.45rem;right:.45rem}.create-user-form{border-top:1px dashed var(--line);margin-top:1rem;padding-top:.9rem}.create-user-form h4{font-family:var(--heading-font);margin:0}.toast-stack{z-index:20;gap:.55rem;display:grid;position:fixed;bottom:16px;right:16px}.toast{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:240px;max-width:360px;padding:.7rem .9rem;font-size:.95rem;box-shadow:0 12px 24px #120e0a26}.toast-success{border-color:#6aba95}.toast-error{border-color:#d8868d}.toast-info{border-color:#9bbbcf}.modal-backdrop{z-index:30;background:#1b150f73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;width:min(820px,100%);max-height:90vh;padding:1rem;animation:.22s modal-in;overflow:auto;box-shadow:0 22px 44px #110d0a40}.quick-project-backdrop{place-items:start center;padding-top:72px}.quick-project-modal-card{width:min(1200px,100vw - 2rem);max-height:calc(100vh - 84px);animation:.24s quick-modal-drop-in}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-card h4{font-family:var(--heading-font);margin:.45rem 0 0}.quick-project-form{gap:.85rem;display:grid}.quick-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.quick-project-tabs{margin-bottom:.4rem}.quick-project-section{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-soft) 68%, #fff);border-radius:10px;padding:.8rem}.quick-project-section h4{margin:0 0 .4rem}.quick-inline-controls{align-items:flex-end}.quick-po-row{align-items:center}.quick-project-actions{justify-content:flex-end;gap:.5rem;display:flex}.quick-span-2{grid-column:span 2}@keyframes quick-modal-drop-in{0%{opacity:0;transform:translateY(-16px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.wrap-row{flex-wrap:wrap}.chip-list{flex-wrap:wrap;gap:.45rem;display:flex}.chip{border:1px solid var(--line);font:inherit;cursor:pointer;color:color-mix(in srgb, var(--text) 88%, #000 12%);background:#fff;border-radius:999px;padding:.3rem .7rem}.chip.milestone-chip{background:var(--milestone-chip-bg)}.chip.milestone-chip.alt{background:var(--milestone-chip-alt-bg)}.chip.milestone-chip.warn{background:var(--milestone-chip-warn-bg)}.token-pill{border:1px solid var(--line);color:color-mix(in srgb, var(--text) 88%, #000 12%);text-shadow:0 0 #0000;border-radius:999px;padding:.14rem .48rem;font-weight:600;line-height:1.25;display:inline-block}.token-pill.priority-low{background:var(--priority-low-bg)}.token-pill.priority-normal{background:var(--priority-normal-bg)}.token-pill.priority-high{background:var(--priority-high-bg)}.token-pill.state-active{background:var(--state-active-bg)}.token-pill.state-paused{background:var(--state-paused-bg)}.token-pill.state-warning{background:var(--state-warning-bg)}.token-pill.state-closed{background:var(--state-closed-bg)}.token-pill.state-neutral{background:var(--state-neutral-bg)}.token-inline-wrap{flex-wrap:wrap;gap:.25rem;display:inline-flex}.settings-preview-table td{vertical-align:top}.settings-preview-form{grid-template-columns:minmax(0,1fr) minmax(140px,220px);gap:.45rem;display:grid}.settings-preview-scenario{gap:.6rem;display:grid}.project-role-pill{border:1px solid var(--line);background:var(--project-role-chip-a-bg);color:color-mix(in srgb, var(--text) 88%, #000 12%);border-radius:999px;padding:.15rem .45rem;font-size:.85em;font-weight:600;display:inline-block}:root[data-color-mode=dark] .token-pill,:root[data-color-mode=dark] .project-role-pill,:root[data-color-mode=dark] .chip,:root[data-color-mode=dark] .user-role{color:#f4f7fa;border-color:color-mix(in srgb, #c5d2db 25%, var(--line))}:root[data-color-mode=dark] .token-pill.priority-low,:root[data-color-mode=dark] .token-pill.priority-normal,:root[data-color-mode=dark] .token-pill.priority-high,:root[data-color-mode=dark] .token-pill.state-active,:root[data-color-mode=dark] .token-pill.state-paused,:root[data-color-mode=dark] .token-pill.state-warning,:root[data-color-mode=dark] .token-pill.state-closed,:root[data-color-mode=dark] .token-pill.state-neutral,:root[data-color-mode=dark] .project-role-pill,:root[data-color-mode=dark] .chip.milestone-chip{filter:saturate(.85)brightness(.86)}.project-role-pill.variant-b{background:var(--project-role-chip-b-bg)}.project-role-pill.variant-a{background:var(--project-role-chip-a-bg)}.project-role-pill.variant-c{background:var(--project-role-chip-c-bg)}.static-chip{cursor:default}.checkline{align-items:center;gap:.5rem;font-weight:600;display:flex}.form-errors-box{background:#fff5f6;border:1px solid #d8868d;border-radius:10px;padding:.65rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-list{gap:.55rem;margin-top:.7rem;display:grid}.settings-item{border:1px solid var(--line);background:#ffffff80;border-radius:10px;padding:.6rem}.settings-subnav{flex-wrap:wrap;gap:.5rem;display:flex}.settings-help-card{margin-bottom:.8rem}.settings-help-list{gap:.75rem;margin:.65rem 0 0;padding-left:1rem;display:grid}.permisos-card{gap:.8rem;display:grid}.permisos-tabs{margin-bottom:.1rem}.permisos-layout{grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:.8rem;display:grid}.permisos-roles-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-soft) 68%, #fff);border-radius:12px;padding:.65rem}.permisos-role-list{gap:.45rem;max-height:330px;padding-right:.2rem;display:grid;overflow:auto}.permisos-role-item{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:10px;gap:.32rem;padding:.5rem;display:grid}.permisos-role-item.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, #fff)}.permisos-role-head{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.permisos-add-role-form{gap:.5rem}.permisos-main-panel{gap:.7rem;display:grid}.permisos-role-meta{border:1px solid var(--line);background:#ffffff80;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:.6rem;padding:.65rem;display:grid}.permisos-global-group{margin:0}.permisos-global-grid{gap:.5rem;display:grid}.permisos-global-item span{display:grid}.permisos-global-override{border:1px solid var(--line);border-radius:10px;gap:.35rem;padding:.52rem;display:grid}.permisos-matrix-wrap{margin-top:0}.permisos-matrix-table td,.permisos-matrix-table th{vertical-align:middle}.permisos-col-head{justify-items:center;gap:.2rem;display:grid}.permisos-resource-label{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.perm-toggle{border:1px solid var(--line);background:#f5f6f8;border-radius:999px;min-width:72px;min-height:32px;font-size:.78rem;font-weight:700;transition:all .2s}.perm-toggle.on,.perm-toggle.grant{border-color:color-mix(in srgb, var(--accent) 52%, #2d7b54);background:color-mix(in srgb, var(--accent) 24%, #ecfff4);color:#0f5e44}.perm-toggle.off,.perm-toggle.deny{color:#8e2e2e;background:#fff2f2;border-color:#d99b9b}.perm-toggle.inherit{color:#59636b;background:#f4f5f6;border-style:dashed}.perm-toggle:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f223414}.perm-toggle-override{min-width:94px}.button-link{color:var(--accent);text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.72rem;font-weight:700;text-decoration:underline}.permisos-user-view{gap:.7rem;display:grid}.permisos-user-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.permisos-selected-user{border:1px solid var(--line);background:#ffffff80;border-radius:12px;justify-content:space-between;align-items:center;gap:.7rem;padding:.6rem;display:flex}@media (width<=960px){.permisos-layout,.permisos-role-meta,.permisos-user-toolbar{grid-template-columns:1fr}.permisos-selected-user{flex-direction:column;align-items:flex-start}}.settings-style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.8rem;display:grid}.header-preview-card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-soft) 72%, #fff);border-radius:10px;justify-content:space-between;gap:.65rem;margin-top:.45rem;padding:.55rem;display:flex}.header-preview-left,.header-preview-right{align-items:center;gap:.5rem;display:flex}.header-preview-brand{border-right:1px solid var(--line);align-items:center;gap:.45rem;padding-right:.55rem;display:flex}.header-preview-logo{border:1px dashed var(--line);background:color-mix(in srgb, var(--accent) 28%, #fff);border-radius:7px;width:34px;height:34px}.header-preview-title,.header-preview-subtitle{margin:0;line-height:1.15}.header-preview-user{align-items:center;gap:.4rem;display:flex}.header-preview-avatar{border:1px solid var(--line);background:#f2eadc;border-radius:999px;place-items:center;width:28px;height:28px;font-size:.78rem;font-weight:700;display:grid}.header-preview-card.preset-editorial .header-preview-right,.header-preview-card.preset-editorial .header-preview-user{align-items:flex-start}.header-preview-card.preset-editorial .header-user-links-row{gap:.15rem;display:grid}.header-preview-card.preset-tecnico .header-user-links-row{gap:.8rem}.settings-style-group{border:1px solid var(--line);background:#ffffff85;border-radius:12px;gap:.5rem;padding:.7rem;display:grid}.settings-style-group label{align-items:start}.settings-style-group .checkline{align-items:center;display:flex}.settings-style-group .checkline input[type=checkbox]{width:auto;min-height:auto;margin:0}.settings-style-group input[type=number],.settings-style-group select,.settings-style-group input[type=color]{min-height:38px}.settings-style-group input[type=color]{width:100%;padding:.2rem}.settings-style-group legend{padding:0 .35rem;font-weight:700}.icon-picker-wrap{gap:.45rem;display:grid}.icon-picker-toolbar{grid-template-columns:1fr 180px;gap:.4rem;display:grid}.icon-picker-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.45rem;display:grid}.icon-picker-item{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.45rem;display:flex}.icon-picker-item.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.logo-preview{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;max-width:180px;max-height:60px;padding:.2rem}.logo-preview-dark{background:#10161a}.file-drop-group{gap:.4rem;display:grid}.file-drop-label{font-weight:700}.file-dropzone{border:1px dashed var(--line);background:color-mix(in srgb, var(--surface) 88%, #fff 12%);text-align:center;cursor:pointer;border-radius:12px;justify-items:center;gap:.2rem;width:100%;padding:.9rem;display:grid}.file-dropzone.dragging{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.file-dropzone:focus-visible{outline-offset:1px;outline:2px solid #0c7a6a4d}.file-drop-icon{font-size:1.1rem}.file-drop-title{font-weight:700}.file-drop-subtitle{color:var(--muted);font-size:.9rem}.hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.8rem;display:flex}.calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;display:grid}.calendar-layout{grid-template-columns:minmax(0,1fr) 320px;gap:.8rem;display:grid}.calendar-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;display:grid}.calendar-weekday{text-align:center;color:var(--muted);text-transform:uppercase;font-size:.82rem;font-weight:700}.calendar-month-cell{border:1px solid var(--line);background:#ffffff9e;border-radius:10px;min-height:110px;padding:.45rem}.calendar-month-cell.muted{opacity:.55}.calendar-month-cell.today{border-color:#0c7a6a}.calendar-day-head{margin-bottom:.25rem;font-weight:700}.calendar-cell-events{gap:.25rem;display:grid}.calendar-pill{border:1px solid var(--line);text-align:left;font:inherit;cursor:pointer;background:#fff;border-left-width:4px;border-radius:8px;padding:.2rem .35rem;font-size:.8rem}.calendar-pill:hover{background:#f6f0e6}.calendar-week-list{gap:.55rem;display:grid}.event-link{text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.calendar-year-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.calendar-year-card{border:1px solid var(--line);background:#ffffff9e;border-radius:10px;padding:.55rem}.calendar-drawer{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-self:start;padding:.8rem;position:sticky;top:1rem}.calendar-drawer-empty{min-height:240px;display:grid}.calendar-drawer-empty-box{border:1px dashed color-mix(in srgb, var(--line) 85%, transparent);text-align:center;background:color-mix(in srgb, var(--surface-soft) 72%, transparent);border-radius:10px;place-content:center;min-height:180px;padding:1rem;display:grid}.calendar-drawer h4{font-family:var(--heading-font);margin:.4rem 0}.calendar-day-card{border:1px solid var(--line);background:#ffffff9e;border-radius:10px;min-height:104px;padding:.6rem}.calendar-event-list{gap:.45rem;margin:.45rem 0 0;padding:0;list-style:none;display:grid}.calendar-event-item{grid-template-columns:12px 1fr;align-items:start;gap:.45rem;display:grid}@media (width<=900px){.app-body{grid-template-columns:1fr}.app-sidebar{border-right:0;border-bottom:1px solid var(--line)}.detail-grid,.users-grid,.project-meta-top-row,.quick-project-grid{grid-template-columns:1fr}.quick-span-2{grid-column:span 1}.profile-grid,.settings-grid,.settings-style-grid,.icon-picker-toolbar,.calendar-grid,.calendar-layout{grid-template-columns:1fr}.calendar-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-year-grid,.notifications-grid,.report-filters,.projects-toolbar,.project-three-columns,.project-two-columns,.dashboard-layout,.dashboard-month-strip{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:1fr 1fr}.app-header{flex-direction:column}.app-body,.app-body.sidebar-collapsed{grid-template-columns:1fr}.app-sidebar,.app-sidebar.collapsed{padding:.65rem}.app-sidebar.collapsed .nav-label,.app-sidebar.collapsed .nav-submenu,.app-sidebar.collapsed .nav-toggle-icon{opacity:1;pointer-events:auto;width:auto;transform:none}.app-sidebar.collapsed .nav-link{justify-content:flex-start;padding:.7rem .8rem}.app-sidebar.collapsed .nav-link[data-tooltip]:hover:after,.app-sidebar.collapsed .nav-link[data-tooltip]:focus-visible:after{content:none}.header-left-zone{justify-content:space-between;width:100%}.header-quick-wrap{border-left:0;padding-left:0}.session-box{justify-content:space-between;width:100%}.user-name{text-align:left}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
