.vt-page{background:#f4f5f0;color:#111318;min-height:70vh}.vt-page *{box-sizing:border-box}.vt-hero{padding:70px 0 38px;background:#0d0f12;color:#fff;overflow:visible}.vt-hero .wrap{position:relative}.vt-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:#d8ff57;font-weight:900}.vt-hero h1{font-size:clamp(2.7rem,7vw,5.8rem);line-height:.92;margin:12px 0 18px;color:#fff}.vt-intro{max-width:760px;font-size:1.08rem;color:#eef0f2;line-height:1.55}.vt-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.vt-pill{padding:9px 14px;border:1px solid #4a4f56;border-radius:999px;color:#fff;background:#1d2024;font-weight:650}.vt-count{background:#d8ff57;color:#0d0f12;border-color:#d8ff57;font-weight:900}.vt-calendar{position:relative;display:inline-block;margin-top:16px}.vt-calbtn,.vt-form button,.vt-upload button,.vt-link{border:0;border-radius:12px;background:#d8ff57;color:#0b0d0f;padding:11px 15px;font-weight:850;cursor:pointer;text-decoration:none}.vt-calbtn:hover,.vt-form button:hover,.vt-upload button:hover,.vt-link:hover{filter:brightness(.95)}.vt-calmenu{position:absolute;z-index:20;left:0;top:48px;min-width:235px;background:#fff;border:1px solid #d4d7ce;border-radius:14px;padding:7px;box-shadow:0 18px 44px rgba(0,0,0,.2)}.vt-calmenu a{display:block;padding:10px 12px;border-radius:9px;text-decoration:none;color:#111318;font-weight:700}.vt-calmenu a:hover{background:#f1f3ed}.vt-main{padding:34px 0 80px}.vt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.vt-card{background:#fff;border:1px solid #d9ddd4;border-radius:22px;padding:22px;box-shadow:0 9px 30px rgba(13,15,18,.06);color:#111318}.vt-card.full{grid-column:1/-1}.vt-card h2{font-size:1.25rem;margin:0 0 5px;color:#111318}.vt-card .lead{color:#555b52;margin:0 0 16px;font-size:.94rem;line-height:1.45}.vt-rooms,.vt-payments,.vt-parking{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.vt-payments{grid-template-columns:repeat(3,minmax(0,1fr))}.vt-mini{background:#f1f3ed;border:1px solid #e0e4da;border-radius:16px;padding:16px;color:#111318}.vt-mini strong{display:block;color:#111318}.vt-mini small{color:#555b52;line-height:1.45}.vt-people{margin-top:9px;color:#22262b}.vt-amount{font-size:1.45rem;font-weight:900;margin:8px 0;color:#111318}.vt-form{display:flex;gap:8px;margin:12px 0}.vt-form input,.vt-upload input[type=text],.vt-namebox input{flex:1;min-width:0;border:1.5px solid #aeb4a7;border-radius:12px;padding:11px 12px;background:#fff;color:#111318}.vt-form input::placeholder,.vt-upload input::placeholder,.vt-namebox input::placeholder{color:#737970;opacity:1}.vt-form input:focus,.vt-upload input:focus,.vt-namebox input:focus{outline:3px solid rgba(216,255,87,.45);border-color:#6f7f2d}.vt-link{display:inline-flex}.vt-list{display:flex;flex-direction:column;gap:8px}.vt-item{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;background:#f1f3ed;border:1px solid #e1e4dc;border-radius:12px;color:#111318}.vt-check{width:22px;height:22px;border-radius:7px;border:1.5px solid #747b70;background:#fff;display:grid;place-items:center;cursor:pointer;flex:none}.vt-item.done .vt-check{background:#d8ff57;border-color:#73852a}.vt-item.done .vt-check:after{content:'✓';font-weight:900;color:#111318}.vt-item.done .vt-text{text-decoration:line-through;color:#5f655d}.vt-text{flex:1;color:#111318}.vt-by{font-size:.78rem;color:#626960;margin-top:3px}.vt-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vt-note{background:#fff8cf;border:1px solid #d8ca74;border-radius:14px;padding:14px;color:#191b1e}.vt-status{font-size:.86rem;color:#3f463e;min-height:1.2em;font-weight:650}.vt-namebox{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:.92rem;color:#20241f}.vt-namebox input{max-width:220px}.vt-empty{color:#646b62;font-size:.92rem}.vt-admin-hint{margin-top:18px;font-size:.82rem;color:#5d645b}.vt-parking .vt-mini{background:#eef5ff;border-color:#d1dff3}.vt-parking dl{margin:12px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:.9rem}.vt-parking dt{font-weight:800;color:#343a40}.vt-parking dd{margin:0;color:#3e454c}.vt-map{display:inline-flex;margin-top:12px;font-weight:800;color:#1a4f91;text-decoration:none}.vt-upload{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:14px 0 20px}.vt-filepick{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 13px;border:1.5px dashed #8f978a;border-radius:12px;background:#f4f6f1;color:#252a24;font-weight:750;cursor:pointer}.vt-filepick input{position:absolute;opacity:0;width:1px;height:1px}.vt-files{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.vt-file{border:1px solid #d9ddd4;border-radius:15px;overflow:hidden;background:#f7f8f4;color:#111318}.vt-thumb{display:block;aspect-ratio:4/3;background:#e8ebe4 center/cover no-repeat;text-decoration:none}.vt-docicon{display:grid;place-items:center;height:100%;font-size:2.7rem}.vt-filebody{padding:12px}.vt-filebody strong{display:block;overflow-wrap:anywhere}.vt-filebody a{color:#194d86;font-weight:800}.vt-filemeta{font-size:.77rem;color:#626960;margin-top:5px}.vt-filelabel{font-size:.9rem;margin-top:5px;color:#343a36}.vt-filepick.has-file{border-style:solid;border-color:#6f7f2d;background:#f2f8db}.vt-uploading{opacity:.65;pointer-events:none}@media(max-width:860px){.vt-files{grid-template-columns:repeat(2,minmax(0,1fr));}.vt-upload{grid-template-columns:1fr 1fr}.vt-upload input[type=text]{grid-column:1/-1}}@media(max-width:760px){.vt-grid,.vt-rooms,.vt-payments,.vt-notes,.vt-parking,.vt-files{grid-template-columns:1fr}.vt-card.full{grid-column:auto}.vt-form{flex-direction:column}.vt-hero{padding-top:52px}.vt-namebox{align-items:flex-start;flex-wrap:wrap}.vt-namebox input{max-width:none;flex-basis:55%}.vt-upload{grid-template-columns:1fr}.vt-upload input[type=text]{grid-column:auto}.vt-calmenu{right:auto;left:0}}

/* V4: dated to-dos + per-task calendars + live sync */
.vt-live-note{font-size:.82rem;opacity:.72;margin:-4px 0 14px;text-align:right}
.vt-todo-form{align-items:flex-end;flex-wrap:wrap}
.vt-todo-form>input[name="text"]{flex:1 1 100%;min-width:0}
.vt-todo-date{display:flex;gap:8px;flex:1 1 100%;flex-wrap:wrap}
.vt-todo-date label{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;flex:1 1 130px}
.vt-todo-date input{width:100%;box-sizing:border-box}
.vt-task-date{font-size:.8rem;font-weight:700;margin-top:5px;opacity:.82}
.vt-task-cal{position:relative;display:inline-block;margin-top:7px}
.vt-task-calbtn{border:1px solid rgba(20,35,40,.22);background:#fff;color:#172126;border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:700;cursor:pointer}
.vt-task-menu{position:absolute;z-index:20;left:0;top:calc(100% + 5px);min-width:190px;background:#fff;border:1px solid rgba(20,35,40,.16);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.12);overflow:hidden}
.vt-task-menu a{display:block;padding:9px 11px;color:#172126;text-decoration:none;font-size:.82rem;white-space:nowrap}
.vt-task-menu a:hover{background:#f4f6f6}
.vt-item.done .vt-task-cal{opacity:.7}

/* V4 mobile spacing cleanup */
.vt-page .wrap{width:min(var(--maxw,1180px),calc(100% - 40px));margin-left:auto;margin-right:auto}
@media(max-width:760px){
  .vt-page .wrap{width:calc(100% - 28px)}
  .vt-hero{padding:38px 0 26px}
  .vt-hero h1{font-size:clamp(2.35rem,14vw,4rem);margin:10px 0 14px}
  .vt-intro{font-size:1rem;line-height:1.5}
  .vt-meta{gap:7px;margin-top:20px}
  .vt-pill{padding:8px 11px;font-size:.86rem}
  .vt-main{padding:22px 0 56px}
  .vt-grid{gap:12px}
  .vt-card{padding:16px;border-radius:17px}
  .vt-card h2{font-size:1.13rem}
  .vt-card .lead{font-size:.9rem;margin-bottom:12px}
  .vt-form{gap:8px;margin:10px 0}
  .vt-form input,.vt-upload input[type=text],.vt-namebox input{width:100%;font-size:16px;padding:11px}
  .vt-form button,.vt-upload button,.vt-calbtn,.vt-link{width:100%;justify-content:center;text-align:center;min-height:44px}
  .vt-calendar{display:block;width:100%}
  .vt-calmenu{left:0;right:0;top:51px;width:100%;min-width:0}
  .vt-namebox{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:10px}
  .vt-namebox input{max-width:none;flex-basis:auto}
  .vt-live-note{text-align:left;margin:0 0 12px}
  .vt-item{padding:10px;gap:9px}
  .vt-notes{gap:8px}
  .vt-note{padding:12px}
  .vt-mini{padding:13px;border-radius:14px}
  .vt-parking dl{grid-template-columns:1fr;gap:2px;margin-top:10px}
  .vt-parking dt{margin-top:7px}
  .vt-upload{gap:8px;margin:12px 0 16px}
  .vt-filepick{width:100%;min-height:44px}
  .vt-files{gap:9px}
  .vt-filebody{padding:10px}
  .vt-todo-date{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .vt-todo-date label{min-width:0}
  .vt-task-menu{left:auto;right:0;max-width:calc(100vw - 44px)}
}
@media(max-width:390px){
  .vt-page .wrap{width:calc(100% - 22px)}
  .vt-card{padding:14px}
  .vt-todo-date{grid-template-columns:1fr}
  .vt-pill{font-size:.8rem}
}

/* V5 — participant assignment for What to bring */
.vt-bring-person{min-height:46px;border:1px solid var(--vt-line,#d9e2e8);border-radius:12px;background:#fff;padding:0 12px;color:inherit;min-width:180px}
.vt-assignee{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:.82rem;font-weight:700;flex-wrap:wrap}
.vt-assignee span{opacity:.72}
.vt-assignee select{min-height:38px;border:1px solid var(--vt-line,#d9e2e8);border-radius:10px;background:#fff;padding:0 10px;color:inherit;max-width:100%}
@media(max-width:640px){.vt-bring-person{width:100%;min-width:0}.vt-assignee{align-items:stretch;flex-direction:column;gap:5px}.vt-assignee select{width:100%}}

/* V6 — day-by-day programme / timeline */
.vt-programme-form{display:grid;grid-template-columns:1fr 1fr 2fr;gap:10px;align-items:end;margin:14px 0 22px}.vt-programme-form label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;font-weight:800;color:#343a36}.vt-programme-form label.wide{grid-column:span 2}.vt-programme-form input{width:100%;min-width:0;border:1.5px solid #aeb4a7;border-radius:12px;padding:11px 12px;background:#fff;color:#111318}.vt-programme-form button{border:0;border-radius:12px;background:#d8ff57;color:#0b0d0f;padding:12px 15px;font-weight:850;cursor:pointer;min-height:44px}.vt-programme{display:flex;flex-direction:column;gap:14px}.vt-day{border:1px solid #dde1d9;border-radius:18px;overflow:hidden;background:#fbfcf9}.vt-day-head{display:flex;align-items:center;gap:13px;padding:13px 15px;background:#eef1e9;border-bottom:1px solid #dde1d9}.vt-day-date{font-size:1.55rem;font-weight:950;line-height:1}.vt-day-meta strong{display:block;font-size:.98rem}.vt-day-meta span{font-size:.8rem;color:#687066}.vt-timeline{position:relative;padding:8px 14px 10px 42px}.vt-timeline:before{content:'';position:absolute;left:23px;top:0;bottom:0;width:2px;background:#d8ddd2}.vt-event{position:relative;padding:12px 4px 12px 0}.vt-event:before{content:'';position:absolute;left:-24px;top:17px;width:10px;height:10px;border-radius:50%;background:#d8ff57;border:2px solid #758424;box-shadow:0 0 0 4px #fbfcf9}.vt-event-time{font-size:.78rem;font-weight:900;color:#66712d;letter-spacing:.02em}.vt-event-title{font-size:1rem;font-weight:900;margin-top:2px;color:#111318}.vt-event-loc,.vt-event-note,.vt-event-by{font-size:.82rem;color:#596057;margin-top:3px}.vt-event-actions{position:relative;display:inline-block;margin-top:7px}.vt-event-calbtn{border:1px solid #cfd5c9;background:#fff;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:800;cursor:pointer}.vt-event-menu{position:absolute;z-index:30;left:0;top:calc(100% + 5px);min-width:190px;background:#fff;border:1px solid #d7dbd2;border-radius:11px;box-shadow:0 12px 30px rgba(0,0,0,.12);overflow:hidden}.vt-event-menu a{display:block;padding:9px 11px;text-decoration:none;color:#172126;font-size:.81rem;white-space:nowrap}.vt-event-menu a:hover{background:#f2f4ef}.vt-day-empty{padding:15px;color:#70766d;font-size:.88rem;font-style:italic}
@media(max-width:760px){.vt-programme-form{grid-template-columns:1fr 1fr;gap:8px}.vt-programme-form label.wide{grid-column:1/-1}.vt-programme-form button{grid-column:1/-1;width:100%}.vt-programme-form input{font-size:16px}.vt-day-head{padding:11px 12px}.vt-day-date{font-size:1.35rem}.vt-timeline{padding-left:38px}.vt-timeline:before{left:20px}.vt-event:before{left:-23px}.vt-event-menu{left:auto;right:0;max-width:calc(100vw - 54px)}}
@media(max-width:390px){.vt-programme-form{grid-template-columns:1fr}.vt-programme-form label.wide,.vt-programme-form button{grid-column:auto}.vt-day-head{gap:9px}.vt-day-date{font-size:1.2rem}}


/* V6.1 — compact programme accordion */
.vt-programme{gap:9px}
.vt-day-head{width:100%;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit;position:relative}
.vt-day-head:hover{background:#e8ece3}
.vt-day-head:focus-visible{outline:3px solid rgba(117,132,36,.28);outline-offset:-3px}
.vt-day-count{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#d8ff57;color:#111318;font-size:.74rem;font-weight:900}
.vt-day-chevron{margin-left:8px;font-size:1.15rem;font-weight:900;transition:transform .18s ease;line-height:1}
.vt-day.is-open .vt-day-chevron{transform:rotate(180deg)}
.vt-day:not(.is-open) .vt-day-head{border-bottom:0}
.vt-day-body[hidden]{display:none!important}
.vt-day.is-open .vt-day-head{border-bottom:1px solid #dde1d9}
@media(max-width:640px){
  .vt-programme{gap:7px}
  .vt-day-head{padding:10px 11px}
  .vt-day-date{font-size:1.15rem;min-width:25px}
  .vt-day-meta strong{font-size:.9rem}
  .vt-day-meta span{font-size:.72rem}
  .vt-day-count{min-width:23px;height:23px;padding:0 7px;font-size:.68rem}
  .vt-day-chevron{margin-left:4px}
}


/* V7 inline editing */
.vt-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.vt-item-head>span{min-width:0;overflow-wrap:anywhere}
.vt-edit-btn{flex:none;border:1px solid #c8cec2;background:#fff;color:#30362f;border-radius:9px;padding:6px 9px;font-size:.78rem;font-weight:800;cursor:pointer;text-decoration:none!important}
.vt-edit-btn:hover{background:#e9ede4}
.vt-item.done .vt-edit-btn{text-decoration:none;color:#30362f}
.vt-item-editing{display:block;background:#f8faf5}
.vt-inline-edit{width:100%;display:grid;gap:10px}
.vt-edit-field{display:grid;gap:5px;font-size:.8rem;font-weight:800;color:#4b5249}
.vt-edit-field input,.vt-edit-field select{width:100%;min-width:0;border:1.5px solid #aeb4a7;border-radius:10px;padding:10px 11px;background:#fff;color:#111318;font:inherit}
.vt-edit-field input:focus,.vt-edit-field select:focus{outline:3px solid rgba(216,255,87,.45);border-color:#6f7f2d}
.vt-edit-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.vt-edit-actions{display:flex;gap:8px;flex-wrap:wrap}
.vt-edit-save,.vt-edit-cancel{border:0;border-radius:10px;padding:9px 12px;font-weight:850;cursor:pointer}
.vt-edit-save{background:#d8ff57;color:#0b0d0f}
.vt-edit-cancel{background:#e8ebe4;color:#252a24}
@media(max-width:640px){.vt-item-head{gap:7px}.vt-edit-btn{padding:6px 8px}.vt-edit-row{grid-template-columns:1fr}.vt-edit-actions>button{flex:1}}

/* V7.1 — mobile programme form fix */
@media (max-width: 760px){
  .vt-programme-form{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
  }
  .vt-programme-form label,
  .vt-programme-form label.wide,
  .vt-programme-form button{
    grid-column:1 / -1;
    width:100%;
    min-width:0;
  }
  .vt-programme-form input,
  .vt-programme-form input[type="date"],
  .vt-programme-form input[type="time"]{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    font-size:16px;
  }
  .vt-programme-form input[type="date"],
  .vt-programme-form input[type="time"]{
    min-height:46px;
  }
}

/* V7.2 — hard mobile containment fix for Safari date/time inputs */
@media (max-width: 760px){
  .vt-card,
  .vt-programme-card,
  .vt-form,
  .vt-programme-form,
  .vt-todo-date,
  .vt-inline-edit,
  .vt-edit-row,
  .vt-programme-form > *,
  .vt-form > *,
  .vt-todo-date > *,
  .vt-edit-row > *{
    min-width:0 !important;
    max-width:100% !important;
  }

  .vt-programme-form,
  .vt-todo-date,
  .vt-edit-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden;
  }

  .vt-programme-form label,
  .vt-programme-form label.wide,
  .vt-todo-date label,
  .vt-edit-field{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden;
  }

  .vt-page input,
  .vt-page select,
  .vt-page textarea,
  .vt-programme-form input,
  .vt-todo-date input,
  .vt-edit-row input,
  .vt-inline-edit input[type="date"],
  .vt-inline-edit input[type="time"]{
    box-sizing:border-box !important;
    display:block !important;
    inline-size:100% !important;
    width:100% !important;
    max-inline-size:100% !important;
    max-width:100% !important;
    min-inline-size:0 !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .vt-programme-form input[type="date"],
  .vt-programme-form input[type="time"],
  .vt-todo-date input[type="date"],
  .vt-todo-date input[type="time"],
  .vt-inline-edit input[type="date"],
  .vt-inline-edit input[type="time"]{
    -webkit-appearance:none !important;
    appearance:none !important;
    min-height:46px;
    font-size:16px !important;
    overflow:hidden !important;
  }

  .vt-form.vt-todo-form{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden;
  }

  .vt-form.vt-todo-form > input[name="text"],
  .vt-form.vt-todo-form > button,
  .vt-todo-date{
    width:100% !important;
    max-width:100% !important;
  }
}
