:root{--green:#003e2c;--dark:#003e2c;--cream:#faf7ef;--ink:#173d32;--muted:#53685e;--border:#d6e2d9;--soft:#edf6f1;--red:#9e3024;--radius:18px;--shadow:0 8px 30px #003e2c08;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:var(--green);text-underline-offset:4px}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--dark);outline-offset:4px}h1,h2,h3{color:var(--dark);line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(2rem,4vw,3rem);margin:0 0 18px;font-weight:750}h2{font-size:clamp(1.3rem,2vw,1.75rem);margin:0 0 18px;font-weight:700}h3{font-size:1.15rem}p{margin:0 0 18px}.eyebrow{font-size:.72rem;font-weight:750;letter-spacing:.16em;color:var(--green);margin:0 0 16px}.description,.intro{color:var(--muted);line-height:1.8;max-width:70ch}.note,small,.help{font-size:.8rem;line-height:1.7;color:var(--muted)}small{display:block}strong{font-weight:650}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border:1px solid transparent;border-radius:9px;padding:10px 18px;font-size:.875rem;font-weight:650;line-height:1.35;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;white-space:normal;text-align:center}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:var(--dark)}.secondary{background:#fff;color:var(--dark);border-color:var(--border)}.secondary:hover:not(:disabled){background:var(--soft);border-color:var(--green)}.danger{background:#fff2ef;border-color:#c77368;color:var(--red)}.danger:hover:not(:disabled){background:#fbe0da}button:disabled{opacity:.55;cursor:not-allowed}.selected.button{background:var(--dark);color:#fff;border-color:var(--dark)}.heading,.toolbar,.actions,.row-actions,.tabs,.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.heading,.toolbar{justify-content:space-between;margin-bottom:28px}.heading>div{min-width:0}.actions{margin-top:24px}.tabs{margin:28px 0;padding-bottom:18px;border-bottom:1px solid var(--border)}.filters{align-items:flex-end;margin:22px 0}.filters label{flex:1;min-width:150px}.panel,.form-panel,.list-panel,.info-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:clamp(20px,3vw,32px);margin:24px 0;box-shadow:var(--shadow);min-width:0}.fields,.detalle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:24px 0}.wide{grid-column:1/-1}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-weight:650;color:var(--dark);margin-bottom:16px}label{display:block;font-size:.85rem;font-weight:600;color:var(--ink)}input,select,textarea{display:block;width:100%;min-height:46px;border:1px solid #a9bdb1;border-radius:8px;padding:10px 12px;background:#fff;color:var(--ink);margin:8px 0 18px;font-size:.95rem}textarea{resize:vertical;min-height:104px}input[readonly]{background:var(--cream)}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid var(--red)}.fields input,.fields select,.fields textarea,.filters input,.filters select{margin-bottom:0}.check{display:flex;align-items:center;gap:10px;font-weight:400;margin:12px 0}.check input,input[type=checkbox],input[type=radio]{width:20px;min-height:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--green)}.roles{border:1px solid var(--border);border-radius:12px;padding:20px}.search{max-width:600px}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:12px;max-width:100%;overscroll-behavior-inline:contain}table{border-collapse:collapse;width:100%;text-align:left;font-size:.85rem}th,td{padding:17px 16px;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}thead{background:var(--cream);color:var(--dark)}thead th{font-weight:650;font-size:.77rem}tbody tr:last-child>*{border-bottom:0}tbody tr:hover{background:#f7fbf8}caption{padding:12px;text-align:left;color:var(--muted);font-size:.8rem}.row-actions{min-width:180px}.badge{display:inline-block;background:var(--soft);color:var(--dark);padding:4px 10px;border-radius:30px;font-size:.72rem;font-weight:650}.badge.inactive,.low{background:#fff2de;color:#7d4814}.empty{padding:32px;text-align:center;color:var(--muted)}.money,.quantity{white-space:nowrap;font-variant-numeric:tabular-nums}.linea{border:1px solid var(--border);border-radius:12px;padding:22px;margin:20px 0}.detalle dt{font-size:.75rem;color:var(--muted)}.detalle dd{margin:4px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.permission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 30px;padding-left:20px;font-size:.85rem}.inline-link{margin-top:16px}.soportes{border-top:1px solid var(--border);margin-top:28px;padding-top:28px}.soportes ul{list-style:none;padding:0}.soportes li{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--border)}.notice-box,.error-message,.success,.notice{display:flex;gap:14px;padding:18px 20px;border-radius:12px;border:1px solid #bad6cc;background:var(--soft);margin:18px 0;color:var(--dark);font-size:.875rem;overflow-wrap:anywhere}.notice-box p{margin:0}.notice-symbol{font-weight:800;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:24px;height:24px;flex-shrink:0}.notice-error,.error-message{background:#fff1ed;color:#87281d;border-color:#e4b5a9}.notice-success,.success{background:#eaf7ef;color:#175736;border-color:#b0d7bf}.form-errors ul{margin:8px 0 0;padding-left:20px}app-notice,app-form-errors{display:block}dialog{width:min(560px,100% - 32px);max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--border);border-radius:20px;color:var(--ink);box-shadow:0 24px 100px #003e2c40}dialog::backdrop{background:#00291ee0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-content{padding:clamp(24px,5vw,36px)}.dialog-content h2{font-size:1.65rem}.dialog-content .actions{justify-content:flex-end}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:12px;transform:translateY(-150%);z-index:100;background:#fff;color:var(--dark);padding:10px 20px;border-radius:8px}.skip-link:focus{transform:none}.loading{padding:24px;background:var(--soft);border-radius:12px;color:var(--dark)}[role=status]:not(.notice-box){color:var(--muted)}.public-hero{background:var(--dark);color:#fff;border-radius:24px;padding:clamp(30px,6vw,72px);margin-bottom:56px;position:relative;overflow:hidden}.public-hero h1{color:#fff;font-size:clamp(2.5rem,5.5vw,4.5rem);max-width:14ch;line-height:1.04}.public-hero .eyebrow{color:#9bd9bf}.public-hero p{max-width:60ch}.public-hero .description{color:#dae9df;font-size:1.1rem}.public-hero .primary{background:#bce9d3;color:var(--dark)}.public-hero .primary:hover{background:#fff}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin:50px 0 24px}.section-heading h2{font-size:clamp(1.8rem,3vw,2.7rem);margin-bottom:8px}.public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.public-grid .panel{margin:0}.public-grid h3{font-size:1.4rem}.step-number{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--soft);color:var(--green);font-size:1.3rem;font-weight:700;margin-bottom:24px}.callout{background:#e7f1e9;border-radius:22px;padding:clamp(24px,5vw,48px);margin:56px 0}.callout h2{font-size:clamp(1.8rem,3vw,2.5rem)}details{border-bottom:1px solid var(--border);padding:22px 0}summary{cursor:pointer;font-weight:650;color:var(--dark);padding:4px 0;min-height:44px}details p{margin:16px 0 0;color:var(--muted);max-width:80ch}.editorial{max-width:850px;margin:auto}.editorial section{margin:48px 0}.editorial p{font-size:1.05rem;line-height:1.9}.login{max-width:500px;margin:24px auto 40px;padding:clamp(24px,4vw,40px);background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow)}.login h1{font-size:2.5rem}.login .intro{margin-bottom:30px}.login .primary{width:100%;justify-content:space-between}.password-field{position:relative}.password-field input{padding-right:88px}.reveal{position:absolute;right:6px;top:3px;min-height:40px;padding:8px;border:0;background:transparent;color:var(--dark);font-size:.8rem;cursor:pointer}.help{margin-top:24px}.login+a{display:block;text-align:center}.login label{margin-top:16px}@media(max-width:760px){.fields,.detalle,.public-grid{grid-template-columns:1fr}.wide{grid-column:auto}.heading{align-items:flex-start}.filters label{min-width:100%}.public-hero{margin-bottom:36px}.public-hero h1{max-width:17ch}.section-heading{margin-top:36px}.panel,.form-panel,.list-panel{margin:18px 0}th,td{padding:14px 12px}.dialog-content .actions{flex-direction:column-reverse;align-items:stretch}.callout{margin:32px 0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}table{min-width:680px}.table-scroll:focus-visible{outline-offset:3px}@media print{table{min-width:0}}.roles-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin:28px 0}.panel-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.panel-heading p,.panel-footer{font-size:.8rem;color:var(--muted)}.panel-footer{margin-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.status,.count{display:inline-block;padding:4px 10px;border-radius:20px;background:var(--soft);color:var(--dark);font-size:.75rem}.empty-state{padding:32px;text-align:center}.task-card{display:block;text-decoration:none;transition:border-color .15s}.task-card:hover{border-color:var(--green)}.task-card app-icon{width:36px;height:36px;color:var(--green);margin-bottom:16px}.task-card h3{margin:0 0 12px}.task-card>span{display:block;font-size:.85rem;font-weight:650;margin-top:20px}.sidebar nav a app-icon{margin-right:8px}.dashboard-grid{margin:24px 0 40px}.filters app-form-errors{flex-basis:100%}@media print{@page{size:landscape;margin:12mm}.sidebar,.topbar,.page-footer,.public-header,.public-footer,.no-print,app-confirmacion{display:none!important}.app-shell,.workspace,main{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}body{background:#fff;color:#111}.table-scroll{overflow:visible}.panel{box-shadow:none}}
