.fto-page{--fto-violet:#8b45d8;--fto-ink:#15111c}.fto-heading{align-items:flex-end}.fto-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.fto-summary article{background:linear-gradient(145deg,#fff,#faf7ff);border:1px solid #e8e0f1;border-radius:20px;padding:20px;box-shadow:0 10px 30px rgba(37,24,49,.06)}.fto-summary small,.fto-summary span{display:block;color:#766d80}.fto-summary strong{display:block;font-size:2rem;line-height:1.15;margin:8px 0;color:var(--fto-ink)}.fto-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr)) auto auto;gap:10px}.fto-list{display:grid;gap:14px;margin-top:18px}.fto-card{background:#fff;border:1px solid #e6deed;border-radius:20px;padding:20px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr) auto;gap:18px;align-items:center;box-shadow:0 12px 34px rgba(31,19,43,.055)}.fto-card:hover{border-color:#cdb7e2}.fto-card-main>small{font-weight:800;color:var(--fto-violet);letter-spacing:.06em}.fto-card-main h3{margin:6px 0;font-size:1.12rem}.fto-card-main p{margin:0;color:#716879}.fto-card-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fto-card-meta span{background:#f7f3fa;border-radius:12px;padding:10px}.fto-card-meta small,.fto-card-meta b{display:block}.fto-card-meta small{color:#7d7485;font-size:.74rem}.fto-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.fto-status{display:inline-flex!important;width:max-content;padding:5px 10px;border-radius:999px;font-weight:800}.fto-status.borrador{background:#eee9f2;color:#5f5667}.fto-status.en-revision{background:#fff0cf;color:#885900}.fto-status.aprobado{background:#daf5e7;color:#176a45}.fto-status.rechazado{background:#ffe1e1;color:#9b2828}.fto-status.cerrado{background:#e1ebff;color:#2c5298}.fto-modal-card{width:min(1120px,96vw);max-height:94vh;padding-bottom:0}.fto-form-scroll{max-height:calc(94vh - 160px);overflow:auto;padding:2px 8px 28px 2px}.fto-form-section{border:1px solid #e6deed;border-radius:18px;margin:14px 0;padding:18px}.fto-form-section>header{display:flex;gap:12px;align-items:center;margin-bottom:16px}.fto-form-section>header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#19131f;color:#fff;font-weight:900}.fto-form-section>header b,.fto-form-section>header small{display:block}.fto-form-section>header small{color:#7a7182}.fto-lines{border:1px solid #e9e2ee;border-radius:15px;overflow:hidden;margin:12px 0}.fto-lines>header{display:flex;align-items:center;justify-content:space-between;background:#f7f3fa;padding:12px 14px}.fto-lines>header h3{margin:0;font-size:1rem}.fto-line-head,.fto-line{display:grid;grid-template-columns:42px 1fr 1.8fr 1fr 1fr 1fr 90px 1.2fr 38px;gap:7px;align-items:center;padding:8px 10px}.fto-line-head{background:#211927;color:#fff;font-size:.72rem;font-weight:800}.fto-line{border-top:1px solid #eee8f2}.fto-line input{width:100%;min-width:0;padding:8px;border:1px solid #ded5e4;border-radius:8px}.fto-line input[type=number]{text-align:right}.fto-line button{border:0;background:#fff0f0;color:#a52b2b;width:32px;height:32px;border-radius:9px;cursor:pointer}.fto-line-total{display:flex;justify-content:flex-end;gap:12px;padding:11px 14px;background:#fbf9fc}.fto-line-total strong{font-size:1.15rem}.fto-audit-preview{background:#17131b;color:#fff;border-radius:14px;padding:14px;margin-top:14px}.fto-audit-preview p{margin:6px 0;color:#d5ccd9}.fto-empty{background:#fff;border:1px dashed #d7cadf;border-radius:18px;padding:46px;text-align:center;color:#786e80}.fto-modal .modal-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #e7dfec;margin:0 -24px;padding:15px 24px}.permission-hidden{display:none!important}@media(max-width:1100px){.fto-summary{grid-template-columns:repeat(2,1fr)}.fto-filters{grid-template-columns:repeat(2,1fr)}.fto-card{grid-template-columns:1fr}.fto-card-actions{justify-content:flex-start}.fto-line-head{display:none}.fto-line{grid-template-columns:40px repeat(2,1fr)}.fto-line input{grid-column:span 1}.fto-line input:nth-of-type(2){grid-column:span 2}}@media(max-width:640px){.fto-summary,.fto-filters{grid-template-columns:1fr}.fto-line{grid-template-columns:34px 1fr}.fto-line input{grid-column:2}.fto-line input:nth-of-type(2){grid-column:2}.fto-card-meta{grid-template-columns:1fr 1fr}.fto-form-section{padding:12px}}
