.timeline-shell{min-height:calc(100vh - 86px);background:#f6f3ef;color:#32312d;font-family:Arial,sans-serif}
.timeline-shell *{box-sizing:border-box}
.timeline-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:17px;align-items:center;padding:28px 2.7% 20px;overflow:hidden;border-bottom:1px solid #e8e1df;background:radial-gradient(circle at 78% -35%,rgba(176,116,128,.09) 0 170px,transparent 171px),linear-gradient(100deg,#fff 0%,#fcf9fa 100%)}
.timeline-eyebrow{margin:0 0 14px;color:#7d8866;font-size:10px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}
.timeline-title-row{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:17px}
.timeline-title-icon{width:56px;height:56px;display:grid;place-items:center;border:1px solid #ead6da;border-radius:16px;background:#fcf7f8;color:#ae7580;font:400 24px Georgia,serif}
.timeline-title-row h1{margin:0;color:#32312d;font:400 clamp(36px,3.25vw,52px)/1 Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.timeline-title-row p{margin:12px 0 0;color:#85848a;font-size:12px}
.timeline-hero-total{min-width:190px;text-align:right}
.timeline-hero-total span,.timeline-hero-total small{display:block;color:#89878d;font-size:11px}.timeline-hero-total span{font-weight:700}.timeline-hero-total strong{display:block;margin-top:8px;color:#af7480;font:400 clamp(44px,4.2vw,64px)/.78 Georgia,serif}.timeline-hero-total small{max-width:220px;margin-top:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-content{width:min(90.8%,1610px);margin:0 auto;padding:20px 0 60px}.timeline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.timeline-button{min-height:43px;padding:0 17px;border:1px solid #dcd6cf;border-radius:11px;background:#fff;color:#373630;font:inherit;font-weight:800;cursor:pointer}.timeline-primary{border-color:#7f8962;background:#7f8962;color:#fff}.timeline-primary b{margin-right:7px;font-size:18px}
.timeline-toolbar-filters{display:flex;gap:10px;flex:1;justify-content:flex-end}.timeline-search,.timeline-filter{display:flex;align-items:center;min-height:43px;border:1px solid #ddd8d2;border-radius:11px;background:#fff;color:#817d77}.timeline-search{width:min(390px,100%);padding-left:13px}.timeline-search input,.timeline-filter select{min-width:0;border:0;outline:0;background:transparent;color:#3c3a35;font:inherit}.timeline-search input{width:100%;padding:0 12px}.timeline-filter{padding:0 10px 0 13px;gap:8px}.timeline-filter span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.timeline-filter select{height:40px}
.timeline-overview{display:grid;grid-template-columns:repeat(4,1fr);margin:20px 0 30px;border:1px solid #e2dcd7;border-radius:21px;background:#fff;overflow:hidden;box-shadow:0 15px 35px rgba(72,63,56,.07)}.timeline-overview article{min-height:86px;padding:18px 24px;border-right:1px solid #e6dfda;background:#fff}.timeline-overview article:last-child{border-right:0}.timeline-overview span{display:block;margin-bottom:10px;color:#81818a;font-size:10px;font-weight:700}.timeline-overview strong{display:block;color:#34332f;font-size:25px;font-weight:600;line-height:1}.timeline-overview strong.is-date{font:600 18px/1.2 Georgia,serif}.timeline-overview small{display:block;margin-top:7px;color:#898991;font-size:8px}
.timeline-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.timeline-list-head h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:26px;font-weight:500}.timeline-list-head p{margin:5px 0 0;color:#817d77;font-size:13px}.timeline-list-head>span{color:#77736d;font-size:12px;font-weight:800}
.timeline-list{position:relative;display:grid;gap:10px}.timeline-card{display:grid;grid-template-columns:88px 26px minmax(0,1fr) 42px;align-items:center;min-height:96px;padding:12px 14px 12px 6px;border:1px solid #e2ddd7;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(60,50,45,.035)}
.timeline-time{text-align:center}.timeline-time strong{display:block;color:#34332f;font-size:20px}.timeline-time span{display:block;margin-top:4px;color:#918c85;font-size:10px}.timeline-rail{position:relative;align-self:stretch}.timeline-rail:before{content:"";position:absolute;top:-23px;bottom:-23px;left:50%;width:1px;background:#ddd8d1}.timeline-card:first-child .timeline-rail:before{top:50%}.timeline-card:last-child .timeline-rail:before{bottom:50%}.timeline-rail i{position:absolute;top:50%;left:50%;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#7f8962;box-shadow:0 0 0 2px #aab294;transform:translate(-50%,-50%)}
.timeline-card.is-completed .timeline-rail i{background:#9aa68a}.timeline-card.is-progress .timeline-rail i{background:#b17782;box-shadow:0 0 0 2px #d4aab2}
.timeline-card-copy{min-width:0;padding:4px 12px}.timeline-card-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timeline-card-title h3{margin:0;color:#35342f;font-size:16px}.timeline-status{padding:4px 8px;border-radius:999px;background:#f0eee9;color:#756f67;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.timeline-status.is-progress{background:#f7e9ec;color:#9a606b}.timeline-status.is-completed{background:#edf1e8;color:#66714e}
.timeline-responsible,.timeline-notes{margin:6px 0 0;color:#77736d;font-size:12px;line-height:1.45}.timeline-responsible span{font-weight:800;color:#5d5b55}.timeline-notes{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.timeline-card-action{width:38px;height:38px;border:1px solid #e0dad3;border-radius:10px;background:#faf9f7;color:#68645e;font-size:16px;cursor:pointer}
.timeline-empty,.timeline-loading{padding:54px 20px;border:1px dashed #d9d3cc;border-radius:16px;background:#fff;text-align:center;color:#817d77}.timeline-empty span{display:block;margin-bottom:8px;font-size:30px}.timeline-empty strong{display:block;color:#4a4843}.timeline-empty p{margin:7px 0 0;font-size:13px}.timeline-read-state{margin:16px 2px 0;color:#99938c;font-size:11px;text-align:right}
.timeline-dialog{width:min(720px,calc(100vw - 32px));max-height:90vh;padding:0;border:0;border-radius:18px;background:#fff;box-shadow:0 24px 80px rgba(35,30,28,.24)}.timeline-dialog::backdrop{background:rgba(28,25,23,.42)}.timeline-dialog-frame{display:flex;max-height:90vh;flex-direction:column}.timeline-dialog header{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 17px;border-bottom:1px solid #ece7e2}.timeline-dialog header span{color:#7f8962;font-size:10px;font-weight:900;letter-spacing:.13em}.timeline-dialog h2{margin:4px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:27px;font-weight:500}.timeline-dialog header button{width:36px;height:36px;border:1px solid #e3ddd6;border-radius:10px;background:#fff;font-size:22px;cursor:pointer}.timeline-dialog-body{overflow:auto;padding:20px 24px}.timeline-dialog footer{display:flex;align-items:center;gap:9px;padding:15px 24px;border-top:1px solid #ece7e2}.timeline-dialog footer button{min-height:40px;padding:0 15px;border:1px solid #ddd7d0;border-radius:10px;background:#fff;font:inherit;font-weight:800;cursor:pointer}.timeline-dialog footer .timeline-save{border-color:#7f8962;background:#7f8962;color:#fff}.timeline-dialog footer .timeline-delete{border-color:#ead9d9;background:#fff8f7;color:#9b5555}.timeline-dialog-spacer{flex:1}
.timeline-form{display:grid;gap:18px}.timeline-form-section{display:grid;gap:13px}.timeline-form-section h3{margin:0 0 2px;font-size:13px}.timeline-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px}.timeline-form-field{display:grid;gap:6px}.timeline-form-field>span{color:#706c66;font-size:11px;font-weight:800}.timeline-form-field input,.timeline-form-field select,.timeline-form-field textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #ddd7d0;border-radius:10px;background:#fff;color:#34332f;font:inherit}.timeline-form-field textarea{min-height:94px;resize:vertical}.timeline-details{display:grid;gap:0;margin:0}.timeline-details div{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid #eee9e4}.timeline-details div:last-child{border-bottom:0}.timeline-details dt{color:#817d77;font-size:12px;font-weight:800}.timeline-details dd{margin:0;color:#3e3c37;font-size:13px;white-space:pre-wrap}
@media(max-width:1100px){.timeline-overview{grid-template-columns:repeat(4,minmax(120px,1fr));overflow-x:auto}}
@media(max-width:900px){.timeline-hero{padding:24px 3% 18px}.timeline-content{width:94%;padding:20px 0 40px}.timeline-toolbar{align-items:stretch;flex-direction:column}.timeline-toolbar-filters{justify-content:stretch}.timeline-search{width:100%;flex:1}}
@media(max-width:600px){.timeline-hero{grid-template-columns:1fr;padding:20px 4% 18px}.timeline-title-row{grid-template-columns:50px minmax(0,1fr);gap:12px}.timeline-title-row h1{font-size:34px}.timeline-title-row p{font-size:11px}.timeline-title-icon{width:46px;height:46px;font-size:21px}.timeline-hero-total{text-align:left}.timeline-hero-total strong{font-size:38px}.timeline-content{width:94%;padding:16px 0 34px}.timeline-toolbar-filters{flex-direction:column}.timeline-filter{justify-content:space-between}.timeline-overview{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 22px;border-radius:16px;overflow:hidden}.timeline-overview article{min-height:61px;padding:11px 12px;border-right:1px solid #e6dfda;border-bottom:1px solid #e6dfda}.timeline-overview article:nth-child(2n){border-right:0}.timeline-overview article:nth-last-child(-n+2){border-bottom:0}.timeline-overview span{margin-bottom:7px;font-size:8px}.timeline-overview strong{font-size:21px;font-weight:600}.timeline-overview strong.is-date{font-size:15px}.timeline-overview small{margin-top:5px;font-size:7px}.timeline-list-head{align-items:flex-start;flex-direction:column;gap:7px}.timeline-card{grid-template-columns:66px 20px minmax(0,1fr) 36px;min-height:104px;padding-right:9px}.timeline-time strong{font-size:17px}.timeline-card-copy{padding:4px 8px}.timeline-card-title{align-items:flex-start;flex-direction:column;gap:5px}.timeline-card-title h3{font-size:14px}.timeline-dialog{width:calc(100vw - 16px);max-height:94vh}.timeline-dialog-frame{max-height:94vh}.timeline-dialog header,.timeline-dialog-body,.timeline-dialog footer{padding-left:16px;padding-right:16px}.timeline-form-grid{grid-template-columns:1fr}.timeline-dialog footer{flex-wrap:wrap}.timeline-dialog-spacer{display:none}.timeline-dialog footer button{flex:1}.timeline-dialog footer .timeline-delete{flex-basis:100%}.timeline-details div{grid-template-columns:1fr;gap:4px}}

.timeline-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.timeline-list-actions>span{color:#77736d;font-size:12px;font-weight:800}.timeline-list-actions button{min-height:38px;padding:0 14px;border:1px solid #d8d2cb;border-radius:10px;background:#fff;color:#57544f;font:700 11px Arial,sans-serif;cursor:pointer}.timeline-list-actions button:before{content:"⇩";margin-right:7px;color:#af7480;font-size:15px}
.timeline-export-dialog{width:min(980px,calc(100vw - 30px));max-height:94vh;padding:0;border:0;border-radius:19px;background:#f4f0ec;box-shadow:0 28px 90px rgba(35,30,28,.28)}.timeline-export-dialog::backdrop{background:rgba(28,25,23,.48)}.timeline-export-frame{display:flex;max-height:94vh;flex-direction:column}.timeline-export-dialog header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e3dcd6;background:#fff}.timeline-export-dialog header span{color:#7d8866;font-size:9px;font-weight:900;letter-spacing:.13em}.timeline-export-dialog header h2{margin:4px 0 0;font:400 25px Georgia,serif}.timeline-export-dialog header p{margin:5px 0 0;color:#8a8580;font-size:11px}.timeline-export-dialog header button{width:36px;height:36px;border:1px solid #e3ddd6;border-radius:10px;background:#fff;font-size:22px;cursor:pointer}.timeline-export-preview{min-height:0;overflow:auto;padding:22px;background:#ece8e4;text-align:center}.timeline-export-preview canvas{display:block;width:min(100%,800px);height:auto;margin:0 auto;background:#fff;box-shadow:0 14px 35px rgba(55,47,43,.16)}.timeline-export-dialog footer{display:flex;align-items:center;gap:9px;padding:14px 22px;border-top:1px solid #e3dcd6;background:#fff}.timeline-export-dialog footer>span{margin-right:auto;color:#858079;font-size:11px}.timeline-export-dialog footer button{min-height:40px;padding:0 15px;border:1px solid #ddd7d0;border-radius:10px;background:#fff;font:700 12px Arial,sans-serif;cursor:pointer}.timeline-export-dialog footer .timeline-save{border-color:#7f8962;background:#7f8962;color:#fff}
@media(max-width:600px){.timeline-list-actions{width:100%;justify-content:space-between}.timeline-list-actions button{min-height:36px}.timeline-export-dialog{width:calc(100vw - 12px);max-height:96vh}.timeline-export-frame{max-height:96vh}.timeline-export-dialog header{padding:14px}.timeline-export-preview{padding:10px}.timeline-export-dialog footer{padding:11px 12px;flex-wrap:wrap}.timeline-export-dialog footer>span{width:100%;margin:0 0 2px;text-align:center}.timeline-export-dialog footer button{flex:1}}

@media print{
  @page{size:A4 landscape;margin:0}
  html,body{margin:0;background:#fff}
  .timeline-print-export{position:fixed;inset:0;z-index:2147483647;width:100vw;height:100vh;background:#fff}
  .timeline-print-export .timeline-shell{min-height:0;background:#fff}
  .timeline-print-export .timeline-shell>*:not(.timeline-export-dialog){display:none}
  .timeline-print-export .timeline-export-dialog{display:block;position:fixed;inset:0;width:297mm;max-width:none;height:210mm;max-height:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:#fff}
  .timeline-print-export .timeline-export-frame{display:block;max-height:none}
  .timeline-print-export .timeline-export-dialog header,.timeline-print-export .timeline-export-dialog footer{display:none}
  .timeline-print-export .timeline-export-preview{display:grid;width:297mm;height:210mm;padding:0;overflow:hidden;place-items:center;background:#fff}
  .timeline-print-export .timeline-export-preview canvas{display:block;width:297mm;height:210mm;margin:0;box-shadow:none}
}

/* Homologación visual: Checklist / Presupuesto / Proveedores / Invitados */
.timeline-button{height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border:1px solid #e4ded9;border-radius:13px;background:#fff;color:#37373a;font:750 10px/1 Arial,sans-serif;white-space:nowrap}.timeline-primary{border-color:#849168;background:#849168;color:#fff}.timeline-primary b{margin:0;font-size:18px;font-weight:400;line-height:1}
.timeline-search,.timeline-filter{height:44px;min-height:44px;border-color:#e4ded9;border-radius:13px;font:10px/1 Arial,sans-serif}.timeline-search input,.timeline-filter select{font:10px Arial,sans-serif}.timeline-filter span{font-size:8px;font-weight:750;letter-spacing:.03em}
.timeline-list-head h2{font:500 19px/1.1 Georgia,serif}.timeline-list-head p{font-size:10px}.timeline-list-actions>span{font-size:9px;font-weight:400}.timeline-list-actions button{height:40px;min-height:40px;padding:0 13px;border:1px solid #e4ded9;border-radius:11px;background:#fff;color:#66734e;font:750 9px/1 Arial,sans-serif}.timeline-list-actions button:before{margin-right:6px;font-size:16px}
.timeline-card{min-height:86px;border-radius:18px}.timeline-time strong{font-size:18px}.timeline-time span{font-size:8px}.timeline-card-title h3{font-size:18px;font-weight:500}.timeline-status{padding:4px 7px;font-size:7px;font-weight:800}.timeline-responsible,.timeline-notes{font-size:9px}.timeline-card-action{width:38px;height:38px;border-radius:50%;background:#fff;color:#b16f7c;font-size:18px}
.timeline-read-state{font-size:9px}.timeline-empty p{font-size:10px}
.timeline-dialog header span{font-size:10px;font-weight:800;letter-spacing:.15em}.timeline-dialog header button{width:34px;height:34px;border:0;border-radius:50%;background:#f4f1ed;color:#383531}.timeline-dialog footer button{min-height:42px;padding:0 15px;border-radius:11px;font:750 11px/1 Arial,sans-serif}.timeline-form-section h3{font-size:10px}.timeline-form-field>span{font-size:10px;font-weight:700}.timeline-form-field input,.timeline-form-field select,.timeline-form-field textarea{border-radius:11px;font:13px Arial,sans-serif}.timeline-details dt{font-size:9px}.timeline-details dd{font-size:11px}
.timeline-export-dialog header button{width:34px;height:34px;border:0;border-radius:50%;background:#f4f1ed}.timeline-export-dialog footer button{min-height:42px;padding:0 15px;border-radius:11px;font:750 11px/1 Arial,sans-serif}
@media(max-width:600px){
  .timeline-eyebrow{margin-bottom:10px;font-size:8px;letter-spacing:.13em}.timeline-title-row{grid-template-columns:38px minmax(0,1fr);gap:12px}.timeline-title-icon{width:38px;height:38px;border-radius:12px;font-size:18px}.timeline-title-row h1{font-size:30px;font-weight:400;letter-spacing:-.035em}.timeline-title-row p{margin-top:7px;font-size:10.5px;line-height:1.4}.timeline-hero-total strong{font-size:35px}.timeline-hero-total span,.timeline-hero-total small{font-size:9.5px}
  .timeline-button{width:100%;height:40px;min-height:40px;padding:0 11px;border-radius:11px;font-size:9px}.timeline-primary b{font-size:16px}.timeline-search,.timeline-filter{height:42px;min-height:42px;border-radius:12px}.timeline-search input,.timeline-filter select{font-size:10px}
  .timeline-list-head h2{font-size:18px}.timeline-list-head p{font-size:9px;line-height:1.4}.timeline-list-actions>span{font-size:8px}.timeline-list-actions button{height:36px;min-height:36px;padding:0 11px;border-radius:10px;font-size:8px}
  .timeline-card{min-height:82px;padding:11px 9px 11px 4px;border-radius:16px}.timeline-time strong{font-size:16px}.timeline-card-title h3{font-size:16px}.timeline-card-action{width:34px;height:34px;font-size:16px}.timeline-responsible,.timeline-notes{font-size:8px}
  .timeline-dialog header span{font-size:8px;letter-spacing:.13em}.timeline-dialog h2{font-size:24px}.timeline-dialog header button{width:32px;height:32px}.timeline-dialog footer button{min-height:38px;padding:0 12px;border-radius:10px;font-size:10px}.timeline-form-field>span{font-size:9px}.timeline-form-field input,.timeline-form-field select{min-height:38px;padding:0 10px;border-radius:10px;font-size:16px}.timeline-form-field textarea{min-height:66px;padding:8px 10px;border-radius:10px;font-size:16px}
  .timeline-export-dialog footer button{min-height:38px;padding:0 12px;border-radius:10px;font-size:10px}
}
