:root{
  --gltf-blue:#123d5a;
  --gltf-red:#e54b4b;
  --gltf-muted:#65727b;
  --gltf-line:rgba(18,61,90,.13);
  --gltf-shadow-sm:0 8px 24px rgba(18,43,61,.07);
  --gltf-radius-md:18px;
}

.gltf-pulse{width:8px;height:8px;border-radius:50%;background:#45a56a;box-shadow:0 0 0 5px #dff1e5}
.gltf-home-strip{padding:9px 0;border:0;background:transparent}
.gltf-home-strip>.wrap{position:relative;padding:28px;overflow:hidden;border:1px solid var(--gltf-line);border-radius:var(--gltf-radius-md);background:rgba(255,253,249,.91);box-shadow:var(--gltf-shadow-sm)}
.gltf-home-strip>.wrap:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--gltf-red)}

/* Homepage service directory */
.gltf-module-directory{padding:18px 0 34px}
.gltf-module-directory>.wrap{padding:31px}
.gltf-module-directory>.wrap:before{background:linear-gradient(180deg,#e95454,#e5ad48)}
.gltf-module-directory-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:24px}
.gltf-module-directory-head>div:first-child>span{color:var(--gltf-red);font-size:10px;font-weight:900;letter-spacing:.14em}
.gltf-module-directory-head h2{margin:7px 0 6px;font:800 28px/1.25 Georgia,"Songti SC",serif}
.gltf-module-directory-head p{margin:0;color:var(--gltf-muted);font-size:13px}
.gltf-directory-weather{display:flex;flex:0 0 auto;gap:9px;align-items:center;padding:10px 13px;border:1px solid var(--gltf-line);border-radius:999px;background:#fff}
.gltf-directory-weather b,.gltf-directory-weather small{font-size:11px}
.gltf-directory-weather strong{color:var(--gltf-red);font:800 18px/1 Georgia}
.gltf-directory-weather small{max-width:135px;overflow:hidden;color:var(--gltf-muted);white-space:nowrap;text-overflow:ellipsis}
.gltf-directory-weather[data-live-health="loading"] .gltf-pulse{background:#e6ad45;box-shadow:0 0 0 5px rgba(230,173,69,.16)}
.gltf-directory-weather[data-live-health="error"] .gltf-pulse{background:#d94b4b;box-shadow:0 0 0 5px rgba(217,75,75,.14)}
.gltf-module-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gltf-module-directory-grid>article{min-width:0;padding:18px;border:1px solid var(--gltf-line);border-radius:14px;background:#fff}
.gltf-module-directory-grid header{display:grid;grid-template-columns:39px 1fr;gap:11px;align-items:start;padding-bottom:14px;border-bottom:1px solid #e6e9e7}
.gltf-module-directory-grid header>i{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#e9f2f3;color:#176b79;font-style:normal;font-weight:900}
.gltf-module-directory-grid .tone-today header>i{background:#fff0e7;color:#bd5a35}
.gltf-module-directory-grid .tone-plan header>i{background:#e8f0fa;color:#315f91}
.gltf-module-directory-grid .tone-explore header>i{background:#f0ecf6;color:#6f4e89}
.gltf-module-directory-grid .tone-service header>i{background:#e9f3eb;color:#3a7352}
.gltf-module-directory-grid header span{color:#8a989e;font-size:8px;font-weight:900;letter-spacing:.1em}
.gltf-module-directory-grid h3{margin:2px 0;font:800 18px/1.3 Georgia,"Songti SC",serif}
.gltf-module-directory-grid header p{margin:0;color:var(--gltf-muted);font-size:9px;line-height:1.45}
.gltf-module-primary{display:grid;margin-top:7px}
.gltf-module-directory-grid a{display:flex;justify-content:space-between;gap:8px;align-items:center;min-width:0;padding:10px 2px;border-bottom:1px solid #edf0ee}
.gltf-module-directory-grid a:last-child{border-bottom:0}
.gltf-module-directory-grid a:hover{padding-left:6px;color:#b73e42}
.gltf-module-directory-grid a span{min-width:0}
.gltf-module-directory-grid a b,.gltf-module-directory-grid a small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gltf-module-directory-grid a b{font-size:11px}
.gltf-module-directory-grid a small{margin-top:2px;color:var(--gltf-muted);font-size:8px}
.gltf-module-directory-grid a em{flex:0 0 auto;padding:3px 5px;border-radius:999px;background:#eef3f2;color:#66787e;font-size:7px;font-style:normal;font-weight:900}
.gltf-module-directory-grid .tone-today a em{background:#fff0e7;color:#a75838}
.gltf-module-directory-grid .tone-plan a em{background:#e8f0fa;color:#315f91}
.gltf-module-directory-grid .tone-explore a em{background:#f0ecf6;color:#6f4e89}
.gltf-module-directory-grid .tone-service a em{background:#e9f3eb;color:#3a7352}
.gltf-directory-more{margin-top:5px;border-top:1px solid #e6e9e7}
.gltf-directory-more>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:39px;padding:9px 2px;color:#526a74;font-size:9px;font-weight:900;list-style:none;cursor:pointer}
.gltf-directory-more>summary::-webkit-details-marker{display:none}
.gltf-directory-more>summary:after{content:"＋";display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#edf2f1;color:#315563;font-size:12px}
.gltf-directory-more[open]>summary:after{content:"−"}
.gltf-directory-more>summary span{margin-left:auto;padding:2px 6px;border-radius:999px;background:#f1f3f2;color:#77868b;font-size:7px}
.gltf-directory-more>div{display:grid;border-top:1px dashed #e2e7e5}
.gltf-directory-lazy-status{margin:0;padding:16px 10px;color:#718087;font-size:9px;text-align:center}
.gltf-directory-lazy-status.is-loading:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border:2px solid #b8c9c9;border-top-color:#176778;border-radius:50%;vertical-align:-2px;animation:gltf-directory-spin .7s linear infinite}
.gltf-directory-lazy-retry{margin:10px;border:1px solid #b9cccd;border-radius:8px;padding:9px;background:#fff;color:#176778;font-size:9px;font-weight:900;cursor:pointer}
@keyframes gltf-directory-spin{to{transform:rotate(360deg)}}

/* Nearby entry */
.gltf-nearby-now{padding:8px 0 42px}
.gltf-nearby-now>.wrap{padding:24px;border:1px solid rgba(18,61,90,.12);border-radius:20px;background:linear-gradient(135deg,#143d57,#1b5b6b);color:#fff;box-shadow:0 18px 42px rgba(18,43,61,.14)}
.gltf-nearby-now-head{display:flex;align-items:center;justify-content:space-between;gap:24px}
.gltf-nearby-now-head span{color:#86d4df;font-size:9px;font-weight:900;letter-spacing:.16em}
.gltf-nearby-now-head h2{margin:5px 0 0;font:800 27px/1.2 Georgia,"Songti SC",serif}
.gltf-nearby-now-head button{border:1px solid rgba(255,255,255,.3);border-radius:11px;padding:10px 14px;background:rgba(255,255,255,.1);color:#fff;font-weight:800;cursor:pointer}
.gltf-nearby-now-status{margin:10px 0 17px;color:#c6dce3;font-size:11px}
.gltf-nearby-now-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.gltf-nearby-now-grid a{padding:15px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.075)}
.gltf-nearby-now-grid a:hover{transform:translateY(-2px);background:rgba(255,255,255,.13)}
.gltf-nearby-now-grid small,.gltf-nearby-now-grid b,.gltf-nearby-now-grid span{display:block}
.gltf-nearby-now-grid small{color:#87d5df;font-size:9px;font-weight:800}
.gltf-nearby-now-grid b{margin-top:5px}
.gltf-nearby-now-grid span{margin-top:3px;color:#c1d4dc;font-size:10px;line-height:1.5}

/* Today action card */
.gltf-my-today{width:min(1180px,calc(100% - 40px));margin:12px auto 28px;padding:28px;border:1px solid rgba(18,61,90,.14);border-radius:22px;background:linear-gradient(145deg,#fffdf9,#edf5f4);box-shadow:0 16px 42px rgba(18,43,61,.09)}
.gltf-my-today [hidden]{display:none!important}
.gltf-my-today-head{display:flex;align-items:center;justify-content:space-between;gap:24px}
.gltf-my-today-head span{color:#df474d;font-size:9px;font-weight:900;letter-spacing:.15em}
.gltf-my-today-head h2{margin:5px 0 4px;color:#173d51;font:800 29px/1.2 Georgia,"Songti SC",serif}
.gltf-my-today-head p{margin:0;color:#67777f;font-size:11px}
.gltf-my-today-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.gltf-my-today-head-actions a,.gltf-my-today-head-actions button,.gltf-my-today-profile button{border:1px solid #174f63;border-radius:10px;padding:10px 14px;background:#174f63;color:#fff;font-size:10px;font-weight:900;cursor:pointer}
.gltf-my-today-head-actions a{background:#fff;color:#174f63}
.gltf-action-summary{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:12px;margin-top:18px}
.gltf-action-summary>div,.gltf-action-summary>p{margin:0;border-radius:14px;padding:17px 19px}
.gltf-action-summary>div{border-left:5px solid #df4b50;background:#fff}
.gltf-action-summary small{display:block;color:#df4b50;font-size:8px;font-weight:900;letter-spacing:.14em}
.gltf-action-summary h3{margin:6px 0 0;color:#173d51;font:800 18px/1.45 Georgia,"Songti SC",serif}
.gltf-action-summary>p{display:grid;align-content:center;gap:5px;background:#fff3df}
.gltf-action-summary>p strong{color:#935d14;font-size:9px}
.gltf-action-summary>p span{color:#6d5a3d;font-size:10px;line-height:1.55}
.gltf-journey-stage{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(420px,1.6fr) auto;gap:18px;align-items:center;margin-top:20px;padding:17px 18px;border-radius:15px;background:#173f54;color:#fff}
.gltf-journey-stage-copy small,.gltf-journey-stage-copy strong,.gltf-journey-stage-copy span{display:block}
.gltf-journey-stage-copy small{color:#87d5d2;font-size:8px;font-weight:900;letter-spacing:.12em}
.gltf-journey-stage-copy strong{margin:4px 0;color:#fff;font:800 18px/1.25 Georgia,"Songti SC",serif}
.gltf-journey-stage-copy span{color:#c2d8dc;font-size:8px;line-height:1.5}
.gltf-journey-stage-track{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.gltf-journey-stage-track:before{content:"";position:absolute;left:10%;right:10%;top:16px;height:2px;background:rgba(255,255,255,.18)}
.gltf-journey-stage-track button{position:relative;z-index:1;display:grid;justify-items:center;gap:5px;border:0;background:transparent;color:#c5d7da;font-size:8px;font-weight:900;cursor:pointer}
.gltf-journey-stage-track i{display:grid;width:33px;height:33px;place-items:center;border:2px solid rgba(255,255,255,.3);border-radius:50%;background:#173f54;color:#fff;font-style:normal;transition:.2s}
.gltf-journey-stage-track button.active{color:#fff}
.gltf-journey-stage-track button.active i{border-color:#f4b45d;background:#f4b45d;color:#173f54;box-shadow:0 0 0 5px rgba(244,180,93,.14)}
.gltf-stage-auto{border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:8px 10px;background:transparent;color:#fff;font-size:8px;font-weight:900;cursor:pointer}
.gltf-my-today-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px;padding:20px;border:1px solid rgba(18,61,90,.13);border-radius:16px;background:#fff}
.gltf-my-today-form>label{display:grid;gap:6px;color:#61727a;font-size:10px;font-weight:800}
.gltf-my-today-form input[type=date],.gltf-my-today-form input[type=time],.gltf-my-today-form select{width:100%;min-height:43px;border:1px solid #c9d4d3;border-radius:8px;background:#fff;padding:8px 10px;color:#183c4d}
.gltf-my-today-form fieldset{grid-column:1/-1;margin:0;padding:0;border:0}
.gltf-my-today-form legend{margin-bottom:8px;color:#61727a;font-size:10px;font-weight:800}
.gltf-my-today-interests{display:flex;flex-wrap:wrap;gap:7px}
.gltf-my-today-interests label{position:relative;cursor:pointer}
.gltf-my-today-interests input{position:absolute;opacity:0}
.gltf-my-today-interests span{display:block;border:1px solid #cbd7d5;border-radius:999px;padding:7px 11px;background:#f9fbfa;color:#355563;font-size:10px;font-weight:800}
.gltf-my-today-interests input:checked+span{border-color:#176879;background:#176879;color:#fff}
.gltf-my-today-form-actions{grid-column:1/-1;display:flex;gap:8px}
.gltf-my-today-form-actions button{border:1px solid #174f63;border-radius:9px;padding:10px 14px;background:#174f63;color:#fff;font-size:10px;font-weight:900;cursor:pointer}
.gltf-my-today-form-actions .secondary{background:#fff;color:#174f63}
.gltf-my-today-profile{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:10px 12px;border-radius:10px;background:#e2efec;color:#27594f;font-size:10px;font-weight:800}
.gltf-my-today-profile button{padding:6px 9px;background:#fff;color:#174f63}
.gltf-my-today-live{margin-top:16px}
.gltf-my-today-live.is-ready{display:none}
.gltf-my-today-loading{padding:16px;border-radius:10px;background:#edf2f2;color:#64757d;font-size:10px;text-align:center}
.gltf-my-today-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}
.gltf-my-today-grid>a{min-width:0;padding:16px;border:1px solid rgba(18,61,90,.12);border-top:4px solid #1b7280;border-radius:12px;background:#fff;transition:.2s}
.gltf-my-today-grid>a:nth-child(2){border-top-color:#d84b50}
.gltf-my-today-grid>a:nth-child(3){border-top-color:#d1932f}
.gltf-my-today-grid>a:nth-child(4){border-top-color:#32775b}
.gltf-my-today-grid>a:hover{transform:translateY(-2px);box-shadow:0 9px 24px rgba(18,43,61,.08)}
.gltf-my-today-grid small,.gltf-my-today-grid strong,.gltf-my-today-grid span{display:block}
.gltf-my-today-grid small{color:#718087;font-size:8px;font-weight:900;letter-spacing:.06em}
.gltf-my-today-grid strong{overflow-wrap:anywhere;margin:8px 0 5px;color:#183d4f;font:800 18px/1.35 Georgia,"Songti SC",serif}
.gltf-my-today-grid span{color:#6a7980;font-size:9px;line-height:1.55}
.gltf-action-plan-head{display:flex;align-items:center;gap:9px;margin-top:18px}
.gltf-action-plan-head span{border-radius:999px;padding:5px 8px;background:#dff0ee;color:#176778;font-size:8px;font-weight:900}
.gltf-action-plan-head strong{color:#173d51;font-size:11px}
.gltf-my-today-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px}
.gltf-my-today-actions>a{display:flex;min-height:105px;flex-direction:column;padding:15px;border:1px solid rgba(18,61,90,.12);border-radius:12px;background:#f8faf8}
.gltf-my-today-actions>a.primary{background:#173f54;color:#fff}
.gltf-my-today-actions small,.gltf-my-today-actions strong,.gltf-my-today-actions span{display:block}
.gltf-my-today-actions small{color:#dc4b51;font-size:8px;font-weight:900}
.gltf-my-today-actions .primary small{color:#83d0dc}
.gltf-my-today-actions strong{margin:6px 0;font-size:12px;line-height:1.45}
.gltf-my-today-actions span{margin-top:auto;color:#6b7a81;font-size:9px;line-height:1.45}
.gltf-my-today-actions .primary span{color:#c6d8de}
.gltf-my-today-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:15px;padding-top:13px;border-top:1px solid rgba(18,61,90,.1);color:#6c7a81;font-size:9px}
.gltf-my-today-foot [data-action-health]:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#d49a35}
.gltf-my-today-foot [data-action-health="ok"]:before{background:#36a46f}
.gltf-my-today-foot [data-action-health="error"]:before{background:#d4484d}
.gltf-my-today-foot a{color:#176778;font-weight:900}

@media(max-width:1100px){.gltf-module-directory-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
  .gltf-home-strip>.wrap{padding:24px}
  .gltf-nearby-now-grid{grid-template-columns:1fr 1fr}
  .gltf-journey-stage{grid-template-columns:1fr}
  .gltf-stage-auto{justify-self:start}
  .gltf-my-today-form{grid-template-columns:1fr 1fr}
  .gltf-my-today-grid,.gltf-my-today-actions{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .gltf-home-strip{padding:6px 0}
  .gltf-home-strip>.wrap{width:calc(100% - 20px);padding:21px 17px;border-radius:15px}
  .gltf-module-directory>.wrap{padding:22px 17px}
  .gltf-module-directory-head{align-items:flex-start;flex-direction:column;gap:17px}
  .gltf-module-directory-head h2{font-size:24px}
  .gltf-directory-weather{width:100%;border-radius:11px}
  .gltf-directory-weather small{margin-left:auto}
  .gltf-module-directory-grid{display:flex;align-items:flex-start;gap:10px;overflow-x:auto;margin-right:-17px;padding:0 17px 8px 0;scroll-padding-left:0;scroll-snap-type:x proximity;scrollbar-width:thin}
  .gltf-module-directory-grid>article{flex:0 0 min(84vw,330px);scroll-snap-align:start}
}
@media(max-width:600px){
  .gltf-my-today{width:calc(100% - 20px);margin:8px auto 22px;padding:20px 16px;border-radius:17px}
  .gltf-my-today-head{align-items:flex-start;flex-direction:column;gap:12px}
  .gltf-my-today-head h2{font-size:25px}
  .gltf-my-today-head-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}
  .gltf-my-today-head-actions a,.gltf-my-today-head-actions button{text-align:center}
  .gltf-action-summary{grid-template-columns:1fr}
  .gltf-action-summary>div,.gltf-action-summary>p{padding:15px}
  .gltf-action-summary h3{font-size:16px}
  .gltf-journey-stage{gap:14px;margin-top:16px;padding:16px 12px}
  .gltf-journey-stage-track{grid-template-columns:1fr 1fr;gap:12px}
  .gltf-journey-stage-track:before{display:none}
  .gltf-journey-stage-track button{min-height:62px;padding:8px;border:1px solid rgba(255,255,255,.13);border-radius:9px}
  .gltf-journey-stage-track i{width:29px;height:29px}
  .gltf-my-today-form,.gltf-my-today-grid,.gltf-my-today-actions{grid-template-columns:1fr}
  .gltf-my-today-form{padding:16px}
  .gltf-my-today-form-actions{display:grid}
  .gltf-my-today-profile,.gltf-my-today-foot{align-items:flex-start;flex-direction:column}
  .gltf-my-today-grid>a{padding:14px}
  .gltf-my-today-actions>a{min-height:88px}
}
@media(max-width:560px){
  .gltf-nearby-now{padding:5px 0 30px}
  .gltf-nearby-now>.wrap{width:calc(100% - 20px);padding:19px 16px;border-radius:16px}
  .gltf-nearby-now-head{align-items:flex-start;flex-direction:column;gap:12px}
  .gltf-nearby-now-head h2{font-size:23px}
  .gltf-nearby-now-grid{grid-template-columns:1fr 1fr;gap:7px}
  .gltf-nearby-now-grid a{padding:13px 11px}
}
@media(prefers-reduced-motion:reduce){.gltf-directory-lazy-status.is-loading:before{animation:none}.gltf-module-directory-grid a,.gltf-nearby-now-grid a,.gltf-my-today-grid>a{transition:none}}
