/* Add after the existing stylesheets. Keeps existing authentication styling. */
.tm-hamburger { display:block; }
.menu summary { list-style:none; display:flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; }
.menu summary::-webkit-details-marker { display:none; }
.tm-workspace { background:#f3f8fd; min-height:75vh; }
.tm-layout { display:grid; grid-template-columns:218px minmax(0,1fr); gap:38px; width:min(1370px,calc(100% - 64px)); margin:auto; }
.tm-sidebar { padding:38px 20px 40px 0; border-right:1px solid #dae8f5; }
.tm-sidebar .eyebrow { font-size:10px; margin:0 0 20px; }
.tm-sidebar nav { display:flex; flex-direction:column; gap:5px; }
.tm-sidebar nav a { padding:11px 16px; border-radius:10px; color:#42617f; font-size:14px; text-decoration:none; }
.tm-sidebar nav a:hover { background:#eaf5ff; }
.tm-sidebar nav a[aria-current="page"] { background:#1677e8; color:#fff; font-weight:700; box-shadow:0 5px 16px #1677e824; }
.tm-sidebar-note { padding:22px 15px; margin-top:30px; border-top:1px solid #dae8f5; color:#58738f; font-size:13px; line-height:1.8; }
.tm-content { min-width:0; padding:40px 0 56px; }
.tm-title { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.tm-title h1 { font-size:clamp(30px,4vw,43px); line-height:1.16; margin:10px 0 12px; letter-spacing:-.035em; }
.tm-content > h1 { font-size:clamp(30px,4vw,43px); line-height:1.16; margin:12px 0 20px; }
.tm-title p { margin:0; max-width:650px; font-size:15px; }
.tm-title > .button { flex-shrink:0; }
.tm-card { background:#fff; border:1px solid #dce9f6; border-radius:18px; padding:24px; min-width:0; box-shadow:0 6px 24px #0b3c9104; }
.tm-card h2 { font-size:23px; line-height:1.25; margin:0 0 18px; }
.tm-card h3 { font-size:19px; line-height:1.35; margin:14px 0 8px; overflow-wrap:anywhere; }
.tm-card p { font-size:14px; line-height:1.65; }
.tm-card .small { font-size:12px; }
.tm-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:24px; }
.tm-stats span { display:block; color:#58738f; font-size:13px; }
.tm-stats strong { display:block; font-size:34px; margin-top:12px; line-height:1.2; }
.tm-stats .tm-money { font-size:clamp(20px,2.6vw,29px); overflow-wrap:anywhere; }
.tm-feature { padding:34px; border-radius:20px; background:linear-gradient(125deg,#0b3c91,#1677e8); display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 34px; color:#fff; }
.tm-feature h2 { color:#fff; font-size:clamp(28px,3.2vw,40px); margin:14px 0; line-height:1.15; }
.tm-feature p,.tm-feature .eyebrow { color:#eaf5ff; }
.tm-feature .button { background:#fff; color:#0b3c91; box-shadow:none; }
.tm-compass { display:grid; place-items:center; width:180px; height:180px; flex-shrink:0; border:1px solid #ffffff40; border-radius:50%; background:#ffffff0a; }
.tm-compass img { width:100px; height:100px; }
.tm-section-title { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 18px; }
.tm-section-title h2 { margin:0; font-size:24px; }
.tm-card .tm-section-title { margin-top:0; }
.tm-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.tm-grid .tm-empty { grid-column:1 / -1; }
.tm-trip-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:16px; border-top:1px solid #eaf0f7; font-size:12px; }
.tm-trip-bottom .button { padding:10px 12px; min-height:44px; font-size:12px; }
.tm-empty { text-align:center; padding:32px 20px; border:1px dashed #c8daed; border-radius:16px; background:#fff; }
.tm-empty > span { font-size:30px; color:#1677e8; }
.tm-empty p { margin:12px 0 18px; }
.tm-warning { color:#9c2c20; }
.tm-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.tm-form-grid > :first-child { grid-column:1/-1; }
#tm-plan-form > .tm-card { margin-bottom:20px; }
.tm-content label { display:block; font-size:13px; font-weight:600; color:#173b60; }
.tm-content input:not([type="checkbox"]), .tm-content select, .tm-content textarea { display:block; width:100%; min-width:0; border:1px solid #cbdff3; border-radius:10px; min-height:48px; padding:12px; background:#fff; color:#173b60; font:inherit; margin-top:7px; }
.tm-content textarea { min-height:100px; resize:vertical; }
.tm-content input:focus,.tm-content textarea:focus,.tm-content select:focus { outline:2px solid #1677e8; outline-offset:2px; }
.tm-content input[aria-invalid="true"] { border-color:#dc2626; }
.tm-picker { margin:24px 0; }
.tm-search { display:flex; gap:12px; align-items:end; }
.tm-search input { flex:1; }
.tm-search .button { flex-shrink:0; }
.tm-place-results { display:flex; flex-wrap:wrap; gap:8px; }
.tm-place-option { padding:12px; min-height:44px; background:#eaf5ff; border:1px solid #cbdff3; border-radius:10px; color:#0b3c91; font:inherit; cursor:pointer; }
.tm-quick-places { display:flex; gap:10px; flex-wrap:wrap; margin-top:15px; }
.tm-quick-places:empty { display:none; }
.tm-editor-row { display:grid; grid-template-columns:1fr .7fr 1.4fr 1.4fr 44px; gap:12px; padding:16px 0; border-top:1px solid #e7eff8; align-items:end; }
#tm-packing .tm-editor-row { grid-template-columns:110px 1fr 44px; }
#tm-expenses .tm-editor-row { grid-template-columns:1fr 1.5fr 1fr 44px; }
.tm-check { display:flex!important; align-items:center; gap:8px; min-height:48px; }
.tm-check input { width:20px; height:20px; accent-color:#1677e8; }
.tm-remove { width:44px; height:48px; border:1px solid #f1d5d5; background:#fff7f7; color:#9c2c20; border-radius:10px; font-size:24px; cursor:pointer; }
.tm-save { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:14px; padding:18px; border:1px solid #dce9f6; border-radius:15px; background:#fff; }
.tm-save span { margin-right:auto; color:#526d8b; font-size:13px; }
.tm-agenda { display:flex; align-items:center; gap:22px; padding:20px 0; border-bottom:1px solid #eaf0f7; }
.tm-agenda > div:first-child { flex:0 0 140px; }
.tm-agenda span { display:block; color:#58738f; font-size:13px; margin-top:6px; }
.tm-agenda > div:nth-child(2) { flex:1; min-width:0; }
.tm-agenda h3 { margin:0; }
.tm-agenda p { margin:8px 0 0; }
.tm-weather-now { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-bottom:20px; }
.tm-weather-now h2 { font-size:58px; margin:14px 0; }
.tm-forecast { background:#eaf5ff; padding:18px; border-radius:14px; font-size:13px; }
#tm-explore-result { margin-top:20px; }
.tm-map { display:block; width:100%; height:430px; border:0; border-radius:14px; }
.tm-map-load { min-height:200px; }
.tm-content .profile-grid dd { overflow-wrap:anywhere; }
@media(max-width:1100px) {
  .tm-layout { grid-template-columns:180px minmax(0,1fr); gap:24px; width:calc(100% - 40px); }
  .tm-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tm-editor-row { grid-template-columns:1fr 1fr; }
  .tm-editor-row .tm-remove { grid-column:2; justify-self:end; }
  .tm-compass { width:130px; height:130px; }
}
@media(max-width:760px) {
  .header .actions > .button,.header .actions > .login-link { display:none; }
  .header .brand { font-size:24px; }
  .tm-layout { display:block; width:calc(100% - 32px); }
  .tm-sidebar { display:none; }
  .tm-content { padding-top:26px; }
  .tm-title { flex-direction:column; align-items:flex-start; gap:18px; }
  .tm-title h1 { font-size:32px; }
  .tm-stats { gap:8px; }
  .tm-stats .tm-card { padding:14px 10px; }
  .tm-stats span { font-size:11px; }
  .tm-stats strong { font-size:26px; }
  .tm-grid,.tm-form-grid { grid-template-columns:1fr; }
  .tm-card { padding:20px; }
  .tm-feature { padding:24px; }
  .tm-compass { display:none; }
  .tm-section-title { flex-wrap:wrap; }
  .tm-content input:not([type="checkbox"]),.tm-content textarea,.tm-content select { font-size:16px; }
  .tm-content .button { min-height:46px; }
  #tm-expenses .tm-editor-row { grid-template-columns:1fr 1fr; }
  #tm-packing .tm-editor-row { grid-template-columns:1fr 44px; }
  #tm-packing .tm-check { grid-column:1/-1; }
  .tm-search { gap:8px; }
  .tm-search .button { padding:12px; }
  .tm-save { align-items:stretch; }
  .tm-save span { width:100%; }
  .tm-save .button { flex:1; }
  .tm-agenda { flex-wrap:wrap; gap:14px; }
  .tm-agenda > div:first-child { flex-basis:100%; }
  .tm-weather-now { align-items:flex-start; flex-direction:column; gap:0; }
  .tm-map { height:330px; }
  .tm-content .profile-grid { grid-template-columns:1fr; }
}
