/* JP COMMUNITY v29 — Soft Premium Minimal
   Deliberate final layer to replace accumulated per-screen decorative overrides.
   Keeps the existing functional DOM and layout hierarchy intact. */
:root{
  --ink:#1e2a25;--sub:#718078;--line:#e5ebe7;--primary:#286c59;
  --surface:#f5f7f4;--v29-white:#ffffff;--v29-tint:#edf3ef;
  --v29-ink:#1e2a25;--v29-muted:#75827a;--v29-green:#286c59;
  --v29-ease:cubic-bezier(.22,.72,.18,1);
  font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',system-ui,sans-serif;
  color:var(--v29-ink);background:#f4f6f3;
  -webkit-font-smoothing:antialiased;
}
html,body{background:#f4f6f3;color:var(--v29-ink);-webkit-text-size-adjust:100%;}
.app{background:#fff;box-shadow:0 16px 55px #1e35201b;}
.top{background:#ffffffef!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important;padding:18px 19px 14px!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{font-size:21px!important;letter-spacing:-.65px!important;font-weight:780!important;color:#20352c;}
.version-badge23{font-size:10px!important;font-weight:700!important;border-radius:5px!important;background:#edf3ee!important;color:#43715f!important;padding:3px 6px!important;vertical-align:middle;}
#subhead,.muted,.small,.footer-note{color:var(--v29-muted)!important}
.panel{padding:18px 18px 26px!important;min-width:0;}
.title,.section{color:#26372e;letter-spacing:-.35px}
.title{font-size:20px!important;font-weight:760!important;}
.section{font-size:14px!important;font-weight:730!important;margin-top:23px;}
.card,.media-card,.vehicle-card{background:#fff!important;border:1px solid #e8ede9!important;box-shadow:0 2px 12px #22372a08!important;border-radius:16px!important;}
.card{padding:16px!important;}
.soft,.tag-panel,.picker,.notice{background:#f5f8f5!important;border-color:#e5ebe6!important;}
.notice{color:#53685a!important}
.btn{background:var(--v29-green)!important;color:#fff!important;border-radius:12px!important;box-shadow:none!important;font-weight:700!important;letter-spacing:-.15px;min-height:46px;transition:background-color .18s ease,transform .12s ease;}
.btn:active{transform:scale(.985)}
.btn.outline,.outline{background:#edf3ef!important;color:#315f4c!important;box-shadow:none!important}
.btn.danger,.danger{background:#fff0ef!important;color:#ab4d48!important;box-shadow:none!important}
.btn:focus-visible,.mini-btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #42876b;outline-offset:2px}
.mini-btn,.subtle-link{font-weight:650;}
.mini-btn{background:#eef3ef!important;color:#416253!important;border-radius:9px!important;}
input,textarea,select{background:#f7f9f7!important;border:1px solid #e3ebe5!important;border-radius:11px!important;color:#21352a!important;box-shadow:none!important;}
input:focus,textarea:focus,select:focus{background:white!important;border-color:#609680!important;}
input::placeholder,textarea::placeholder{color:#a4aea8;opacity:1}
.form{gap:12px!important;}
.form label{font-size:13px;color:#59685f;line-height:1.55}
.nav{background:#fffffff7!important;border-top:1px solid var(--line)!important;box-shadow:0 -5px 20px #2f463009!important;}
.nav button{color:#98a49b!important}.nav button.active{color:var(--v29-green)!important}
.nav button.active .ico{background:#eaf3ed!important;border-radius:12px!important}
.avatar{background:#e7efe8!important;color:#47735d!important;border-radius:15px!important}
.chip{background:#f0f3f1!important;color:#68756c!important;border-radius:999px!important;font-size:11px!important}
.chip.good,.good{background:#e7f3e9!important;color:#27794c!important}
.chip.bad,.bad{background:#fff0ef!important;color:#ac5148!important}
.tabs button,.view-switch{background:#f0f4f0!important;border-radius:12px!important}
.tabs button.selected{background:var(--v29-green)!important;color:#fff!important}
.view-switch button.active{color:var(--v29-green)!important}
.post-row{border-color:var(--line)!important;color:#283830!important;border-radius:0!important}
.post-row strong{font-weight:710!important}
.cal-month-arrow,.today-pill{background:#eff4ef!important;border-color:#e0e9e2!important;color:#436a56!important;border-radius:11px!important}
.calbar{background:var(--v29-green)!important}
.day.today{border-color:#6b9980!important}
.day.has{background:#eef6ef!important;border-color:#cadfce!important}
/* Fleet gets visual hierarchy without giant decorative gradients or nested cards. */
.fleet-head{border-radius:17px!important;box-shadow:none!important;overflow:hidden;}
.fleet-main,.fleet-counter{color:inherit}
.vehicle-card{padding:15px!important;margin:10px 0!important;}
.vehicle-card-head{align-items:flex-start!important;gap:8px!important}
.car-title-row h3{font-size:17px!important;letter-spacing:-.35px;color:#22352b!important}
.car-plate{font-weight:450!important;font-size:12px!important;color:#748279!important;}
.vehicle-position{background:#f7f9f7!important;border-radius:10px!important;padding:11px 12px!important;border:0!important;margin:12px 0!important;}
.position-label,.position-hint{color:#849087!important;font-size:11px!important}
.vehicle-position strong{color:#324a3b!important;font-size:14px!important}
.v28-car-edit{background:#edf3ee!important;border:1px solid #e0e9e1!important;color:#376a53!important;min-height:32px;padding:6px 11px!important;border-radius:9px!important;font-size:12px!important;}
.v28-fleet-tabs{background:#eef2ef!important;border-radius:13px!important;}
.v28-fleet-tabs button{border-radius:10px!important;font-size:14px!important;}
.v28-fleet-tabs button.selected{color:#285f49!important;box-shadow:0 1px 5px #213a2715!important}
.v28-busy{background:#f6f8f6!important;border-color:#e4eae4!important;border-radius:14px!important}
.v28-busy summary{font-weight:730!important;color:#3a5948!important;}
/* Three side-by-side actions: compact even on 320px wide devices. */
.vehicle-direct-actions.v29-car-triple{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;width:100%;min-width:0;}
.vehicle-direct-actions.v29-car-triple button{width:100%!important;min-width:0!important;max-width:100%!important;min-height:43px!important;padding:8px 3px!important;font-size:12px!important;font-weight:660!important;line-height:1.2!important;white-space:nowrap!important;letter-spacing:-.4px!important;border-radius:10px!important;}
.vehicle-direct-actions.v29-car-triple button:last-child{background:#eef3ef!important;color:#3f6a55!important;}
.vehicle-direct-actions.v29-car-actions{display:flex!important;gap:7px!important;flex-wrap:wrap;}
.vehicle-direct-actions.v29-car-actions button{flex:1;min-width:105px;}
/* Consistent full-screen editing surfaces, safe-area aware with one scrolling body. */
#modal{overscroll-behavior:contain!important;}
#modal.fullscreen25{padding:0!important;align-items:stretch!important;}
#modal.fullscreen25 .modalbox.fullsheet25,#modal.is-event24 .modalbox.event-sheet24{
 background:#fff!important;color:var(--v29-ink)!important;
 padding:0!important;width:100%!important;max-width:650px!important;
 height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;
 border:0!important;border-radius:0!important;
}
.v25-sheet-header,.event-header24{background:#fff!important;border-bottom:1px solid #e9eee9!important;box-shadow:none!important;}
.v25-sheet-header strong,.event-header24 strong{font-size:16px!important;letter-spacing:-.4px!important;font-weight:760!important;color:#263a2d!important;}
.v25-sheet-header button,.event-header24 button{color:var(--v29-green)!important;}
.v25-sheet-header .v25-x,.event-close24{color:#344138!important;}
.v25-sheet-scroll,.v25-write-scroll,.v27-event-scroll{overscroll-behavior-y:contain!important;-webkit-overflow-scrolling:touch!important;}
.v25-screen,.v25-post-screen,.v28-day-screen{background:#fff!important;}
.v25-post-title{font-size:21px!important;font-weight:700!important;border:0!important;background:transparent!important;}
.v25-post-body{border:0!important;background:transparent!important;font-size:16px!important;line-height:1.75!important;}
.v25-board-label{color:#738278!important;font-size:12px!important}
/* TimeTree-style date cells and calendar time wheel share the app typography. */
.v28-event-row{gap:6px!important;}
.v28-event-row>.event-choice .event-choice-date24{background:#f1f6f2!important;color:#365441!important;border-radius:9px!important;font-size:13px!important;font-weight:700!important;}
.v28-event-row>.event-choice.v28-is-date-active .event-choice-date24{background:#e1efe5!important;color:#245e45!important;}
.v28-event-time{background:#f1f6f2!important;color:#345f4a!important;border-radius:9px!important;font-size:12px!important;}
.v28-event-time.v28-is-active{background:#dceee1!important;color:#235b40!important;}
.v28-event-calendar{border-color:#e9eee9!important;}
.v28-event-month button{color:#39765b!important;}
.v28-event-day.selected{background:var(--v29-green)!important;color:#fff!important}
.v28-event-day.between{background:#e7f2e9!important;color:#316149!important}
.v28-event-day.today:not(.selected){color:#276d4b!important}
/* Unified sheet styling: prevents unrelated grey select controls on calendar. */
.v28-wheel-overlay,.v25-time-overlay{background:#14251a63!important;overscroll-behavior:contain!important;}
.v28-wheel-sheet,.v25-time-sheet{background:#fff!important;border-radius:22px 22px 0 0!important;box-shadow:0 -12px 38px #1b2e2420!important;}
.v28-wheel-sheet header,.v25-time-sheet-bar{min-height:57px!important;border-bottom:1px solid #e8eee9!important;background:#fff!important;}
.v28-wheel-sheet header strong,.v25-time-sheet-bar strong{font-weight:760!important;color:#263a2d!important;font-size:15px!important}
.v28-wheel-sheet header button,.v25-time-sheet-bar button{color:var(--v29-green)!important}
.v28-wheel-inputs select{background:#f1f5f1!important;color:#254334!important;border:1px solid #e4eae4!important;}
.v25-time-option.selected{background:#e6f2e8!important;color:#256245!important;border-color:#bfddc7!important}
/* Calm event details and readable entry controls. */
.v28-day-head h2{font-weight:790!important;letter-spacing:-.7px!important;color:#212e25!important}
.v28-day-add{background:#263e30!important;border-color:#263e30!important}
.v28-day-event{border-bottom-color:#eff2ef!important}
.v28-day-empty{color:#a2aba5!important}
/* Eliminate the rubbery, double-triggered exit animation. */
#modal .modalbox.v27-show,#modal:not(.is-event24) .modalbox.v27-show,#modal.is-event24 .modalbox.event-sheet24{
 animation:v29ModalEnter .29s var(--v29-ease) both!important;
}
#modal.v29-exiting .modalbox,#modal.v29-exiting .modalbox.v27-show,#modal.v29-exiting .modalbox.v28-close-motion{
 animation:v29ModalExit .225s cubic-bezier(.32,.0,.64,.3) both!important;
 pointer-events:none!important;
}
#modal.v29-exiting{pointer-events:none!important;}
@keyframes v29ModalEnter{from{opacity:.985;transform:translate3d(50px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes v29ModalExit{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.99;transform:translate3d(100%,0,0)}}
#content.v27-route-in{animation:v29PageForward .32s var(--v29-ease) both!important;}
#content.v27-route-out{animation:v29PageBack .29s var(--v29-ease) both!important;}
@keyframes v29PageForward{from{opacity:.985;transform:translate3d(48px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes v29PageBack{from{opacity:.985;transform:translate3d(-34px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
/* During an interactive swipe, follow the finger directly (no lag from CSS transition). */
.swipe-row27{touch-action:pan-y!important;overscroll-behavior:contain;border-radius:13px!important;}
.swipe-inner27{background:#fff!important;transition:transform .23s var(--v29-ease)!important;will-change:transform;backface-visibility:hidden;}
.swipe-row27.dragging29 .swipe-inner27{transition:none!important;}
.swipe-row27.open27 .swipe-inner27{transform:translate3d(-82px,0,0)!important;}
.swipe-row27.dragging29.open27 .swipe-inner27{transform:none!important;}
.swipe-exit27{background:#b35b55!important;}
@media(max-width:365px){
 .panel{padding-left:13px!important;padding-right:13px!important;}
 .vehicle-direct-actions.v29-car-triple{gap:4px!important;}
 .vehicle-direct-actions.v29-car-triple button{font-size:11px!important;letter-spacing:-.65px!important;padding-inline:2px!important;}
 .v28-event-row .event-choice-date24{font-size:11px!important;padding:6px 3px!important;}
}
@media(prefers-reduced-motion:reduce){
 #content.v27-route-in,#content.v27-route-out,#modal .modalbox.v27-show,
 #modal.v29-exiting .modalbox,#modal.is-event24 .modalbox.event-sheet24,
 .swipe-inner27{animation:none!important;transition:none!important}
}

/* Brand-wide fleet hero: remove the disconnected salmon legacy block. */
.fleet-head{background:linear-gradient(132deg,#244e3c 0%,#316b52 67%,#427c5f 100%)!important;box-shadow:none!important;border:1px solid #285640!important;}
.fleet-heading-top .eyebrow{color:#d5e6d7!important;}
.fleet-main h1{color:#fff!important;font-weight:770!important;}
.fleet-subtitle{color:#d5e4d7!important;}
.fleet-counter span{color:#dceade!important;}
.fleet-graphic{filter:drop-shadow(0 4px 5px #152a1a35)!important;}
.fleet-heading-top .btn{background:#fff!important;color:#285c43!important;font-size:12px!important;min-height:40px!important;padding:9px 10px!important;border-radius:10px!important;}
html.v29-native-back #content.v27-route-in,html.v29-native-back #content.v27-route-out{animation:none!important;transform:none!important;}
