/* Generado por scripts/gen-tecnico-css.py desde el prototipo "Uplink Connect".
   Estilos encapsulados bajo .tvx: solo pantallas del técnico con el diseño nuevo (APK). */
.tvx{--navy:#082b49;--navy2:#0d3b63;--blue:#078cff;--cyan:#13c5ee;--ink:#10253b;--muted:#64788c;--line:#dce8f1;--bg:#edf5fa;--card:#fff;--green:#079b65;--amber:#d88900;--red:#db3b54;--shadow:0 12px 34px rgba(8,43,73,.10)}
.tvx,.tvx *{box-sizing:border-box}
.tvx{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);}
.tvx button,.tvx input{font:inherit}
.tvx button{cursor:pointer}
.tvx .brand{display:flex;align-items:center;gap:9px}
.tvx .brand img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}
.tvx .brand strong,.tvx .brand span{display:block}
.tvx .brand strong{font-size:14px}
.tvx .brand span{font-size:9px;color:#9fe8ff;margin-top:2px;letter-spacing:.04em}
.tvx .sync{display:flex;align-items:center;gap:5px;font-size:10px;background:rgba(255,255,255,.09);padding:6px 8px;border-radius:99px}
.tvx .sync i{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.15)}
@keyframes tvx-fade{from{opacity:.25;transform:translateY(4px)}}
.tvx h1,.tvx h2,.tvx h3,.tvx p{margin:0}
.tvx h1{font-size:26px;line-height:1.08}
.tvx h2{font-size:18px}
.tvx h3{font-size:15px}
.tvx .hello,.tvx .title-row,.tvx .back-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 18px}
.tvx .hello span,.tvx .muted{color:var(--muted)}
.tvx .hello h1{margin:3px 0}
.tvx .hello p,.tvx .intro{color:var(--muted);font-size:13px}
.tvx .iconbtn,.tvx .back-row>button,.tvx .more{border:1px solid var(--line);background:#fff;color:var(--navy);height:44px;min-width:44px;border-radius:14px;font-weight:900;box-shadow:0 7px 20px rgba(8,43,73,.06)}
.tvx .iconbtn,.tvx .back-row>button,.tvx .more{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .eyebrow{display:block;font-size:10px;letter-spacing:.12em;font-weight:900;color:#1686c5;margin-bottom:4px}
.tvx .attendance,.tvx .next,.tvx .card,.tvx .job,.tvx .clock-card,.tvx .expense-summary,.tvx .summary{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.tvx .attendance,.tvx .next,.tvx .card,.tvx .job,.tvx .clock-card,.tvx .expense-summary,.tvx .summary{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .attendance.compact{padding:15px;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;border-left:4px solid var(--amber)}
.tvx .attendance strong,.tvx .attendance small{display:block}
.tvx .attendance strong{font-size:14px}
.tvx .attendance small{font-size:11px;color:var(--muted);margin-top:3px}
.tvx .primary,.tvx .outline,.tvx .actions button,.tvx .section-title button{border:0;border-radius:12px;padding:11px 14px;font-weight:800}
.tvx .primary{color:#fff;background:linear-gradient(135deg,#087cf3,#12bfea);box-shadow:0 8px 18px rgba(8,140,255,.22)}
.tvx .outline{background:#fff;color:var(--blue);border:1px solid #8dc9ff}
.tvx .outline{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .next{padding:18px;color:#fff;background:linear-gradient(145deg,var(--navy),#0b527f);border:0;overflow:hidden;position:relative}
.tvx .next:after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(19,197,238,.24);border-radius:50%;right:-80px;top:-110px}
.tvx .next-top,.tvx .job-head,.tvx .info-line,.tvx .contact,.tvx .section-title{display:flex;justify-content:space-between;align-items:center}
.tvx .next .eyebrow{color:#8ce9ff}
.tvx .next h2{margin:10px 0 5px}
.tvx .next p{font-size:13px;color:#c2ddec}
.tvx .time{font-size:20px;font-weight:900}
.tvx .meta{display:flex;gap:10px;align-items:center;margin:14px 0;font-size:12px}
.tvx .status{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;font-style:normal;font-size:10px;font-weight:900;text-transform:uppercase;white-space:nowrap}
.tvx .status.progress{background:#dcecff;color:#1765b0}
.tvx .status.progress{background:linear-gradient(145deg,#f4f9ff 0%,#c8d7e8 100%)}/*dg*/
.tvx .next .status.progress{background:rgba(255,255,255,.14);color:#c1eeff}
.tvx .status.pending{background:#fff1cd;color:#9a6400}
.tvx .status.pending{background:linear-gradient(145deg,#fffbf0 0%,#e8dbbb 100%)}/*dg*/
.tvx .status.done{background:#dcf9ee;color:#087a54}
.tvx .status.done{background:linear-gradient(145deg,#f4fdfa 0%,#c8e3d9 100%)}/*dg*/
.tvx .actions{display:flex;gap:8px}
.tvx .actions button{flex:1;background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.14)}
.tvx .actions .primary{background:#fff;color:#07568c}
.tvx .actions .primary{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .section-title{margin:20px 0 10px}
.tvx .section-title button{background:transparent;color:var(--blue);padding:6px}
.tvx .job{padding:16px;margin-bottom:12px}
.tvx .job.featured{border-top:4px solid var(--blue)}
.tvx .job h3{margin:12px 0 4px}
.tvx .job p,.tvx .job small{font-size:12px;color:var(--muted)}
.tvx .progressbar,.tvx .subprogress,.tvx .stockbar,.tvx .close-progress{height:6px;border-radius:99px;background:#e6eef4;overflow:hidden;margin:14px 0 5px}
.tvx .progressbar i,.tvx .subprogress i,.tvx .stockbar i,.tvx .close-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.tvx .quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}
.tvx .quick-grid button{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;color:var(--ink)}
.tvx .quick-grid button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .quick-grid b,.tvx .quick-grid span{display:block}
.tvx .quick-grid b{font-size:20px;color:var(--blue)}
.tvx .quick-grid span{font-size:11px;color:var(--muted)}
.tvx .filters{display:flex;gap:7px;overflow:auto;padding-bottom:8px;margin-bottom:12px;scrollbar-width:none}
.tvx .filters button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--muted);padding:9px 12px;border-radius:99px;font-size:11px;font-weight:800}
.tvx .filters button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .filters .on{background:var(--navy);border-color:var(--navy);color:#fff}
.tvx .filters .on{background:linear-gradient(145deg,#435e75 0%,#06223a 100%)}/*dg*/
.tvx .info-line{font-size:12px;color:var(--muted);margin:12px 0}
.tvx .chips{display:flex;gap:7px;margin-bottom:12px}
.tvx .chips span,.tvx .tag{font-size:10px;background:#eaf4fb;color:#286788;padding:6px 8px;border-radius:8px}
.tvx .chips span,.tvx .tag{background:linear-gradient(145deg,#f9fcfe 0%,#d5dee4 100%)}/*dg*/
.tvx .wide{width:100%}
.tvx .back-row{justify-content:flex-start;gap:11px}
.tvx .back-row .more{margin-left:auto}
.tvx .status-strip{display:flex;justify-content:space-between;align-items:center;background:#e6f2ff;padding:11px 13px;border-radius:13px;margin-bottom:12px;font-size:12px}
.tvx .status-strip{background:linear-gradient(145deg,#f8fbff 0%,#d1dce8 100%)}/*dg*/
.tvx .card{padding:16px;margin-bottom:11px}
.tvx .card h2,.tvx .card h3{margin-bottom:7px}
.tvx .card p{font-size:13px;line-height:1.5;color:var(--muted)}
.tvx .contact{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:12px}
.tvx .contact button{border:0;background:#eaf5ff;color:#0674d3;border-radius:9px;padding:8px;font-weight:800}
.tvx .contact button{background:linear-gradient(145deg,#f9fcff 0%,#d5dfe8 100%)}/*dg*/
.tvx .step-list{display:grid;gap:8px}
.tvx .step-list>button,.tvx .check-sections article{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;text-align:left;color:var(--ink)}
.tvx .step-list>button,.tvx .check-sections article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .step-list>button>span{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:#e9f5ff}
.tvx .step-list>button>span{background:linear-gradient(145deg,#f8fcff 0%,#d4dfe8 100%)}/*dg*/
.tvx .step-list div,.tvx .check-sections div{flex:1}
.tvx .step-list b,.tvx .step-list small,.tvx .check-sections b,.tvx .check-sections small{display:block}
.tvx .step-list small,.tvx .check-sections small{color:var(--muted);margin-top:3px;font-size:11px}
.tvx .step-list i{font-size:22px;color:#8ba0b2}
.tvx .bottom-action{position:sticky;bottom:80px;width:100%;border:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--navy2),var(--blue));padding:15px;margin-top:14px;font-weight:900;box-shadow:0 10px 30px rgba(8,91,162,.28);z-index:3}
.tvx .bottom-action.disabled{background:#a7b7c4;box-shadow:none}
.tvx .bottom-action.disabled{background:linear-gradient(145deg,#e5e9ed 0%,#98a7b2 100%)}/*dg*/
.tvx .save-state{background:#e0f8ee;color:#087a54;padding:9px;border-radius:10px;text-align:center;font-size:11px;font-weight:800}
.tvx .save-state{background:linear-gradient(145deg,#f6fdfa 0%,#cce2d9 100%)}/*dg*/
.tvx .center{text-align:center}
.tvx .check-sections{display:grid;gap:9px}
.tvx .check-sections article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eff4f7;font-weight:900}
.tvx .check-sections article>span{background:linear-gradient(145deg,#fafcfd 0%,#d9dee1 100%)}/*dg*/
.tvx .check-sections article.done>span{background:#ddf8ed;color:var(--green)}
.tvx .check-sections article.done>span{background:linear-gradient(145deg,#f5fdfa 0%,#c9e2d8 100%)}/*dg*/
.tvx .check-sections article.warn>span{background:#fff0d0;color:var(--amber)}
.tvx .check-sections article.warn>span{background:linear-gradient(145deg,#fffaf1 0%,#e8dabd 100%)}/*dg*/
.tvx .check-sections button{border:0;background:#eaf5ff;color:#0877d0;padding:8px;border-radius:9px;font-size:11px;font-weight:800}
.tvx .check-sections button{background:linear-gradient(145deg,#f9fcff 0%,#d5dfe8 100%)}/*dg*/
.tvx .summary{padding:14px;margin-top:12px;border:.5px solid var(--line);border-left:4px solid var(--cyan)}
.tvx .summary p{font-size:12px;color:var(--muted);line-height:1.45;margin-top:5px}
.tvx .task-list,.tvx .stock-list,.tvx .expense-list,.tvx .message-list,.tvx .day-list{display:grid;gap:9px}
.tvx .task-list article,.tvx .stock-list article,.tvx .expense-list article,.tvx .message-list article,.tvx .day-list>div{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.tvx .task-list article,.tvx .stock-list article,.tvx .expense-list article,.tvx .message-list article,.tvx .day-list>div{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .task-list article>div,.tvx .stock-list article>div,.tvx .expense-list article>div,.tvx .message-list article>div,.tvx .day-list>div>div{flex:1}
.tvx .task-list b,.tvx .task-list small,.tvx .stock-list b,.tvx .stock-list small,.tvx .expense-list b,.tvx .expense-list small,.tvx .message-list b,.tvx .message-list p,.tvx .day-list b,.tvx .day-list small{display:block}
.tvx .task-list small,.tvx .stock-list small,.tvx .expense-list small,.tvx .message-list p,.tvx .day-list small{font-size:11px;color:var(--muted);margin-top:4px}
.tvx .task-list article>button{border:2px solid #9db2c3;background:white;width:28px;height:28px;border-radius:50%;color:transparent}
.tvx .task-list article>button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .prio{width:4px;height:54px;border-radius:99px}
.tvx .prio.high{background:var(--red)}
.tvx .prio.high{background:linear-gradient(145deg,#e46a7d 0%,#af2f43 100%)}/*dg*/
.tvx .prio.med{background:var(--amber)}
.tvx .prio.med{background:linear-gradient(145deg,#e1a53d 0%,#ad6e00 100%)}/*dg*/
.tvx .prio.low{background:var(--cyan)}
.tvx .prio.low{background:linear-gradient(145deg,#4cd3f2 0%,#0f9ebe 100%)}/*dg*/
.tvx .tag{display:inline-block;margin-top:7px}
.tvx .tag.ok{background:#ddf8ed;color:#087a54}
.tvx .tag.ok{background:linear-gradient(145deg,#f5fdfa 0%,#c9e2d8 100%)}/*dg*/
.tvx .date-pill{font-weight:900;color:#1686c5;background:#e5f4fc;padding:8px;border-radius:10px}
.tvx .date-pill{background:linear-gradient(145deg,#f7fcfe 0%,#d0dee5 100%)}/*dg*/
.tvx .clock-card{text-align:center;padding:22px}
.tvx .clock-card>strong{display:block;font-size:48px;color:var(--navy);margin:6px}
.tvx .clock-card>p{font-size:12px;color:var(--muted)}
.tvx .gps{margin:16px 0;background:#e0f8ee;color:#087a54;border-radius:11px;padding:10px;font-size:12px;font-weight:800}
.tvx .gps{background:linear-gradient(145deg,#f6fdfa 0%,#cce2d9 100%)}/*dg*/
.tvx .clock-card small{display:block;color:var(--muted);font-size:10px;margin-top:10px}
.tvx .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tvx .stats div{text-align:center;padding:10px;background:#f1f7fb;border-radius:12px}
.tvx .stats div{background:linear-gradient(145deg,#fbfdfe 0%,#dbe1e4 100%)}/*dg*/
.tvx .stats b,.tvx .stats span{display:block}
.tvx .stats b{color:var(--navy);font-size:17px}
.tvx .stats span{color:var(--muted);font-size:9px}
.tvx .day{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:900}
.tvx .day.ok{background:#ddf8ed;color:var(--green)}
.tvx .day.ok{background:linear-gradient(145deg,#f5fdfa 0%,#c9e2d8 100%)}/*dg*/
.tvx .day.warn{background:#fff0d0;color:var(--amber)}
.tvx .day.warn{background:linear-gradient(145deg,#fffaf1 0%,#e8dabd 100%)}/*dg*/
.tvx .warehouse{padding:13px;background:#dff3ff;color:#075b90;border-radius:14px;font-weight:800;margin-bottom:11px}
.tvx .warehouse{background:linear-gradient(145deg,#f5fbff 0%,#cbdde8 100%)}/*dg*/
.tvx .warehouse span{display:block;font-size:10px;color:#5b7e94;margin:3px 0 0 22px}
.tvx .alert-card{display:flex;justify-content:space-between;align-items:center;padding:14px;border-radius:15px;background:#fff5db;border:1px solid #ffe09d;margin-bottom:12px}
.tvx .alert-card{background:linear-gradient(145deg,#fffcf4 0%,#e8dfc7 100%)}/*dg*/
.tvx .alert-card b,.tvx .alert-card span{display:block}
.tvx .alert-card span{font-size:11px;color:#8a6b26;margin-top:3px}
.tvx .alert-card button{border:0;background:#d98a00;color:#fff;padding:9px;border-radius:9px;font-weight:800}
.tvx .alert-card button{background:linear-gradient(145deg,#e2a63d 0%,#ae6e00 100%)}/*dg*/
.tvx .stock-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e5f2ff;color:#1679cb;font-size:20px}
.tvx .stock-icon{background:linear-gradient(145deg,#f7fbff 0%,#d0dce8 100%)}/*dg*/
.tvx .stock-icon.equipment{background:#e4fbf3;color:#058457}
.tvx .stock-icon.equipment{background:linear-gradient(145deg,#f7fefb 0%,#cfe4dd 100%)}/*dg*/
.tvx .stock-list>article>strong{font-size:23px;color:var(--navy)}
.tvx .expense-summary{padding:19px;color:#fff;background:linear-gradient(135deg,#073154,#086ba6);margin-bottom:14px}
.tvx .expense-summary>span{font-size:10px;letter-spacing:.12em}
.tvx .expense-summary>strong{display:block;font-size:34px;margin:5px 0}
.tvx .expense-summary p{font-size:12px;color:#c3e1f1}
.tvx .expense-summary>div{display:flex;gap:9px;margin-top:15px}
.tvx .expense-summary>div span{flex:1;background:rgba(255,255,255,.09);padding:9px;border-radius:10px;font-size:10px}
.tvx .expense-summary>div b{display:block;font-size:14px}
.tvx .expense-list article>span{font-size:22px}
.tvx .expense-list article>div:last-child{text-align:right}
.tvx .expense-list em{margin-top:6px}
.tvx .search{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:13px}
.tvx .search{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .search input{border:0;outline:0;min-width:0;width:100%;background:transparent}
.tvx .avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#fff;font-weight:900}
.tvx .avatar.blue{background:#167ad1}
.tvx .avatar.blue{background:linear-gradient(145deg,#4e9adc 0%,#1262a7 100%)}/*dg*/
.tvx .avatar.cyan{background:#03a4bd}
.tvx .avatar.cyan{background:linear-gradient(145deg,#3fbacd 0%,#028397 100%)}/*dg*/
.tvx .avatar.group{background:var(--navy)}
.tvx .avatar.group{background:linear-gradient(145deg,#435e75 0%,#06223a 100%)}/*dg*/
.tvx .message-list time{align-self:flex-start;color:var(--muted);font-size:10px}
.tvx .message-list time b{display:grid;place-items:center;background:var(--blue);color:#fff;border-radius:50%;width:18px;height:18px;margin:6px 0 0 auto}
.tvx .message-list time b{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .empty-note{margin-top:18px;border:1px dashed #b9cedc;border-radius:14px;padding:15px;text-align:center;color:var(--muted);font-size:12px}
.tvx .botmark{width:48px;height:48px;object-fit:contain}
.tvx .intro{margin:-8px 0 16px}
.tvx .ai-suggestions{display:flex;gap:7px;overflow:auto;padding-bottom:10px;scrollbar-width:none}
.tvx .ai-suggestions button{min-width:152px;text-align:left;border:1px solid #9fccec;background:#fff;color:var(--navy);padding:12px;border-radius:13px;font-weight:800}
.tvx .ai-suggestions button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .chat-bubble{padding:16px;border-radius:18px;font-size:13px;line-height:1.55}
.tvx .chat-bubble.bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
.tvx .chat-bubble.bot{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .ai-scope{display:grid;gap:7px;background:#e1f5ff;border-radius:15px;padding:14px;margin-top:12px;font-size:12px}
.tvx .ai-scope{background:linear-gradient(145deg,#f6fcff 0%,#cddfe8 100%)}/*dg*/
.tvx .ai-scope span{color:#42677c}
.tvx .composer{position:sticky;bottom:80px;display:flex;gap:7px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:7px;margin-top:75px;box-shadow:var(--shadow)}
.tvx .composer{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .composer input{flex:1;border:0;outline:0;min-width:0}
.tvx .composer button{border:0;width:38px;height:38px;border-radius:11px}
.tvx .composer .send{background:var(--blue);color:#fff}
.tvx .composer .send{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .sheet-close{position:absolute;right:18px;top:17px;border:0;background:#edf3f7;width:34px;height:34px;border-radius:50%;font-size:20px}
.tvx .sheet-close{background:linear-gradient(145deg,#fafbfd 0%,#d8dde1 100%)}/*dg*/
.tvx .sheet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}
.tvx .sheet-grid button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#f8fbfd;color:var(--navy);border-radius:15px;padding:17px;font-size:20px}
.tvx .sheet-grid button{background:linear-gradient(145deg,#fdfefe 0%,#e2e4e6 100%)}/*dg*/
.tvx .sheet-grid span{font-size:12px;font-weight:800}
.tvx .form-card,.tvx .featured-doc,.tvx .document-preview,.tvx .balance-card,.tvx .upload-card,.tvx .payslip-current,.tvx .profile-card,.tvx .readonly-block,.tvx .fund-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}
.tvx .form-card,.tvx .featured-doc,.tvx .document-preview,.tvx .balance-card,.tvx .upload-card,.tvx .payslip-current,.tvx .profile-card,.tvx .readonly-block,.tvx .fund-card{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .form-card label{display:block;font-size:11px;font-weight:800;color:#45657b;margin-bottom:14px}
.tvx .form-card input,.tvx .form-card textarea,.tvx .form-card select{display:block;width:100%;margin-top:6px;border:1px solid #cbdce7;border-radius:12px;padding:12px;background:#f9fcfe;color:var(--ink);outline:0}
.tvx .form-card input,.tvx .form-card textarea,.tvx .form-card select{background:linear-gradient(145deg,#fdfeff 0%,#e3e5e7 100%)}/*dg*/
.tvx .form-card textarea{min-height:78px}
.tvx .question{padding:4px 0 16px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.tvx .choice{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.tvx .choice button{border:1px solid #c4d9e6;background:#fff;color:#668195;border-radius:10px;padding:10px;font-weight:800}
.tvx .choice button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .choice .selected{background:#e0f3ff;border-color:#41aaf0;color:#066eb9}
.tvx .choice .selected{background:linear-gradient(145deg,#f6fbff 0%,#ccdde8 100%)}/*dg*/
.tvx .notice{border-radius:14px;padding:13px;margin-bottom:12px;font-size:12px;line-height:1.45}
.tvx .notice.info{background:#e3f5ff;color:#176183;border:1px solid #b8e4f8}
.tvx .notice.info{background:linear-gradient(145deg,#f7fcff 0%,#cfdfe8 100%)}/*dg*/
.tvx .notice.warning{background:#fff5da;color:#7e6227;border:1px solid #f3d98e}
.tvx .notice.warning{background:linear-gradient(145deg,#fffcf4 0%,#e8dfc6 100%)}/*dg*/
.tvx .qty{display:flex!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important}
.tvx .qty button,.tvx .mini-add{border:1px solid #b7d5e7;background:#f2f9fd;color:#0875c6;border-radius:9px;min-width:32px;height:32px;font-weight:900}
.tvx .qty button,.tvx .mini-add{background:linear-gradient(145deg,#fbfdfe 0%,#dce3e6 100%)}/*dg*/
.tvx .add-row{margin:12px 0}
.tvx .photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tvx .photo{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #aac8da;border-radius:16px;background:#f9fcfe;text-align:center}
.tvx .photo{background:linear-gradient(145deg,#fdfeff 0%,#e3e5e7 100%)}/*dg*/
.tvx .photo span{font-size:28px;color:var(--blue)}
.tvx .photo b{margin:7px 0 2px;font-size:13px}
.tvx .photo small{color:var(--muted);font-size:10px}
.tvx .photo.ready{border-style:solid;background:#e7f7ff}
.tvx .photo.ready{background:linear-gradient(145deg,#f8fdff 0%,#d2e1e8 100%)}/*dg*/
.tvx .photo.ready span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dff8ed;color:var(--green);font-size:18px}
.tvx .photo.ready span{background:linear-gradient(145deg,#f5fdfa 0%,#cbe2d8 100%)}/*dg*/
.tvx .photo.missing{border-color:#f0b952;background:#fffaf0}
.tvx .photo.missing{background:linear-gradient(145deg,#fffefa 0%,#e8e4da 100%)}/*dg*/
.tvx .sync-queue{margin-top:12px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:13px}
.tvx .sync-queue{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .sync-queue b,.tvx .sync-queue span{display:block;font-size:11px}
.tvx .sync-queue span{color:var(--muted);margin-top:3px}
.tvx .signature-pad{height:170px;border:2px dashed #a8c5d6;border-radius:14px;display:grid;place-items:center;align-content:center;background:#f7fbfd;color:#7890a1}
.tvx .signature-pad{background:linear-gradient(145deg,#fdfefe 0%,#e1e4e6 100%)}/*dg*/
.tvx .text-button{border:0!important;background:transparent!important;color:var(--blue)!important;font-size:11px;font-weight:900;box-shadow:none!important}
.tvx .consent{display:flex;gap:9px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;font-size:11px;line-height:1.45}
.tvx .consent{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .consent input{width:20px;height:20px}
.tvx .tabs,.tvx .module-tabs{display:flex;background:#dfeaf1;border-radius:12px;padding:4px;margin-bottom:13px}
.tvx .tabs,.tvx .module-tabs{background:linear-gradient(145deg,#f5f9fb 0%,#cbd5db 100%)}/*dg*/
.tvx .tabs button,.tvx .module-tabs button{flex:1;border:0;background:transparent;color:#637d90;border-radius:9px;padding:9px 5px;font-size:10px;font-weight:900}
.tvx .tabs .on,.tvx .module-tabs .on{background:#fff;color:var(--navy)}
.tvx .tabs .on,.tvx .module-tabs .on{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .timeline{display:grid;margin:10px 0 16px}
.tvx .timeline article{display:flex;gap:12px;min-height:68px;position:relative}
.tvx .timeline article:after{content:"";position:absolute;width:2px;background:#c9dfeb;left:7px;top:18px;bottom:-3px}
.tvx .timeline article:last-child:after{display:none}
.tvx .timeline i{width:16px;height:16px;border:4px solid #bdeafb;background:var(--blue);border-radius:50%;z-index:1}
.tvx .timeline i{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .timeline b,.tvx .timeline small{display:block}
.tvx .timeline small{font-size:11px;color:var(--muted);margin-top:4px}
.tvx .file-list,.tvx .request-list,.tvx .receipt-list,.tvx .notification-list{display:grid;gap:9px}
.tvx .file-list article,.tvx .receipt-list article{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.tvx .file-list article,.tvx .receipt-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .file-list article>span{display:grid;place-items:center;width:40px;height:44px;border-radius:8px;background:#e3f2ff;color:#0874c7;font-size:10px;font-weight:900}
.tvx .file-list article>span{background:linear-gradient(145deg,#f7fbff 0%,#cfdce8 100%)}/*dg*/
.tvx .file-list article>div,.tvx .receipt-list article>div{flex:1}
.tvx .file-list b,.tvx .file-list small,.tvx .receipt-list b,.tvx .receipt-list small{display:block}
.tvx .file-list small,.tvx .receipt-list small{color:var(--muted);font-size:10px;margin-top:3px}
.tvx .file-list button{border:0;background:#edf7fd;color:#0875c6;border-radius:9px;padding:8px}
.tvx .file-list button{background:linear-gradient(145deg,#fafdfe 0%,#d8e1e6 100%)}/*dg*/
.tvx .featured-doc{display:flex;gap:14px;background:linear-gradient(145deg,var(--navy),#0b5b8c);color:#fff;border:0}
.tvx .featured-doc>span{display:grid;place-items:center;width:52px;height:62px;border-radius:10px;background:#ffffff1f;font-size:11px}
.tvx .featured-doc div{flex:1}
.tvx .featured-doc small{color:#8be7ff}
.tvx .featured-doc h3{margin:6px 0}
.tvx .featured-doc p{color:#c8e0ed;font-size:11px}
.tvx .document-preview{text-align:center;padding:28px 18px}
.tvx .document-preview>span{display:grid;place-items:center;width:70px;height:85px;border-radius:10px;background:#e4f2ff;color:#0872c4;margin:auto}
.tvx .document-preview>span{background:linear-gradient(145deg,#f7fbff 0%,#cfdce8 100%)}/*dg*/
.tvx .document-preview h2{margin:15px 0 5px}
.tvx .document-preview p{font-size:11px;color:var(--muted)}
.tvx .page-lines{height:45px;margin-top:18px;background:repeating-linear-gradient(#dbe7ee 0 2px,transparent 2px 9px)}
.tvx .balance-card,.tvx .fund-card{color:#fff;background:linear-gradient(145deg,var(--navy),#0876b4);border:0}
.tvx .balance-card>strong{font-size:54px}
.tvx .balance-card>div{display:flex;gap:8px;margin-top:16px}
.tvx .balance-card p{flex:1;background:#ffffff1a;padding:10px;border-radius:10px;font-size:10px}
.tvx .request-list article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px}
.tvx .request-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .request-list b,.tvx .request-list small{display:block;margin-top:7px}
.tvx .request-list small{color:var(--muted);font-size:10px}
.tvx .calculation{display:flex;justify-content:space-between;background:#e8f6ff;padding:12px;border-radius:12px}
.tvx .calculation{background:linear-gradient(145deg,#f8fcff 0%,#d3e0e8 100%)}/*dg*/
.tvx .upload-card{text-align:center;padding:28px}
.tvx .upload-card>span{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#e2f4ff;color:var(--blue);font-size:26px;margin:auto}
.tvx .upload-card>span{background:linear-gradient(145deg,#f6fcff 0%,#cedee8 100%)}/*dg*/
.tvx .upload-card b,.tvx .upload-card small{display:block;margin-top:8px}
.tvx .upload-card small{color:var(--muted)}
.tvx .upload-card button,.tvx .profile-card button{margin-top:14px;border:0;background:#e4f4ff;color:#0871be;padding:10px;border-radius:10px}
.tvx .upload-card button,.tvx .profile-card button{background:linear-gradient(145deg,#f7fcff 0%,#cfdee8 100%)}/*dg*/
.tvx .route-map{height:210px;position:relative;border-radius:18px;background:linear-gradient(145deg,#dcecf2,#bcdbe6);overflow:hidden;margin-bottom:12px}
.tvx .route-map span{position:absolute;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff}
.tvx .route-map span{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .route-map span:first-child{left:85px;top:110px}
.tvx .route-map span:nth-child(2){right:80px;top:55px}
.tvx .route-map p{position:absolute;left:12px;bottom:10px;background:#fff;padding:8px;border-radius:9px;font-size:10px}
.tvx .route-map p{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .route-list{display:grid;gap:9px}
.tvx .route-list article{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}
.tvx .route-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .route-list article>strong{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e3f3ff;color:var(--blue)}
.tvx .route-list article>strong{background:linear-gradient(145deg,#f7fbff 0%,#cfdde8 100%)}/*dg*/
.tvx .route-list div{flex:1}
.tvx .route-list b,.tvx .route-list small{display:block}
.tvx .route-list small,.tvx .route-list p{color:var(--muted);font-size:10px}
.tvx .route-list button{border:0;background:#e5f4ff;color:#0870bd;border-radius:9px;padding:8px}
.tvx .route-list button{background:linear-gradient(145deg,#f7fcff 0%,#d0dee8 100%)}/*dg*/
.tvx .payslip-current{color:#fff;background:linear-gradient(145deg,#083252,#086d9e);border:0}
.tvx .payslip-current h2{margin:5px 0}
.tvx .payslip-current p{font-size:11px;color:#cce4ef}
.tvx .payslip-current button{margin-top:18px;border:0;background:#fff;color:#08669e;padding:10px;border-radius:10px}
.tvx .payslip-current button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .dual-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.tvx .dual-actions button{border:0;border-radius:12px;padding:13px;font-weight:900}
.tvx .danger{background:#ffe6ea;color:#bd2641}
.tvx .danger{background:linear-gradient(145deg,#fff8f9 0%,#e8d1d5 100%)}/*dg*/
.tvx .receipt-upload{width:100%;border:1px dashed #55aede;background:#edf8ff;color:#0872be;border-radius:13px;padding:18px}
.tvx .receipt-upload{background:linear-gradient(145deg,#fafdff 0%,#d8e2e8 100%)}/*dg*/
.tvx .fund-card strong{display:block;font-size:34px;margin:8px 0}
.tvx .chat-head{display:flex;align-items:center;gap:9px;margin-bottom:18px}
.tvx .chat-head>button{border:0;background:#fff;width:40px;height:40px;border-radius:12px}
.tvx .chat-head>button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .chat-head div{flex:1}
.tvx .chat-head b,.tvx .chat-head small{display:block}
.tvx .chat-head small{color:var(--muted);font-size:10px}
.tvx .conversation{display:flex;flex-direction:column;gap:10px}
.tvx .bubble{max-width:84%;padding:12px 14px;border-radius:16px;font-size:12px;line-height:1.45}
.tvx .bubble time{display:block;margin-top:5px;font-size:9px;color:#698092}
.tvx .bubble.incoming{align-self:flex-start;background:#fff;border:1px solid var(--line)}
.tvx .bubble.incoming{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .bubble.outgoing{align-self:flex-end;background:#dff3ff;color:#075b8e}
.tvx .bubble.outgoing{background:linear-gradient(145deg,#f5fbff 0%,#cbdde8 100%)}/*dg*/
.tvx .profile-card{text-align:center}
.tvx .profile-card>p{color:var(--muted);font-size:12px}
.tvx .profile-card>div{display:grid;text-align:left;margin-top:16px}
.tvx .profile-card span{font-size:10px;color:var(--muted);margin-top:8px}
.tvx .profile-card b{font-size:12px}
.tvx .readonly-block{border:.5px solid var(--line);border-left:4px solid #9ab4c5;box-shadow:none}
.tvx .readonly-block p{font-size:11px;color:var(--muted);line-height:1.5}
.tvx .notification-list article{display:flex;gap:11px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}
.tvx .notification-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .notification-list article.unread{border:.5px solid var(--line);border-left:4px solid var(--blue)}
.tvx .notification-list>article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e5f4ff}
.tvx .notification-list>article>span{background:linear-gradient(145deg,#f7fcff 0%,#d0dee8 100%)}/*dg*/
.tvx .notification-list div{flex:1}
.tvx .notification-list b,.tvx .notification-list p,.tvx .notification-list small{display:block}
.tvx .notification-list p{font-size:11px;color:#42677c}
.tvx .notification-list small{font-size:9px;color:var(--muted)}
.tvx .module-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.tvx .module-links button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 7px;color:var(--ink)}
.tvx .module-links button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .module-links span,.tvx .module-links b,.tvx .module-links small{display:block}
.tvx .module-links span{font-size:22px}
.tvx .module-links b{font-size:11px}
.tvx .module-links small{font-size:8px;color:var(--muted)}
@media(max-width:360px){.tvx .module-links{grid-template-columns:1fr}
.tvx .photo-grid{gap:7px}}
.tvx .task-list article[data-go]{cursor:pointer}
.tvx .task-list article[data-go]>button{border:0;background:#e8f5fd;color:#0876c6;width:32px;height:32px;border-radius:10px;font-size:20px}
.tvx .task-list article[data-go]>button{background:linear-gradient(145deg,#f8fcfe 0%,#d3dfe6 100%)}/*dg*/
.tvx .task-owner{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}
.tvx .task-owner{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .task-owner div{flex:1}
.tvx .task-owner small,.tvx .task-owner b{display:block}
.tvx .task-owner small{font-size:9px;color:var(--muted);margin-bottom:3px}
.tvx .task-owner>span:last-child{background:#ffe8e9;color:#bd2f42;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:900}
.tvx .task-owner>span:last-child{background:linear-gradient(145deg,#fff8f8 0%,#e8d3d4 100%)}/*dg*/
.tvx .task-count{font-size:11px;color:var(--muted);font-weight:800}
.tvx .execution-list{display:grid;gap:9px}
.tvx .execution-list label{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px}
.tvx .execution-list label{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .execution-list label.complete{background:#f1fbf7;border-color:#bcead8}
.tvx .execution-list label.complete{background:linear-gradient(145deg,#fbfefd 0%,#dbe4e1 100%)}/*dg*/
.tvx .execution-list input{width:24px;height:24px;accent-color:var(--green)}
.tvx .execution-list span{flex:1}
.tvx .execution-list b,.tvx .execution-list small{display:block}
.tvx .execution-list small{font-size:10px;color:var(--muted);margin-top:4px}
.tvx .time-entry{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:7px;background:#f2f7fa;border-radius:12px;padding:10px}
.tvx .time-entry{background:linear-gradient(145deg,#fbfdfe 0%,#dce1e4 100%)}/*dg*/
.tvx .time-entry button{border:0;background:#fff;color:var(--blue);width:34px;height:34px;border-radius:9px;font-size:18px}
.tvx .time-entry button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .time-entry strong{font-size:22px;color:var(--navy)}
.tvx .evidence-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px;margin-bottom:12px}
.tvx .evidence-card{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .evidence-thumb{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#dff2fb}
.tvx .evidence-thumb{background:linear-gradient(145deg,#f5fbfe 0%,#cbdce4 100%)}/*dg*/
.tvx .evidence-card>div:nth-child(2){flex:1}
.tvx .evidence-card b,.tvx .evidence-card small{display:block}
.tvx .evidence-card small{font-size:10px;color:var(--muted);margin-top:3px}
.tvx .evidence-card button{border:0;background:#f2f5f7;color:#708594;width:30px;height:30px;border-radius:9px}
.tvx .evidence-card button{background:linear-gradient(145deg,#fbfcfd 0%,#dcdfe1 100%)}/*dg*/
.tvx .completion-hero{text-align:center;background:linear-gradient(145deg,#e5faf2,#f8fffc);border:1px solid #bce8d7;border-radius:19px;padding:24px;margin-bottom:12px}
.tvx .completion-hero>span{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:var(--green);color:#fff;font-size:30px}
.tvx .completion-hero>span{background:linear-gradient(145deg,#43b38a 0%,#067c51 100%)}/*dg*/
.tvx .completion-hero h2{margin:10px 0 3px}
.tvx .completion-hero p{font-size:11px;color:var(--muted)}
.tvx .review-list{background:#fff;border:1px solid var(--line);border-radius:17px;padding:6px 15px;margin-bottom:12px}
.tvx .review-list{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .review-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}
.tvx .review-list>div:last-child{border:0}
.tvx .review-list span{color:var(--muted)}
.tvx .review-list b{text-align:right}
.tvx .limit-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:11px}
.tvx .limit-card{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .limit-card>div:first-child{display:flex;justify-content:space-between;font-size:12px}
.tvx .limit-card small{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.tvx .limit-bar,.tvx .fund-progress{height:8px;background:#dce9f1;border-radius:99px;overflow:hidden;margin:10px 0 5px}
.tvx .limit-bar i,.tvx .fund-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:inherit}
.tvx .rg-kpis,.tvx .approval-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:11px}
.tvx .rg-kpis article,.tvx .approval-summary article{text-align:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 5px}
.tvx .rg-kpis article,.tvx .approval-summary article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .rg-kpis span,.tvx .rg-kpis b,.tvx .rg-kpis small,.tvx .approval-summary b,.tvx .approval-summary small{display:block}
.tvx .rg-kpis span{font-size:18px}
.tvx .rg-kpis b,.tvx .approval-summary b{font-size:16px;color:var(--navy);margin:3px 0}
.tvx .rg-kpis small,.tvx .approval-summary small{font-size:8px;color:var(--muted)}
.tvx .rg-links{margin-top:0}
.tvx .compact-expenses .status{font-size:8px}
.tvx .scan-receipt{width:100%;border:0;border-radius:15px;padding:14px;margin-bottom:12px;color:#fff;background:linear-gradient(135deg,#075899,#0ba8d5);font-weight:900;box-shadow:0 8px 20px rgba(8,117,190,.18)}
.tvx .form-split{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tvx .expense-detail-head{display:flex;align-items:center;gap:11px;background:linear-gradient(145deg,var(--navy),#0c638f);color:#fff;border-radius:19px;padding:18px;margin-bottom:12px}
.tvx .expense-detail-head>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#ffffff1c;font-size:24px}
.tvx .expense-detail-head>div{flex:1}
.tvx .expense-detail-head small,.tvx .expense-detail-head p{color:#b9dbea;font-size:9px}
.tvx .expense-detail-head h2{margin:4px 0}
.tvx .expense-detail-head>strong{font-size:18px}
.tvx .status-path,.tvx .approval-pipeline{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 8px;margin-bottom:12px}
.tvx .status-path,.tvx .approval-pipeline{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .status-path>div,.tvx .approval-pipeline>div{text-align:center;position:relative}
.tvx .status-path i,.tvx .approval-pipeline i{display:grid;place-items:center;width:27px;height:27px;margin:auto;border-radius:50%;background:#e8eef2;color:#778c9a;font-style:normal;font-size:10px;font-weight:900}
.tvx .status-path i,.tvx .approval-pipeline i{background:linear-gradient(145deg,#f8fafb 0%,#d3d9dc 100%)}/*dg*/
.tvx .status-path span,.tvx .approval-pipeline b,.tvx .approval-pipeline small{display:block;font-size:8px;margin-top:5px;color:var(--muted)}
.tvx .status-path .done i,.tvx .approval-pipeline .done i{background:#d8f7e9;color:var(--green)}
.tvx .status-path .done i,.tvx .approval-pipeline .done i{background:linear-gradient(145deg,#f3fdf8 0%,#c5e1d4 100%)}/*dg*/
.tvx .status-path .current i,.tvx .approval-pipeline .current i{background:var(--blue);color:#fff;box-shadow:0 0 0 4px #dcedfb}
.tvx .status-path .current i,.tvx .approval-pipeline .current i{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .status-path .current span,.tvx .approval-pipeline .current b{color:var(--blue);font-weight:900}
.tvx .amber-text{color:var(--amber)}
.tvx .receipt-preview{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;margin-bottom:12px}
.tvx .receipt-preview{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .receipt-preview>div{display:grid;place-items:center;width:54px;height:68px;border-radius:8px;background:#e8f3fa;color:#1874af;font-size:9px;font-weight:900}
.tvx .receipt-preview>div{background:linear-gradient(145deg,#f8fbfe 0%,#d3dde4 100%)}/*dg*/
.tvx .receipt-preview>span{flex:1;font-size:11px;color:var(--muted)}
.tvx .receipt-preview button{border:0;background:#e7f5ff;color:#0875c6;border-radius:9px;padding:8px;font-weight:800}
.tvx .receipt-preview button{background:linear-gradient(145deg,#f8fcff 0%,#d2dfe8 100%)}/*dg*/
.tvx .select-expenses{display:grid;gap:8px}
.tvx .select-expenses label{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.tvx .select-expenses label{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .select-expenses input{width:22px;height:22px;accent-color:var(--blue)}
.tvx .select-expenses label>span{font-size:20px}
.tvx .select-expenses label>div{flex:1}
.tvx .select-expenses b,.tvx .select-expenses small{display:block}
.tvx .select-expenses small{font-size:9px;color:var(--muted)}
.tvx .select-expenses label>strong{font-size:12px}
.tvx .report-total{display:flex;justify-content:space-between;align-items:center;background:#e3f4ff;border-radius:14px;padding:15px;margin-top:12px;color:#185c83}
.tvx .report-total{background:linear-gradient(145deg,#f7fcff 0%,#cfdee8 100%)}/*dg*/
.tvx .report-total strong{font-size:20px}
.tvx .report-hero{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px;margin-bottom:12px}
.tvx .report-hero{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .report-hero h2{margin:9px 0 5px}
.tvx .report-hero>strong{display:block;font-size:28px;color:var(--navy)}
.tvx .report-hero p{font-size:10px;color:var(--muted);margin-top:5px}
.tvx .approval-pipeline{grid-template-columns:repeat(4,1fr)}
.tvx .approval-pipeline small{margin-top:2px}
.tvx .fund-card[data-go]{cursor:pointer}
.tvx .fund-card>span{font-size:9px;color:#c5e1ed}
.tvx .fund-progress{background:#ffffff28}
.tvx .fund-progress i{background:#fff}
.tvx .fund-progress i{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .ai-review{display:flex;gap:11px;background:linear-gradient(145deg,#eaf2ff,#f6faff);border:1px solid #c5dafa;border-radius:16px;padding:14px;margin-bottom:12px}
.tvx .ai-review>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#625ee8;color:#fff}
.tvx .ai-review>span{background:linear-gradient(145deg,#8885ee 0%,#4e4bba 100%)}/*dg*/
.tvx .ai-review div{flex:1}
.tvx .ai-review b,.tvx .ai-review p{display:block}
.tvx .ai-review p{font-size:10px;color:#526b84;margin-top:4px;line-height:1.4}
.tvx .calendar-head{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px 12px;margin-bottom:9px}
.tvx .calendar-head{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .calendar-head button{border:0;background:#eaf5fc;color:var(--blue);width:34px;height:34px;border-radius:10px;font-size:20px}
.tvx .calendar-head button{background:linear-gradient(145deg,#f9fcfe 0%,#d5dfe5 100%)}/*dg*/
.tvx .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:10px;margin-bottom:12px}
.tvx .calendar-grid{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .calendar-grid>*{display:grid;place-items:center;min-height:36px;border:0;background:transparent;color:var(--ink);font-size:11px;position:relative;border-radius:10px}
.tvx .calendar-grid>b{min-height:24px;color:var(--muted);font-size:9px}
.tvx .calendar-grid button{font-weight:900}
.tvx .calendar-grid .today{background:var(--blue);color:#fff}
.tvx .calendar-grid .today{background:linear-gradient(145deg,#43a8ff 0%,#0670cc 100%)}/*dg*/
.tvx .calendar-grid button i{position:absolute;width:4px;height:4px;background:var(--cyan);border-radius:50%;bottom:4px}
.tvx .calendar-grid button i:nth-of-type(2){transform:translateX(6px);background:var(--amber)}
.tvx .calendar-grid button i:nth-of-type(2){background:linear-gradient(145deg,#e1a53d 0%,#ad6e00 100%)}/*dg*/
.tvx .agenda-list,.tvx .sync-list,.tvx .comment-list,.tvx .contact-list,.tvx .settings-list,.tvx .schedule-list{display:grid;gap:9px}
.tvx .agenda-list article{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.tvx .agenda-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .agenda-list time{font-weight:900;color:var(--navy)}
.tvx .agenda-list>article>i{width:4px;height:40px;border-radius:99px;background:var(--blue)}
.tvx .agenda-list div{flex:1}
.tvx .agenda-list b,.tvx .agenda-list small{display:block}
.tvx .agenda-list small{font-size:10px;color:var(--muted);margin-top:3px}
.tvx .day-summary,.tvx .sync-hero,.tvx .lead-card,.tvx .equipment-hero{display:flex;align-items:center;gap:12px;border-radius:18px;padding:17px;margin-bottom:12px;background:linear-gradient(145deg,var(--navy),#096eaa);color:#fff}
.tvx .day-summary{display:grid;gap:4px}
.tvx .day-summary span,.tvx .lead-card p,.tvx .equipment-hero p{font-size:11px;color:#c4e2ef}
.tvx .attendance-table{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:12px}
.tvx .attendance-table{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .attendance-table>div{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:4px;padding:12px;border-bottom:1px solid var(--line);font-size:10px}
.tvx .attendance-table>div:last-child{border:0}
.tvx .attendance-table>div:first-child{background:#f2f7fa;color:var(--muted)}
.tvx .attendance-table>div:first-child{background:linear-gradient(145deg,#fbfdfe 0%,#dce1e4 100%)}/*dg*/
.tvx .late{color:var(--red);font-weight:900}
.tvx .clock-card.small>strong{font-size:30px}
.tvx .schedule-list{background:#fff;border:1px solid var(--line);border-radius:16px;padding:4px 14px;margin-bottom:12px}
.tvx .schedule-list{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .schedule-list>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}
.tvx .schedule-list>div:last-child{border:0}
.tvx .sync-hero>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--green);font-size:24px}
.tvx .sync-hero>span{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .sync-list article{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}
.tvx .sync-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .sync-list article>span{font-size:20px}
.tvx .sync-list div{flex:1}
.tvx .sync-list b,.tvx .sync-list small{display:block}
.tvx .sync-list small{font-size:10px;color:var(--muted)}
.tvx .sync-list em{font-size:9px;font-style:normal;font-weight:900;color:var(--green)}
.tvx .lead-card .avatar{flex:0 0 auto}
.tvx .lead-card div,.tvx .equipment-hero div{flex:1}
.tvx .lead-card h2{margin-bottom:4px}
.tvx .contact-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.tvx .contact-actions button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:14px;padding:13px 5px;font-size:18px}
.tvx .contact-actions button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .contact-actions button span{display:block;font-size:9px;font-weight:900;margin-top:4px}
.tvx .contact-actions .primary{color:#fff;border:0}
.tvx .detail-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;font-size:11px}
.tvx .detail-grid span{color:var(--muted)}
.tvx .action-menu{display:grid;gap:9px}
.tvx .action-menu>button,.tvx .contact-list>button,.tvx .settings-list>button{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;text-align:left;color:var(--ink)}
.tvx .action-menu>button,.tvx .contact-list>button,.tvx .settings-list>button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .action-menu>button>span,.tvx .settings-list>button>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e8f5fd;font-size:18px}
.tvx .action-menu>button>span,.tvx .settings-list>button>span{background:linear-gradient(145deg,#f8fcfe 0%,#d3dfe6 100%)}/*dg*/
.tvx .action-menu div,.tvx .contact-list div,.tvx .settings-list div{flex:1}
.tvx .action-menu b,.tvx .action-menu small,.tvx .contact-list b,.tvx .contact-list small,.tvx .settings-list b,.tvx .settings-list small{display:block}
.tvx .action-menu small,.tvx .contact-list small,.tvx .settings-list small{color:var(--muted);font-size:10px;margin-top:3px}
.tvx .action-menu i,.tvx .contact-list i,.tvx .settings-list i{font-size:20px;color:#8aa0af}
.tvx .comment-list article{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}
.tvx .comment-list article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .comment-list .avatar{width:36px;height:36px;border-radius:11px}
.tvx .comment-list div{flex:1}
.tvx .comment-list small{color:var(--muted);font-size:9px}
.tvx .comment-list p{font-size:11px;line-height:1.45;margin-top:4px}
.tvx .upload-inline{border:1px dashed #75bce7!important;background:#eef8ff!important;color:#0875c6!important;padding:13px!important;border-radius:11px!important}
.tvx .upload-inline{background:linear-gradient(145deg,#fafdff 0%,#d9e2e8 100%)!important}/*dg*/
.tvx .contact-list .avatar{flex:0 0 auto}
.tvx .bar-report{display:grid;gap:13px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;margin-bottom:12px}
.tvx .bar-report{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .bar-report>div{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:11px}
.tvx .bar-report i{grid-column:1/3;height:7px;border-radius:99px;background:#e3edf3;overflow:hidden}
.tvx .bar-report em{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:inherit}
.tvx .equipment-hero>span{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;background:#ffffff1f;font-size:28px}
.tvx .equipment-hero b{font-size:18px}
.tvx .signature-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:12px}
.tvx .signature-card{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .signature-card small{display:block;color:var(--muted);font-size:10px}
.tvx .signature-preview{font-family:cursive;font-size:34px;color:var(--navy);padding:25px 5px;border-bottom:1px solid var(--line);margin-bottom:9px}
.tvx .two-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tvx .settings-list em{font-style:normal;color:var(--muted);font-size:10px}
.tvx .password-rules{display:grid;gap:6px;background:#e8f6ff;color:#31677f;border-radius:14px;padding:14px;font-size:11px}
.tvx .password-rules{background:linear-gradient(145deg,#f8fcff 0%,#d3e0e8 100%)}/*dg*/
.tvx .password-rules b{margin-bottom:2px}
@media(max-width:360px){.tvx .contact-actions{grid-template-columns:1fr}
.tvx .two-cols{grid-template-columns:1fr}
.tvx .attendance-table>div{font-size:9px}
.tvx .module-links{grid-template-columns:1fr 1fr}}
.tvx{--muted:#52697c;--blue:#0076d8;--shadow:0 4px 16px rgba(8,43,73,.055)}
.tvx .brand strong{font-size:13px}
.tvx .brand span{font-size:8px}
.tvx .brand img{width:36px;height:36px}
.tvx .sync{border:0;color:white;min-height:36px;font-size:10px}
.tvx h1{font-size:27px;line-height:1.15}
.tvx .back-row{gap:10px}
.tvx .back-row>div{flex:1}
.tvx p,.tvx small{line-height:1.5}
.tvx p{font-size:13px}
.tvx small{font-size:12px}
.tvx input,.tvx select,.tvx textarea{font:inherit;font-size:14px;min-height:48px;max-width:100%}
.tvx button{touch-action:manipulation}
.tvx button:not(.profile-shortcut):not(.sync){min-height:48px}
.tvx .iconbtn,.tvx .back-row>button{min-width:48px}
.tvx .filters button{font-size:12px}
.tvx .primary,.tvx .bottom-action{background:#0078d7;color:#fff}
.tvx .primary,.tvx .bottom-action{background:linear-gradient(145deg,#3d98e1 0%,#0060ac 100%)}/*dg*/
.tvx .actions .primary{background:white;color:#064d7b}
.tvx .actions .primary{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .status{text-transform:none;font-size:11px}
.tvx .status.pending{color:#785000}
.tvx .status.progress{color:#125392}
.tvx .next .status.progress{color:#e7f7ff}
.tvx .card{padding:16px}
.tvx .section-title button{color:#0063a8}
.tvx .form-card label{font-size:12px}
.tvx .form-card input:focus,.tvx .form-card textarea:focus{outline:2px solid #078cff;outline-offset:2px}
.tvx button:focus-visible,.tvx [tabindex]:focus-visible{outline:3px solid #0078d7;outline-offset:3px}
.tvx .search{min-height:50px;display:flex;gap:8px;align-items:center}
.tvx .search input{width:100%;min-width:0;border:0;background:transparent;outline:none}
.tvx .menu-category{font-size:10px;letter-spacing:.12em;font-weight:800;color:#52697c;margin:24px 0 10px}
.tvx .action-menu small{font-size:12px}
.tvx .action-menu>button>span{font-size:18px}
.tvx .action-menu>button{min-height:72px}
.tvx .attention-list{display:grid;gap:10px}
.tvx .attention-list button{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:16px;background:#fff;text-align:left;padding:14px;color:var(--ink)}
.tvx .attention-list button{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .attention-list button div{flex:1}
.tvx .attention-list b,.tvx .attention-list small{display:block}
.tvx .attention-list small{color:var(--muted);margin-top:4px}
.tvx .attention-icon{background:#e2f3ff;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:#0870b0}
.tvx .attention-icon{background:linear-gradient(145deg,#f6fbff 0%,#cedde8 100%)}/*dg*/
.tvx .unread-dot{display:block;width:5px;height:5px;background:#078cff;border-radius:50%;position:absolute;right:12px;top:10px}
.tvx .iconbtn{position:relative}
.tvx .choice{grid-template-columns:repeat(3,1fr)}
.tvx [data-go],.tvx article[data-go]{cursor:pointer}
.tvx .readonly-block p{font-size:12px}
.tvx .evidence-thumb{color:#16597d}
.tvx .clock-card strong{font-size:48px}
.tvx .two-cols{gap:10px}
.tvx .signature-pad canvas{width:100%;height:150px;touch-action:none}
.tvx .signature-pad{height:160px}
.tvx .bottom-action.disabled{opacity:.55}
.tvx .two-cols .settings-list>button{min-width:0}
.tvx .brand{gap:6px}
.tvx .attendance.compact{gap:10px}
.tvx .attendance.compact>div{min-width:0}
.tvx .attendance.compact .primary{padding:10px;white-space:normal}
.tvx .time{font-size:21px}
.tvx .sync i{flex-shrink:0}
.tvx button:disabled{cursor:not-allowed;opacity:.5}
.tvx button.disabled{cursor:pointer}
.tvx button{overflow-wrap:anywhere}
.tvx .notice{font-size:12px;line-height:1.6}
.tvx label.search input{font-size:13px}
@media(max-width:359px){.tvx .brand strong{font-size:11px}
.tvx .brand span{font-size:7px}
.tvx .brand img{width:29px;height:29px}
.tvx .status{padding:5px 7px}
.tvx .time{font-size:18px}}
@media(prefers-reduced-motion:reduce){.tvx,.tvx *{animation:none!important;transition:none!important}}
.tvx [hidden]{display:none!important}
.tvx .task-list article>button{color:#0076d8;border:0;border-radius:12px;background:#e8f5ff;min-width:40px;font-size:26px}
.tvx .task-list article>button{background:linear-gradient(145deg,#f8fcff 0%,#d3dfe8 100%)}/*dg*/
.tvx .brief-steps{padding:16px 16px 16px 34px;border:1px solid var(--line);background:#fff;border-radius:16px;line-height:1.8;font-size:14px}
.tvx .brief-steps{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .required-label{display:inline-block;font-size:10px;font-style:normal;color:#895600;background:#fff0ce;border-radius:6px;padding:3px 5px}
.tvx .required-label{background:linear-gradient(145deg,#fffaf0 0%,#e8dabb 100%)}/*dg*/
.tvx .form-card h3{margin-bottom:14px}
.tvx #task-material-list p{padding:10px 0;border-bottom:1px solid var(--line)}
.tvx .task-photo-sample{background:linear-gradient(140deg,#dcecf6,#c9e9f7);border-radius:14px;padding:24px 10px;text-align:center;border:1px solid var(--line)}
.tvx .task-photo-sample b,.tvx .task-photo-sample small{display:block;margin-top:8px}
.tvx .task-photo-sample span{font-size:28px;color:#0868a1}
.tvx .signature-pad canvas{height:190px}
.tvx .signature-pad{height:200px}
.tvx #task-requirements{margin:14px 0}
.tvx #task-consent{flex:0 0 22px}
.tvx h1{overflow-wrap:anywhere}
.tvx button:disabled{opacity:.65;background:#899dac;box-shadow:none}
.tvx button:disabled{background:linear-gradient(145deg,#a5b5c0 0%,#6e7e8a 100%)}/*dg*/
.tvx .work-hero{border-radius:22px;padding:20px;background:linear-gradient(130deg,#082b49,#0b5279);color:white;margin-bottom:18px}
.tvx .work-heading{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.tvx .work-heading .eyebrow{color:#9be5ff;font-size:9px;max-width:190px;line-height:1.5}
.tvx .work-heading .status{background:#ffffff20;color:#e7f7ff;flex-shrink:0}
.tvx .work-hero h2{font-size:23px;line-height:1.25;margin:14px 0 8px}
.tvx .work-hero p{color:#c6dfed}
.tvx .service-context{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-top:1px solid #ffffff30;background:transparent;color:white;margin-top:14px;padding:12px 0 0;font-weight:600;font-size:13px}
.tvx .service-context span{font-size:20px}
.tvx .work-progress{margin-bottom:22px}
.tvx .work-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px}
.tvx .work-progress>div:first-child span{font-weight:800;color:#0876bb}
.tvx .work-progress-track{margin:9px 0;background:#dce8f1;border-radius:99px;height:7px;overflow:hidden}
.tvx .work-progress-track i{display:block;height:100%;width:0;background:#0a9dc9;border-radius:99px;transition:width .2s}
.tvx .work-progress-track i{background:linear-gradient(145deg,#45b5d6 0%,#087ea1 100%)}/*dg*/
.tvx .work-progress p{font-size:12px!important;color:#52697c}
.tvx .work-steps{display:grid;gap:10px}
.tvx .work-step{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid #dce8f1;background:#fff;border-radius:17px;padding:16px 12px;color:#10253b}
.tvx .work-step{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .work-step-number{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;background:#e7f4ff;color:#086dab;font-size:13px;font-weight:800;border-radius:11px}
.tvx .work-step-number{background:linear-gradient(145deg,#f8fcff 0%,#d2dee8 100%)}/*dg*/
.tvx .work-step>div{flex:1;min-width:0}
.tvx .work-step b,.tvx .work-step small{display:block}
.tvx .work-step b{font-size:14px}
.tvx .work-step small{font-size:11px!important;color:#52697c;margin-top:5px}
.tvx .work-step>i{color:#7792a6;font-size:20px;font-style:normal}
.tvx .work-step-state{font-size:10px;font-weight:800;padding:6px 7px;border-radius:8px;background:#fff1d1;color:#805500;white-space:nowrap}
.tvx .work-step-state{background:linear-gradient(145deg,#fffbf1 0%,#e8dbbe 100%)}/*dg*/
.tvx .work-step-state.complete{background:#e0f7ee;color:#08764e}
.tvx .work-step-state.complete{background:linear-gradient(145deg,#f6fdfa 0%,#cce1d9 100%)}/*dg*/
.tvx .work-step-state.optional{background:#edf4fa;color:#52697c}
.tvx .work-step-state.optional{background:linear-gradient(145deg,#fafcfe 0%,#d8dee4 100%)}/*dg*/
.tvx .optional-note{display:flex;align-items:center;gap:12px;margin:14px 0;border:1px dashed #a4becf;background:transparent;border-radius:15px;width:100%;padding:14px;text-align:left;color:#284c65}
.tvx .optional-note>div{flex:1}
.tvx .optional-note b,.tvx .optional-note small{display:block}
.tvx .optional-note b{font-size:13px}
.tvx .optional-note small{font-size:11px!important;margin-top:4px;color:#52697c}
.tvx .closure-status{border-radius:14px;background:#e2f1fb;padding:14px;margin-top:18px;border:1px solid #c5e1f2}
.tvx .closure-status{background:linear-gradient(145deg,#f6fbfe 0%,#cedbe4 100%)}/*dg*/
.tvx .closure-status b{font-size:13px}
.tvx .closure-status p{font-size:12px!important;color:#42627a;margin-top:5px}
.tvx .photo-requirement{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #f0d898;background:#fff9e9;border-radius:16px;margin:18px 0}
.tvx .photo-requirement{background:linear-gradient(145deg,#fffdf8 0%,#e8e3d4 100%)}/*dg*/
.tvx .photo-requirement>span:first-child{font-size:24px;color:#a46d00}
.tvx .photo-requirement>div{flex:1}
.tvx .photo-requirement b{font-size:14px}
.tvx .photo-requirement p{font-size:11px!important;margin-top:5px}
.tvx .photo-categories{display:grid;gap:10px}
.tvx .photo-categories>article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 14px;background:#fff;border:1px solid #dce8f1;border-radius:16px}
.tvx .photo-categories>article{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .photo-categories h2{font-size:15px}
.tvx .photo-categories p{font-size:12px!important;color:#52697c;margin-top:6px}
.tvx .photo-categories button{background:#e8f5ff;color:#0069b4;border:0;border-radius:12px;padding:10px;font-weight:700;font-size:12px;flex-shrink:0}
.tvx .photo-categories button{background:linear-gradient(145deg,#f8fcff 0%,#d3dfe8 100%)}/*dg*/
.tvx .photo-categories .final-category{border:1.5px solid #1b9ddb}
.tvx .final-category .eyebrow{font-size:8px}
.tvx .photo-categories .eyebrow{font-size:8px}
.tvx .work-step.done .work-step-number{background:#e0f7ee;color:#08764e}
.tvx .work-step.done .work-step-number{background:linear-gradient(145deg,#f6fdfa 0%,#cce1d9 100%)}/*dg*/
@media(max-width:359px){.tvx .work-step{gap:8px;padding:14px 10px}
.tvx .work-step-number{flex-basis:27px;width:27px;height:30px}
.tvx .work-step-state{padding:5px;font-size:9px}
.tvx .work-step b{font-size:13px}
.tvx .work-hero h2{font-size:21px}}
.tvx .entry-scenarios{font-size:10px;background:#f5faff;margin-top:0;margin-bottom:16px;padding:8px 10px}
.tvx .entry-scenarios{background:linear-gradient(145deg,#fcfeff 0%,#dfe4e8 100%)}/*dg*/
.tvx .entry-scenarios .two-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
.tvx .entry-scenarios button{font-size:10px;padding:7px;min-width:0}
.tvx .entry-scenarios summary{font-size:10px;min-height:24px}
.tvx .task-empty-state{text-align:center;background:#fff;border:1px solid #dce8f1;border-radius:24px;padding:38px 22px;margin:22px 0;box-shadow:0 8px 22px #082b4906}
.tvx .task-empty-state{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .empty-check{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 22px;border-radius:22px;background:#e1f7ef;color:#089b66;font-size:34px;font-weight:800}
.tvx .empty-check{background:linear-gradient(145deg,#f6fdfa 0%,#cde1d9 100%)}/*dg*/
.tvx .task-empty-state h2{font-size:23px;color:#102f47}
.tvx .task-empty-state p{margin-top:12px;color:#52697c;font-size:14px!important}
.tvx .task-empty-state small{display:block;margin-top:8px;color:#52697c;font-size:12px!important}
.tvx .task-empty-state button{margin-top:25px;min-width:150px}
.tvx .scope-card{background:#fff;border:1px solid #dce8f1;border-radius:20px;padding:18px;margin-bottom:14px}
.tvx .scope-card{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .scope-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.tvx .scope-symbol{display:grid;place-items:center;width:38px;height:38px;background:#e4f4ff;border-radius:12px;color:#0872b4;font-size:21px}
.tvx .scope-symbol{background:linear-gradient(145deg,#f7fcff 0%,#cfdee8 100%)}/*dg*/
.tvx .scope-head h2{font-size:19px}
.tvx .scope-head .eyebrow{font-size:9px}
.tvx .scope-summary{font-size:14px!important;line-height:1.7!important;color:#35546a}
.tvx .scope-summary strong{color:#102f47}
.tvx .scope-source{display:block;margin-top:12px;font-size:10px;color:#52697c}
.tvx .scope-details{margin-top:15px;border-top:1px solid #dce8f1}
.tvx .scope-details>summary{cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#006bb5;font-size:12px;font-weight:800;list-style:none}
.tvx .scope-details>summary:after{content:'＋';font-size:20px}
.tvx .scope-details[open]>summary:after{content:'−'}
.tvx .scope-block{border-top:1px solid #e4edf4;padding:14px 0}
.tvx .scope-block h3{font-size:13px;color:#102f47;margin-bottom:10px}
.tvx .scope-block ul{padding-left:18px;margin:0;font-size:12px;line-height:1.8;color:#426077}
.tvx .scope-block dl{margin:0}
.tvx .scope-block dl>div{display:grid;grid-template-columns:90px 1fr;gap:10px;margin:10px 0;font-size:12px;line-height:1.6}
.tvx .scope-block dt{font-weight:700;color:#284b62}
.tvx .scope-block dd{margin:0;color:#52697c}
.tvx .scope-equipment{display:flex;flex-wrap:wrap;gap:8px}
.tvx .scope-equipment>span{padding:8px 10px;border-radius:10px;background:#edf6fc;font-size:12px;color:#284f69}
.tvx .scope-equipment>span{background:linear-gradient(145deg,#fafcfe 0%,#d8e0e5 100%)}/*dg*/
.tvx .scope-equipment b{color:#006bb5;margin-right:4px}
.tvx .scope-block p,.tvx .scope-footnote{font-size:11px!important;color:#52697c;line-height:1.6;margin-top:11px}
.tvx .scope-footnote{border-top:1px solid #dce8f1;padding-top:12px}
.tvx .scope-client{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#52697c;margin:0 0 14px;padding:0 4px}
.tvx .scope-client button{font-size:12px}
.tvx .scope-compact .scope-head h2{font-size:17px}
.tvx .contact-actions button.primary{background:#0078d7;color:#fff}
.tvx .contact-actions button.primary{background:linear-gradient(145deg,#3d98e1 0%,#0060ac 100%)}/*dg*/
.tvx .contact-actions button.primary span{color:#fff}
.tvx .task-stage-banner{display:flex;align-items:flex-start;gap:11px;padding:14px;border-radius:14px;margin:0 0 16px}
.tvx .task-stage-banner>span{font-size:23px;line-height:1.2}
.tvx .task-stage-banner b{display:block;font-size:13px}
.tvx .task-stage-banner p{font-size:12px!important;margin-top:5px;line-height:1.6}
.tvx .task-stage-banner.pending{background:#fff3d6;color:#785400;border:1px solid #f1dfa9}
.tvx .task-stage-banner.pending{background:linear-gradient(145deg,#fffbf3 0%,#e8ddc3 100%)}/*dg*/
.tvx .task-stage-banner.running{background:#e1f6ed;color:#08764e;border:1px solid #bfe9d8}
.tvx .task-stage-banner.running{background:linear-gradient(145deg,#f6fcfa 0%,#cde0d8 100%)}/*dg*/
.tvx .task-stage-banner.sent{background:#e6f2ff;color:#175789;border:1px solid #c1def3}
.tvx .task-stage-banner.sent{background:linear-gradient(145deg,#f8fbff 0%,#d1dce8 100%)}/*dg*/
.tvx .work-heading .status.pending{background:#fff0c8;color:#785400}
.tvx .work-heading .status.pending{background:linear-gradient(145deg,#fffaee 0%,#e8dab6 100%)}/*dg*/
.tvx .work-heading .status.progress{background:#e3f7f0;color:#08764e}
.tvx .work-heading .status.progress{background:linear-gradient(145deg,#f7fdfa 0%,#cfe1da 100%)}/*dg*/
.tvx .work-heading .status.done{background:#e6f2ff;color:#175789}
.tvx .work-heading .status.done{background:linear-gradient(145deg,#f8fbff 0%,#d1dce8 100%)}/*dg*/
.tvx .work-step:disabled,.tvx .optional-note:disabled{background:#f6f9fc;opacity:.72;color:#52697c;box-shadow:none}
.tvx .work-step:disabled,.tvx .optional-note:disabled{background:linear-gradient(145deg,#fcfdfe 0%,#e0e3e5 100%)}/*dg*/
.tvx .work-step:disabled .work-step-number{background:#e6edf3;color:#6b8192}
.tvx .work-step:disabled .work-step-number{background:linear-gradient(145deg,#f8fafb 0%,#d1d8dd 100%)}/*dg*/
.tvx h1:focus{outline:none}
.tvx .task-owner{margin-bottom:16px}
.tvx .work-hero{transition:background .22s ease,color .22s ease}
.tvx .work-hero.is-pending{background:linear-gradient(125deg,#fff0d0,#ffdfac);color:#513511;border:1px solid #f2c779}
.tvx .work-hero.is-pending h2{color:#513511}
.tvx .work-hero.is-pending p{color:#6b4a23}
.tvx .work-hero.is-pending .eyebrow{color:#80500c}
.tvx .work-hero.is-pending .service-context{color:#674116;border-top-color:#d6ac674d}
.tvx .work-hero.is-pending .work-heading .status.pending{background:#fff9e9;color:#795000;border:1px solid #e9c375}
.tvx .work-hero.is-pending .work-heading .status.pending{background:linear-gradient(145deg,#fffdf8 0%,#e8e3d4 100%)}/*dg*/
.tvx .work-hero:not(.is-pending) .work-heading .status.progress{background:#e6f4ff;color:#105c97}
.tvx .work-hero:not(.is-pending) .work-heading .status.progress{background:linear-gradient(145deg,#f8fcff 0%,#d1dee8 100%)}/*dg*/
.tvx .home-attendance-history{display:block;width:100%;text-align:right;background:transparent;border:0;color:#006cb5;font-size:12px;font-weight:700;margin:-6px 0 14px;padding:4px 2px}
.tvx .attendance-record{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #dce8f1;padding:16px 0;font-size:14px}
.tvx .attendance-record>span{color:#52697c}
.tvx .attendance-record>b{color:#173e58;font-size:13px}
.tvx .attendance-today small{display:block;margin-top:14px;color:#52697c}
.tvx .home-attendance-history{margin:0 0 8px;padding:4px 2px}
.tvx [data-screen="inicio"] .hello{margin-bottom:4px}
.tvx [data-screen="inicio"] button.home-attendance-history{min-height:30px;height:30px;line-height:20px;padding:3px 2px;margin:0 0 5px}
.tvx [data-screen="inicio"] .hello{margin-bottom:14px}
.tvx .month-label{font-size:11px;font-weight:700;color:#52697c;white-space:nowrap}
.tvx .month-estimate{border-radius:22px;padding:22px;background:linear-gradient(140deg,#082b49,#0b5279);color:#fff}
.tvx .month-estimate-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.08em;font-weight:800}
.tvx .estimate-tag{letter-spacing:0;font-size:10px;background:#e5f5ff;color:#125b89;padding:6px 9px;border-radius:99px}
.tvx .estimate-tag{background:linear-gradient(145deg,#f7fcff 0%,#d0dfe8 100%)}/*dg*/
.tvx .month-estimate>strong{display:block;font-size:42px;line-height:1.2;margin:16px 0 7px;letter-spacing:-.02em}
.tvx .month-estimate>p{font-size:14px!important;color:#d2e9f6}
.tvx .month-estimate>small{display:block;font-size:10px!important;color:#b9d9e9;margin-top:16px}
.tvx .estimate-help{font-size:12px!important;line-height:1.6;color:#52697c;margin:12px 2px 20px}
.tvx .month-demo-label{font-size:10px;color:#52697c}
.tvx .month-breakdown{background:#fff;border:1px solid #dce8f1;padding:3px 16px;border-radius:18px}
.tvx .month-breakdown{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .month-breakdown>div{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #e4edf4;font-size:12px}
.tvx .month-breakdown>div>span{color:#52697c}
.tvx .month-breakdown b{white-space:nowrap;color:#163b55}
.tvx .month-breakdown .positive{color:#08764e}
.tvx .month-breakdown .month-total{border-bottom:0;padding:17px 0}
.tvx .month-total span,.tvx .month-total b{font-weight:800;color:#0a527d!important}
.tvx .month-total b{font-size:18px}
.tvx .month-attendance{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#fff;border:1px solid #dce8f1;border-radius:17px;padding:18px}
.tvx .month-attendance{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .month-attendance>div+div{border-left:1px solid #dce8f1;padding-left:18px}
.tvx .month-attendance span{display:block;font-size:25px;font-weight:800;color:#0b5279}
.tvx .month-attendance small{font-size:11px!important;color:#52697c;display:block;margin-top:4px}
.tvx .month-history{display:flex;align-items:center;gap:12px;width:100%;background:#fff;border:1px solid #dce8f1;border-radius:16px;padding:15px;margin-top:10px;text-align:left;color:#163b55}
.tvx .month-history{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .month-history>span{font-size:24px;color:#0873b6}
.tvx .month-history>div{flex:1}
.tvx .month-history b,.tvx .month-history small{display:block}
.tvx .month-history b{font-size:13px}
.tvx .month-history small{font-size:11px!important;color:#52697c;margin-top:4px}
.tvx .month-history>i{font-style:normal;font-size:22px;color:#7893a7}
.tvx .month-footnote{font-size:11px!important;color:#52697c;line-height:1.6;margin:18px 2px}

.tvx .contact-actions.two{grid-template-columns:1fr 1fr}.tvx .contact-actions.two button{font-size:13px;font-weight:800;padding:14px 8px}

/* Inicio: tarea pendiente (naranja suave), distinta del trabajo en curso (azul) */
.tvx .next.tarea-pend{background:linear-gradient(125deg,#fff0d0,#ffdfac);color:#513511;border:1px solid #f2c779}
.tvx .next.tarea-pend:after{border-color:rgba(190,120,20,.18)}
.tvx .next.tarea-pend .eyebrow{color:#80500c}
.tvx .next.tarea-pend h2{color:#513511}
.tvx .next.tarea-pend p{color:#6b4a23}
.tvx .next.tarea-pend .status.pending{background:#fff7e4;color:#7a4b06;border:1px solid #f0cf8e}
.tvx .next.tarea-pend .status.pending{background:linear-gradient(145deg,#fffdf7 0%,#e8e1cf 100%)}/*dg*/
.tvx .next.tarea-pend .meta span:first-child{color:#6b4a23}
.tvx .next.tarea-pend .time{color:#80500c}


/* Tipo de tarea: identidad independiente de Pendiente / En curso (original sólido, espejo discontinuo). */
.tvx .task-kind-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:9px;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;line-height:1.35;max-width:100%}
.tvx .task-kind-chip svg{width:18px;height:18px;flex:0 0 18px}
.tvx .task-kind-chip>span{display:block;min-width:0}
.tvx .task-kind-chip b{display:block;font-size:11px;margin:0;line-height:1.35}
.tvx .task-kind-chip small{display:block;font-size:9px;line-height:1.45;margin:3px 0 0;color:inherit;font-weight:400}
.tvx .task-kind-original{background:#e5edf5;border:1px solid #9ab4cb;color:#173e60}
.tvx .task-kind-original{background:linear-gradient(145deg,#f7fafc 0%,#d0d8df 100%)}/*dg*/
.tvx .task-kind-mirror{background:#f5f7f9;border:1px dashed #91a4b5;color:#4f6376}
.tvx .task-kind-mirror{background:linear-gradient(145deg,#fcfdfd 0%,#dfe1e3 100%)}/*dg*/
.tvx .task-type-context{margin:0 0 16px}
.tvx .work-hero .task-kind-chip{background:#ffffff1f;border-color:#ffffff66;color:#e7f7ff}
.tvx .work-heading{flex-wrap:wrap}

.tvx .task-kind-card{margin:8px 0 2px}
.tvx .next:not(.tarea-pend) .task-kind-chip{background:#ffffff1f;border-color:#ffffff66;color:#e7f7ff}

/* "Ver datos del servicio": botón propio, distinto del fondo de la tarjeta */
.tvx .work-hero .service-context{border:1px solid #ffffff59;border-radius:14px;background:rgba(255,255,255,.16);padding:13px 14px;margin-top:16px;font-weight:700}
.tvx .work-hero .service-context span{background:#ffffff;color:#0b5279;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1}
.tvx .work-hero .service-context span{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/
.tvx .work-hero.is-pending .service-context{border:1px solid #d6ac67;background:rgba(255,255,255,.55);color:#674116}
.tvx .work-hero.is-pending .service-context span{background:#fff;color:#80500c}
.tvx .work-hero.is-pending .service-context span{background:linear-gradient(145deg,#ffffff 0%,#dbebf9 100%)}/*dg*/


/* Tipo de tarea: el color va solo en el borde lateral de la tarjeta (4px, igual que "Tu jornada");
   el distintivo es neutro (sólido = original, discontinuo = espejo) y se adapta al fondo de la tarjeta */
.tvx .work-hero,.tvx .next{--kline:#2b6591}
.tvx .work-hero.is-pending,.tvx .next.tarea-pend{--kline:#e2bd7d}
.tvx .work-hero[data-kind="original"],.tvx .next[data-kind="original"]{border:.5px solid var(--kline);border-left:4px solid #7456bd}
.tvx .work-hero.is-pending[data-kind="original"],.tvx .next.tarea-pend[data-kind="original"]{border-left-color:#7456bd}
.tvx .work-hero[data-kind="espejo"],.tvx .next[data-kind="espejo"]{border:.5px solid var(--kline);border-left:4px solid #178d91}
.tvx .work-hero.is-pending[data-kind="espejo"],.tvx .next.tarea-pend[data-kind="espejo"]{border-left-color:#178d91}
.tvx .task-kind-original{border:1px solid #9ab4cb;color:#173e60}
.tvx .task-kind-mirror{border:1px dashed #91a4b5;color:#4f6376}
.tvx .task-kind-original svg,.tvx .task-kind-mirror svg{color:inherit}
/* Sobre tarjeta azul oscura (en curso) */
.tvx .work-hero:not(.is-pending) .task-kind-chip,.tvx .next:not(.tarea-pend) .task-kind-chip{background:#ffffff1f;color:#e7f7ff}
.tvx .work-hero:not(.is-pending) .task-kind-original,.tvx .next:not(.tarea-pend) .task-kind-original{border:1px solid #ffffff66}
.tvx .work-hero:not(.is-pending) .task-kind-mirror,.tvx .next:not(.tarea-pend) .task-kind-mirror{border:1px dashed #ffffff66}
/* Sobre tarjeta naranja suave (pendiente): mismo distintivo con tonos del naranja */
.tvx .work-hero.is-pending .task-kind-chip,.tvx .next.tarea-pend .task-kind-chip{background:rgba(255,255,255,.5);color:#674116}
.tvx .work-hero.is-pending .task-kind-original,.tvx .next.tarea-pend .task-kind-original{border:1px solid #d6ac67}
.tvx .work-hero.is-pending .task-kind-mirror,.tvx .next.tarea-pend .task-kind-mirror{border:1px dashed #d6ac67}

.tvx .scope-desc{font-size:15px;line-height:1.65;color:#17384f;white-space:pre-line;margin:6px 0 8px;font-weight:600}


/* "Tu jornada": sin la línea fina alrededor, el borde lateral termina en punta como en las tarjetas de tarea */
.tvx .attendance.compact{border:.5px solid #f3dcae;border-left:4px solid var(--amber)}

/* === TINTES-TARJETAS (scripts/gen-degradados-tecnico.py) === */
.tvx .attendance.compact{background:linear-gradient(145deg,#fff 0%,#ffe9bd 100%);border-color:#f3dcae;border-left-color:var(--amber)}
.tvx .attention-list button{background:linear-gradient(145deg,#fff 0%,#d6eaff 100%)}
.tvx .summary{background:linear-gradient(145deg,#fff 0%,#cdf1fa 100%)}
.tvx .status-strip{background:linear-gradient(145deg,#e6f1ff 0%,#c8e0ff 100%)}
.tvx .stats div{background:linear-gradient(145deg,#f3f9fd 0%,#d3e6f6 100%)}
.tvx .job.featured{background:linear-gradient(145deg,#fff 0%,#d0e6ff 100%)}
/* === /TINTES-TARJETAS === */

/* Detalle de trabajo: estado de la cotización + estado del trabajo en la misma franja */
.tvx .status-strip{flex-wrap:wrap;gap:6px 8px;justify-content:flex-start}
.tvx .status-strip strong{margin-left:auto}
