*{box-sizing:border-box}body{margin:0;background:#f3f4f6;color:#111827;font-family:system-ui,sans-serif}.app{max-width:760px;margin:auto;padding:18px 14px 60px}header{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}h1{margin:2px 0;font-size:28px}.eyebrow,label,.notice{color:#6b7280;font-size:12px}.badge{background:#111827;color:white;padding:7px 10px;border-radius:99px}.card{background:white;border-radius:18px;padding:16px;margin-bottom:12px;box-shadow:0 8px 24px #0000000d}.hero h2,.card h2{font-size:18px;margin:0 0 8px}.hero p{line-height:1.5}textarea,input{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:12px;font-size:15px}textarea{min-height:96px}.actions{display:flex;gap:8px;margin:10px 0}.actions button{flex:1}button{border:0;border-radius:12px;padding:12px;font-weight:700}.primary,.full{background:#111827;color:white}.ghost{background:#eef2f7}.full{width:100%;margin-top:10px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid .card{margin:0}.span2{grid-column:1/-1}label{display:block;margin-bottom:7px}.historyItem{border-top:1px solid #eee;padding:10px 0}@media(max-width:480px){.grid{grid-template-columns:1fr}.span2{grid-column:auto}.actions{flex-direction:column}}
.historyOpen{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;background:transparent;padding:10px 0;font-weight:400}
.historyOpen b{font-size:14px}
.historyDetail{background:#f8fafc;border-radius:12px;padding:12px;margin:4px 0 10px}
.historyDetail p{font-size:13px;line-height:1.5;margin:8px 0}
.historyActions{display:flex;gap:8px;margin-top:10px}
.historyActions button{flex:1}
.danger{background:#fee2e2;color:#991b1b}

.historyActions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-top:14px!important}
.historyActions button{width:100%!important;min-height:52px!important;padding:14px 16px!important;font-size:15px!important;border-radius:14px!important;touch-action:manipulation!important;cursor:pointer!important}
.editHistory{background:#eef2f7!important;color:#111827!important;border:1px solid #d1d5db!important}
.deleteHistory{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}
.historyDetail{position:relative;z-index:2}
.historyOpen{min-height:48px;touch-action:manipulation}

.topTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:sticky;top:0;z-index:20;background:#f3f4f6;padding:8px 0 12px;margin-bottom:4px}
.tabBtn{background:#e5e7eb;color:#374151;min-height:46px;font-size:14px}
.tabBtn.active{background:#111827;color:#fff}
.historyHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.historyHeader h2{margin:0}
.smallBtn{padding:9px 12px;min-height:38px}
#historyView[hidden],#workView[hidden]{display:none!important}

.resetRow{display:flex;justify-content:flex-end;margin-top:8px}
.resetBtn{background:transparent;color:#6b7280;padding:8px 4px;font-size:13px;font-weight:600}
.resetBtn:active{opacity:.6}

.resetRow{margin-top:10px!important}
.resetBtn{
 width:100%!important;
 min-height:46px!important;
 padding:12px 14px!important;
 border-radius:12px!important;
 background:#eef2f7!important;
 color:#111827!important;
 border:1px solid #d1d5db!important;
 font-size:14px!important;
 font-weight:700!important;
 text-align:center!important;
}

.authCard{margin-bottom:10px}
.authHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.authHeader h2{margin:0 0 4px}
.authHelp{margin:0;color:#6b7280;font-size:13px;line-height:1.45}
.authStatus{flex:0 0 auto;background:#eef2f7;color:#374151;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700}
.authStatus.on{background:#dcfce7;color:#166534}
.authGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.authActions{margin-bottom:0}
.signedInRow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;background:#f8fafc;border-radius:12px;padding:12px}
.authNotice{margin:8px 0 0;min-height:16px;line-height:1.4}
@media(max-width:480px){.authGrid{grid-template-columns:1fr}.signedInRow{align-items:flex-start}}

/* v12: settings / support */
.topTabs{grid-template-columns:repeat(3,1fr)}
#settingsView[hidden]{display:none!important}
.sectionTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.sectionTitle h2{margin:0 0 4px;font-size:18px}.sectionTitle p{margin:0;color:#6b7280;font-size:13px;line-height:1.45}
.themeButtons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.themeBtn{background:#eef2f7;color:#111827;border:1px solid transparent}.themeBtn.active{border-color:#111827;background:#e5e7eb}
.supportBoard{display:grid;gap:8px}.supportItem{background:#f8fafc;border-radius:12px;padding:12px}.supportItem b{font-size:14px}.supportItem small{color:#6b7280}.supportItem p{font-size:13px;line-height:1.5;margin:7px 0 0;white-space:pre-wrap}
.inquiryBox{display:grid;gap:8px}.inquiryBox textarea{min-height:110px}.versionCard{display:flex;justify-content:space-between;align-items:center}.versionCard p{margin:4px 0 0;color:#6b7280;font-size:12px}.versionCard span{background:#111827;color:white;border-radius:99px;padding:7px 10px;font-size:12px;font-weight:700}
@media(max-width:480px){.themeButtons{grid-template-columns:1fr}.topTabs{gap:6px}.tabBtn{padding:10px 6px;font-size:13px}}

/* dark theme */
html[data-theme="dark"] body{background:#111827;color:#f9fafb}html[data-theme="dark"] .topTabs{background:#111827}html[data-theme="dark"] .card{background:#1f2937;box-shadow:none}html[data-theme="dark"] textarea,html[data-theme="dark"] input{background:#111827;border-color:#374151;color:#f9fafb}html[data-theme="dark"] textarea::placeholder,html[data-theme="dark"] input::placeholder{color:#9ca3af}html[data-theme="dark"] .ghost,html[data-theme="dark"] .themeBtn,html[data-theme="dark"] .tabBtn{background:#374151;color:#f9fafb}html[data-theme="dark"] .tabBtn.active,html[data-theme="dark"] .primary,html[data-theme="dark"] .full{background:#f9fafb;color:#111827}html[data-theme="dark"] .supportItem,html[data-theme="dark"] .signedInRow{background:#111827}html[data-theme="dark"] .authStatus{background:#374151;color:#e5e7eb}html[data-theme="dark"] .authStatus.on{background:#14532d;color:#dcfce7}html[data-theme="dark"] .resetBtn{background:#374151!important;color:#f9fafb!important;border-color:#4b5563!important}html[data-theme="dark"] .versionCard span{background:#f9fafb;color:#111827}html[data-theme="dark"] .historyDetail{background:#111827}html[data-theme="dark"] .historyOpen{color:#f9fafb}

.inquiryHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.statusBadge{font-size:11px;padding:4px 8px;border-radius:999px;background:var(--soft,#eef2f7);white-space:nowrap}.statusBadge.done{font-weight:700}.inquiryAnswer{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--soft,#f3f6fa)}.inquiryAnswer p{margin:6px 0 0}.deleteInquiry{margin-top:8px;padding:7px 10px;font-size:12px}


/* v14: admin inquiry management */
.adminRoleBadge{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#111827;color:#fff;font-size:10px;font-weight:800;vertical-align:middle}
.adminRoleBadge[hidden],#adminInquiryCard[hidden]{display:none!important}
.adminSectionTitle{align-items:center}.adminInquiryCount{margin:-2px 0 10px;padding:9px 10px;border-radius:10px;background:#eef2f7;font-size:12px;font-weight:700;color:#374151}
.adminInquiryItem{border:1px solid #e5e7eb}.adminQuestion{padding:10px 0;margin:4px 0 8px!important}.adminAnswerLabel{margin-top:8px;color:#374151;font-weight:700}.adminAnswer{min-height:90px;margin-top:6px}.saveAdminAnswer{width:100%;margin-top:8px}.adminCard .notice{min-height:16px}
html[data-theme="dark"] .adminRoleBadge{background:#f9fafb;color:#111827}html[data-theme="dark"] .adminInquiryCount{background:#111827;color:#e5e7eb}html[data-theme="dark"] .adminInquiryItem{border-color:#374151}html[data-theme="dark"] .adminAnswerLabel{color:#e5e7eb}

/* v15: inquiry visibility + status filters */
.adminFilterTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 12px}.adminFilterBtn{border:1px solid #d8dee8;background:transparent;border-radius:10px;padding:9px 5px;font-size:12px;font-weight:700;cursor:pointer}.adminFilterBtn.active{background:#111827;color:#fff;border-color:#111827}.adminFilterBtn span{display:inline-block;margin-left:2px}.myInquiryItem{border:1px solid #e5e7eb}.waitingAnswer{margin-top:10px;padding:9px 10px;border-radius:10px;background:var(--soft,#f3f6fa);font-size:12px}.emptyInquiry{text-align:center;padding:16px 12px}.emptyInquiry p{margin:0 0 4px}.emptyInquiry small{opacity:.75}html[data-theme="dark"] .adminFilterBtn{border-color:#374151;color:#e5e7eb}html[data-theme="dark"] .adminFilterBtn.active{background:#f9fafb;color:#111827;border-color:#f9fafb}html[data-theme="dark"] .myInquiryItem{border-color:#374151}


/* v17: work history search & filters */
.historyFilters{margin:4px 0 12px;padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #eef2f7}
.historySearchWrap{position:relative}.historySearchWrap input{padding-right:42px;background:#fff}.historySearchIcon{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;min-height:0;padding:0;border:0;border-radius:9px;font-size:16px;line-height:1;color:#6b7280;background:transparent;box-shadow:none}
.historyFilterRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:end;margin-top:10px}.historyDateField{margin:0}.historyDateField span{display:block;margin:0 0 5px;color:#6b7280;font-size:11px}.historyDateField input{min-height:40px;padding:8px 10px;background:#fff}.historyRevisitToggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:40px;margin:0;padding:8px 10px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;color:#111827;font-size:12px;font-weight:700;white-space:nowrap}.historyRevisitToggle input{width:18px;height:18px;margin:0;accent-color:currentColor}.historyResultCount{margin-top:9px;color:#6b7280;font-size:12px;font-weight:700}.historyEmpty{text-align:center;padding:22px 12px;color:#374151}.historyEmpty p{margin:6px 0 0;color:#6b7280;font-size:12px}
html[data-theme="dark"] .historyFilters{background:#111827;border-color:#374151}html[data-theme="dark"] .historySearchWrap input,html[data-theme="dark"] .historyDateField input,html[data-theme="dark"] .historyRevisitToggle{background:#1f2937;border-color:#374151;color:#f9fafb}html[data-theme="dark"] .historySearchIcon{color:#d1d5db}html[data-theme="dark"] .historyEmpty{color:#f9fafb}
@media(max-width:560px){.historyFilterRow{grid-template-columns:1fr 1fr}.historyDateField{grid-column:1/-1}.historyRevisitToggle{justify-content:flex-start}.historyFilterRow .smallBtn{min-height:40px}}

/* v18: 관리자 계정에서는 고객용 문의 UI를 절대 표시하지 않음 */
body.admin-mode #inquiryFormCard,body.admin-mode #myInquiryCard{display:none!important}

/* v19: hidden 요소를 어떤 화면에서도 확실히 숨김 */
[hidden]{display:none!important}
body.admin-mode #customerInquiryArea{display:none!important}
body:not(.admin-mode) #adminInquiryCard{display:none!important}
.noticeBoardCompact{display:grid;gap:8px}
.noticeItem{border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc;overflow:hidden}
.noticeItem summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;font-weight:700}
.noticeItem summary::-webkit-details-marker{display:none}
.noticeItem summary::after{content:'⌄';font-size:16px;line-height:1;transition:transform .15s ease}
.noticeItem[open] summary::after{transform:rotate(180deg)}
.noticeTitle{font-size:14px;flex:1}
.noticeDate{font-size:11px;color:#6b7280;font-weight:500;white-space:nowrap}
.noticeBody{padding:0 12px 12px;font-size:13px;line-height:1.55;color:#4b5563;border-top:1px solid #eef2f7;padding-top:10px}
html[data-theme="dark"] .noticeItem{background:#111827;border-color:#374151}
html[data-theme="dark"] .noticeBody{color:#d1d5db;border-top-color:#374151}


/* v21: compact numbered pagination */
.pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;margin:14px 0 2px;padding-top:10px;border-top:1px solid #eef2f7}
.pageBtn{min-width:36px;height:36px;padding:0 10px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:#374151;font-size:13px;font-weight:800;cursor:pointer}
.pageBtn.active{background:#111827;color:#fff;border-color:#111827}
.pageDots{padding:0 2px;color:#9ca3af;font-weight:700}
html[data-theme="dark"] .pagination{border-top-color:#374151}
html[data-theme="dark"] .pageBtn{background:#1f2937;color:#e5e7eb;border-color:#4b5563}
html[data-theme="dark"] .pageBtn.active{background:#f9fafb;color:#111827;border-color:#f9fafb}


/* v22: compact side-by-side history edit/delete buttons */
.historyActions{display:flex!important;grid-template-columns:none!important;justify-content:flex-end!important;align-items:center!important;gap:7px!important;margin-top:12px!important}
.historyActions button{flex:0 0 auto!important;width:auto!important;min-width:82px!important;min-height:36px!important;padding:8px 12px!important;font-size:12px!important;border-radius:10px!important;line-height:1.1!important}
@media(max-width:360px){.historyActions button{min-width:76px!important;padding:8px 10px!important}}

/* v23: work status + scheduled date/time */
select{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:12px;font-size:15px;background:#fff;color:#111827;min-height:46px}
.historyStatusField{margin:0}.historyStatusField span{display:block;margin:0 0 5px;color:#6b7280;font-size:11px}.historyStatusField select{min-height:40px;padding:8px 10px;background:#fff}
.historyFilterRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}
.historyOpenMain{min-width:0;flex:1}.historyTitleLine{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:4px}.historyOpenMain small{line-height:1.45;color:#6b7280}
.workStatusBadge{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.1;white-space:nowrap;background:#eef2f7;color:#374151}
.workStatusBadge.received{background:#eef2ff;color:#3730a3}.workStatusBadge.scheduled{background:#ecfeff;color:#155e75}.workStatusBadge.done{background:#dcfce7;color:#166534}.workStatusBadge.cancelled{background:#f3f4f6;color:#6b7280}
html[data-theme="dark"] select,html[data-theme="dark"] .historyStatusField select{background:#111827;border-color:#374151;color:#f9fafb}
html[data-theme="dark"] .workStatusBadge.received{background:#312e81;color:#e0e7ff}html[data-theme="dark"] .workStatusBadge.scheduled{background:#164e63;color:#cffafe}html[data-theme="dark"] .workStatusBadge.done{background:#14532d;color:#dcfce7}html[data-theme="dark"] .workStatusBadge.cancelled{background:#374151;color:#d1d5db}
@media(max-width:560px){.historyFilterRow{grid-template-columns:1fr 1fr}.historyDateField{grid-column:auto}.historyStatusField{grid-column:auto}.historyRevisitToggle{justify-content:flex-start}.historyFilterRow .smallBtn{min-height:40px}}

.workStatusBadge.revisit{font-weight:700;}

/* v26: today dashboard */
.dashboardHero{padding-bottom:16px}.dashboardTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.dashboardTitleRow h2{margin:2px 0 0}.dashboardStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 12px}.dashboardStat{border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;padding:12px 6px;text-align:center;color:#111827;cursor:pointer}.dashboardStat span{display:block;font-size:11px;color:#6b7280;font-weight:700}.dashboardStat b{display:inline-block;margin-top:4px;font-size:26px;line-height:1}.dashboardStat small{margin-left:2px;font-size:11px;color:#6b7280}.dashboardQuickActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dashboardList{display:grid;gap:8px}.dashboardWorkItem{padding:11px 12px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}.dashboardWorkMain{display:grid;gap:5px}.dashboardWorkTitle{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.dashboardWorkTitle b{font-size:13px}.dashboardWorkItem small{display:block;color:#6b7280;line-height:1.4}.dashboardEmpty{text-align:center;padding:16px 10px;color:#4b5563}.dashboardEmpty p{margin:5px 0 8px;font-size:12px;color:#6b7280}.dashboardMore{text-align:center;padding:9px;color:#6b7280;font-size:11px;font-weight:700}.dashboardListCard{scroll-margin-top:74px}
html[data-theme="dark"] .dashboardStat,html[data-theme="dark"] .dashboardWorkItem{background:#111827;border-color:#374151;color:#f9fafb}html[data-theme="dark"] .dashboardStat span,html[data-theme="dark"] .dashboardStat small,html[data-theme="dark"] .dashboardWorkItem small,html[data-theme="dark"] .dashboardMore,html[data-theme="dark"] .dashboardEmpty p{color:#9ca3af}html[data-theme="dark"] .dashboardEmpty{color:#e5e7eb}
@media(max-width:480px){.topTabs{grid-template-columns:repeat(4,1fr)}.tabBtn{font-size:12px;padding:10px 4px}.dashboardStats{gap:6px}.dashboardStat{padding:10px 4px}.dashboardStat b{font-size:23px}.dashboardQuickActions{grid-template-columns:1fr 1fr}}
.topTabs{grid-template-columns:repeat(4,1fr)}

/* v27: customer message quick actions */
.messageActions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 8px}
.messageActions button{min-height:42px;padding:10px 8px;font-size:13px}
@media(max-width:360px){.messageActions{gap:6px}.messageActions button{padding:9px 5px;font-size:12px}}


/* v28: isolate customer message actions from save action */
#messageQuickActions{position:relative;z-index:2}
.messageActionBtn{position:relative;z-index:3;touch-action:manipulation;cursor:pointer}
.messageActionHelp{margin:0 0 10px;color:#6b7280;font-size:11px;line-height:1.4;text-align:center}
.saveWorkRow{position:relative;z-index:1;border-top:1px solid #eef2f7;margin-top:8px;padding-top:4px}
html[data-theme="dark"] .saveWorkRow{border-top-color:#374151}
html[data-theme="dark"] .messageActionHelp{color:#9ca3af}


/* v29: mobile-safe tap targets and isolated message actions */
.app button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}
#messageQuickActions{position:relative;z-index:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 6px}
#messageQuickActions .messageActionBtn{position:relative;z-index:auto;min-height:48px;padding:12px 7px;border:1px solid #dde3ea}
.messageActionNotice{min-height:20px;margin:8px 0 2px;color:#374151;font-size:12px;font-weight:700;text-align:center;line-height:1.4}
.messageActionHelp{margin:4px 0 0}
.saveWorkRow{position:relative;z-index:auto;margin-top:22px;padding-top:16px;border-top:1px solid #e5e7eb}
.saveWorkLabel{margin-bottom:8px;color:#6b7280;font-size:11px;font-weight:700;text-align:center}
.saveWorkRow #saveBtn{margin-top:0;min-height:50px}
html[data-theme="dark"] .messageActionNotice{color:#d1d5db}
html[data-theme="dark"] #messageQuickActions .messageActionBtn{border-color:#374151}
@media(max-width:380px){#messageQuickActions{grid-template-columns:1fr;gap:9px}#messageQuickActions .messageActionBtn{width:100%}}


/* v30: foldable / split-screen responsive tap layout */
#messageQuickActions .messageActionBtn{min-width:0;min-height:52px}
@media(max-width:600px){
  #messageQuickActions{grid-template-columns:1fr!important;gap:10px!important}
  #messageQuickActions .messageActionBtn{width:100%!important;min-height:52px!important}
}
@media(max-width:430px){
  .topTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tabBtn{min-height:46px}
  .dashboardStats{grid-template-columns:1fr!important}
  .dashboardQuickActions{grid-template-columns:1fr!important}
  .adminFilterTabs{grid-template-columns:1fr!important}
}


/* v32: compact dashboard + collapsible schedules */
.dashboardHero{padding:13px 14px!important}
.dashboardTitleRow h2{font-size:18px!important}
.dashboardStats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;margin:10px 0 9px!important}
.dashboardStat{min-height:58px!important;padding:7px 4px!important;border-radius:12px!important}
.dashboardStat span{font-size:10px!important}.dashboardStat b{font-size:21px!important;margin-top:2px!important}.dashboardStat small{font-size:10px!important}
.dashboardQuickActions{grid-template-columns:1fr 1fr!important;gap:7px!important}
.dashboardQuickActions button{min-height:40px!important;padding:9px 8px!important;font-size:12px!important}
.dashboardFold{padding:0!important;overflow:hidden;margin-bottom:8px!important}
.dashboardFold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:12px 14px;cursor:pointer;font-size:14px;font-weight:800}
.dashboardFold summary::-webkit-details-marker{display:none}
.dashboardFold summary::after{content:'⌄';order:3;color:#6b7280;font-size:15px;transition:transform .15s ease}
.dashboardFold[open] summary::after{transform:rotate(180deg)}
.dashboardFold summary small{margin-left:auto;color:#6b7280;font-size:11px;font-weight:700}
.dashboardFold .dashboardList{padding:10px 12px 12px;border-top:1px solid #eef2f7}
.dashboardFold .dashboardEmpty{padding:9px 6px}.dashboardFold .dashboardEmpty p{margin:0}
html[data-theme="dark"] .dashboardFold .dashboardList{border-top-color:#374151}
@media(max-width:430px){.dashboardStats{grid-template-columns:repeat(3,minmax(0,1fr))!important}.dashboardQuickActions{grid-template-columns:1fr 1fr!important}.dashboardStat{min-width:0!important}}
@media(max-width:330px){.dashboardStat span{font-size:9px!important}.dashboardStat b{font-size:19px!important}.dashboardQuickActions{grid-template-columns:1fr!important}}

/* v33 관리자 공지사항 관리 */
.adminNoticeForm{display:grid;gap:10px}.adminNoticeForm textarea{min-height:110px}.adminNoticeFormActions{display:flex;gap:8px}.adminNoticeFormActions button{flex:1}.adminNoticeList{display:grid;gap:8px;margin-top:14px}.adminNoticeRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line,#e5e7eb)}.adminNoticeMeta{min-width:0;display:grid;gap:3px}.adminNoticeMeta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adminNoticeMeta small{opacity:.7}.adminNoticeActions{display:flex;gap:6px;flex-shrink:0}.noticeBody{white-space:pre-wrap}
@media(max-width:420px){.adminNoticeRow{align-items:flex-start}.adminNoticeActions{gap:4px}.adminNoticeActions .smallBtn{padding:7px 9px}}


/* v34: compact notice pagination */
.noticePageMeta{font-size:11px;color:#6b7280;text-align:right;margin:0 2px 7px}
.noticeBoardCompact .noticeItem{margin:0}
.noticeBoardCompact .noticeItem summary{min-height:44px;padding:10px 12px}
.noticeBoardCompact .noticeBody{max-height:220px;overflow:auto}
html[data-theme="dark"] .noticePageMeta{color:#9ca3af}

/* v37: automatic customer management from work records */
.topTabs{grid-template-columns:repeat(6,minmax(0,1fr))!important}
#customersView[hidden]{display:none!important}
.customerSearchWrap{position:relative;margin:4px 0 0}
.customerSearchWrap input{padding-right:42px;background:#fff}
.customersList{display:grid;gap:9px;margin-top:10px}
.customerItem{border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;overflow:hidden}
.customerOpen{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 12px;background:transparent;color:#111827;text-align:left}
.customerMain{display:grid;gap:4px;min-width:0}.customerMain b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customerMain small{font-size:11px;color:#6b7280}
.customerMeta{display:flex;align-items:center;gap:7px;flex:0 0 auto;color:#6b7280}.customerRevisit{padding:4px 7px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:10px;font-weight:800}
.customerDetail{padding:11px 12px 12px;border-top:1px solid #e5e7eb;background:#fff}
.customerQuickActions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.customerQuickActions button{min-height:39px;padding:8px 6px;font-size:12px}.customerQuickActions button:disabled{opacity:.42}
.customerNext{margin:10px 0 0;padding:9px 10px;border-radius:10px;background:#f8fafc;font-size:12px}
.customerPastWorks{display:grid;gap:7px;margin-top:10px}.customerPastRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-top:1px solid #eef2f7}.customerPastRow>div{display:grid;gap:3px;min-width:0}.customerPastRow b{font-size:12px}.customerPastRow small{font-size:10px;color:#6b7280}.customerMore{text-align:center;color:#6b7280;padding:4px 0}
html[data-theme="dark"] .customerSearchWrap input{background:#111827;border-color:#374151;color:#f9fafb}
html[data-theme="dark"] .customerItem{background:#111827;border-color:#374151}
html[data-theme="dark"] .customerOpen{color:#f9fafb}
html[data-theme="dark"] .customerDetail{background:#1f2937;border-top-color:#374151}
html[data-theme="dark"] .customerNext{background:#111827}
html[data-theme="dark"] .customerPastRow{border-top-color:#374151}
html[data-theme="dark"] .customerRevisit{background:#431407;color:#fed7aa}
@media(max-width:520px){.topTabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.tabBtn{font-size:12px;padding:9px 4px}}
@media(max-width:330px){.topTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.customerQuickActions{grid-template-columns:1fr}.customerQuickActions button{width:100%}}


/* v38: schedule reminder settings */
.notificationSettings{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.notificationSettings label{display:grid;gap:5px}.notificationSettings label span{font-size:11px;font-weight:700;color:#6b7280}.notificationSettings select{min-height:43px}.notificationSettings button{min-height:43px;white-space:nowrap}.dashboardReminder{margin-top:8px;padding:9px 11px;border-radius:11px;background:#fff7ed;color:#9a3412;font-size:12px;font-weight:800;line-height:1.4}.dashboardReminder[hidden]{display:none!important}html[data-theme="dark"] .notificationSettings label span{color:#9ca3af}html[data-theme="dark"] .dashboardReminder{background:#431407;color:#fed7aa}@media(max-width:360px){.notificationSettings{grid-template-columns:1fr}.notificationSettings button{width:100%}}

/* v41: work before/after photos */
.workPhotoGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.workPhotoSlot{display:grid;gap:8px;min-width:0}.workPhotoLabel{font-size:12px;font-weight:800;color:#374151}
.workPhotoPreview{width:100%;aspect-ratio:4/3;min-height:120px;padding:0!important;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:30px}
.workPhotoPreview img{display:block;width:100%;height:100%;object-fit:cover}.workPhotoActions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.workPhotoActions button{min-height:42px;padding:8px 10px;font-size:12px}.workPhotoActions .workPhotoRemove{grid-column:1/-1;min-height:36px}
.historyPhotos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.historyPhotoThumb{display:grid;gap:5px;text-decoration:none;color:inherit}.historyPhotoThumb span{font-size:11px;font-weight:800}.historyPhotoThumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid #e5e7eb}.historyPhotoLoading,.historyPhotoError{font-size:11px;color:#6b7280;padding:8px 0}.historyPhotoError{min-height:90px;border:1px dashed #d1d5db;border-radius:10px;padding:10px}
html[data-theme="dark"] .workPhotoLabel{color:#d1d5db}html[data-theme="dark"] .workPhotoPreview{background:#111827;border-color:#4b5563;color:#6b7280}html[data-theme="dark"] .historyPhotoThumb img{border-color:#374151}
@media(max-width:520px){.workPhotoGrid{grid-template-columns:1fr}.workPhotoPreview{min-height:150px}.historyPhotos{grid-template-columns:1fr 1fr}}
@media(max-width:330px){.historyPhotos{grid-template-columns:1fr}}


/* v43: compact completed-work revenue summary */
.revenueStrip{display:grid;grid-template-columns:1fr 1fr .82fr;gap:6px;margin:0 0 9px}
.revenueCell{min-width:0;padding:8px 9px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc;display:grid;gap:2px}
.revenueCell span{font-size:10px;font-weight:800;color:#64748b}.revenueCell b{font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revenueCell small{font-size:9px;color:#94a3b8}
html[data-theme="dark"] .revenueCell{background:#111827;border-color:#374151}html[data-theme="dark"] .revenueCell span{color:#94a3b8}
@media(max-width:360px){.revenueStrip{grid-template-columns:1fr 1fr}.revenueAverage{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px}.revenueAverage small{margin-left:auto}}

/* v45: 확정/예정 매출 + 내 정보/입금계좌 */
.revenueStripV45{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.revenuePlanned{background:#fff7ed}.revenueForecast{background:#f0fdf4}
.profileGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.profileGrid label{display:grid;gap:5px}.profileGrid label span{font-size:11px;font-weight:800;color:#64748b}.profileGrid .span2{grid-column:1/-1}
.paymentActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 2px}.paymentActions button{min-height:43px;padding:9px 8px;font-size:12px}
html[data-theme="dark"] .revenuePlanned,html[data-theme="dark"] .revenueForecast{background:#111827}html[data-theme="dark"] .profileGrid label span{color:#94a3b8}
@media(max-width:520px){.revenueStripV45{grid-template-columns:1fr 1fr!important}.profileGrid{grid-template-columns:1fr}.profileGrid .span2{grid-column:auto}}
@media(max-width:330px){.paymentActions{grid-template-columns:1fr}.revenueStripV45{grid-template-columns:1fr!important}}


/* v46: compact revenue dashboard */
.revenuePanel{margin:0 0 9px;padding:9px;border:1px solid #e5e7eb;border-radius:13px;background:#fff}
.revenueHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.revenueHeader>b{font-size:12px}
.revenuePeriodTabs{display:flex;gap:4px}.revenuePeriodTabs button{border:0;border-radius:999px;background:#eef2f7;color:#64748b;padding:5px 9px;font-size:10px;font-weight:800;min-height:28px}.revenuePeriodTabs button.active{background:#111827;color:#fff}
.revenueTodayLine{display:flex;align-items:center;gap:7px;padding:0 2px 7px;font-size:10px;color:#64748b}.revenueTodayLine b{margin-left:auto;font-size:12px;color:#111827}.revenueTodayLine small{font-size:9px;color:#94a3b8}
.revenueStripV46{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin-bottom:7px!important}.revenueStripV46 .revenueCell{padding:7px 8px}.revenueStripV46 .revenueCell b{font-size:13px}
.revenueDetails{border-top:1px solid #eef2f7}.revenueDetails summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:34px;padding:7px 2px 0;cursor:pointer;font-size:11px;font-weight:800}.revenueDetails summary::-webkit-details-marker{display:none}.revenueDetails summary small{color:#94a3b8}.revenueDetails summary::after{content:'⌄';margin-left:5px;color:#94a3b8}.revenueDetails[open] summary::after{transform:rotate(180deg)}
.revenueDetailGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding-top:7px}.revenueDetailGrid>div{display:grid;gap:2px;padding:7px;border-radius:10px;background:#f8fafc}.revenueDetailGrid span{font-size:9px;color:#64748b}.revenueDetailGrid b{font-size:11px}
html[data-theme="dark"] .revenuePanel{background:#0b1220;border-color:#374151}html[data-theme="dark"] .revenuePeriodTabs button{background:#1f2937;color:#9ca3af}html[data-theme="dark"] .revenuePeriodTabs button.active{background:#f9fafb;color:#111827}html[data-theme="dark"] .revenueTodayLine,html[data-theme="dark"] .revenueDetailGrid span{color:#9ca3af}html[data-theme="dark"] .revenueTodayLine b{color:#f9fafb}html[data-theme="dark"] .revenueDetails{border-top-color:#374151}html[data-theme="dark"] .revenueDetailGrid>div{background:#111827}
@media(max-width:520px){.revenueStripV46{grid-template-columns:1fr 1fr!important}.revenueDetailGrid{grid-template-columns:1fr 1fr}}
@media(max-width:330px){.revenueHeader{align-items:flex-start;flex-direction:column}.revenuePeriodTabs{width:100%}.revenuePeriodTabs button{flex:1}.revenueStripV46{grid-template-columns:1fr 1fr!important}}


/* v47: 매출 탭 분리 + 설정 내 정보 하위 화면 */
#revenueView[hidden],#profileView[hidden]{display:none!important}
.revenueStandalone{padding:14px}.revenueStandalone>.sectionTitle{margin-bottom:8px}.revenuePanelStandalone{margin:0!important}
.settingsMenuButton{width:100%;min-height:54px;padding:4px 0!important;border:0!important;background:transparent!important;color:inherit!important;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}
.settingsMenuButton>span{display:grid;gap:4px}.settingsMenuButton b{font-size:15px}.settingsMenuButton small{font-size:11px;color:#6b7280;font-weight:500}.settingsMenuButton strong{font-size:26px;line-height:1;color:#9ca3af;font-weight:500}
.subpageHeader{display:flex;align-items:center;gap:10px;margin-bottom:16px}.subpageHeader h2{margin:0;font-size:18px}.subpageHeader button{flex:0 0 auto}
html[data-theme="dark"] .settingsMenuButton small{color:#9ca3af}
@media(max-width:520px){.topTabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.revenueStandalone{padding:10px}}
@media(max-width:330px){.topTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* v48: compact settings menu + accurate planned revenue */
.settingsMenuCard{padding:0!important;overflow:hidden}
.settingsMenuCard .settingsMenuButton{border-radius:0!important;border:0!important;border-bottom:1px solid #e5e7eb!important;margin:0!important;padding:15px 14px!important;min-height:58px!important;background:transparent!important}
.settingsMenuCard .settingsMenuButton:last-child{border-bottom:0!important}
.settingsMenuButton>span{display:grid;gap:3px;text-align:left;min-width:0}.settingsMenuButton>span b{font-size:14px}.settingsMenuButton>span small{font-size:10px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settingsMenuButton>strong{font-size:21px;color:#9ca3af;font-weight:500}
.subpageHeader{display:flex;align-items:center;gap:9px;margin-bottom:14px}.subpageHeader h2{margin:0;flex:1;font-size:18px}.subpageHeader .authStatus{flex:0 0 auto}.subpageHeader>.smallBtn{flex:0 0 auto}
html[data-theme="dark"] .settingsMenuCard .settingsMenuButton{border-bottom-color:#374151!important}html[data-theme="dark"] .settingsMenuButton>span small{color:#9ca3af}
@media(max-width:420px){.subpageHeader{flex-wrap:wrap}.subpageHeader h2{min-width:120px}.subpageHeader #refreshNotices,.subpageHeader #refreshMyInquiries,.subpageHeader #refreshAdminInquiries{margin-left:auto}}

/* v49: compact settings subpage header */
.subpageHeader{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.subpageHeader h2{margin:0;flex:1;min-width:0}
.subpageHeader .iconBackBtn{margin-left:0;width:40px;min-width:40px;height:40px;padding:0;border-radius:12px;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:420px){.subpageHeader{flex-wrap:nowrap}.subpageHeader h2{min-width:0}.subpageHeader #refreshNotices,.subpageHeader #refreshMyInquiries,.subpageHeader #refreshAdminInquiries{margin-left:0}}


/* v50: generic work status + payment / receivables */
select{width:100%;border:1px solid #e5e7eb;border-radius:12px;padding:12px;font-size:15px;background:#fff;color:#111827}
.paymentStatusBadge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.1;background:#f3f4f6;color:#4b5563}.paymentStatusBadge.paid{background:#dcfce7;color:#166534}.paymentStatusBadge.partial{background:#fef3c7;color:#92400e}.paymentStatusBadge.unpaid{background:#fee2e2;color:#991b1b}
.paymentQuickRow{display:flex;justify-content:flex-end;margin-top:10px}.paymentQuickRow button{min-height:36px;padding:8px 11px;font-size:12px}
.revenueStripV50{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin-bottom:7px!important}.revenueStripV50 .revenueCell{padding:8px}.revenueForecastLine{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 10px;margin:0 0 8px;border-radius:11px;background:#f8fafc;border:1px solid #e5e7eb}.revenueForecastLine span{font-size:10px;font-weight:800;color:#64748b}.revenueForecastLine b{text-align:right;font-size:14px}.revenueForecastLine small{font-size:9px;color:#94a3b8}.revenueOutstanding{background:#fff7ed}.revenueReceived{background:#f0fdf4}
html[data-theme="dark"] select{background:#111827;color:#f9fafb;border-color:#374151}html[data-theme="dark"] .paymentStatusBadge.paid{background:#14532d;color:#dcfce7}html[data-theme="dark"] .paymentStatusBadge.partial{background:#78350f;color:#fef3c7}html[data-theme="dark"] .paymentStatusBadge.unpaid{background:#7f1d1d;color:#fee2e2}html[data-theme="dark"] .revenueForecastLine{background:#111827;border-color:#374151}
@media(max-width:520px){.revenueStripV50{grid-template-columns:1fr 1fr!important}}
@media(max-width:330px){.revenueStripV50{grid-template-columns:1fr!important}.revenueForecastLine{grid-template-columns:1fr auto}.revenueForecastLine small{grid-column:1/-1}}

/* v51 customer message automation */
.messageTemplateRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:8px 0 10px}
.messageTemplateRow select{min-width:0;height:44px}
.messageTemplateRow button{min-height:44px;padding:9px 12px;white-space:nowrap}
@media(max-width:380px){.messageTemplateRow{grid-template-columns:1fr}.messageTemplateRow button{width:100%}}


/* v52: simplified customer message panel */
.messageCard textarea{min-height:118px;margin-top:0}
.messageTemplateRow{margin:6px 0 8px!important}
#messageQuickActions{margin:8px 0 4px!important}
#messageQuickActions .messageActionBtn{min-height:42px!important;padding:9px 7px!important}
.messageMore{margin-top:6px;border-top:1px solid #eef1f4;padding-top:6px}
.messageMore summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:36px;font-size:12px;font-weight:800;color:#64748b;padding:2px 2px}
.messageMore summary::-webkit-details-marker{display:none}
.messageMore summary::after{content:'⌄';font-size:16px;transition:transform .15s ease}
.messageMore[open] summary::after{transform:rotate(180deg)}
.messagePaymentActions{margin:5px 0 2px!important}
.messagePaymentActions button{min-height:38px!important;padding:8px!important;font-size:12px!important}
.messageActionNotice:empty{display:none}
.saveOnlyCard{padding:10px 12px!important;margin-top:-2px}
.saveOnlyCard #saveBtn{min-height:46px}
html[data-theme="dark"] .messageMore{border-top-color:#374151}
html[data-theme="dark"] .messageMore summary{color:#9ca3af}
@media(max-width:380px){#messageQuickActions{grid-template-columns:repeat(3,1fr)!important}.messageTemplateRow{grid-template-columns:minmax(0,1fr) auto!important}.messageTemplateRow button{width:auto!important}.messageTemplateRow select{font-size:14px}.messageTemplateRow button{padding:9px 11px!important}}
@media(max-width:320px){#messageQuickActions{grid-template-columns:1fr!important}.messageTemplateRow{grid-template-columns:1fr!important}.messageTemplateRow button{width:100%!important}}


/* v54: contact picker */
.phoneInputRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.contactPickBtn{min-height:43px;padding:9px 11px;white-space:nowrap;font-size:12px}
.contactPickNotice{margin:7px 0 0;color:#64748b;font-size:11px;line-height:1.35}
html[data-theme="dark"] .contactPickNotice{color:#9ca3af}
@media(max-width:340px){.phoneInputRow{grid-template-columns:1fr}.contactPickBtn{width:100%}}


/* v55: 미수금 관리 */
#receivablesView[hidden]{display:none!important}
.revenueManageLink{width:100%;border:1px solid #e5e7eb;background:#fff;border-radius:11px;min-height:46px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;text-align:left;margin:0 0 8px;color:#111827}.revenueManageLink span{display:grid;gap:2px}.revenueManageLink b{font-size:12px}.revenueManageLink small{font-size:9px;color:#94a3b8}.revenueManageLink strong{font-size:20px;color:#94a3b8}
.receivablesCard{padding:14px}.receivablesSummary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;margin:0 0 10px;border-radius:13px;background:#fff7ed;border:1px solid #fed7aa}.receivablesSummary>div{display:grid;gap:3px}.receivablesSummary span{font-size:10px;font-weight:800;color:#9a3412}.receivablesSummary b{font-size:21px}.receivablesSummary small{font-size:11px;color:#9a3412;font-weight:800}
.receivablesTools{display:grid;gap:8px;margin-bottom:8px}.receivablesAgeTabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.receivableAgeBtn{border:0;border-radius:999px;background:#eef2f7;color:#64748b;min-height:34px;padding:6px 5px;font-size:10px;font-weight:800}.receivableAgeBtn.active{background:#111827;color:#fff}
.receivablesList{display:grid;gap:8px}.receivableItem{border:1px solid #e5e7eb;border-radius:13px;overflow:hidden;background:#fff}.receivableOpen{width:100%;border:0;background:transparent;color:inherit;padding:11px;display:flex;align-items:center;justify-content:space-between;gap:9px;text-align:left}.receivableMain{min-width:0;display:grid;gap:4px;flex:1}.receivableTitle{display:flex;align-items:center;gap:6px;min-width:0}.receivableTitle b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receivableMain small,.receivablePhone{font-size:9px;color:#94a3b8}.receivableDate{flex:0 0 auto;display:grid;justify-items:end;align-content:center;max-width:42%}.receivableDate b{font-size:10px;line-height:1.25;text-align:right;color:#475569;font-weight:800;white-space:normal;word-break:keep-all}.receivableAge{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.receivableAge.recent{background:#eef2f7;color:#64748b}.receivableAge.late7{background:#fef3c7;color:#92400e}.receivableAge.late14{background:#ffedd5;color:#9a3412}.receivableAge.late30{background:#fee2e2;color:#991b1b}
.receivableDetail{padding:0 11px 11px;border-top:1px solid #eef2f7}.receivableMoneyGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 0}.receivableMoneyGrid>div{display:grid;gap:2px;padding:7px;border-radius:10px;background:#f8fafc}.receivableMoneyGrid span{font-size:9px;color:#64748b}.receivableMoneyGrid b{font-size:11px}.receivableActions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.receivableActions button{min-height:38px;padding:7px 5px;font-size:10px}
html[data-theme="dark"] .revenueManageLink,html[data-theme="dark"] .receivableItem{background:#1f2937;border-color:#374151;color:#f9fafb}html[data-theme="dark"] .receivablesSummary{background:#431407;border-color:#7c2d12}html[data-theme="dark"] .receivablesSummary span,html[data-theme="dark"] .receivablesSummary small{color:#fdba74}html[data-theme="dark"] .receivableAgeBtn{background:#374151;color:#d1d5db}html[data-theme="dark"] .receivableAgeBtn.active{background:#f9fafb;color:#111827}html[data-theme="dark"] .receivableDetail{border-top-color:#374151}html[data-theme="dark"] .receivableMoneyGrid>div{background:#111827}
@media(max-width:420px){.receivablesCard{padding:10px}.receivableActions{grid-template-columns:1fr 1fr}.receivableActions .receivableSms{grid-column:1/-1}.receivableMoneyGrid{grid-template-columns:1fr 1fr}.receivableMoneyGrid>div:last-child{grid-column:1/-1}.receivablesAgeTabs{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* v56: 견적서 / 작업완료 내역서 */
#documentView[hidden]{display:none!important}
.documentBuilderCard{padding:14px}.documentTypeTabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.documentTypeBtn{border:0;border-radius:11px;min-height:42px;background:#eef2f7;color:#64748b;font-weight:900}.documentTypeBtn.active{background:#111827;color:#fff}
.documentPhotoOptions{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:9px 10px;border-radius:11px;background:#f8fafc}.documentPhotoOptions label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800}.documentPhotoOptions input{width:auto}
.documentPaper{background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:14px;padding:18px;box-shadow:0 3px 15px rgba(15,23,42,.04)}.documentTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:2px solid #111827;padding-bottom:12px}.documentTop p{margin:0 0 3px;font-size:11px;font-weight:800;color:#64748b}.documentTop h2{margin:0;font-size:23px}.documentIssue{display:grid;gap:3px;text-align:right}.documentIssue span{font-size:9px;color:#94a3b8}.documentIssue b{font-size:11px}.documentCompanyLine{min-height:18px;padding:8px 0;color:#64748b;font-size:10px}.documentSection{padding:12px 0;border-top:1px solid #e5e7eb}.documentSection:first-of-type{border-top:0}.documentSection h3{font-size:12px;margin:0 0 8px}.documentInfoGrid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.documentInfoRow{display:grid;grid-template-columns:72px 1fr;gap:7px;padding:8px 9px;border-bottom:1px solid #eef2f7}.documentInfoRow:nth-last-child(-n+2){border-bottom:0}.documentInfoRow span{font-size:9px;color:#64748b}.documentInfoRow b{font-size:10px;word-break:break-word}.documentWorkText,.documentNote,.documentAccount p{font-size:11px;line-height:1.6;margin:0}.documentNote{margin-top:8px;padding:8px 9px;background:#f8fafc;border-radius:9px}.documentAccount{background:#fafafa;margin:5px -5px 0;padding:12px 5px!important}.documentPhotoGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.documentPhoto{display:grid;gap:5px}.documentPhoto span{font-size:9px;font-weight:800;color:#64748b}.documentPhoto img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;border:1px solid #e5e7eb}.documentFooter{text-align:center;padding-top:12px;border-top:1px solid #e5e7eb;font-size:9px;color:#94a3b8}.documentActions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.documentActions button{min-height:42px;padding:8px 5px;font-size:11px}.historyActionsV56{grid-template-columns:repeat(3,1fr)!important}.historyActionsV56 button{min-width:0;padding:8px 5px!important;font-size:11px!important}
html[data-theme="dark"] .documentTypeBtn{background:#374151;color:#d1d5db}html[data-theme="dark"] .documentTypeBtn.active{background:#f9fafb;color:#111827}html[data-theme="dark"] .documentPhotoOptions{background:#111827}
@media(max-width:360px){.documentInfoGrid{grid-template-columns:1fr}.documentInfoRow:nth-last-child(-n+2){border-bottom:1px solid #eef2f7}.documentInfoRow:last-child{border-bottom:0}.documentActions{grid-template-columns:1fr}.documentPhotoGrid{grid-template-columns:1fr}.documentTop h2{font-size:20px}}
@media print{
  body *{visibility:hidden!important}
  #documentPrintArea,#documentPrintArea *{visibility:visible!important}
  #documentPrintArea{position:absolute!important;left:0!important;top:0!important;width:100%!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:16mm!important;background:#fff!important;color:#111!important}
  #documentPrintArea img{max-height:85mm;object-fit:contain!important}
  @page{size:A4;margin:0}
}

/* v57: 내역에서 견적·내역서 바로 찾기 */
.historyItemTopV57{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.historyItemTopV57 .historyOpen{min-width:0}
.historyQuickDocument{min-height:40px!important;padding:7px 9px!important;font-size:10.5px!important;white-space:nowrap;border-radius:10px}
.historyActionsV57{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.historyActionsV57 button{min-width:0;padding:8px 5px!important;font-size:11px!important}
@media(max-width:380px){.historyItemTopV57{grid-template-columns:minmax(0,1fr) 78px}.historyQuickDocument{white-space:normal;line-height:1.15;padding:6px!important}}


/* v58: 내역 목록 압축 정리 */
.historyItemV58{padding:0!important;border-top:1px solid #e5e7eb}
.historyItemV58:first-child{border-top:0}
.historyOpenV58{width:100%;padding:10px 2px!important;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent!important;text-align:left;color:inherit}
.historyTitleLineV58{display:flex;align-items:center;gap:6px;min-width:0}
.historyTitleLineV58>b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.historyScheduleOnly{display:block;margin-top:4px;color:#64748b;font-size:10px;line-height:1.25}
.historyChevron{font-size:20px;color:#94a3b8;line-height:1}
.historyDetailV58{padding:10px 0 12px!important;border-top:1px solid #eef2f7}
.historyMetaGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px}
.historyMetaGrid>div{min-width:0;padding:7px 8px;border-radius:10px;background:#f8fafc;display:grid;gap:3px}
.historyMetaGrid span:not(.workStatusBadge):not(.paymentStatusBadge){font-size:9px;color:#64748b;font-weight:700}
.historyMetaGrid b{font-size:10.5px;line-height:1.35;word-break:break-word}
.paidInline{display:block;margin-top:3px;color:#64748b;font-size:9px;font-weight:700}
.historyTextBlock{padding:7px 8px;margin-top:6px;border-radius:10px;background:#f8fafc}
.historyTextBlock>span{font-size:9px;color:#64748b;font-weight:800}
.historyTextBlock p{margin:3px 0 0;font-size:11px;line-height:1.45;white-space:pre-wrap}
.historyMessageFold{margin-top:6px;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}
.historyMessageFold summary{padding:8px 9px;font-size:10px;font-weight:800;cursor:pointer;background:#f8fafc}
.historyMessageFold p{margin:0;padding:8px 9px;font-size:10.5px;line-height:1.5;white-space:pre-wrap}
.historyActionsV58{display:grid!important;grid-template-columns:1.25fr .8fr .8fr!important;gap:6px!important;margin-top:8px!important}
.historyActionsV58 button{min-width:0!important;min-height:36px!important;padding:7px 5px!important;font-size:10px!important}
html[data-theme="dark"] .historyMetaGrid>div,html[data-theme="dark"] .historyTextBlock,html[data-theme="dark"] .historyMessageFold summary{background:#111827}
html[data-theme="dark"] .historyDetailV58,html[data-theme="dark"] .historyMessageFold{border-color:#374151}
@media(max-width:390px){.historyMetaGrid{grid-template-columns:1fr}.historyActionsV58{grid-template-columns:1fr 1fr!important}.historyActionsV58 .documentHistory{grid-column:1/-1}}


/* v59: 저장 내역에서 고객에게 보내기 */
.historySendFold{margin-top:7px;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}
.historySendFold summary{padding:8px 9px;background:#f8fafc;font-size:10px;font-weight:900;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}
.historySendFold summary::-webkit-details-marker{display:none}.historySendFold summary::after{content:'›';font-size:17px;color:#94a3b8;transition:transform .15s}.historySendFold[open] summary::after{transform:rotate(90deg)}
.historySendBody{padding:8px;display:grid;gap:7px}.historySendType{min-height:38px;font-size:11px;padding:7px 9px}.historySendActions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.historySendActions button{min-height:36px!important;padding:7px 4px!important;font-size:10px!important}.historySendNotice{min-height:0;color:#64748b;font-size:9px;line-height:1.35}.historySendNotice:empty{display:none}
html[data-theme="dark"] .historySendFold{border-color:#374151}html[data-theme="dark"] .historySendFold summary{background:#111827}
@media(max-width:340px){.historySendActions{grid-template-columns:1fr}.historySendActions button{width:100%}}

/* v60: keep list/detail compact; saved timestamp only at the very bottom */
.historySavedAt{margin-top:9px;padding-top:7px;border-top:1px solid var(--line,#e5e7eb);text-align:right;font-size:10px;color:var(--muted,#94a3b8);line-height:1.3}


/* v61: 상세 메타정보를 세로가 아닌 가로형으로 압축 */
.historyMetaGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:8px}
.historyMetaGrid>div{min-width:0;padding:7px 8px;border-radius:10px;background:#f8fafc;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:6px;row-gap:0}
.historyMetaGrid span:not(.workStatusBadge):not(.paymentStatusBadge){font-size:9px;color:#64748b;font-weight:800;white-space:nowrap}
.historyMetaGrid b{font-size:10.5px;line-height:1.3;word-break:break-word;text-align:right;min-width:0}
.historyMetaGrid .paymentStatusBadge{display:inline-flex;vertical-align:middle}
.historyMetaGrid .paidInline{display:inline;margin:0 0 0 4px;color:#64748b;font-size:9px;font-weight:700}
@media(max-width:390px){.historyMetaGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.historyMetaGrid>div{padding:6px 7px;column-gap:4px}.historyMetaGrid span:not(.workStatusBadge):not(.paymentStatusBadge){font-size:8.5px}.historyMetaGrid b{font-size:9.5px}}
@media(max-width:320px){.historyMetaGrid{grid-template-columns:1fr!important}.historyMetaGrid>div{grid-template-columns:56px minmax(0,1fr)}}


/* v62 현장 주소 · 길찾기 */
.addressInputRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.addressRouteBtn{white-space:nowrap;padding:11px 12px}.historyAddressInline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:8px 10px;border-radius:11px;background:#f8fafc;font-size:12px}.historyAddressInline span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.historyAddressInline button{flex:0 0 auto;padding:7px 9px;font-size:11px}.customerAddress{margin:8px 0 0;padding:8px 10px;background:#f8fafc;border-radius:10px;font-size:11px;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documentAddressRow{grid-column:1/-1}.documentAddressRow b{white-space:normal;word-break:keep-all}.customerQuickActions{flex-wrap:wrap}.customerQuickActions .customerRoute{flex:1 1 42%}
html[data-theme="dark"] .historyAddressInline,html[data-theme="dark"] .customerAddress{background:#111827;color:#d1d5db}
@media(max-width:360px){.addressInputRow{grid-template-columns:1fr}.addressRouteBtn{width:100%}}

.dashboardAddressRow{display:flex;align-items:center;gap:7px}.dashboardAddressRow small{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboardAddressRow .dashboardRoute{padding:5px 8px;font-size:12px;flex:0 0 auto}


/* v63 작업 템플릿 */
.workTemplateQuickCard{padding:10px 12px!important}.workTemplateQuickHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.workTemplateQuickHead>b{font-size:12px}.workTemplateQuickHead button{min-height:30px;padding:5px 8px;font-size:10px}.workTemplateQuickList{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.workTemplateQuickList::-webkit-scrollbar{display:none}.workTemplateChip{flex:0 0 auto;min-height:36px;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;border:1px solid var(--line,#e5e7eb);background:var(--card,#fff);color:inherit}.workTemplateChip:active{transform:scale(.98)}
.templateForm{display:grid;gap:8px}.templateFormRow{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.templateFormActions{display:grid;grid-template-columns:1fr auto;gap:8px}.templateList{display:grid;margin-top:12px;border-top:1px solid var(--line,#e5e7eb)}.templateRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line,#e5e7eb)}.templateRowMain{display:grid;gap:3px;min-width:0}.templateRowMain b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.templateRowMain small{font-size:10px;color:var(--muted,#64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.templateRowActions{display:flex;gap:5px}.templateEmpty{padding:18px 4px;text-align:center;color:var(--muted,#64748b);font-size:11px}
@media(max-width:350px){.templateFormRow{grid-template-columns:1fr}.templateRow{grid-template-columns:1fr}.templateRowActions{justify-content:flex-end}}

/* v64: 기존 작업 복사 / 재예약 */
.historyReuseActions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.historyReuseActions button{min-height:36px;padding:7px 8px;font-size:11px;border-radius:10px}
.customerQuickActions .customerRebook{white-space:nowrap}
@media(max-width:360px){.historyReuseActions{grid-template-columns:1fr 1fr}.historyReuseActions button{font-size:10px;padding:7px 5px}}


/* v65: 일정 월간 캘린더 */
#calendarView[hidden]{display:none!important}
.topTabs{grid-template-columns:repeat(7,minmax(0,1fr))!important}
.calendarCard,.calendarDayCard{padding:12px}
.calendarHeader{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:10px}
.calendarHeaderCenter{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.calendarHeaderCenter h2{margin:0;font-size:18px;white-space:nowrap}.calendarNavBtn{width:42px;height:38px;padding:0;font-size:24px;line-height:1}.calendarTodayBtn{padding:5px 9px;border-radius:999px;background:#eef2f7;color:#475569;font-size:10px;min-height:28px}
.calendarWeekdays,.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendarWeekdays{margin-bottom:4px}.calendarWeekdays span{text-align:center;font-size:10px;font-weight:800;color:#94a3b8;padding:3px 0}.calendarWeekdays span:first-child{color:#ef4444}.calendarWeekdays span:last-child{color:#3b82f6}
.calendarBlank{min-height:56px}.calendarDay{position:relative;min-height:58px;padding:6px 4px;border:1px solid transparent;border-radius:11px;background:#f8fafc;color:#111827;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;font-size:12px}.calendarDay>span{font-weight:800}.calendarDay>small{position:absolute;right:4px;top:4px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e5e7eb;color:#475569;font-size:8px}.calendarDay>em{display:flex;gap:2px;min-height:6px;margin-top:auto}.calendarDay.today{border-color:#111827}.calendarDay.today>span{background:#111827;color:white;border-radius:999px;min-width:24px;height:24px;display:grid;place-items:center}.calendarDay.selected{background:#e2e8f0;box-shadow:inset 0 0 0 1px #94a3b8}.calendarDot{display:block;width:5px;height:5px;border-radius:50%;background:#94a3b8}.calendarDot.scheduled{background:#2563eb}.calendarDot.done{background:#16a34a}.calendarDot.received{background:#f59e0b}.calendarDot.cancelled{background:#ef4444}
.calendarDayHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.calendarDayHeader>div{display:flex;align-items:baseline;gap:7px;min-width:0}.calendarDayHeader h2{margin:0;font-size:15px}.calendarDayHeader small{color:#94a3b8;font-size:10px;white-space:nowrap}.calendarDayList{display:grid;gap:7px}.calendarEmpty{display:grid;gap:4px;padding:16px 8px;text-align:center;color:#64748b;font-size:12px}.calendarEmpty b{color:#334155}.calendarEmpty span{font-size:10px;color:#94a3b8}
.calendarScheduleItem{border:1px solid #e5e7eb;border-radius:12px;background:#fff;overflow:hidden}.calendarScheduleItem summary{list-style:none;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:7px;padding:10px;cursor:pointer}.calendarScheduleItem summary::-webkit-details-marker{display:none}.calendarScheduleTime{font-size:11px;font-weight:900}.calendarScheduleMain{display:grid;gap:2px;min-width:0}.calendarScheduleMain b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendarScheduleMain small{font-size:9px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendarScheduleDetail{border-top:1px solid #eef2f7;padding:9px 10px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.calendarScheduleDetail>div:not(.calendarScheduleActions){display:grid;grid-template-columns:48px minmax(0,1fr);gap:5px;font-size:10px}.calendarScheduleDetail span{color:#64748b}.calendarScheduleDetail b{font-size:10px;word-break:break-word}.calendarScheduleAddress{grid-column:1/-1}.calendarScheduleActions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.calendarScheduleActions button{padding:8px;font-size:10px;min-height:34px}
html[data-theme="dark"] .calendarTodayBtn,html[data-theme="dark"] .calendarDay{background:#1f2937;color:#f9fafb}html[data-theme="dark"] .calendarDay.selected{background:#374151;box-shadow:inset 0 0 0 1px #6b7280}html[data-theme="dark"] .calendarDay.today{border-color:#f9fafb}html[data-theme="dark"] .calendarDay.today>span{background:#f9fafb;color:#111827}html[data-theme="dark"] .calendarScheduleItem{background:#1f2937;border-color:#374151}html[data-theme="dark"] .calendarScheduleDetail{border-top-color:#374151}html[data-theme="dark"] .calendarEmpty b{color:#e5e7eb}
@media(max-width:620px){.topTabs{grid-template-columns:repeat(4,minmax(0,1fr))!important}.calendarBlank,.calendarDay{min-height:54px}.calendarDay{padding:5px 2px}.calendarScheduleItem summary{grid-template-columns:55px minmax(0,1fr) auto}}
@media(max-width:430px){.topTabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}.calendarCard,.calendarDayCard{padding:9px}.calendarGrid,.calendarWeekdays{gap:2px}.calendarBlank,.calendarDay{min-height:50px}.calendarDay>small{right:2px;top:2px}.calendarScheduleItem summary{grid-template-columns:50px minmax(0,1fr) auto;padding:9px 7px}.calendarScheduleMain b{font-size:11px}.calendarDayHeader{align-items:flex-start}.calendarDayHeader>div{display:grid;gap:1px}.calendarDayHeader .smallBtn{padding:8px 9px;font-size:10px}}
@media(max-width:330px){.topTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.calendarHeader{grid-template-columns:34px 1fr 34px}.calendarNavBtn{width:34px}.calendarHeaderCenter h2{font-size:15px}.calendarTodayBtn{padding:4px 6px}.calendarBlank,.calendarDay{min-height:46px}.calendarDay>span{font-size:10px}.calendarDay>small{font-size:7px;min-width:14px;height:14px}.calendarScheduleDetail{grid-template-columns:1fr}.calendarScheduleAddress,.calendarScheduleActions{grid-column:auto}.calendarScheduleActions{grid-template-columns:1fr}}

.calendarQuickBooking{display:grid;grid-template-columns:120px 1fr;gap:7px;margin:0 0 7px}.calendarQuickBooking input{min-height:38px;padding:7px 9px;font-size:12px}.calendarQuickBooking button{min-height:38px}.calendarBookingNotice{min-height:14px;margin:0 0 6px;font-size:10px}
@media(max-width:340px){.calendarQuickBooking{grid-template-columns:1fr 1fr}}


/* v66 calendar: date/status on top, count below, no overlap */
.calendarDay{justify-content:flex-start!important;gap:0!important;padding:6px 5px!important;overflow:hidden}
.calendarDay>.calendarDayTop{width:100%;display:flex;align-items:center;justify-content:center;gap:4px;min-height:26px;position:relative}
.calendarDateNum{font-size:12px;font-weight:900;line-height:1;display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px}
.calendarStatusMarks{display:flex;align-items:center;gap:2px;min-width:0;min-height:6px;margin:0!important}
.calendarCount{position:static!important;display:block!important;width:100%;height:auto!important;min-width:0!important;margin-top:5px;padding:0!important;border-radius:0!important;background:transparent!important;color:#64748b!important;font-size:9px!important;font-weight:800;text-align:center;line-height:1.2}
.calendarCount.empty{visibility:hidden}
.calendarDay.today>.calendarDayTop>.calendarDateNum{background:#111827;color:#fff}
.calendarDay.selected>.calendarDayTop>.calendarDateNum{box-shadow:inset 0 0 0 1px #64748b}
html[data-theme="dark"] .calendarDay.today>.calendarDayTop>.calendarDateNum{background:#f9fafb;color:#111827}
html[data-theme="dark"] .calendarCount{color:#cbd5e1!important}
@media(max-width:430px){
  .calendarDay{padding:5px 3px!important}
  .calendarDay>.calendarDayTop{gap:3px;min-height:23px}
  .calendarDateNum{font-size:11px;min-width:20px;height:20px}
  .calendarDot{width:4px;height:4px}
  .calendarCount{font-size:8px!important;margin-top:4px}
}
@media(max-width:330px){
  .calendarDay>.calendarDayTop{gap:2px}
  .calendarDateNum{font-size:10px;min-width:18px;height:18px}
  .calendarStatusMarks{gap:1px}
  .calendarCount{font-size:7px!important}
}


/* v67 calendar: 일정 없는 날짜는 흰색, 일정 있는 날짜는 연한 배경 */
.calendarDay{background:#fff!important;border-color:#eef2f7!important;color:#111827!important;}
.calendarDay.hasSchedule{background:#eff6ff!important;border-color:#bfdbfe!important;}
.calendarStatusMarks,.calendarDot{display:none!important;}
.calendarDay>.calendarDayTop{justify-content:center!important;}
.calendarDay .calendarCount{color:#2563eb!important;}
.calendarDay.today{border-color:#111827!important;box-shadow:inset 0 0 0 1px #111827!important;}
.calendarDay.today>.calendarDayTop>.calendarDateNum{background:transparent!important;color:#111827!important;box-shadow:none!important;}
.calendarDay.selected{background:#111827!important;border-color:#111827!important;box-shadow:none!important;color:#fff!important;}
.calendarDay.selected>.calendarDayTop>.calendarDateNum{background:transparent!important;color:#fff!important;box-shadow:none!important;}
.calendarDay.selected .calendarCount{color:#dbeafe!important;}
html[data-theme="dark"] .calendarDay{background:#111827!important;border-color:#263244!important;color:#f9fafb!important;}
html[data-theme="dark"] .calendarDay.hasSchedule{background:#172554!important;border-color:#31527c!important;}
html[data-theme="dark"] .calendarDay.today{border-color:#f9fafb!important;box-shadow:inset 0 0 0 1px #f9fafb!important;}
html[data-theme="dark"] .calendarDay.today>.calendarDayTop>.calendarDateNum{background:transparent!important;color:#f9fafb!important;}
html[data-theme="dark"] .calendarDay.selected{background:#f9fafb!important;border-color:#f9fafb!important;color:#111827!important;}
html[data-theme="dark"] .calendarDay.selected>.calendarDayTop>.calendarDateNum{color:#111827!important;}
html[data-theme="dark"] .calendarDay.selected .calendarCount{color:#1d4ed8!important;}

/* v68: 오늘 날짜 표시가 날짜 숫자를 덮는 이전 CSS 규칙 보정 */
.calendarDay.today > span.calendarDayTop{
  background:transparent!important;
  color:inherit!important;
  border-radius:0!important;
  min-width:0!important;
  width:100%!important;
  height:auto!important;
  min-height:26px!important;
  display:flex!important;
  place-items:unset!important;
  align-items:center!important;
  justify-content:center!important;
}
.calendarDay.today:not(.selected) .calendarDateNum{color:#111827!important;background:transparent!important;}
html[data-theme="dark"] .calendarDay.today:not(.selected) .calendarDateNum{color:#f9fafb!important;}
@media(max-width:430px){.calendarDay.today > span.calendarDayTop{min-height:23px!important;}}

/* v69 일정 검색/필터 + 빠른 상태변경 */
.calendarTools{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:7px;margin:0 0 7px}
.calendarTools input,.calendarTools select{min-height:38px;padding:7px 9px;font-size:11px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#111827}
.calendarStatusActions{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:2px}
.calendarStatusActions button{min-height:32px;padding:6px 5px;font-size:9px;border-radius:9px}
.dangerLite{background:#fff1f2!important;color:#be123c!important;border:1px solid #fecdd3!important}
html[data-theme="dark"] .calendarTools input,html[data-theme="dark"] .calendarTools select{background:#111827;color:#f9fafb;border-color:#374151}
html[data-theme="dark"] .dangerLite{background:#3f1720!important;color:#fecdd3!important;border-color:#7f1d1d!important}
@media(max-width:390px){.calendarTools{grid-template-columns:1fr 104px}.calendarStatusActions{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v70: 비서왔소! 브랜딩 + 문서 디자인 정리 */
.brandHeader{align-items:center}.brandTitleWrap{display:grid;gap:2px;min-width:0}.brandTitleWrap h1{margin:0}.brandTitleWrap p{margin:0;font-size:10px;font-weight:800;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.versionCard>div{display:grid;gap:2px}.versionCard small{font-size:9px;color:var(--muted,#64748b);font-weight:700}
.documentTopV70{border-bottom:0;padding-bottom:10px;align-items:stretch}.documentBrandBlock{display:grid;align-content:start;gap:4px}.documentBrandBlock .documentKind{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;background:#111827;color:#fff;font-size:9px;font-weight:900}.documentBrandBlock h2{margin:0;font-size:21px;line-height:1.15}.documentBrandBlock p{margin:0!important;font-size:9.5px!important;font-weight:700!important;color:#64748b!important}.documentIssue{min-width:74px;padding:8px 9px;border:1px solid #e5e7eb;border-radius:10px;align-self:flex-start}.documentSectionCompact{padding-top:9px}.documentInfoGridV70{border-radius:12px}.documentInfoGridV70 .documentInfoRow{min-height:38px;align-items:center}.documentInfoGridV70 .documentMoneyRow b{font-size:12px;color:#111827}.documentWorkSection{padding-bottom:10px}.documentWorkSection .documentWorkText{padding:10px 11px;border-radius:10px;background:#f8fafc;font-weight:700}.documentNote{display:grid;gap:4px}.documentNote p{margin:0;font-size:10.5px;line-height:1.5}.documentAccountV70{margin:0;padding:11px 12px!important;border:1px solid #e5e7eb!important;border-radius:11px;background:#f8fafc}.documentAccountV70 h3{margin-bottom:5px}.documentAccountV70 p{font-weight:700}.documentFooter{display:flex;justify-content:center;gap:6px;align-items:center}.documentFooter b{font-size:9px;color:#64748b}.documentFooter span{font-size:9px;color:#94a3b8}
html[data-theme="dark"] .brandTitleWrap p,html[data-theme="dark"] .versionCard small{color:#cbd5e1}html[data-theme="dark"] .documentBrandBlock .documentKind{background:#111827;color:#fff}
@media(max-width:360px){.brandTitleWrap p{font-size:9px}.documentBrandBlock h2{font-size:18px}.documentIssue{min-width:66px;padding:7px}.documentInfoGridV70{grid-template-columns:1fr}}
@media print{.documentBrandBlock .documentKind{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#111!important;color:#fff!important}.documentWorkSection .documentWorkText,.documentAccountV70{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f8fafc!important}}


/* v71: 소 캐릭터 헤더 + 설정 버튼 상단 이동 */
.brandHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.brandIdentity{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.brandMascot{width:54px;height:54px;flex:0 0 54px;object-fit:cover;object-position:center;border-radius:16px;background:#fff;border:1px solid #eef2f7;box-shadow:0 4px 14px #0000000a}
.brandTitleWrap{min-width:0}
.headerSettingsBtn{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border-radius:15px;background:#eef2f7;color:#111827;font-size:21px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.headerSettingsBtn.active{background:#111827;color:#fff}
.topTabs{grid-template-columns:repeat(6,minmax(0,1fr))!important}
html[data-theme="dark"] .brandMascot{border-color:#374151;background:#fff}
html[data-theme="dark"] .headerSettingsBtn{background:#374151;color:#f9fafb}
html[data-theme="dark"] .headerSettingsBtn.active{background:#f9fafb;color:#111827}
@media(max-width:620px){.topTabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:430px){.brandMascot{width:48px;height:48px;flex-basis:48px;border-radius:14px}.brandIdentity{gap:8px}.brandTitleWrap h1{font-size:25px}.brandTitleWrap p{font-size:9px}.headerSettingsBtn{width:46px;height:46px;flex-basis:46px;border-radius:14px}.topTabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:330px){.brandMascot{width:44px;height:44px;flex-basis:44px}.brandTitleWrap h1{font-size:22px}.brandTitleWrap p{font-size:8.5px}.headerSettingsBtn{width:44px;height:44px;flex-basis:44px}.topTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}}


/* v73 brand header polish: mascot left, title centered, compact settings top-right */
.brandHeader{
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr) 76px;
  align-items:center!important;
  gap:8px!important;
  min-height:82px;
  margin-bottom:12px!important;
  position:relative;
}
.brandIdentity{
  display:contents!important;
}
.brandMascot{
  grid-column:1;
  width:76px!important;
  height:76px!important;
  max-width:none!important;
  flex:none!important;
  object-fit:cover!important;
  object-position:center 38%!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-mask-image:radial-gradient(ellipse 72% 74% at 50% 48%, #000 58%, rgba(0,0,0,.88) 68%, transparent 89%);
  mask-image:radial-gradient(ellipse 72% 74% at 50% 48%, #000 58%, rgba(0,0,0,.88) 68%, transparent 89%);
}
.brandTitleWrap{
  grid-column:2;
  min-width:0;
  text-align:center;
  justify-items:center;
  align-self:center;
  gap:1px!important;
}
.brandTitleWrap h1{
  margin:0!important;
  font-family:"Jua","Arial Rounded MT Bold","Noto Sans KR",system-ui,sans-serif!important;
  font-size:34px!important;
  font-weight:400!important;
  line-height:1.05!important;
  letter-spacing:-.7px!important;
  color:#111827;
  white-space:nowrap;
}
.brandTitleWrap p{
  margin-top:5px!important;
  max-width:100%;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1.25;
  text-align:center;
}
.headerSettingsBtn{
  grid-column:3;
  justify-self:end;
  align-self:start;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  flex:none!important;
  margin-top:-3px;
  padding:0!important;
  border-radius:11px!important;
  font-size:17px!important;
  box-shadow:none!important;
}
html[data-theme="dark"] .brandTitleWrap h1{color:#f9fafb}

@media(max-width:430px){
  .brandHeader{grid-template-columns:62px minmax(0,1fr) 62px;min-height:70px;gap:5px!important}
  .brandMascot{width:62px!important;height:62px!important}
  .brandTitleWrap h1{font-size:30px!important;letter-spacing:-.5px!important}
  .brandTitleWrap p{font-size:8.8px!important;margin-top:4px!important}
  .headerSettingsBtn{width:32px!important;height:32px!important;min-width:32px!important;font-size:16px!important;margin-top:-4px}
}
@media(max-width:350px){
  .brandHeader{grid-template-columns:54px minmax(0,1fr) 54px;min-height:62px}
  .brandMascot{width:54px!important;height:54px!important}
  .brandTitleWrap h1{font-size:26px!important}
  .brandTitleWrap p{font-size:8px!important}
  .headerSettingsBtn{width:30px!important;height:30px!important;min-width:30px!important;font-size:15px!important}
}

/* v74: transparent mascot + integrated illustrated header */
.brandHeader{
  display:grid!important;
  grid-template-columns:92px minmax(0,1fr) 42px!important;
  align-items:center!important;
  gap:4px!important;
  min-height:94px!important;
  margin:0 0 13px!important;
  padding:4px 4px 3px!important;
  position:relative;
  isolation:isolate;
  overflow:visible;
}
.brandHeader::before{
  content:"";
  position:absolute;
  inset:13px 2px 5px 2px;
  z-index:-1;
  border-radius:28px;
  background:
    radial-gradient(circle at 8% 48%,rgba(220,252,231,.72),transparent 31%),
    radial-gradient(circle at 89% 30%,rgba(219,234,254,.72),transparent 34%),
    linear-gradient(120deg,rgba(255,255,255,.48),rgba(240,253,250,.62));
}
.brandIdentity{display:contents!important}
.brandMascot{
  grid-column:1!important;
  align-self:end!important;
  justify-self:start!important;
  width:92px!important;
  height:90px!important;
  max-width:none!important;
  object-fit:contain!important;
  object-position:left bottom!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  filter:drop-shadow(0 7px 7px rgba(15,23,42,.10));
  -webkit-mask-image:none!important;
  mask-image:none!important;
  transform:translate(-2px,3px);
  pointer-events:none;
  user-select:none;
}
.brandTitleWrap{
  grid-column:2!important;
  align-self:center!important;
  justify-self:stretch!important;
  justify-items:center!important;
  text-align:center!important;
  min-width:0!important;
  gap:0!important;
  padding-top:1px;
}
.brandTitleWrap h1{
  margin:0!important;
  font-family:"Jua","Arial Rounded MT Bold","Noto Sans KR",system-ui,sans-serif!important;
  font-size:35px!important;
  font-weight:400!important;
  line-height:1!important;
  letter-spacing:-1px!important;
  white-space:nowrap;
  text-shadow:0 1px 0 rgba(255,255,255,.75);
}
.brandTitleWrap p{
  margin:7px 0 0!important;
  max-width:100%!important;
  font-size:10.5px!important;
  font-weight:850!important;
  line-height:1.2!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.headerSettingsBtn{
  grid-column:3!important;
  justify-self:end!important;
  align-self:start!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  margin-top:1px!important;
  padding:0!important;
  border-radius:10px!important;
  font-size:15px!important;
  line-height:1!important;
  background:rgba(238,242,247,.92)!important;
  box-shadow:0 2px 8px rgba(15,23,42,.06)!important;
}
.headerSettingsBtn.active{background:#111827!important;color:#fff!important}
html[data-theme="dark"] .brandHeader::before{
  background:
    radial-gradient(circle at 8% 48%,rgba(22,101,52,.28),transparent 31%),
    radial-gradient(circle at 89% 30%,rgba(30,64,175,.22),transparent 34%),
    linear-gradient(120deg,rgba(31,41,55,.5),rgba(17,24,39,.72));
}
html[data-theme="dark"] .brandTitleWrap h1{text-shadow:none}
html[data-theme="dark"] .headerSettingsBtn{background:rgba(55,65,81,.94)!important;color:#f9fafb!important}

@media(max-width:430px){
  .brandHeader{grid-template-columns:78px minmax(0,1fr) 38px!important;min-height:82px!important;padding-left:1px!important;padding-right:2px!important}
  .brandHeader::before{inset:12px 0 4px 0;border-radius:24px}
  .brandMascot{width:80px!important;height:79px!important;transform:translate(-3px,3px)}
  .brandTitleWrap h1{font-size:31px!important;letter-spacing:-.8px!important}
  .brandTitleWrap p{font-size:9px!important;margin-top:6px!important}
  .headerSettingsBtn{width:28px!important;height:28px!important;min-width:28px!important;font-size:14px!important;margin-top:0!important}
}
@media(max-width:350px){
  .brandHeader{grid-template-columns:68px minmax(0,1fr) 34px!important;min-height:74px!important}
  .brandMascot{width:70px!important;height:70px!important}
  .brandTitleWrap h1{font-size:27px!important;letter-spacing:-.6px!important}
  .brandTitleWrap p{font-size:8px!important;margin-top:5px!important}
  .headerSettingsBtn{width:27px!important;height:27px!important;min-width:27px!important;font-size:13px!important}
}


/* v75: mascot matte cleanup + brand block vertically centered in header background */
.brandTitleWrap{
  transform:translateY(4px)!important;
}
@media(max-width:430px){
  .brandTitleWrap{transform:translateY(4px)!important;}
}
@media(max-width:350px){
  .brandTitleWrap{transform:translateY(4px)!important;}
}


/* v76: 오늘 화면에서 작업 카드 바로 열기 + 전화/길찾기 빠른 실행 */
.dashboardWorkItem.dashboardOpen{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.dashboardWorkItem.dashboardOpen:active{transform:scale(.995)}
.dashboardWorkItem.dashboardOpen:focus-visible{outline:3px solid rgba(16,185,129,.22);outline-offset:2px}
.dashboardItemActions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid rgba(148,163,184,.16)}
.dashboardOpenHint{font-size:10px;font-weight:800;color:#64748b;white-space:nowrap}
.dashboardQuickMini{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}
.dashboardQuickMini button{min-height:30px;padding:5px 9px;border-radius:9px;font-size:10px;font-weight:800;white-space:nowrap}
@media(max-width:380px){.dashboardItemActions{align-items:flex-end}.dashboardOpenHint{font-size:9px}.dashboardQuickMini button{padding:5px 7px;font-size:9px}}


/* v77: 내역 상세의 작업내용/특이사항을 한 줄 가로형으로 고정 */
.historyTextBlock{
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr)!important;
  align-items:start!important;
  gap:6px!important;
  padding:7px 8px!important;
  margin-top:6px!important;
}
.historyTextBlock>span{
  margin:0!important;
  padding:0!important;
  line-height:1.4!important;
  white-space:nowrap!important;
}
.historyTextBlock>p{
  margin:0!important;
  min-width:0!important;
  font-size:11px!important;
  line-height:1.4!important;
  white-space:pre-wrap!important;
  word-break:break-word!important;
}
@media(max-width:330px){
  .historyTextBlock{grid-template-columns:52px minmax(0,1fr)!important;gap:5px!important;}
  .historyTextBlock>span{font-size:8.5px!important;}
  .historyTextBlock>p{font-size:10.5px!important;}
}


/* v79: 내역 상세 핵심정보 재배치 - 금액/결제 정돈, 중복 받은금액 제거 */
.historyMetaGridV79{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
  margin-bottom:8px!important;
}
.historyMetaGridV79>div{
  min-width:0!important;
  min-height:36px!important;
  padding:7px 9px!important;
  border-radius:10px!important;
  background:#f8fafc!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.historyMetaGridV79 .historyMetaDate,
.historyMetaGridV79 .historyMetaPhone{
  grid-column:1/-1!important;
}
.historyMetaGridV79 span:not(.workStatusBadge):not(.paymentStatusBadge){
  flex:0 0 auto!important;
  font-size:9px!important;
  line-height:1.2!important;
  color:#64748b!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.historyMetaGridV79 b{
  min-width:0!important;
  margin:0!important;
  font-size:10.5px!important;
  line-height:1.25!important;
  font-weight:850!important;
  text-align:right!important;
  word-break:keep-all!important;
}
.historyMetaGridV79 .historyMetaDate b,
.historyMetaGridV79 .historyMetaPhone b{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.historyMetaGridV79 .paymentStatusBadge{
  margin:0!important;
  white-space:nowrap!important;
}
.historyMetaGridV79 .paidInline{display:none!important}
html[data-theme="dark"] .historyMetaGridV79>div{background:#111827!important}
@media(max-width:350px){
  .historyMetaGridV79>div{padding:6px 7px!important;gap:5px!important}
  .historyMetaGridV79 span:not(.workStatusBadge):not(.paymentStatusBadge){font-size:8.5px!important}
  .historyMetaGridV79 b{font-size:9.5px!important}
}


/* v80: 내역 상세 연락처 옆 전화 연결 버튼 */
.historyMetaPhone .historyPhoneActions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
.historyMetaPhone .historyPhoneActions b{
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.historyMetaPhone .historyCall{
  flex:0 0 auto;
  min-height:28px;
  padding:4px 9px;
  border-radius:9px;
  font-size:9.5px;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
}
@media(max-width:350px){
  .historyMetaPhone .historyPhoneActions{gap:5px}
  .historyMetaPhone .historyCall{min-height:27px;padding:4px 7px;font-size:9px}
}

/* v82: 내역 상세 주소를 공간 낭비 없이 한 줄 가로형으로 정리 */
.historyAddressCompact{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  margin:6px 0 8px!important;
  padding:7px 8px!important;
}
.historyAddressCompact .historyAddressLabel{
  font-size:9px!important;
  color:#64748b!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.historyAddressCompact .historyAddressValue{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10.5px;
  line-height:1.3;
  text-align:left;
}
.historyAddressCompact .historyRoute{
  min-height:28px;
  padding:4px 8px!important;
  font-size:9.5px!important;
  white-space:nowrap;
}
@media(max-width:350px){
  .historyAddressCompact{gap:5px;padding:6px 7px!important}
  .historyAddressCompact .historyAddressLabel{font-size:8.5px!important}
  .historyAddressCompact .historyAddressValue{font-size:9.5px}
  .historyAddressCompact .historyRoute{min-height:27px;padding:4px 6px!important;font-size:9px!important}
}

/* v83: 내역 상세 일정/연락처/작업내용을 라벨 바로 옆으로 당김 */
.historyMetaGridV79 .historyMetaDate{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:stretch!important;
  column-gap:10px!important;
}
.historyMetaGridV79 .historyMetaDate b{
  text-align:left!important;
  justify-self:start!important;
  width:auto!important;
}
.historyMetaGridV79 .historyMetaPhone{
  display:grid!important;
  grid-template-columns:max-content minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:stretch!important;
  column-gap:10px!important;
}
.historyMetaPhone .historyPhoneActions{
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:7px!important;
}
.historyMetaPhone .historyPhoneActions b{
  text-align:left!important;
  justify-self:start!important;
  width:auto!important;
}
.historyTextBlock{
  grid-template-columns:max-content minmax(0,1fr)!important;
  column-gap:8px!important;
}
.historyTextBlock>p{
  text-align:left!important;
}
.historyJobRow>p{
  color:#111827!important;
  font-weight:850!important;
}
html[data-theme="dark"] .historyJobRow>p{color:#f9fafb!important}
@media(max-width:350px){
  .historyMetaGridV79 .historyMetaDate,
  .historyMetaGridV79 .historyMetaPhone{column-gap:7px!important}
  .historyTextBlock{column-gap:6px!important}
}


/* v84: 내역 상세 하단 작업 버튼을 한 묶음으로 압축 정리 */
.historyActionGridV84{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:6px!important;
  margin-top:8px!important;
}
.historyActionGridV84 button{
  min-width:0!important;
  width:100%!important;
  min-height:36px!important;
  padding:7px 5px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}
.historyActionGridV84 .historyActionThird{grid-column:span 2!important}
.historyActionGridV84 .historyActionHalf{grid-column:span 3!important}
@media(max-width:350px){
  .historyActionGridV84{gap:5px!important}
  .historyActionGridV84 button{min-height:35px!important;padding:6px 3px!important;font-size:9.5px!important}
}


/* v85: 입금확인 버튼을 결제 상태 옆으로 이동 */
.historyMetaPayment{
  gap:7px!important;
}
.historyPaymentActions{
  min-width:0;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
}
.historyMarkPaid{
  flex:0 0 auto;
  min-height:28px!important;
  padding:4px 8px!important;
  border-radius:9px!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
@media(max-width:350px){
  .historyPaymentActions{gap:4px}
  .historyMarkPaid{min-height:27px!important;padding:4px 6px!important;font-size:8.5px!important}
}

/* v86: 오늘 탭 UI 압축 및 정보 정렬 */
#dashboardView .dashboardHero{
  padding:11px 12px 10px!important;
  margin-bottom:8px!important;
}
#dashboardView .dashboardTitleRow{
  min-height:32px;
  gap:8px!important;
}
#dashboardView .dashboardTitleRow .eyebrow{
  margin:0 0 1px!important;
  font-size:9px!important;
  line-height:1.1!important;
}
#dashboardView .dashboardTitleRow h2{
  margin:0!important;
  font-size:16px!important;
  line-height:1.2!important;
}
#dashboardView #refreshDashboard{
  min-height:30px!important;
  padding:5px 8px!important;
  font-size:10px!important;
  border-radius:9px!important;
}
#dashboardView .dashboardStats{
  gap:5px!important;
  margin:8px 0 7px!important;
}
#dashboardView .dashboardStat{
  min-height:48px!important;
  padding:6px 4px!important;
  border-radius:11px!important;
}
#dashboardView .dashboardStat span{
  font-size:9.5px!important;
  line-height:1.1!important;
}
#dashboardView .dashboardStat b{
  margin-top:1px!important;
  font-size:19px!important;
}
#dashboardView .dashboardStat small{
  font-size:9px!important;
}
#dashboardView .dashboardQuickActions{
  gap:6px!important;
}
#dashboardView .dashboardQuickActions button{
  min-height:36px!important;
  padding:7px 8px!important;
  font-size:11px!important;
  border-radius:10px!important;
}
#dashboardView #dashboardNotice{
  margin:5px 0 0!important;
  min-height:0!important;
  font-size:10px!important;
  line-height:1.2!important;
}
#dashboardView .dashboardReminder{
  margin-top:6px!important;
}
#dashboardView .dashboardFold{
  margin-bottom:6px!important;
  border-radius:12px!important;
}
#dashboardView .dashboardFold summary{
  min-height:42px!important;
  padding:9px 11px!important;
  font-size:12.5px!important;
}
#dashboardView .dashboardFold summary small{
  font-size:10px!important;
}
#dashboardView .dashboardFold .dashboardList{
  gap:6px!important;
  padding:7px 8px 8px!important;
}
#dashboardView .dashboardWorkItem{
  padding:8px 9px!important;
  border-radius:10px!important;
}
#dashboardView .dashboardWorkMain{
  gap:4px!important;
}
#dashboardView .dashboardWorkTitle{
  gap:6px!important;
  flex-wrap:nowrap!important;
}
#dashboardView .dashboardWorkTitle b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11.5px!important;
}
#dashboardView .dashboardWorkTitle .workStatusBadge{
  flex:0 0 auto;
}
#dashboardView .dashboardWorkMeta{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  overflow:hidden;
}
#dashboardView .dashboardWorkMeta small{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9.5px!important;
}
#dashboardView .dashboardWorkMeta small:first-child{
  flex:1 1 auto;
}
#dashboardView .dashboardWorkMeta small:last-child{
  flex:0 1 auto;
}
#dashboardView .dashboardAddressRow small{
  font-size:9.5px!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#dashboardView .dashboardItemActions{
  margin-top:4px!important;
  padding-top:5px!important;
  gap:6px!important;
}
#dashboardView .dashboardOpenHint{
  font-size:9px!important;
}
#dashboardView .dashboardQuickMini{
  gap:4px!important;
}
#dashboardView .dashboardQuickMini button{
  min-height:27px!important;
  padding:4px 7px!important;
  font-size:9px!important;
  border-radius:8px!important;
}
#dashboardView .dashboardEmpty{
  padding:8px 6px!important;
}
#dashboardView .dashboardMore{
  padding:6px!important;
  font-size:9.5px!important;
}
@media(max-width:350px){
  #dashboardView .dashboardHero{padding:9px 9px 8px!important}
  #dashboardView .dashboardStats{gap:4px!important}
  #dashboardView .dashboardStat{min-height:46px!important;padding:5px 2px!important}
  #dashboardView .dashboardStat span{font-size:8.5px!important}
  #dashboardView .dashboardStat b{font-size:18px!important}
  #dashboardView .dashboardQuickActions button{font-size:10px!important;padding:7px 5px!important}
  #dashboardView .dashboardWorkMeta{gap:6px!important}
  #dashboardView .dashboardWorkMeta small{font-size:9px!important}
  #dashboardView .dashboardOpenHint{display:none}
  #dashboardView .dashboardItemActions{justify-content:flex-end!important}
}

/* v87: 일정 탭 UI 압축 및 정렬 */
#calendarView .calendarCard{
  padding:9px 10px 10px!important;
  margin-bottom:7px!important;
}
#calendarView .calendarHeader{
  grid-template-columns:34px minmax(0,1fr) 34px!important;
  gap:6px!important;
  margin-bottom:6px!important;
}
#calendarView .calendarNavBtn{
  width:34px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  border-radius:9px!important;
  font-size:20px!important;
}
#calendarView .calendarHeaderCenter{
  gap:6px!important;
}
#calendarView .calendarHeaderCenter h2{
  font-size:16px!important;
  line-height:1.1!important;
}
#calendarView .calendarTodayBtn{
  min-height:25px!important;
  padding:4px 8px!important;
  font-size:9px!important;
}
#calendarView .calendarWeekdays{
  margin-bottom:2px!important;
}
#calendarView .calendarWeekdays span{
  padding:2px 0!important;
  font-size:9px!important;
}
#calendarView .calendarWeekdays,
#calendarView .calendarGrid{
  gap:3px!important;
}
#calendarView .calendarBlank,
#calendarView .calendarDay{
  min-height:46px!important;
}
#calendarView .calendarDay{
  padding:4px 3px!important;
  border-radius:9px!important;
}
#calendarView .calendarDay>.calendarDayTop{
  min-height:21px!important;
}
#calendarView .calendarDateNum{
  min-width:19px!important;
  height:19px!important;
  font-size:10.5px!important;
}
#calendarView .calendarCount{
  margin-top:3px!important;
  font-size:7.8px!important;
  line-height:1.05!important;
}
#calendarView .calendarDayCard{
  padding:9px 10px 10px!important;
}
#calendarView .calendarDayHeader{
  margin-bottom:6px!important;
}
#calendarView .calendarDayHeader>div{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
}
#calendarView .calendarDayHeader h2{
  margin:0!important;
  font-size:13.5px!important;
  line-height:1.2!important;
}
#calendarView .calendarDayHeader small{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 6px;
  border-radius:999px;
  background:#f1f5f9;
  color:#64748b!important;
  font-size:8.5px!important;
  font-weight:800;
}
#calendarView .calendarTools{
  grid-template-columns:minmax(0,1fr) 98px!important;
  gap:5px!important;
  margin-bottom:5px!important;
}
#calendarView .calendarTools input,
#calendarView .calendarTools select{
  min-height:34px!important;
  padding:6px 8px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
#calendarView .calendarQuickBooking{
  grid-template-columns:104px minmax(0,1fr)!important;
  gap:5px!important;
  margin-bottom:4px!important;
}
#calendarView .calendarQuickBooking input,
#calendarView .calendarQuickBooking button{
  min-height:34px!important;
}
#calendarView .calendarQuickBooking input{
  padding:6px 8px!important;
  font-size:10.5px!important;
  border-radius:9px!important;
}
#calendarView .calendarQuickBooking button{
  padding:6px 8px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
#calendarView .calendarBookingNotice{
  min-height:0!important;
  margin:0 0 4px!important;
  font-size:9px!important;
  line-height:1.2!important;
}
#calendarView .calendarDayList{
  gap:5px!important;
}
#calendarView .calendarScheduleItem{
  border-radius:10px!important;
}
#calendarView .calendarScheduleItem summary{
  grid-template-columns:46px minmax(0,1fr) auto!important;
  gap:6px!important;
  min-height:42px!important;
  padding:7px 8px!important;
}
#calendarView .calendarScheduleTime{
  font-size:10px!important;
}
#calendarView .calendarScheduleMain{
  gap:1px!important;
}
#calendarView .calendarScheduleMain b{
  font-size:10.5px!important;
}
#calendarView .calendarScheduleMain small{
  font-size:8.5px!important;
}
#calendarView .calendarScheduleItem .workStatusBadge{
  padding:3px 6px!important;
  font-size:9px!important;
}
#calendarView .calendarScheduleDetail{
  padding:7px 8px!important;
  gap:5px!important;
}
#calendarView .calendarScheduleDetail>div:not(.calendarScheduleActions):not(.calendarStatusActions){
  grid-template-columns:42px minmax(0,1fr)!important;
  gap:4px!important;
  font-size:9px!important;
}
#calendarView .calendarScheduleDetail b{
  font-size:9.5px!important;
}
#calendarView .calendarScheduleActions{
  gap:5px!important;
}
#calendarView .calendarScheduleActions button,
#calendarView .calendarStatusActions button{
  min-height:30px!important;
  padding:5px 6px!important;
  border-radius:8px!important;
  font-size:9px!important;
}
#calendarView .calendarStatusActions{
  gap:4px!important;
  margin-top:0!important;
}
#calendarView .calendarEmpty{
  padding:11px 6px!important;
  gap:2px!important;
  font-size:10.5px!important;
}
#calendarView .calendarEmpty span{
  font-size:9px!important;
}
html[data-theme="dark"] #calendarView .calendarDayHeader small{
  background:#1f2937;
  color:#cbd5e1!important;
}
@media(max-width:350px){
  #calendarView .calendarCard,#calendarView .calendarDayCard{padding:8px!important}
  #calendarView .calendarWeekdays,#calendarView .calendarGrid{gap:2px!important}
  #calendarView .calendarBlank,#calendarView .calendarDay{min-height:43px!important}
  #calendarView .calendarTools{grid-template-columns:minmax(0,1fr) 90px!important}
  #calendarView .calendarQuickBooking{grid-template-columns:94px minmax(0,1fr)!important}
  #calendarView .calendarScheduleItem summary{grid-template-columns:42px minmax(0,1fr) auto!important;padding:7px 6px!important}
  #calendarView .calendarScheduleTime{font-size:9.5px!important}
  #calendarView .calendarScheduleMain b{font-size:10px!important}
  #calendarView .calendarScheduleDetail{grid-template-columns:1fr 1fr!important}
  #calendarView .calendarScheduleAddress,#calendarView .calendarScheduleActions,#calendarView .calendarStatusActions{grid-column:1/-1!important}
}

/* v88: 일정 탭 예약 작성/상태 버튼 크기 축소 */
#calendarView .calendarQuickBooking{
  grid-template-columns:104px max-content!important;
  justify-content:start!important;
  align-items:center!important;
}
#calendarView .calendarQuickBooking button{
  width:auto!important;
  min-width:126px!important;
  min-height:30px!important;
  padding:4px 10px!important;
  border-radius:8px!important;
  font-size:9.5px!important;
  justify-self:start!important;
}
#calendarView .calendarStatusActions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:4px!important;
  margin-top:1px!important;
}
#calendarView .calendarStatusActions button{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:56px!important;
  min-height:28px!important;
  padding:4px 7px!important;
  border-radius:8px!important;
  font-size:8.8px!important;
  line-height:1.05!important;
}
@media(max-width:350px){
  #calendarView .calendarQuickBooking{grid-template-columns:94px max-content!important}
  #calendarView .calendarQuickBooking button{min-width:116px!important;padding:4px 8px!important;font-size:9px!important}
  #calendarView .calendarStatusActions{gap:3px!important}
  #calendarView .calendarStatusActions button{min-width:52px!important;padding:4px 6px!important;font-size:8.5px!important}
}

/* v89: 일정 상세 상태 버튼 4개 동일 너비 */
#calendarView .calendarStatusActions{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:4px!important;
  width:100%!important;
  align-items:stretch!important;
}
#calendarView .calendarStatusActions button{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:28px!important;
  padding:4px 3px!important;
  justify-content:center!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
@media(max-width:350px){
  #calendarView .calendarStatusActions{gap:3px!important;}
  #calendarView .calendarStatusActions button{font-size:8.4px!important;padding:4px 2px!important;}
}

/* v91: 새로작성 탭 UI compact 정리 */
#workView{display:block}
#workView[hidden]{display:none!important}
#workView>.card,
#workView>.grid{margin-bottom:9px!important}
#workView>.hero{
  padding:11px 12px!important;
  border-radius:14px!important;
}
#workView>.hero h2{
  margin:0 0 6px!important;
  font-size:14px!important;
}
#workView>.hero .actions{
  display:flex!important;
  flex-direction:row!important;
  gap:6px!important;
  margin:6px 0!important;
}
#workView>.hero .actions #voiceBtn{
  flex:1 1 auto!important;
  min-height:36px!important;
  padding:7px 10px!important;
  font-size:11px!important;
}
#workView>.hero .actions #sampleBtn{
  flex:0 0 auto!important;
  width:auto!important;
  min-height:36px!important;
  padding:7px 10px!important;
  font-size:10px!important;
}
#workView #rawInput{
  min-height:68px!important;
  padding:9px 10px!important;
  border-radius:10px!important;
  font-size:12px!important;
  line-height:1.4!important;
}
#workView #analyzeBtn{
  min-height:38px!important;
  margin-top:6px!important;
  padding:7px 10px!important;
  border-radius:10px!important;
  font-size:11px!important;
}
#workView .resetRow{
  margin-top:2px!important;
  min-height:24px!important;
}
#workView .resetBtn{
  min-height:24px!important;
  padding:2px 3px!important;
  font-size:9.5px!important;
}
#workView #voiceNotice{
  margin:2px 0 0!important;
  min-height:0!important;
  font-size:9.5px!important;
  line-height:1.25!important;
}

#workView .workTemplateQuickCard{
  padding:8px 10px!important;
  border-radius:13px!important;
}
#workView .workTemplateQuickHead{margin-bottom:5px!important}
#workView .workTemplateQuickHead>b{font-size:11px!important}
#workView .workTemplateQuickHead button{
  min-height:27px!important;
  padding:4px 7px!important;
  font-size:9px!important;
}
#workView .workTemplateChip{
  min-height:31px!important;
  padding:5px 9px!important;
  font-size:9.5px!important;
}

#workView>.grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
#workView>.grid>.card{
  min-width:0!important;
  padding:9px 10px!important;
  border-radius:13px!important;
}
#workView>.grid>.span2{grid-column:1/-1!important}
#workView>.grid label{
  margin-bottom:4px!important;
  font-size:9.5px!important;
  font-weight:800!important;
}
#workView>.grid input,
#workView>.grid select{
  min-height:36px!important;
  padding:7px 9px!important;
  border-radius:9px!important;
  font-size:11px!important;
}
#workView .phoneInputRow,
#workView .addressInputRow{gap:5px!important}
#workView .contactPickBtn,
#workView .addressRouteBtn{
  min-height:36px!important;
  padding:6px 8px!important;
  border-radius:9px!important;
  font-size:9.5px!important;
}
#workView .contactPickNotice{
  margin:4px 0 0!important;
  font-size:9px!important;
}

#workView .workPhotoCard{
  padding:10px 11px!important;
  border-radius:14px!important;
}
#workView .workPhotoCard .sectionTitle{margin-bottom:6px!important}
#workView .workPhotoCard h2{font-size:13px!important;margin:0!important}
#workView .workPhotoGrid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
#workView .workPhotoSlot{gap:5px!important}
#workView .workPhotoLabel{font-size:10px!important}
#workView .workPhotoPreview{
  min-height:92px!important;
  border-radius:10px!important;
  font-size:24px!important;
}
#workView .workPhotoActions{gap:4px!important}
#workView .workPhotoActions button{
  min-height:31px!important;
  padding:5px 4px!important;
  border-radius:8px!important;
  font-size:9px!important;
}
#workView .workPhotoActions .workPhotoRemove{min-height:28px!important}
#workView #photoNotice{margin:4px 0 0!important;font-size:9px!important}

#workView .messageCard{
  padding:10px 11px!important;
  border-radius:14px!important;
}
#workView .messageCard>h2{font-size:13px!important;margin:0 0 5px!important}
#workView .messageTemplateRow{
  grid-template-columns:minmax(0,1fr) max-content!important;
  gap:5px!important;
  margin:4px 0 6px!important;
}
#workView .messageTemplateRow select,
#workView .messageTemplateRow button{
  min-height:34px!important;
  height:34px!important;
  border-radius:9px!important;
  font-size:10px!important;
}
#workView .messageTemplateRow select{padding:6px 8px!important}
#workView .messageTemplateRow button{padding:5px 10px!important}
#workView .messageCard textarea{
  min-height:78px!important;
  padding:8px 9px!important;
  border-radius:10px!important;
  font-size:11px!important;
  line-height:1.4!important;
}
#workView .messageActions{
  gap:5px!important;
  margin:6px 0 5px!important;
}
#workView .messageActions button{
  min-height:32px!important;
  padding:5px 6px!important;
  border-radius:8px!important;
  font-size:9.5px!important;
}
#workView .messageMore{margin-top:2px!important}
#workView .messageMore summary{
  min-height:30px!important;
  padding:5px 2px!important;
  font-size:10px!important;
}
#workView .messagePaymentActions{gap:5px!important}
#workView .messagePaymentActions button{
  min-height:31px!important;
  padding:5px 6px!important;
  font-size:9px!important;
}
#workView .messageActionNotice{margin:3px 0 0!important;font-size:9px!important}

#workView .saveOnlyCard{
  padding:8px 10px!important;
  border-radius:13px!important;
  margin-bottom:8px!important;
}
#workView .saveOnlyCard #saveBtn{
  min-height:40px!important;
  margin:0!important;
  padding:7px 10px!important;
  border-radius:10px!important;
  font-size:11px!important;
}

@media(max-width:390px){
  #workView>.grid{gap:6px!important}
  #workView>.grid>.card{padding:8px!important}
  #workView .contactPickBtn,#workView .addressRouteBtn{padding:6px!important;font-size:9px!important}
  #workView .workPhotoPreview{min-height:82px!important}
}
@media(max-width:350px){
  #workView>.grid{grid-template-columns:1fr!important}
  #workView>.grid>.span2,#workView>.grid>.workScheduleCard{grid-column:auto!important}
  #workView .phoneInputRow,#workView .addressInputRow{grid-template-columns:minmax(0,1fr) auto!important}
  #workView .workPhotoGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #workView .workPhotoPreview{min-height:72px!important}
  #workView .workPhotoActions{grid-template-columns:1fr!important}
  #workView .workPhotoActions .workPhotoRemove{grid-column:auto!important}
}


/* v92: 새로작성 용어 단순화 + AI 정리/다시입력 좌우 정렬 */
#workView>.hero .actions{
  margin:5px 0 6px!important;
}
#workView>.hero .actions #voiceBtn{
  width:100%!important;
  flex:1 1 100%!important;
}
#workView>.hero .actions #sampleBtn{display:none!important}
#workView .voiceActionRow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,.72fr)!important;
  gap:6px!important;
  margin-top:6px!important;
  align-items:stretch!important;
}
#workView .voiceActionRow #analyzeBtn,
#workView .voiceActionRow #resetBtn{
  width:100%!important;
  min-height:36px!important;
  height:36px!important;
  margin:0!important;
  padding:6px 8px!important;
  border-radius:9px!important;
  font-size:10px!important;
  line-height:1.1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
#workView .voiceActionRow #resetBtn{
  background:#eef2f7!important;
  color:#374151!important;
  border:0!important;
  font-weight:800!important;
}
html[data-theme="dark"] #workView .voiceActionRow #resetBtn{
  background:#374151!important;
  color:#f9fafb!important;
}
@media(max-width:350px){
  #workView .voiceActionRow{grid-template-columns:minmax(0,1fr) minmax(0,.68fr)!important;gap:4px!important}
  #workView .voiceActionRow #analyzeBtn,#workView .voiceActionRow #resetBtn{font-size:9px!important;padding:5px 4px!important}
}


/* v93: 새로작성 연락처 선택 버튼을 아이콘 전용 정사각형으로 정리 */
#workView .contactPickBtn{
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  min-height:36px!important;
  height:36px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
  line-height:1!important;
}
@media(max-width:340px){
  #workView .contactPickBtn{width:36px!important;min-width:36px!important;max-width:36px!important;}
}

/* v94: 고객관리 탭 compact UI */
#customersView>section.card{
  padding:10px!important;
}
#customersView .historyHeader{
  margin-bottom:6px!important;
  min-height:32px!important;
}
#customersView .historyHeader h2{
  margin:0!important;
  font-size:15px!important;
  line-height:1.2!important;
}
#refreshCustomers{
  min-height:30px!important;
  padding:5px 9px!important;
  font-size:10px!important;
}
.customerSearchWrap{
  margin:0!important;
}
.customerSearchWrap input{
  min-height:38px!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
  font-size:12px!important;
}
#customerResultCount{
  margin:4px 2px 1px!important;
  font-size:9.5px!important;
  line-height:1.2!important;
  text-align:right!important;
  color:#64748b!important;
}
.customersList{
  gap:6px!important;
  margin-top:5px!important;
}
.customerItem{
  border-radius:12px!important;
}
.customerOpen{
  min-height:48px!important;
  padding:9px 10px!important;
  gap:7px!important;
}
.customerMain{
  gap:2px!important;
}
.customerMain b{
  font-size:12.5px!important;
  line-height:1.25!important;
}
.customerMain small{
  font-size:9.5px!important;
  line-height:1.25!important;
}
.customerMeta{
  gap:5px!important;
  font-size:12px!important;
}
.customerRevisit{
  padding:3px 6px!important;
  font-size:9px!important;
}
.customerDetail{
  padding:8px 10px 9px!important;
}
.customerQuickActions{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:5px!important;
}
.customerQuickActions button{
  width:100%!important;
  min-width:0!important;
  min-height:32px!important;
  padding:5px 2px!important;
  border-radius:9px!important;
  font-size:9px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
}
.customerAddress,
.customerNext{
  margin:6px 0 0!important;
  padding:6px 8px!important;
  min-height:30px!important;
  border-radius:9px!important;
  font-size:10px!important;
  line-height:1.35!important;
}
.customerPastWorks{
  gap:0!important;
  margin-top:6px!important;
}
.customerPastRow{
  min-height:35px!important;
  padding:6px 0!important;
  gap:6px!important;
}
.customerPastRow>div{
  gap:1px!important;
}
.customerPastRow b{
  font-size:10.5px!important;
  line-height:1.25!important;
}
.customerPastRow small{
  font-size:8.5px!important;
  line-height:1.25!important;
}
.customerPastRow .workStatusBadge{
  font-size:9px!important;
  padding:3px 6px!important;
}
.customerMore{
  padding:4px 0 1px!important;
  font-size:9px!important;
}
@media(max-width:360px){
  .customerQuickActions{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .customerQuickActions button{
    min-height:31px!important;
    font-size:8.8px!important;
  }
}


/* v95: 고객관리 헤더/고객 요약/날짜 의미 정리 */
#refreshCustomers.refreshIconBtn{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  font-size:18px!important;
  font-weight:800!important;
  line-height:1!important;
}
.customerNameLine{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
}
.customerNameLine b{
  flex:0 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.customerNameLine small{
  flex:0 1 auto!important;
  min-width:0!important;
  margin:0!important;
  color:#64748b!important;
  font-size:9.5px!important;
  font-weight:700!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.customerDetailSummary{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  margin:0 0 6px!important;
  padding:0 1px!important;
  font-size:9.5px!important;
  color:#64748b!important;
  line-height:1.2!important;
}
.customerDetailSummary b{color:inherit!important;font-size:inherit!important}
html[data-theme="dark"] .customerNameLine small,
html[data-theme="dark"] .customerDetailSummary{color:#9ca3af!important}
@media(max-width:340px){
  .customerNameLine{gap:5px!important}
  .customerNameLine small{font-size:8.8px!important}
}

/* v96: 고객관리 주소/버튼/최근 작업 날짜 한 줄 정리 */
.customerAddressV96{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:7px!important;
  margin:6px 0 0!important;
  padding:6px 7px 6px 8px!important;
}
.customerAddressV96 .customerAddressText{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.customerAddressV96 .customerRoute{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:68px!important;
  min-height:28px!important;
  padding:4px 7px!important;
  border-radius:8px!important;
  font-size:9px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.customerQuickActionsV96{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:5px!important;
  margin-top:6px!important;
}
.customerQuickActionsV96 button{
  width:100%!important;
  min-width:0!important;
  min-height:32px!important;
  padding:5px 2px!important;
  font-size:9px!important;
  white-space:nowrap!important;
}
.customerPastRowV96{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:7px!important;
}
.customerPastMainV96{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.customerPastMainV96 b{
  min-width:0!important;
  flex:1 1 auto!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.customerPastMainV96 small{
  flex:0 0 auto!important;
  margin:0!important;
  color:#64748b!important;
  font-size:8.7px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
html[data-theme="dark"] .customerPastMainV96 small{color:#9ca3af!important}
@media(max-width:340px){
  .customerAddressV96 .customerRoute{min-width:62px!important;padding:4px 5px!important;font-size:8.5px!important}
  .customerQuickActionsV96{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}
  .customerQuickActionsV96 button{font-size:8.3px!important;padding:5px 1px!important}
  .customerPastMainV96{gap:5px!important}
  .customerPastMainV96 small{font-size:8px!important}
}


/* v97: 매출관리 탭 compact UI 정리 */
#revenueView .revenueStandalone{
  padding:10px!important;
}
#revenueView .revenueSectionTitle{
  margin-bottom:6px!important;
}
#revenueView .revenueSectionTitle h2{
  margin:0!important;
  font-size:15px!important;
  line-height:1.2!important;
}
#revenueView .revenuePanelStandalone{
  padding:8px!important;
  border-radius:12px!important;
}
#revenueView .revenueHeader{
  margin-bottom:6px!important;
  min-height:28px!important;
}
#revenueView .revenueHeader>b{
  font-size:11px!important;
}
#revenueView .revenuePeriodTabs{
  gap:4px!important;
}
#revenueView .revenuePeriodTabs button{
  min-height:26px!important;
  padding:4px 9px!important;
  font-size:9px!important;
}
#revenueView .revenueTodayLine{
  min-height:30px!important;
  padding:5px 7px!important;
  margin:0 0 6px!important;
  border-radius:9px!important;
  background:#f8fafc!important;
  gap:6px!important;
}
#revenueView .revenueTodayLine span{
  font-size:9px!important;
  font-weight:800!important;
}
#revenueView .revenueTodayLine b{
  font-size:11px!important;
  margin-left:auto!important;
}
#revenueView .revenueTodayLine small{
  font-size:8.5px!important;
}
#revenueView .revenueStripV50{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
  margin-bottom:6px!important;
}
#revenueView .revenueStripV50 .revenueCell{
  min-height:54px!important;
  padding:7px 8px!important;
  border-radius:10px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
  gap:2px 6px!important;
}
#revenueView .revenueStripV50 .revenueCell span{
  grid-column:1/-1!important;
  font-size:9px!important;
}
#revenueView .revenueStripV50 .revenueCell b{
  grid-column:1/2!important;
  font-size:12px!important;
  min-width:0!important;
}
#revenueView .revenueStripV50 .revenueCell small{
  grid-column:2/3!important;
  justify-self:end!important;
  font-size:8px!important;
}
#revenueView .revenueForecastLine{
  min-height:34px!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  gap:6px!important;
  padding:6px 8px!important;
  margin:0 0 6px!important;
  border-radius:9px!important;
}
#revenueView .revenueForecastLine span{
  font-size:9px!important;
}
#revenueView .revenueForecastLine b{
  font-size:12px!important;
}
#revenueView .revenueForecastLine small{
  font-size:8px!important;
}
#revenueView .revenueManageLink{
  min-height:38px!important;
  padding:7px 9px!important;
  margin:0 0 5px!important;
  border-radius:9px!important;
}
#revenueView .revenueManageLink span{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  gap:7px!important;
}
#revenueView .revenueManageLink b{
  font-size:10.5px!important;
  white-space:nowrap!important;
}
#revenueView .revenueManageLink small{
  min-width:0!important;
  font-size:8.5px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#revenueView .revenueManageLink strong{
  font-size:17px!important;
}
#revenueView .revenueDetails summary{
  min-height:30px!important;
  padding:5px 2px 0!important;
  font-size:10px!important;
}
#revenueView .revenueDetailGrid{
  gap:5px!important;
  padding-top:5px!important;
}
#revenueView .revenueDetailGrid>div{
  padding:6px!important;
  border-radius:9px!important;
}
#revenueView .revenueDetailGrid span{
  font-size:8px!important;
}
#revenueView .revenueDetailGrid b{
  font-size:10px!important;
}
html[data-theme="dark"] #revenueView .revenueTodayLine{
  background:#111827!important;
}
@media(max-width:340px){
  #revenueView .revenueStandalone{padding:8px!important}
  #revenueView .revenueHeader{align-items:center!important;flex-direction:row!important}
  #revenueView .revenuePeriodTabs{width:auto!important}
  #revenueView .revenuePeriodTabs button{flex:0 0 auto!important;padding:4px 7px!important}
  #revenueView .revenueStripV50{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #revenueView .revenueForecastLine{grid-template-columns:auto minmax(0,1fr) auto!important}
  #revenueView .revenueForecastLine small{grid-column:auto!important}
}

/* v99: 미수금 목록 카드 정보 균형 재조정 */
.receivableOpen{align-items:stretch!important;}
.receivableMain{width:100%!important;display:grid!important;gap:5px!important;}
.receivableTitle{width:100%!important;display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important;}
.receivableTitle b{flex:1 1 auto!important;min-width:0!important;font-size:11.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.receivableAge{flex:0 0 auto!important;}
.receivableMetaRow{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;min-width:0!important;}
.receivablePhone{flex:1 1 auto!important;min-width:0!important;font-size:9.5px!important;line-height:1.25!important;color:#64748b!important;font-weight:750!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.receivableDate{flex:0 0 auto!important;max-width:none!important;font-size:9px!important;line-height:1.25!important;color:#64748b!important;font-weight:800!important;white-space:nowrap!important;text-align:right!important;}
.receivableDate b{font:inherit!important;color:inherit!important;white-space:inherit!important;}
@media(max-width:360px){
  .receivableTitle b{font-size:10.8px!important;}
  .receivableMetaRow{gap:6px!important;}
  .receivablePhone{font-size:9px!important;}
  .receivableDate{font-size:8.3px!important;}
}


/* v1.0: 긴 화면에서 한 번에 맨 위로 이동 */
.scrollTopBtn{
  position:fixed;
  right:max(16px, env(safe-area-inset-right));
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:1200;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  padding:0!important;
  border:1px solid rgba(255,255,255,.18);
  border-radius:50%;
  background:#111827;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
  line-height:1;
  box-shadow:0 8px 22px rgba(15,23,42,.22);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.scrollTopBtn.show{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.scrollTopBtn:active{transform:scale(.94)}
html[data-theme="dark"] .scrollTopBtn{
  background:#f8fafc;
  color:#111827;
  border-color:#374151;
}
@media(max-width:360px){
  .scrollTopBtn{right:12px;width:40px;height:40px;min-width:40px;min-height:40px;font-size:21px}
}


/* v1.1: 설정 메인 화면 compact 2열 메뉴 정리 */
#settingsView{
  display:grid;
  gap:10px;
}
#settingsView[hidden]{display:none!important}
#settingsView .settingsCard{
  margin:0!important;
}
.settingsAccountCard{
  padding:10px 12px!important;
}
.settingsAccountCard .sectionTitle{
  margin-bottom:0!important;
  min-height:30px!important;
  align-items:center!important;
}
.settingsAccountCard .sectionTitle h2{
  font-size:15px!important;
  margin:0!important;
}
.settingsAccountCard .authStatus{
  padding:4px 7px!important;
  font-size:9px!important;
}
.settingsAccountCard .signedInRow{
  margin-top:7px!important;
  padding:8px 9px!important;
  border-radius:10px!important;
  align-items:center!important;
}
.settingsAccountCard .signedInRow small{
  font-size:8.5px!important;
}
.settingsAccountCard .signedInRow b{
  font-size:10.5px!important;
}
.settingsAccountCard #logoutBtn{
  min-height:30px!important;
  padding:5px 8px!important;
  font-size:9px!important;
}
.settingsAccountCard .authNotice{
  margin:5px 0 0!important;
  min-height:0!important;
  font-size:9px!important;
}
.settingsMenuCard{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
}
.settingsMenuCard .settingsMenuButton{
  min-width:0!important;
  min-height:72px!important;
  margin:0!important;
  padding:10px 11px!important;
  border:1px solid #e5e7eb!important;
  border-radius:13px!important;
  background:#fff!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:6px!important;
}
.settingsMenuCard .settingsMenuButton:last-child{
  border-bottom:1px solid #e5e7eb!important;
}
.settingsMenuCard .settingsMenuButton>span{
  min-width:0!important;
  gap:3px!important;
}
.settingsMenuCard .settingsMenuButton>span b{
  font-size:12px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.settingsMenuCard .settingsMenuButton>span small{
  font-size:8.5px!important;
  line-height:1.25!important;
  color:#64748b!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.settingsMenuCard .settingsMenuButton>strong{
  font-size:18px!important;
  line-height:1!important;
}
.versionCard{
  min-height:42px!important;
  padding:8px 10px!important;
  border-radius:11px!important;
}
.versionCard>div b{font-size:11px!important}
.versionCard>div small{font-size:8px!important}
.versionCard>span{
  padding:5px 8px!important;
  font-size:10px!important;
}
html[data-theme="dark"] .settingsMenuCard{
  background:transparent!important;
}
html[data-theme="dark"] .settingsMenuCard .settingsMenuButton{
  background:#1f2937!important;
  border-color:#374151!important;
}
html[data-theme="dark"] .settingsMenuCard .settingsMenuButton:last-child{
  border-bottom-color:#374151!important;
}
@media(max-width:330px){
  .settingsMenuCard{gap:6px!important}
  .settingsMenuCard .settingsMenuButton{min-height:60px!important;padding:8px 9px!important}
  .settingsMenuCard .settingsMenuButton>span b{font-size:10.5px!important}
  .settingsMenuCard .settingsMenuButton>span small{display:none!important}
  .settingsAccountCard{padding:9px 10px!important}
}

/* v1.2: 설정 계정 통합 + 메뉴 설명 제거 + 문의 종류 */
.settingsMenuCard .settingsMenuButton>span{display:block!important}
.settingsMenuCard .settingsMenuButton>span small{display:none!important}
.settingsMenuCard .settingsMenuButton{min-height:60px!important}
.profilePageCard{padding:12px!important}
.profileAccountPanel{margin:0 0 12px;padding:10px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}
.profileAccountHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.profileAccountHead>b{font-size:12px}
.profileAccountHead .authStatus{font-size:9px;padding:4px 7px}
.profileAuthGrid{margin-top:0!important}
.profileLoggedInRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:9px;background:#fff}
.profileLoggedInRow>span{font-size:9px;font-weight:800;color:#64748b;white-space:nowrap}
.profileLoggedInRow b{font-size:10.5px;word-break:break-all}
.profileAccountEditFold{margin-top:7px;border-top:1px solid #e5e7eb}
.profileAccountEditFold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:7px 2px 0;font-size:10px;font-weight:850;cursor:pointer}
.profileAccountEditFold summary::-webkit-details-marker{display:none}
.profileAccountEditFold summary strong{font-size:17px;color:#94a3b8;transition:transform .15s}
.profileAccountEditFold[open] summary strong{transform:rotate(90deg)}
.profileAccountEditBody{display:grid;gap:9px;padding:8px 0 2px}
.accountEditGroup{display:grid;gap:5px}.accountEditGroup>label{font-size:9px;font-weight:800;color:#64748b}
.accountEditRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}
.accountEditRow button{min-width:58px;min-height:38px;padding:7px 9px;font-size:9.5px}
.profileSectionTitle{margin:0 0 8px;font-size:12px}
.profileLogoutBtn{width:100%;margin-top:10px;min-height:38px;color:#b91c1c!important;border-color:#fecaca!important;background:#fff7f7!important;font-weight:850}
#profileSignedContent[hidden]{display:none!important}
.inquiryBox select{width:100%}
.inquiryTitleWithCategory{min-width:0;display:flex;align-items:center;gap:6px}
.inquiryTitleWithCategory b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inquiryCategoryBadge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:21px;padding:3px 7px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:9px;font-weight:900;white-space:nowrap}
html[data-theme="dark"] .profileAccountPanel{background:#111827;border-color:#374151}
html[data-theme="dark"] .profileLoggedInRow{background:#1f2937}
html[data-theme="dark"] .profileAccountEditFold{border-top-color:#374151}
html[data-theme="dark"] .profileLoggedInRow>span,html[data-theme="dark"] .accountEditGroup>label{color:#9ca3af}
html[data-theme="dark"] .profileLogoutBtn{background:#3f1d1d!important;border-color:#7f1d1d!important;color:#fecaca!important}
html[data-theme="dark"] .inquiryCategoryBadge{background:#312e81;color:#e0e7ff}
@media(max-width:360px){
  .profileAccountPanel{padding:8px}
  .profileLoggedInRow{align-items:flex-start;flex-direction:column;gap:3px}
  .accountEditRow button{min-width:52px;padding:7px 6px}
  .inquiryTitleWithCategory{gap:4px}.inquiryCategoryBadge{font-size:8px;padding:3px 5px}
}


/* v1.3: 설정 하위화면 전체 compact 통일 + 작은 뒤로가기 + 저장 템플릿 구역 분리 */
#profileView .settingsCard,
#templatesView .settingsCard,
#themeView .settingsCard,
#notificationView .settingsCard,
#noticesView .settingsCard,
#inquiryView .settingsCard,
#inquiryListView .settingsCard,
#adminInquiryView .settingsCard{
  padding:11px 12px!important;
  border-radius:16px!important;
}
#profileView .subpageHeader,
#templatesView .subpageHeader,
#themeView .subpageHeader,
#notificationView .subpageHeader,
#noticesView .subpageHeader,
#inquiryView .subpageHeader,
#inquiryListView .subpageHeader,
#adminInquiryView .subpageHeader{
  min-height:32px!important;
  margin-bottom:9px!important;
  gap:6px!important;
  flex-wrap:nowrap!important;
}
#profileView .subpageHeader h2,
#templatesView .subpageHeader h2,
#themeView .subpageHeader h2,
#notificationView .subpageHeader h2,
#noticesView .subpageHeader h2,
#inquiryView .subpageHeader h2,
#inquiryListView .subpageHeader h2,
#adminInquiryView .subpageHeader h2{
  font-size:15px!important;
  line-height:1.2!important;
}
.subpageHeader .iconBackBtn{
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  border-radius:9px!important;
  font-size:17px!important;
  line-height:1!important;
}
.subpageHeader>.smallBtn{
  min-height:30px!important;
  padding:5px 8px!important;
  border-radius:9px!important;
  font-size:9px!important;
}

/* 내 정보 */
.profilePageCard{padding:11px 12px!important}
.profileAccountPanel{margin:0 0 9px!important;padding:8px 9px!important;border-radius:11px!important}
.profileAccountHead{margin-bottom:5px!important}
.profileLoggedInRow{padding:6px 7px!important}
.profileAccountEditFold{margin-top:5px!important}
.profileAccountEditFold summary{min-height:31px!important;padding-top:5px!important}
.profileAccountEditBody{gap:7px!important;padding:6px 0 1px!important}
.profileSectionTitle{margin:0 0 6px!important;font-size:11px!important}
.profileGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin-bottom:8px!important}
.profileGrid .span2{grid-column:1/-1!important}
.profileGrid label{gap:3px!important}
.profileGrid label span{font-size:9.5px!important}
.profileGrid input,
.profileAccountPanel input{
  min-height:39px!important;
  padding:8px 9px!important;
  font-size:11px!important;
}
#saveProfileBtn,.profileLogoutBtn{min-height:38px!important;padding:7px 10px!important;font-size:10.5px!important}
.profileLogoutBtn{margin-top:8px!important}

/* 작업 템플릿 */
.templateForm{gap:6px!important}
.templateForm input{min-height:39px!important;padding:8px 9px!important;font-size:11px!important}
.templateFormRow{gap:6px!important}
.templateFormActions{gap:6px!important}
.templateFormActions button{min-height:38px!important;padding:7px 9px!important;font-size:10.5px!important}
.templateForm .notice{margin:0!important;min-height:0!important}
.savedTemplateSection{margin-top:11px!important;padding-top:9px!important;border-top:1px solid var(--line,#e5e7eb)!important}
.savedTemplateSection>h3{margin:0 0 5px!important;font-size:11.5px!important;line-height:1.2!important}
.savedTemplateSection .templateList{margin-top:0!important;border-top:0!important}
.savedTemplateSection .templateRow{padding:8px 2px!important;gap:7px!important}
.savedTemplateSection .templateRowMain b{font-size:11px!important}
.savedTemplateSection .templateRowMain small{font-size:9px!important}
.savedTemplateSection .templateRowActions button{min-height:31px!important;padding:5px 7px!important;font-size:9px!important}
.savedTemplateSection .templateEmpty{padding:12px 3px!important;font-size:10px!important}

/* 화면 설정 */
#themeView .themeButtons{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
#themeView .themeBtn{min-height:40px!important;padding:7px 4px!important;font-size:10.5px!important;border-radius:10px!important}

/* 알림 설정 */
#notificationView .notificationSettings{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;align-items:end!important}
#notificationView .notificationSettings label{gap:3px!important}
#notificationView .notificationSettings label span{font-size:9.5px!important}
#notificationView .notificationSettings select,
#notificationView .notificationSettings button{min-height:39px!important;padding:7px 9px!important;font-size:10.5px!important}
#notificationView .notice{margin-top:6px!important}

/* 문의/공지 하위 화면 */
#inquiryView .inquiryBox{gap:6px!important}
#inquiryView .inquiryBox select,
#inquiryView .inquiryBox input{min-height:39px!important;padding:8px 9px!important;font-size:11px!important}
#inquiryView .inquiryBox textarea{min-height:82px!important;padding:8px 9px!important;font-size:11px!important}
#inquiryView #inquiryBtn{min-height:38px!important;padding:7px 10px!important;font-size:10.5px!important}
#noticesView .noticeBoardCompact,
#inquiryListView .supportBoard,
#adminInquiryView .supportBoard{margin-top:2px!important}

html[data-theme="dark"] .savedTemplateSection{border-top-color:#374151!important}

@media(max-width:360px){
  #profileView .settingsCard,#templatesView .settingsCard,#themeView .settingsCard,#notificationView .settingsCard,#noticesView .settingsCard,#inquiryView .settingsCard,#inquiryListView .settingsCard,#adminInquiryView .settingsCard{padding:9px 10px!important}
  .subpageHeader .iconBackBtn{width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;font-size:16px!important}
  .profileGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .profileGrid input{font-size:10px!important;padding:7px 7px!important}
  #themeView .themeButtons{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important}
  #themeView .themeBtn{font-size:9.5px!important;padding:6px 2px!important}
  #notificationView .notificationSettings{grid-template-columns:minmax(0,1fr) auto!important}
}
@media(max-width:315px){
  .profileGrid{grid-template-columns:1fr!important}
  .profileGrid .span2{grid-column:auto!important}
  #notificationView .notificationSettings{grid-template-columns:1fr!important}
}

/* v1.4: 내 정보 사업자번호 + 설정 하위화면 여백/새로고침 아이콘 통일 */
#profileView .settingsCard,
#templatesView .settingsCard,
#themeView .settingsCard,
#notificationView .settingsCard,
#noticesView .settingsCard,
#inquiryView .settingsCard,
#inquiryListView .settingsCard,
#adminInquiryView .settingsCard{
  margin-bottom:0!important;
}

/* 빈 안내문 때문에 생기던 카드 내부 공백 제거 */
#authNotice:empty,
#accountEditNotice:empty,
#profileNotice:empty,
#notificationNotice:empty,
#inquiryNotice:empty,
#adminInquiryNotice:empty,
#adminNoticeNotice:empty{
  display:none!important;
}
#authNotice,#accountEditNotice,#profileNotice{
  min-height:0!important;
  margin:5px 0 0!important;
  line-height:1.3!important;
}
.profileAccountPanel{padding-bottom:7px!important}
.profileAccountEditBody{padding-bottom:0!important}
#profileSignedContent:not([hidden]){display:grid!important;gap:7px!important}
#profileSignedContent .profileSectionTitle{margin:0!important}
#profileSignedContent .profileGrid{margin-bottom:0!important}
#saveProfileBtn{margin-top:0!important}
.profileLogoutBtn{margin-top:0!important}

/* 새로고침 텍스트 대신 공통 원형 화살표 버튼 */
#refreshDashboard.refreshIconBtn,
#refreshCustomers.refreshIconBtn,
#refreshNotices.refreshIconBtn,
#refreshMyInquiries.refreshIconBtn,
#refreshAdminInquiries.refreshIconBtn{
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  font-size:18px!important;
  font-weight:850!important;
  line-height:1!important;
  flex:0 0 30px!important;
}
.subpageHeader .refreshIconBtn{margin-left:auto!important}
.subpageHeader .refreshIconBtn + .iconBackBtn{margin-left:0!important}

@media(max-width:360px){
  #refreshDashboard.refreshIconBtn,
  #refreshCustomers.refreshIconBtn,
  #refreshNotices.refreshIconBtn,
  #refreshMyInquiries.refreshIconBtn,
  #refreshAdminInquiries.refreshIconBtn{
    width:28px!important;min-width:28px!important;max-width:28px!important;
    height:28px!important;min-height:28px!important;max-height:28px!important;
    flex-basis:28px!important;font-size:16px!important;
  }
}


/* v1.5: 공지/문의 화면 compact 통일 + 문의내역 아코디언 */
#noticesView .subpageHeader,
#inquiryView .subpageHeader,
#inquiryListView .subpageHeader,
#adminInquiryView .subpageHeader{margin-bottom:7px!important}
#noticesView .refreshIconBtn,
#inquiryListView .refreshIconBtn,
#adminInquiryView .refreshIconBtn{width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important;font-size:15px!important}

/* 문의 등록: 종류 + 제목을 한 줄로 */
.inquiryFormTopRow{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px;align-items:center}
#inquiryView .inquiryBox textarea{min-height:72px!important}
#inquiryView #inquiryBtn{margin-top:0!important}

/* 공지 */
#noticesView .noticePageMeta{margin:0 2px 5px!important;font-size:9px!important}
#noticesView .noticeBoardCompact{gap:6px!important}
#noticesView .noticeItem{border-radius:10px!important}
#noticesView .noticeItem summary{min-height:38px!important;padding:8px 9px!important;gap:6px!important}
#noticesView .noticeTitle{font-size:11px!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#noticesView .noticeDate{font-size:8.5px!important}
#noticesView .noticeBody{padding:8px 9px!important;font-size:10.5px!important;line-height:1.45!important;max-height:190px!important}

/* 문의 수 요약 */
#inquiryListView .adminInquiryCount,
#adminInquiryView .adminInquiryCount{margin:0 0 6px!important;padding:6px 8px!important;border-radius:9px!important;font-size:9.5px!important;line-height:1.2!important}
#adminInquiryView .adminFilterTabs{gap:5px!important;margin:0 0 7px!important}
#adminInquiryView .adminFilterBtn{min-height:32px!important;padding:5px 3px!important;border-radius:9px!important;font-size:9px!important}

/* 문의 카드: 접힌 상태는 제목/종류/상태/날짜만 */
#inquiryListView .supportBoard,
#adminInquiryView .supportBoard{gap:6px!important}
.inquiryFold{padding:0!important;overflow:hidden!important;border-radius:10px!important;background:#f8fafc!important}
.inquiryFoldSummary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:44px;padding:8px 9px;cursor:pointer}
.inquiryFoldSummary::-webkit-details-marker{display:none}
.inquiryFoldSummary::after{content:'›';flex:0 0 auto;color:#94a3b8;font-size:16px;font-weight:900;line-height:1;transition:transform .15s}
.inquiryFold[open]>.inquiryFoldSummary::after{transform:rotate(90deg)}
.inquiryFoldMain{display:grid;gap:3px;min-width:0;flex:1}
.inquiryFoldMain small{font-size:8.5px!important;color:#94a3b8!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inquiryFoldSummary .inquiryTitleWithCategory{gap:5px!important}
.inquiryFoldSummary .inquiryTitleWithCategory b{font-size:11px!important}
.inquiryFoldSummary .inquiryCategoryBadge{min-height:19px!important;padding:2px 6px!important;font-size:8px!important}
.inquiryFoldSummary .statusBadge{flex:0 0 auto;padding:3px 6px!important;font-size:8.5px!important}
.inquiryFoldBody{border-top:1px solid #eef2f7;padding:8px 9px 9px}
.inquiryFoldBody>p,.inquiryQuestion{margin:0!important;font-size:10.5px!important;line-height:1.45!important}
.inquiryFoldBody .inquiryAnswer,.inquiryFoldBody .waitingAnswer{margin-top:7px!important;padding:7px 8px!important;border-radius:9px!important;font-size:9.5px!important}
.inquiryFoldBody .inquiryAnswer b{font-size:9.5px!important}
.inquiryFoldBody .inquiryAnswer p{font-size:10px!important;margin-top:4px!important}
.inquiryFoldBody .deleteInquiry{min-height:30px!important;margin-top:7px!important;padding:5px 8px!important;font-size:9px!important}

/* 관리자 문의 */
.adminInquiryFold .adminQuestion{padding:0!important;margin:0 0 7px!important;font-size:10.5px!important}
.adminInquiryFold .adminAnswerLabel{display:block;margin:0 0 4px!important;font-size:9px!important}
.adminInquiryFold .adminAnswer{min-height:68px!important;margin:0!important;padding:7px 8px!important;font-size:10px!important;border-radius:9px!important}
.adminInquiryFold .saveAdminAnswer{min-height:34px!important;margin-top:6px!important;padding:6px 8px!important;font-size:9.5px!important;border-radius:9px!important}

/* 페이지 버튼도 설정 하위화면에서는 작게 */
#noticesView .pagination,#adminInquiryView .pagination{gap:5px!important;margin:8px 0 0!important;padding-top:7px!important}
#noticesView .pageBtn,#adminInquiryView .pageBtn{min-width:30px!important;height:30px!important;padding:0 7px!important;border-radius:8px!important;font-size:10px!important}

html[data-theme="dark"] .inquiryFold{background:#111827!important}
html[data-theme="dark"] .inquiryFoldBody{border-top-color:#374151!important}
@media(max-width:360px){
  .inquiryFormTopRow{grid-template-columns:96px minmax(0,1fr)!important;gap:5px!important}
  .inquiryFoldSummary{padding:7px 8px!important;gap:5px!important}
  .inquiryFoldSummary .inquiryTitleWithCategory b{font-size:10px!important}
  .inquiryFoldSummary .inquiryCategoryBadge{padding:2px 4px!important;font-size:7.5px!important}
  .inquiryFoldSummary .statusBadge{padding:3px 5px!important;font-size:8px!important}
}

/* v1.7: hidden 속성이 settingsMenuButton의 display:flex보다 항상 우선하도록 보정 */
.settingsMenuButton[hidden],
#openAdminInquiryBtn[hidden],
#openInquiryBtn[hidden],
#openInquiryListBtn[hidden],
#openTemplatesBtn[hidden]{
  display:none!important;
}

/* v1.8: 견적서 / 작업완료 내역서 compact UI */
#documentView .documentBuilderCard{
  padding:11px 12px!important;
  border-radius:16px!important;
}
#documentView .subpageHeader{
  min-height:32px!important;
  margin-bottom:7px!important;
  gap:6px!important;
}
#documentView .subpageHeader h2{
  font-size:15px!important;
  line-height:1.2!important;
}
#documentView .documentTypeTabs{
  gap:5px!important;
  margin-bottom:7px!important;
}
#documentView .documentTypeBtn{
  min-height:36px!important;
  padding:6px 7px!important;
  border-radius:9px!important;
  font-size:10.5px!important;
}
#documentView .documentPhotoOptions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
  margin:0 0 7px!important;
  padding:6px!important;
  border-radius:10px!important;
}
#documentView .documentPhotoOptions label{
  min-height:32px!important;
  padding:5px 7px!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.72)!important;
  font-size:9.5px!important;
  gap:5px!important;
}
#documentView .documentPhotoOptions input{
  width:15px!important;
  height:15px!important;
  margin:0!important;
}
#documentView .documentPaper{
  padding:12px!important;
  border-radius:12px!important;
  box-shadow:none!important;
}
#documentView .documentTopV70{
  gap:8px!important;
  padding-bottom:7px!important;
}
#documentView .documentBrandBlock{gap:2px!important}
#documentView .documentBrandBlock .documentKind{
  padding:3px 7px!important;
  font-size:8px!important;
}
#documentView .documentBrandBlock h2{
  font-size:18px!important;
}
#documentView .documentBrandBlock p{
  font-size:8.5px!important;
}
#documentView .documentIssue{
  min-width:68px!important;
  padding:6px 7px!important;
  border-radius:9px!important;
}
#documentView .documentIssue span{font-size:8px!important}
#documentView .documentIssue b{font-size:9.5px!important}
#documentView .documentSection{
  padding:8px 0!important;
}
#documentView .documentSection h3{
  margin:0 0 5px!important;
  font-size:10.5px!important;
}
#documentView .documentInfoGridV70{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  border-radius:9px!important;
}
#documentView .documentInfoGridV70 .documentInfoRow{
  min-height:32px!important;
  grid-template-columns:56px minmax(0,1fr)!important;
  gap:5px!important;
  padding:6px 7px!important;
}
#documentView .documentInfoRow span{font-size:8.5px!important}
#documentView .documentInfoRow b{font-size:9.5px!important}
#documentView .documentMoneyRow b{font-size:10.5px!important}
#documentView .documentAddressRow{
  grid-column:1/-1!important;
}
#documentView .documentWorkSection .documentWorkText{
  padding:7px 8px!important;
  border-radius:8px!important;
  font-size:10px!important;
  line-height:1.4!important;
}
#documentView .documentNote{
  margin-top:5px!important;
  padding:6px 7px!important;
  border-radius:8px!important;
}
#documentView .documentNote b{font-size:9px!important}
#documentView .documentNote p{font-size:9.5px!important;line-height:1.4!important}
#documentView .documentAccountV70{
  padding:8px 9px!important;
  border-radius:9px!important;
}
#documentView .documentAccountV70 h3{margin-bottom:3px!important}
#documentView .documentAccountV70 p{
  font-size:9.5px!important;
  line-height:1.4!important;
}
#documentView .documentPhotoGrid{gap:6px!important}
#documentView .documentPhoto{gap:3px!important}
#documentView .documentPhoto span{font-size:8px!important}
#documentView .documentPhoto img{border-radius:8px!important}
#documentView .documentFooter{
  padding-top:7px!important;
  gap:4px!important;
}
#documentView .documentFooter b,
#documentView .documentFooter span{font-size:8px!important}
#documentView .documentActions{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
  margin-top:7px!important;
}
#documentView .documentActions button{
  min-height:36px!important;
  padding:6px 4px!important;
  border-radius:9px!important;
  font-size:9.5px!important;
}
#documentView #documentNotice{
  margin:5px 0 0!important;
  min-height:0!important;
}
html[data-theme="dark"] #documentView .documentPhotoOptions label{background:#1f2937!important}
@media(max-width:360px){
  #documentView .documentBuilderCard{padding:9px 10px!important}
  #documentView .documentInfoGridV70{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #documentView .documentInfoGridV70 .documentInfoRow{grid-template-columns:48px minmax(0,1fr)!important;padding:5px 6px!important}
  #documentView .documentInfoRow span{font-size:8px!important}
  #documentView .documentInfoRow b{font-size:9px!important}
  #documentView .documentActions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #documentView .documentActions button{font-size:9px!important;padding:5px 2px!important}
}


/* v2.0: 문서 작업일 날짜/시간 2줄 + 용어 정리 */
.documentDateTwoLine{display:grid!important;gap:1px!important;line-height:1.25!important;text-align:left!important}
.documentDateTwoLine>span{display:block!important;font:inherit!important;color:inherit!important}
.documentDateTwoLine>span+span{font-size:.94em!important}


/* v2.2: 앱 전체 타이포그래피 기준 통일
   - 너무 작은 7~9px 텍스트 제거
   - 제목/본문/보조/배지/버튼의 단계만 유지
   - Fold6/멀티윈도우에서도 최소 가독성 보장 */
:root{
  --fs-ui-xs:10px;
  --fs-ui-sm:11px;
  --fs-ui-base:12px;
  --fs-ui-md:13px;
  --fs-ui-lg:15px;
  --fs-ui-title:16px;
}
body{font-size:var(--fs-ui-base);line-height:1.42}
.app{font-size:var(--fs-ui-base)}

/* 공통 입력/버튼/라벨 */
.app button:not(.headerSettingsBtn):not(.scrollTopBtn){font-size:12px!important;line-height:1.2!important}
.app input:not([type="checkbox"]):not([type="radio"]),
.app textarea,
.app select{font-size:13px!important;line-height:1.35!important}
.app label,.app .notice,.app .eyebrow{font-size:11px!important;line-height:1.35!important}
.app small{line-height:1.35}
.card h2,.hero h2,.sectionTitle h2,.subpageHeader h2{font-size:16px!important;line-height:1.25!important}
.sectionTitle p{font-size:11px!important}

/* 상단 탭 */
.topTabs .tabBtn{font-size:12.5px!important;font-weight:800!important}

/* 상태/결제/종류 배지 */
.workStatusBadge,.paymentStatusBadge,.statusBadge,.receivableAge,
.inquiryCategoryBadge,.adminRoleBadge{font-size:10px!important;line-height:1.15!important}

/* 오늘 */
.dashboardTitleRow h2{font-size:16px!important}
.dashboardStat span,.dashboardStat small{font-size:10.5px!important}
.dashboardStat b{font-size:21px!important}
.dashboardFold summary{font-size:13px!important}
.dashboardFold summary small{font-size:10px!important}
.dashboardWorkTitle b{font-size:12.5px!important}
.dashboardWorkItem small,.dashboardOpenHint,.dashboardMore{font-size:10px!important}
.dashboardQuickMini button,.dashboardQuickActions button{font-size:11px!important}

/* 일정 */
.calendarHeadTitle,.calendarSelectedTitle{font-size:15px!important}
.calendarWeekday{font-size:10px!important}
.calendarDay{font-size:11.5px!important}
.calendarDay>small{font-size:9.5px!important}
.calendarScheduleTime{font-size:11px!important}
.calendarScheduleMain b{font-size:12px!important}
.calendarScheduleMain small{font-size:10px!important}
.calendarScheduleDetail>div:not(.calendarScheduleActions){font-size:10.5px!important}
.calendarScheduleDetail span{font-size:10px!important}
.calendarScheduleDetail b{font-size:11px!important}
.calendarScheduleActions button{font-size:10.5px!important}

/* 새로작성 */
#workView .hero h2,#workView .workPhotoCard h2,#workView .messageCard>h2{font-size:15px!important}
#workView label,#workView .workPhotoLabel{font-size:10.5px!important}
#workView input,#workView textarea,#workView select{font-size:13px!important}
#workView .voiceActionRow button,#workView .workTemplateChip,
#workView .workPhotoActions button,#workView .messageActionBtn,
#workView .contactPickBtn,#workView .addressRouteBtn{font-size:11px!important}
#workView .workTemplateQuickHead>b{font-size:12px!important}
#workView .messageActionNotice,#workView #photoNotice{font-size:10px!important}

/* 내역 - 목록과 상세 */
.historyTitleLine b,.historyOpen b{font-size:12.5px!important}
.historyScheduleOnly,.historyOpenMain small{font-size:10px!important}
.historyMetaGridV79 span:not(.workStatusBadge):not(.paymentStatusBadge){font-size:10px!important}
.historyMetaGridV79 b{font-size:12px!important}
.historyMetaPhone .historyCall,.historyRoute,.historyMarkPaid{font-size:10.5px!important}
.historyAddressCompact .historyAddressLabel,.historyTextBlock>span{font-size:10px!important}
.historyAddressCompact .historyAddressValue,.historyTextBlock>p{font-size:12px!important;font-weight:800!important}
.historySendFold summary{font-size:11.5px!important}
.historySendBody select,.historySendActions button{font-size:11px!important}
.historyActionGridV84 button,.historyActionsV84 button{font-size:11px!important}
.historySavedAt{font-size:9.5px!important}

/* 고객관리 */
.customerNameLine b{font-size:13px!important}
.customerNameLine small,.customerMeta,.customerSummaryMeta{font-size:10px!important}
.customerDetailSummary,.customerDetailSummary b{font-size:11px!important}
.customerAddressV96 .customerAddressText{font-size:11px!important}
.customerAddressV96 .customerRoute{font-size:10px!important}
.customerQuickActionsV96 button{font-size:10.5px!important}
.customerPastMainV96 b{font-size:11.5px!important}
.customerPastMainV96 small{font-size:10px!important}

/* 매출/미수금 */
.revenueCell span,.revenueCell small,.revenueForecastLine span,.revenueForecastLine small{font-size:10px!important}
.revenueCell b{font-size:15px!important}
.revenueForecastLine b{font-size:14px!important}
.revenueManageLink b{font-size:12px!important}
.revenueManageLink small{font-size:10px!important}
.receivablesSummary span,.receivablesSummary small{font-size:10.5px!important}
.receivablesSummary b{font-size:20px!important}
.receivableAgeBtn{font-size:10.5px!important}
.receivableTitle b{font-size:12px!important}
.receivablePhone,.receivableDate,.receivableDate b{font-size:10px!important}
.receivableMoneyGrid span{font-size:10px!important}
.receivableMoneyGrid b{font-size:12px!important}
.receivableActions button{font-size:10.5px!important}

/* 설정 메인/내 정보/템플릿/화면/알림 */
.settingsMenuCard .settingsMenuButton>span b{font-size:12px!important}
.versionCard>div b{font-size:12px!important}
.versionCard>div small{font-size:10px!important}
.profileAccountHead>b,.profileSectionTitle{font-size:12.5px!important}
.profileAccountHead .authStatus{font-size:10px!important}
.profileLoggedInRow>span,.accountEditGroup>label,.profileGrid label span,
#notificationView .notificationSettings label span{font-size:10.5px!important}
.profileLoggedInRow b{font-size:11.5px!important}
.profileAccountEditFold summary{font-size:11px!important}
.accountEditRow button,#saveProfileBtn,.profileLogoutBtn{font-size:11px!important}
.profileGrid input,.templateForm input{font-size:12.5px!important}
.templateFormActions button,#themeView .themeBtn,#notificationView .notificationSettings button{font-size:11px!important}
.savedTemplateSection>h3{font-size:12.5px!important}
.savedTemplateSection .templateRowMain b{font-size:11.5px!important}
.savedTemplateSection .templateRowMain small{font-size:10px!important}
.savedTemplateSection .templateRowActions button{font-size:10.5px!important}
.savedTemplateSection .templateEmpty{font-size:10.5px!important}

/* 공지/문의: 과도하게 작던 7.5~9px를 제거 */
#noticesView .noticePageMeta{font-size:10px!important}
#noticesView .noticeTitle{font-size:12px!important}
#noticesView .noticeDate{font-size:10px!important}
#noticesView .noticeBody{font-size:11px!important}
#inquiryListView .adminInquiryCount,#adminInquiryView .adminInquiryCount{font-size:10.5px!important}
#adminInquiryView .adminFilterBtn{font-size:10.5px!important}
.inquiryFoldMain small{font-size:10px!important}
.inquiryFoldSummary .inquiryTitleWithCategory b{font-size:12px!important}
.inquiryFoldSummary .inquiryCategoryBadge,.inquiryFoldSummary .statusBadge{font-size:9.5px!important}
.inquiryFoldBody>p,.inquiryQuestion{font-size:11px!important}
.inquiryFoldBody .inquiryAnswer,.inquiryFoldBody .waitingAnswer{font-size:10.5px!important}
.inquiryFoldBody .inquiryAnswer b,.inquiryFoldBody .inquiryAnswer p{font-size:10.5px!important}
.inquiryFoldBody .deleteInquiry{font-size:10.5px!important}
.adminInquiryFold .adminQuestion{font-size:11px!important}
.adminInquiryFold .adminAnswerLabel{font-size:10.5px!important}
.adminInquiryFold .adminAnswer{font-size:11px!important}
.adminInquiryFold .saveAdminAnswer{font-size:10.5px!important}
#noticesView .pageBtn,#adminInquiryView .pageBtn{font-size:10.5px!important}
#inquiryView .inquiryBox input,#inquiryView .inquiryBox textarea{font-size:12.5px!important}
#inquiryView #inquiryBtn{font-size:11px!important}

/* 문서: 종이 안에서도 계층은 유지하되 너무 작은 글자 제거 */
#documentView .subpageHeader h2{font-size:16px!important}
#documentView .documentTypeBtn{font-size:11px!important}
#documentView .documentPhotoOptions label{font-size:10px!important}
#documentView .documentBrandBlock .documentKind{font-size:9.5px!important}
#documentView .documentBrandBlock h2{font-size:18px!important}
#documentView .documentBrandBlock p{font-size:10px!important}
#documentView .documentIssue span{font-size:9.5px!important}
#documentView .documentIssue b{font-size:10.5px!important}
#documentView .documentSection h3{font-size:11.5px!important}
#documentView .documentInfoRow span{font-size:10px!important}
#documentView .documentInfoRow b{font-size:11px!important}
#documentView .documentMoneyRow b{font-size:11.5px!important}
#documentView .documentWorkSection .documentWorkText{font-size:11px!important}
#documentView .documentNote b,#documentView .documentNote p{font-size:10.5px!important}
#documentView .documentAccountV70 p{font-size:10.5px!important}
#documentView .documentPhoto span,#documentView .documentFooter b,#documentView .documentFooter span{font-size:9.5px!important}
#documentView .documentActions button{font-size:11px!important}

/* 좁은 Fold6/멀티윈도우: 작아지더라도 9.5px 아래로 내리지 않음 */
@media(max-width:360px){
  .app button:not(.headerSettingsBtn):not(.scrollTopBtn){font-size:11px!important}
  .topTabs .tabBtn{font-size:11.5px!important}
  .historyMetaGridV79 span:not(.workStatusBadge):not(.paymentStatusBadge),
  .historyTextBlock>span,.calendarScheduleMain small,
  .customerPastMainV96 small,.receivablePhone,.receivableDate,.receivableDate b,
  #noticesView .noticeDate,.inquiryFoldMain small{font-size:9.5px!important}
  .historyMetaGridV79 b,.historyTextBlock>p{font-size:11px!important}
  .customerQuickActionsV96 button{font-size:9.5px!important}
  #documentView .documentInfoRow span,#documentView .documentBrandBlock p,
  #documentView .documentIssue span,#documentView .documentPhoto span,
  #documentView .documentFooter b,#documentView .documentFooter span{font-size:9.5px!important}
  #documentView .documentInfoRow b,#documentView .documentActions button{font-size:10.5px!important}
}

/* v2.5: 문서 연락처 한 줄 + PDF A4 전용 촘촘한 레이아웃 */
#documentView .documentPhoneRow b{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow:visible!important;
  letter-spacing:-.15px!important;
}
#documentView .documentBodyGrid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
}
#documentView .documentBodyGrid .documentSection{
  min-width:0!important;
}

/* html2pdf 캡처 때만 적용. 실제 모바일 미리보기 폭에는 영향 없음 */
#documentPrintArea.pdfExportMode{
  box-sizing:border-box!important;
  width:760px!important;
  max-width:none!important;
  padding:20px 22px!important;
  border:1px solid #dfe3e8!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#111827!important;
  box-shadow:none!important;
  font-family:Arial,"Noto Sans KR",sans-serif!important;
}
#documentPrintArea.pdfExportMode .documentTopV70{
  align-items:flex-start!important;
  padding-bottom:10px!important;
  margin-bottom:1px!important;
  border-bottom:2px solid #111827!important;
}
#documentPrintArea.pdfExportMode .documentBrandBlock h2{
  font-size:22px!important;
}
#documentPrintArea.pdfExportMode .documentBrandBlock p{
  font-size:10px!important;
}
#documentPrintArea.pdfExportMode .documentIssue{
  min-width:90px!important;
  padding:7px 10px!important;
}
#documentPrintArea.pdfExportMode .documentSection{
  padding:9px 0!important;
}
#documentPrintArea.pdfExportMode .documentSection h3{
  font-size:12px!important;
  margin-bottom:6px!important;
}
#documentPrintArea.pdfExportMode .documentInfoGridV70{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  border:1px solid #dfe3e8!important;
  border-radius:9px!important;
  overflow:hidden!important;
}
#documentPrintArea.pdfExportMode .documentInfoGridV70 .documentInfoRow{
  box-sizing:border-box!important;
  min-height:38px!important;
  grid-template-columns:66px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  padding:7px 10px!important;
  border-bottom:1px solid #e7eaf0!important;
  background:#fff!important;
}
#documentPrintArea.pdfExportMode .documentInfoGridV70 .documentInfoRow:nth-child(odd):not(.documentAddressRow){
  border-right:1px solid #e7eaf0!important;
}
#documentPrintArea.pdfExportMode .documentInfoGridV70 .documentAddressRow{
  grid-column:1/-1!important;
}
#documentPrintArea.pdfExportMode .documentInfoRow span{
  font-size:10px!important;
  color:#64748b!important;
}
#documentPrintArea.pdfExportMode .documentInfoRow b{
  font-size:11px!important;
  line-height:1.3!important;
  font-weight:800!important;
}
#documentPrintArea.pdfExportMode .documentPhoneRow b{
  white-space:nowrap!important;
}
#documentPrintArea.pdfExportMode .documentDateTwoLine{
  gap:0!important;
}
#documentPrintArea.pdfExportMode .documentBodyGrid.hasAccount{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)!important;
  gap:10px!important;
  align-items:stretch!important;
  padding-top:8px!important;
  border-top:1px solid #e5e7eb!important;
}
#documentPrintArea.pdfExportMode .documentBodyGrid .documentSection{
  border-top:0!important;
  padding:0!important;
}
#documentPrintArea.pdfExportMode .documentWorkSection .documentWorkText{
  min-height:58px!important;
  padding:9px 10px!important;
  background:#f8fafc!important;
  border:1px solid #e7eaf0!important;
  font-size:11px!important;
  line-height:1.45!important;
}
#documentPrintArea.pdfExportMode .documentNote{
  margin-top:6px!important;
  border:1px solid #e7eaf0!important;
}
#documentPrintArea.pdfExportMode .documentAccountV70{
  margin:0!important;
  padding:9px 10px!important;
  background:#f8fafc!important;
  border:1px solid #e7eaf0!important;
  border-radius:9px!important;
}
#documentPrintArea.pdfExportMode .documentAccountV70 p{
  font-size:10.5px!important;
  line-height:1.45!important;
}
#documentPrintArea.pdfExportMode .documentPhotoGrid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
#documentPrintArea.pdfExportMode .documentPhoto img{
  max-height:220px!important;
  object-fit:cover!important;
}
#documentPrintArea.pdfExportMode .documentFooter{
  margin-top:9px!important;
  padding-top:8px!important;
}

@media(max-width:360px){
  #documentView .documentPhoneRow{
    grid-template-columns:44px minmax(0,1fr)!important;
  }
  #documentView .documentPhoneRow b{
    font-size:10px!important;
    letter-spacing:-.35px!important;
  }
}

/* v2.6: professional estimate / work report PDF layout */
#documentView .documentPaper{
  padding:16px!important;
  background:#fff!important;
  color:#111827!important;
}
.documentProHeader{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding:2px 0 12px;
}
.documentProTitle{display:grid;gap:2px;min-width:0}
.documentProTitle h2{
  margin:0;
  font-size:26px!important;
  line-height:1;
  letter-spacing:-.6px;
  font-weight:950;
  color:#0f172a;
}
.documentProTitle span{font-size:9px;font-weight:800;color:#64748b}
.documentProBrand{display:grid;justify-items:end;gap:3px;text-align:right;min-width:0}
.documentProBrand b{font-size:13px;color:#0f172a;white-space:nowrap}
.documentProBrand small{font-size:8.5px;color:#64748b;white-space:nowrap}
.documentProIntro{padding:4px 0 11px}
.documentMetaRows{display:grid;gap:3px;max-width:78%}
.documentMetaRows>div{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:start;gap:8px;min-height:18px}
.documentMetaRows span{font-size:8.5px;font-weight:800;color:#64748b}
.documentMetaRows b{font-size:9.5px;line-height:1.35;color:#111827;word-break:keep-all}
.documentPhoneNoWrap{white-space:nowrap!important;word-break:keep-all!important}
.documentDateStack{display:grid!important;gap:0!important}
.documentDateStack i{font-style:normal;display:block;line-height:1.25}
.documentDateInline{display:block!important;white-space:nowrap!important;word-break:keep-all!important;letter-spacing:-.12px}
.documentProGuide{margin:8px 0 0;font-size:9px;color:#475569}
.documentLineTable{margin-top:2px;border-top:2px solid #111827;border-bottom:1px solid #cbd5e1}
.documentLineHead,.documentLineRow{display:grid;grid-template-columns:minmax(0,1fr) 42px 42px 78px 82px;align-items:center;gap:0}
.documentLineHead{min-height:30px;border-bottom:1px solid #94a3b8}
.documentLineHead span{font-size:8.5px;font-weight:850;color:#475569;text-align:center}
.documentLineHead span:first-child{text-align:left;padding-left:5px}
.documentLineRow{min-height:48px;border-bottom:1px solid #e5e7eb}
.documentLineRow>*{font-size:9.5px;text-align:center;padding:7px 5px;min-width:0}
.documentLineRow>b{text-align:left;font-size:10px;word-break:break-word}
.documentLineRow>strong{font-size:10px;text-align:right}
.documentLineRow>span:nth-last-child(2){text-align:right}
.documentTotalWrap{display:flex;justify-content:flex-end;padding:10px 0 12px}
.documentTotalRows{width:min(58%,280px);border-top:2px solid #111827}
.documentTotalRows>div{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;min-height:27px;padding:3px 5px;border-bottom:1px solid #e5e7eb}
.documentTotalRows span{font-size:8.5px;color:#64748b;font-weight:800}
.documentTotalRows b{font-size:9.5px;color:#111827}
.documentTotalRows .grand{background:#f1f5f9;border-bottom:0}
.documentTotalRows .grand span,.documentTotalRows .grand b{font-weight:900;color:#0f172a}
.documentSpecialSection{padding:0 0 11px}
.documentSpecialSection h3{margin:0 0 5px;font-size:9.5px!important}
.documentSpecialBox{min-height:62px;padding:9px 10px;border:1px solid #cbd5e1;background:#fff;font-size:9.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.documentEmptyText{color:#cbd5e1}
.documentCompanyFooter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:4px;padding:10px 12px;border:1.5px solid #94a3b8;border-left:4px solid #0f172a;border-radius:8px;background:#f8fafc}
.documentCompanyInfo{display:grid;gap:3px;min-width:0}
.documentCompanyInfo>span{font-size:9.5px;color:#0f172a;font-weight:950;letter-spacing:-.1px}
.documentCompanyInfo>b{font-size:12px;color:#0f172a;font-weight:900}
.documentCompanyInfo>small{font-size:8.5px;color:#475569;line-height:1.4;word-break:break-word}
.documentSignBlock{min-width:86px;text-align:center;display:grid;gap:6px;padding:6px 2px 6px 12px;border-left:1px solid #cbd5e1}
.documentSignBlock small{font-size:8px;color:#94a3b8}
.documentSignBlock b{font-size:10px;color:#334155;border-bottom:1px solid #94a3b8;padding-bottom:5px}

/* photos follow the professional document body */
#documentView .documentPaper>.documentSection{margin-top:10px;padding-top:8px!important;border-top:1px solid #e5e7eb!important}

/* PDF export: lock professional A4 proportions */
#documentPrintArea.pdfExportMode{
  width:760px!important;
  padding:34px 48px 30px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
#documentPrintArea.pdfExportMode .documentProHeader{padding-bottom:18px!important}
#documentPrintArea.pdfExportMode .documentProTitle h2{font-size:34px!important;letter-spacing:-1px!important}
#documentPrintArea.pdfExportMode .documentProTitle span{font-size:10px!important}
#documentPrintArea.pdfExportMode .documentProBrand b{font-size:15px!important}
#documentPrintArea.pdfExportMode .documentProBrand small{font-size:9px!important}
#documentPrintArea.pdfExportMode .documentProIntro{padding:10px 0 18px!important}
#documentPrintArea.pdfExportMode .documentMetaRows{max-width:72%!important;gap:5px!important}
#documentPrintArea.pdfExportMode .documentMetaRows>div{grid-template-columns:72px minmax(0,1fr)!important;gap:10px!important;min-height:21px!important}
#documentPrintArea.pdfExportMode .documentMetaRows span{font-size:10px!important}
#documentPrintArea.pdfExportMode .documentMetaRows b{font-size:11px!important}
#documentPrintArea.pdfExportMode .documentProGuide{margin-top:12px!important;font-size:10px!important}
#documentPrintArea.pdfExportMode .documentLineHead,#documentPrintArea.pdfExportMode .documentLineRow{grid-template-columns:minmax(0,1fr) 54px 54px 100px 104px!important}
#documentPrintArea.pdfExportMode .documentLineHead{min-height:36px!important}
#documentPrintArea.pdfExportMode .documentLineHead span{font-size:10px!important}
#documentPrintArea.pdfExportMode .documentLineRow{min-height:58px!important}
#documentPrintArea.pdfExportMode .documentLineRow>*{font-size:11px!important;padding:10px 7px!important}
#documentPrintArea.pdfExportMode .documentLineRow>b,#documentPrintArea.pdfExportMode .documentLineRow>strong{font-size:11.5px!important}
#documentPrintArea.pdfExportMode .documentTotalWrap{padding:16px 0 18px!important}
#documentPrintArea.pdfExportMode .documentTotalRows{width:58%!important;max-width:330px!important}
#documentPrintArea.pdfExportMode .documentTotalRows>div{min-height:31px!important;padding:5px 8px!important}
#documentPrintArea.pdfExportMode .documentTotalRows span{font-size:10px!important}
#documentPrintArea.pdfExportMode .documentTotalRows b{font-size:11px!important}
#documentPrintArea.pdfExportMode .documentSpecialSection{padding-bottom:18px!important}
#documentPrintArea.pdfExportMode .documentSpecialSection h3{font-size:11px!important;margin-bottom:7px!important}
#documentPrintArea.pdfExportMode .documentSpecialBox{min-height:92px!important;padding:12px 14px!important;font-size:10.5px!important}
#documentPrintArea.pdfExportMode .documentCompanyFooter{margin-top:6px!important;padding:14px 16px!important;gap:20px!important;border:1.5px solid #64748b!important;border-left:5px solid #0f172a!important;background:#f8fafc!important}
#documentPrintArea.pdfExportMode .documentCompanyInfo>span{font-size:11px!important;color:#0f172a!important;font-weight:950!important}
#documentPrintArea.pdfExportMode .documentCompanyInfo>b{font-size:14px!important;font-weight:900!important}
#documentPrintArea.pdfExportMode .documentCompanyInfo>small{font-size:9.5px!important;color:#475569!important}
#documentPrintArea.pdfExportMode .documentDateInline{white-space:nowrap!important;font-size:11px!important;letter-spacing:-.1px!important}
#documentPrintArea.pdfExportMode .documentSignBlock{min-width:110px!important}
#documentPrintArea.pdfExportMode .documentSignBlock small{font-size:9px!important}
#documentPrintArea.pdfExportMode .documentSignBlock b{font-size:11px!important}

@media(max-width:390px){
  .documentProTitle h2{font-size:23px!important}
  .documentProBrand b{font-size:11.5px!important}
  .documentMetaRows{max-width:100%}
  .documentLineHead,.documentLineRow{grid-template-columns:minmax(0,1fr) 34px 34px 66px 72px}
  .documentLineHead span{font-size:7.8px}
  .documentLineRow>*{font-size:8.6px;padding:6px 3px}
  .documentLineRow>b,.documentLineRow>strong{font-size:9px}
  .documentTotalRows{width:70%}
}

/* v2.9: 문서 미리보기에서도 현장사진을 PDF와 동일하게 좌우 2열로 표시 */
#documentView #documentPrintArea .documentPhotoGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:start!important;
}
#documentView #documentPrintArea .documentPhoto{
  min-width:0!important;
}
#documentView #documentPrintArea .documentPhoto img{
  display:block!important;
  width:100%!important;
  aspect-ratio:4/3!important;
  height:auto!important;
  object-fit:cover!important;
}
/* 사진을 한 장만 선택한 경우에는 미리보기 폭 전체 사용 */
#documentView #documentPrintArea .documentPhoto:only-child{
  grid-column:1/-1!important;
}
@media(max-width:360px){
  #documentView #documentPrintArea .documentPhotoGrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  #documentView #documentPrintArea .documentPhoto span{
    font-size:9.5px!important;
  }
}

/* v3.0: 현장사진 작업 전/후 각 10장, 가로 스크롤 미리보기 */
#workView .workPhotoLabel{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:6px!important;
}
#workView .workPhotoLabel small{
  font-size:9px!important;
  font-weight:850!important;
  color:#64748b!important;
}
#workView .workPhotoMultiPreview{
  display:block!important;
  width:100%!important;
  min-height:82px!important;
  aspect-ratio:auto!important;
  padding:6px!important;
  overflow:hidden!important;
  border:1px dashed #cbd5e1!important;
  background:#f8fafc!important;
}
#workView .workPhotoThumbStrip{
  display:flex!important;
  align-items:stretch!important;
  gap:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  padding:1px!important;
}
#workView .workPhotoThumbStrip::-webkit-scrollbar{display:none}
#workView .workPhotoMiniThumb{
  position:relative!important;
  flex:0 0 70px!important;
  height:70px!important;
  border-radius:8px!important;
  overflow:hidden!important;
  background:#e5e7eb!important;
  scroll-snap-align:start;
}
#workView .workPhotoThumbOpen{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
#workView .workPhotoThumbOpen img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
#workView .workPhotoThumbDelete{
  position:absolute!important;
  top:3px!important;
  right:3px!important;
  z-index:2!important;
  display:grid!important;
  place-items:center!important;
  width:20px!important;
  height:20px!important;
  min-height:20px!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.82)!important;
  color:#fff!important;
  font-size:14px!important;
  line-height:1!important;
}
#workView .workPhotoAddTile{
  flex:0 0 70px!important;
  width:70px!important;
  height:70px!important;
  min-height:70px!important;
  padding:0!important;
  border:1px dashed #94a3b8!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#64748b!important;
  font-size:22px!important;
  font-weight:700!important;
}
#workView .workPhotoActions button:disabled{opacity:.45!important}
html[data-theme="dark"] #workView .workPhotoMultiPreview{background:#111827!important;border-color:#4b5563!important}
html[data-theme="dark"] #workView .workPhotoAddTile{background:#1f2937!important;color:#cbd5e1!important;border-color:#64748b!important}

/* 내역 여러 장 사진은 2열 썸네일로 유지 */
.historyPhotos{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
.historyPhotoThumb{min-width:0!important}
.historyPhotoThumb img{width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important}

/* 문서 미리보기/PDF 여러 장 사진: 항상 2열, 사진 단위 페이지 분할 방지 */
#documentView #documentPrintArea .documentPhotoGrid,
#documentPrintArea.pdfExportMode .documentPhotoGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
#documentView #documentPrintArea .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhoto{
  min-width:0!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
}
#documentView #documentPrintArea .documentPhoto:only-child{grid-column:auto!important}
.documentPhotoSection>h3 small{font-size:.85em;color:#64748b;font-weight:700}
@media(max-width:360px){
  #workView .workPhotoMiniThumb{flex-basis:60px!important;height:60px!important}
  #workView .workPhotoAddTile{flex-basis:60px!important;width:60px!important;height:60px!important;min-height:60px!important}
}


/* v3.1: 일정 날짜만 저장 가능 + 시간 협의 / 문서 사진 1·2·3열 자동 정렬 */
#workView .workScheduleInputs{
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;
  gap:7px!important;
  align-items:center!important;
}
#workView .workScheduleInputs input{min-width:0!important;width:100%!important}
#workView .workScheduleHelp{
  display:block!important;
  margin-top:5px!important;
  font-size:10px!important;
  line-height:1.3!important;
  color:#64748b!important;
  font-weight:700!important;
}
@media(max-width:350px){
  #workView .workScheduleInputs{grid-template-columns:1fr!important}
}

/* 사진 수에 맞춰 미리보기와 PDF가 동일하게 보이도록 자동 열 수 적용 */
#documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid1,
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid1{
  grid-template-columns:minmax(0,56%)!important;
  justify-content:center!important;
}
#documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid2,
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid2{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
#documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid3,
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid3{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
}
#documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid3 .documentPhoto img,
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid3 .documentPhoto img{
  aspect-ratio:4/3!important;
  max-height:150px!important;
}
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid2 .documentPhoto img{max-height:185px!important}
#documentPrintArea.pdfExportMode .documentPhotoGrid.documentPhotoGrid1 .documentPhoto img{max-height:210px!important}
@media(max-width:360px){
  #documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid3{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important}
  #documentView #documentPrintArea .documentPhotoGrid.documentPhotoGrid3 .documentPhoto span{font-size:8.5px!important}
}


/* v3.2: PDF 현장사진을 3장 단위 행으로 고정하여 페이지 분할 시 정렬 유지 */
#documentView #documentPrintArea .documentPhotoGrid,
#documentPrintArea.pdfExportMode .documentPhotoGrid{
  display:block!important;
  width:100%!important;
}
#documentView #documentPrintArea .documentPhotoRow,
#documentPrintArea.pdfExportMode .documentPhotoRow{
  display:grid!important;
  width:100%!important;
  gap:6px!important;
  margin:0 0 7px!important;
  align-items:start!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
  -webkit-column-break-inside:avoid!important;
}
#documentView #documentPrintArea .documentPhotoRow:last-child,
#documentPrintArea.pdfExportMode .documentPhotoRow:last-child{margin-bottom:0!important}
#documentView #documentPrintArea .documentPhotoRow1,
#documentPrintArea.pdfExportMode .documentPhotoRow1{
  grid-template-columns:minmax(0,56%)!important;
  justify-content:center!important;
}
#documentView #documentPrintArea .documentPhotoRow2,
#documentPrintArea.pdfExportMode .documentPhotoRow2{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
#documentView #documentPrintArea .documentPhotoRow3,
#documentPrintArea.pdfExportMode .documentPhotoRow3{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
#documentView #documentPrintArea .documentPhotoRow .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhotoRow .documentPhoto{
  min-width:0!important;
  margin:0!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
}
#documentView #documentPrintArea .documentPhotoRow3 .documentPhoto img,
#documentPrintArea.pdfExportMode .documentPhotoRow3 .documentPhoto img{
  width:100%!important;
  max-height:150px!important;
  aspect-ratio:4/3!important;
  object-fit:cover!important;
}
#documentPrintArea.pdfExportMode .documentPhotoRow2 .documentPhoto img{max-height:185px!important}
#documentPrintArea.pdfExportMode .documentPhotoRow1 .documentPhoto img{max-height:210px!important}
@media(max-width:360px){
  #documentView #documentPrintArea .documentPhotoRow{gap:4px!important;margin-bottom:5px!important}
  #documentView #documentPrintArea .documentPhotoRow3 .documentPhoto span{font-size:8.5px!important}
}

/* v3.2.2: 마지막 1장 사진을 좌측 3열 크기로 고정 - 미리보기/PDF 동일 */
#documentView #documentPrintArea .documentPhotoGrid,
#documentPrintArea.pdfExportMode .documentPhotoGrid{
  display:block!important;
  width:100%!important;
}
#documentView #documentPrintArea .documentPhotoPageGroup,
#documentPrintArea.pdfExportMode .documentPhotoPageGroup{
  display:block!important;
  width:100%!important;
}
#documentPrintArea.pdfExportMode .documentPhotoPageGroupBreak{
  break-before:page!important;
  page-break-before:always!important;
}
#documentView #documentPrintArea .documentPhotoRow,
#documentPrintArea.pdfExportMode .documentPhotoRow{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:6px!important;
  width:100%!important;
  margin:0 0 7px!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
}
/* 마지막 한 장은 3열 사진과 같은 크기로 왼쪽 정렬 */
#documentView #documentPrintArea .documentPhotoRow1 .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhotoRow1 .documentPhoto{
  flex:0 0 calc((100% - 12px)/3)!important;
  width:calc((100% - 12px)/3)!important;
  max-width:calc((100% - 12px)/3)!important;
}
/* 두 장짜리 행은 화면 너비를 반씩 사용 */
#documentView #documentPrintArea .documentPhotoRow2 .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhotoRow2 .documentPhoto{
  flex:0 0 calc((100% - 6px)/2)!important;
  width:calc((100% - 6px)/2)!important;
  max-width:calc((100% - 6px)/2)!important;
}
/* 세 장짜리 행은 균등 3열 */
#documentView #documentPrintArea .documentPhotoRow3 .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhotoRow3 .documentPhoto{
  flex:0 0 calc((100% - 12px)/3)!important;
  width:calc((100% - 12px)/3)!important;
  max-width:calc((100% - 12px)/3)!important;
}
#documentView #documentPrintArea .documentPhotoRow .documentPhoto,
#documentPrintArea.pdfExportMode .documentPhotoRow .documentPhoto{
  min-width:0!important;
  margin:0!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
}
#documentView #documentPrintArea .documentPhotoRow .documentPhoto img,
#documentPrintArea.pdfExportMode .documentPhotoRow .documentPhoto img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:4/3!important;
  object-fit:cover!important;
  max-height:150px!important;
}
@media(max-width:360px){
  #documentView #documentPrintArea .documentPhotoRow,
  #documentPrintArea.pdfExportMode .documentPhotoRow{gap:4px!important;margin-bottom:5px!important}
  #documentView #documentPrintArea .documentPhotoRow1 .documentPhoto,
  #documentPrintArea.pdfExportMode .documentPhotoRow1 .documentPhoto,
  #documentView #documentPrintArea .documentPhotoRow3 .documentPhoto,
  #documentPrintArea.pdfExportMode .documentPhotoRow3 .documentPhoto{
    flex-basis:calc((100% - 8px)/3)!important;
    width:calc((100% - 8px)/3)!important;
    max-width:calc((100% - 8px)/3)!important;
  }
  #documentView #documentPrintArea .documentPhotoRow2 .documentPhoto,
  #documentPrintArea.pdfExportMode .documentPhotoRow2 .documentPhoto{
    flex-basis:calc((100% - 4px)/2)!important;
    width:calc((100% - 4px)/2)!important;
    max-width:calc((100% - 4px)/2)!important;
  }
}


/* v3.2.3: 내역 상단/필터 공간 압축 + 상단 탭 높이 축소 */
.topTabs{
  gap:5px!important;
  padding:4px 0 7px!important;
  margin-bottom:2px!important;
}
.topTabs .tabBtn{
  min-height:40px!important;
  padding:6px 4px!important;
  border-radius:11px!important;
}
#historyView>section.card{
  padding:11px 12px!important;
  margin-bottom:8px!important;
}
.historyHeaderV323{
  margin-bottom:6px!important;
  min-height:36px!important;
  align-items:center!important;
}
.historyTitleCount{
  display:flex;
  align-items:baseline;
  gap:7px;
  min-width:0;
}
.historyTitleCount h2{margin:0!important}
.historyTitleCount .historyResultCount{
  margin:0!important;
  font-size:11px!important;
  color:#6b7280!important;
  font-weight:800!important;
  white-space:nowrap;
}
#historyView #newWorkBtn{
  min-height:34px!important;
  padding:6px 10px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
}
.historyFiltersV323{
  margin:0 0 8px!important;
  padding:8px!important;
  border-radius:12px!important;
}
.historySearchResetRow{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
}
.historyFiltersV323 .historySearchWrap input{
  min-height:38px!important;
  padding:7px 36px 7px 10px!important;
  border-radius:10px!important;
}
.historyFiltersV323 .historySearchIcon{
  width:28px!important;
  height:28px!important;
  right:4px!important;
  font-size:14px!important;
}
.historyResetCompact{
  min-width:58px!important;
  min-height:38px!important;
  padding:6px 8px!important;
  border-radius:10px!important;
  white-space:nowrap!important;
}
.historyFilterRowV323{
  display:grid!important;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;
  gap:6px!important;
  margin-top:6px!important;
  align-items:center!important;
}
.historyInlineField{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:6px!important;
  margin:0!important;
}
.historyInlineField>span{
  display:block!important;
  margin:0!important;
  font-size:10.5px!important;
  font-weight:800!important;
  color:#64748b!important;
  white-space:nowrap!important;
}
.historyInlineField input,
.historyInlineField select{
  min-width:0!important;
  min-height:36px!important;
  height:36px!important;
  padding:6px 8px!important;
  border-radius:10px!important;
  font-size:11.5px!important;
}
.historyInlineField select{padding-right:26px!important}
html[data-theme="dark"] .historyTitleCount .historyResultCount,
html[data-theme="dark"] .historyInlineField>span{color:#9ca3af!important}
@media(max-width:370px){
  .topTabs .tabBtn{min-height:38px!important;padding:5px 2px!important}
  .historySearchResetRow{grid-template-columns:minmax(0,1fr) 52px!important;gap:5px!important}
  .historyResetCompact{min-width:52px!important;padding:5px!important;font-size:10px!important}
  .historyFilterRowV323{grid-template-columns:1fr!important;gap:5px!important}
  .historyInlineField{grid-template-columns:34px minmax(0,1fr)!important}
}


/* v3.2.7: 홈 상태 단순화 (오늘/예약/완료) */
#dashboardView .dashboardHero{padding-top:12px!important;padding-bottom:11px!important}
#dashboardView .dashboardTitleRow{min-height:34px!important;margin-bottom:2px!important}
#dashboardView .dashboardTitleRow h2{margin:0!important;font-size:17px!important;line-height:1.2!important}
#dashboardView .dashboardStats{margin:7px 0 8px!important;gap:6px!important}
#dashboardView .dashboardStat{
  min-height:40px!important;
  padding:5px 8px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  border-radius:11px!important;
}
#dashboardView .dashboardStat span{
  display:inline!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:800!important;
  color:#475569!important;
}
#dashboardView .dashboardStat b{
  display:inline!important;
  margin:0!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:900!important;
}
#dashboardView .dashboardStat small{
  margin:0!important;
  font-size:10.5px!important;
  line-height:1!important;
}
#dashboardView .dashboardQuickActions button{min-height:38px!important;padding:7px 8px!important}
#dashboardView .dashboardFold summary{min-height:43px!important;padding:9px 12px!important}
#dashboardView .dashboardFold .dashboardList:empty{display:none!important}
html[data-theme="dark"] #dashboardView .dashboardStat span{color:#cbd5e1!important}
@media(max-width:350px){
  #dashboardView .dashboardStat{min-height:38px!important;padding:4px 3px!important;gap:3px!important}
  #dashboardView .dashboardStat span{font-size:10px!important}
  #dashboardView .dashboardStat b{font-size:15px!important}
  #dashboardView .dashboardStat small{font-size:9.5px!important}
}


/* v3.2.7: 홈 예약 일정 페이지를 작고 촘촘하게 */
#dashboardView #upcomingWorkList .pagination{
  margin:8px 0 0!important;
  padding-top:7px!important;
  gap:5px!important;
}
#dashboardView #upcomingWorkList .pageBtn{
  min-width:29px!important;
  height:29px!important;
  padding:0 7px!important;
  border-radius:8px!important;
  font-size:10.5px!important;
}
#dashboardView #upcomingWorkList .pageDots{font-size:10px!important;}


/* v3.2.8: 작성 탭 저장 템플릿을 드롭다운 선택 방식으로 변경 */
#workView .workTemplateQuickCard{
  display:grid;
  gap:5px;
}
#workView .workTemplateQuickSelect{
  width:100%;
  min-height:36px;
  padding:6px 34px 6px 10px;
  border:1px solid var(--line,#e5e7eb);
  border-radius:10px;
  background:var(--card,#fff);
  color:inherit;
  font-size:11px;
  font-weight:800;
}
#workView .workTemplateQuickSelect:focus{
  outline:2px solid rgba(17,24,39,.14);
  outline-offset:1px;
}
html[data-theme="dark"] #workView .workTemplateQuickSelect{
  background:#111827;
  border-color:#374151;
  color:#f9fafb;
}
@media(max-width:350px){
  #workView .workTemplateQuickSelect{min-height:34px;font-size:10.5px}
}

/* v3.2.9: 고객관리 이름 옆 전화번호 가독성 강화 */
.customerNameLine small{
  font-size:13px!important;
  font-weight:800!important;
  color:#111827!important;
  line-height:1.25!important;
}
html[data-theme="dark"] .customerNameLine small{
  color:#f9fafb!important;
}
@media(max-width:340px){
  .customerNameLine small{font-size:13px!important;}
}


/* v3.3.0: 매출/알림 문구 정리 + 상단 6개 메뉴 라인 아이콘 통일 */
.revenueForecastAmountOnly{
  grid-template-columns:auto minmax(0,1fr)!important;
}
.revenueForecastAmountOnly b{
  text-align:right!important;
}

#notificationView .notificationSettingsV330{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 72px!important;
  gap:7px!important;
  align-items:stretch!important;
}
#notificationView .notificationSettingsV330 .notificationLeadOnly{
  display:block!important;
  margin:0!important;
}
#notificationView .notificationSettingsV330 .notificationLeadOnly select,
#notificationView .notificationSettingsV330 .notificationToggleCompact{
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
  padding:7px 10px!important;
  box-sizing:border-box!important;
  font-size:12px!important;
  line-height:1!important;
}
#notificationView .notificationSettingsV330 .notificationToggleCompact{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
@media(max-width:330px){
  #notificationView .notificationSettingsV330{grid-template-columns:minmax(0,1fr) 64px!important;gap:5px!important}
  #notificationView .notificationSettingsV330 .notificationLeadOnly select,
  #notificationView .notificationSettingsV330 .notificationToggleCompact{font-size:11px!important;padding:6px 7px!important}
}

.topTabsV330 .tabBtn{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  min-width:0!important;
}
.topTabsV330 .tabIcon{
  width:22px!important;
  height:22px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.72)!important;
  color:#334155!important;
}
.topTabsV330 .tabIcon svg{
  width:15px!important;
  height:15px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.topTabsV330 .tabLabel{
  display:block!important;
  min-width:0!important;
  font-size:10.5px!important;
  line-height:1.05!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
.topTabsV330 .tabBtn.active .tabIcon{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
html[data-theme="dark"] .topTabsV330 .tabBtn:not(.active) .tabIcon{
  background:#1f2937!important;
  color:#e5e7eb!important;
}
@media(max-width:360px){
  .topTabsV330 .tabIcon{width:20px!important;height:20px!important;border-radius:7px!important}
  .topTabsV330 .tabIcon svg{width:14px!important;height:14px!important}
  .topTabsV330 .tabLabel{font-size:10px!important}
}


/* v3.3.1: 작성 UX + 앱 전체 라인 아이콘 + 고객 안내 템플릿 편집 */
.uiLineIcon{
  width:15px;height:15px;display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
button.hasLineIcon,.hasLineIcon{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}
.headerSettingsBtn .uiLineIcon{width:17px;height:17px}
.refreshIconBtn .uiLineIcon,.historySearchIcon .uiLineIcon,.contactPickBtn .uiLineIcon{width:15px;height:15px}
.sectionLineIcon{display:inline-grid;place-items:center;vertical-align:-3px;margin-right:5px;color:#475569}
.sectionLineIcon .uiLineIcon{width:16px;height:16px}
html[data-theme="dark"] .sectionLineIcon{color:#d1d5db}

#workView .voiceActionRow{grid-template-columns:minmax(0,1fr) minmax(92px,.42fr)!important;gap:6px!important}
#workView .voiceActionRow #analyzeBtn{min-height:39px!important;height:39px!important;font-size:11px!important;font-weight:900!important}
#workView .voiceActionRow #resetBtn{min-height:34px!important;height:34px!important;align-self:center!important;font-size:9.5px!important;padding:5px 6px!important}
#workView>.hero .actions #voiceBtn{min-height:39px!important;font-weight:850!important;gap:6px!important}
#workView>.hero .actions #voiceBtn .uiLineIcon{width:16px;height:16px}
@media(max-width:350px){
  #workView .voiceActionRow{grid-template-columns:minmax(0,1fr) 88px!important;gap:4px!important}
  #workView .voiceActionRow #analyzeBtn{font-size:10px!important}
  #workView .voiceActionRow #resetBtn{font-size:9px!important;padding:4px!important}
}

#workView .messageTemplateRowV331{grid-template-columns:minmax(0,1fr) auto auto!important}
#workView .messageTemplateRowV331 .messageTemplateEditBtn{padding:5px 8px!important;background:#f8fafc!important;color:#475569!important;border:1px solid #e5e7eb!important}
.messageTemplateEditor{margin:5px 0 2px;border-top:1px solid #eef2f7;padding-top:4px}
.messageTemplateEditor>summary{list-style:none;cursor:pointer;min-height:28px;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:850;color:#64748b}
.messageTemplateEditor>summary::-webkit-details-marker{display:none}.messageTemplateEditor>summary::after{content:'⌄';font-size:14px}.messageTemplateEditor[open]>summary::after{transform:rotate(180deg)}
.messageTemplateEditorBody{display:grid;gap:5px;padding-top:4px}.messageTemplateEditorBody>small{font-size:8.5px;line-height:1.35;color:#64748b}
#workView .messageTemplateEditorBody textarea{min-height:112px!important;font-size:10.5px!important}
.messageTemplateEditorActions{display:grid;grid-template-columns:1fr 1fr;gap:5px}.messageTemplateEditorActions button{min-height:32px;padding:5px 7px;font-size:9.5px}
html[data-theme="dark"] .messageTemplateEditor{border-top-color:#374151}.messageTemplateEditorBody>small{color:#94a3b8}
@media(max-width:340px){#workView .messageTemplateRowV331{grid-template-columns:minmax(0,1fr) auto!important}#workView .messageTemplateRowV331 .messageTemplateEditBtn{grid-column:2}.messageTemplateEditorBody>small{font-size:8px}}

/* 버튼 이모지 대신 상단 카드와 같은 라인 아이콘 톤 */
.dashboardQuickMini button,.historyPhoneActions button,.historyRoute,.historySendActions button,.historyActionGridV84 button,
.calendarScheduleActions button,.customerQuickActions button,.customerRoute,.receivableActions button,.documentActions button,
.messageActions button,.messagePaymentActions button,.workPhotoActions button,.addressRouteBtn{
  align-items:center!important;justify-content:center!important;gap:5px!important;
}
.historySendFold summary{gap:6px!important;justify-content:flex-start!important}.historySendFold summary::after{margin-left:auto!important}
.historySendFold summary .uiLineIcon{width:14px;height:14px;color:#64748b}
.customerQuickActions .uiLineIcon,.historyActionGridV84 .uiLineIcon,.historySendActions .uiLineIcon,.dashboardQuickMini .uiLineIcon{width:13px;height:13px}

/* 복원 안내가 없을 때 빈 알림 영역도 자리 차지하지 않음 */
#workView #voiceNotice:empty,#workView #messageActionNotice:empty,#workView #photoNotice:empty{display:none!important}


/* v3.3.2: 일정 탭 확인 전용 + 작성 UX/아이콘 세부 정리 */
#calendarView .calendarDayCardV332{padding:9px 10px!important}
#calendarView .calendarDayCardV332 .calendarDayHeader{margin-bottom:6px!important;padding-bottom:5px!important;border-bottom:1px solid #eef2f7}
#calendarView .calendarDayListV332{display:grid!important;gap:5px!important}
#calendarView .calendarHistoryRow{
  width:100%!important;min-height:42px!important;padding:7px 8px!important;margin:0!important;
  border:1px solid #e5e7eb!important;border-radius:10px!important;background:#fff!important;color:#111827!important;
  display:grid!important;grid-template-columns:52px minmax(0,1fr) auto 12px!important;align-items:center!important;gap:6px!important;text-align:left!important;
}
#calendarView .calendarHistoryRow .calendarScheduleTime{font-size:10.5px!important;font-weight:850!important;text-align:center!important;white-space:nowrap!important}
#calendarView .calendarHistoryRow .calendarScheduleMain{min-width:0!important}
#calendarView .calendarHistoryRow .calendarScheduleMain b{display:block!important;font-size:11.5px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#calendarView .calendarHistoryRow .workStatusBadge{font-size:9px!important}
#calendarView .calendarHistoryChevron{font-size:18px!important;line-height:1!important;color:#94a3b8!important;text-align:right!important}
#calendarView .calendarEmpty{padding:12px 6px!important;min-height:0!important}
html[data-theme="dark"] #calendarView .calendarDayCardV332 .calendarDayHeader{border-bottom-color:#374151}
html[data-theme="dark"] #calendarView .calendarHistoryRow{background:#1f2937!important;border-color:#374151!important;color:#f9fafb!important}
@media(max-width:350px){
  #calendarView .calendarHistoryRow{grid-template-columns:46px minmax(0,1fr) auto 10px!important;padding:6px!important;gap:4px!important}
  #calendarView .calendarHistoryRow .calendarScheduleTime{font-size:9.5px!important}
  #calendarView .calendarHistoryRow .calendarScheduleMain b{font-size:10.5px!important}
}

/* AI 정리 버튼은 넓게, 초기화는 같은 높이의 작은 폭 */
#workView .voiceActionRow{grid-template-columns:minmax(0,1fr) 72px!important;gap:6px!important;align-items:stretch!important}
#workView .voiceActionRow #analyzeBtn,
#workView .voiceActionRow #resetBtn{height:40px!important;min-height:40px!important;align-self:stretch!important}
#workView .voiceActionRow #analyzeBtn{font-size:11px!important;font-weight:900!important;padding:6px 10px!important}
#workView .voiceActionRow #resetBtn{font-size:9.5px!important;font-weight:800!important;padding:6px 4px!important}
@media(max-width:350px){
  #workView .voiceActionRow{grid-template-columns:minmax(0,1fr) 66px!important;gap:4px!important}
  #workView .voiceActionRow #analyzeBtn{font-size:10px!important}
  #workView .voiceActionRow #resetBtn{font-size:9px!important}
}

/* 작성 안내문/초안 상태 문구는 공간을 차지하지 않게 */
#workView #voiceNotice[hidden]{display:none!important}
#workView .messageTemplateEditorBody>small{display:none!important}

/* 모든 길찾기 버튼: 아이콘 + 문구를 버튼 정중앙에 */
.addressRouteBtn,.historyRoute,.dashboardRoute,.customerRoute,.calendarRoute{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;gap:5px!important;
}
.addressRouteBtn .uiLineIcon,.historyRoute .uiLineIcon,.dashboardRoute .uiLineIcon,.customerRoute .uiLineIcon,.calendarRoute .uiLineIcon{
  margin:0!important;position:static!important;transform:none!important;
}

/* 설정 톱니 아이콘 비율 보정 */
.headerSettingsBtn .uiLineIcon{width:18px!important;height:18px!important;aspect-ratio:1/1!important;stroke-width:1.7!important}

/* v3.3.3: 설정 템플릿 통합 + 길찾기 세로 아이콘 정렬 */
.templateTypeTabs{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:6px!important;
  margin:2px 0 10px!important;
  padding:3px!important;
  border-radius:11px!important;
  background:#f1f5f9!important;
}
.templateTypeTab{
  min-height:36px!important;
  padding:7px 8px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#64748b!important;
  font-size:11px!important;
  font-weight:850!important;
}
.templateTypeTab.active{background:#fff!important;color:#111827!important;box-shadow:0 1px 3px rgba(15,23,42,.08)!important}
.templateTypePanel[hidden]{display:none!important}
.settingsMessageTemplateForm{display:grid!important;gap:7px!important}
.settingsMessageTemplateForm select{min-height:39px!important;padding:7px 9px!important;font-size:12px!important}
.settingsMessageTemplateForm textarea{min-height:180px!important;padding:10px!important;font-size:12px!important;line-height:1.55!important;resize:vertical!important}
.settingsMessageTemplateActions{display:grid!important;grid-template-columns:88px minmax(0,1fr)!important;gap:6px!important}
.settingsMessageTemplateActions button{height:38px!important;min-height:38px!important;font-size:10.5px!important}
.settingsMessageTemplateForm .notice{margin:0!important;min-height:0!important}
html[data-theme="dark"] .templateTypeTabs{background:#111827!important}
html[data-theme="dark"] .templateTypeTab{color:#9ca3af!important}
html[data-theme="dark"] .templateTypeTab.active{background:#374151!important;color:#f9fafb!important;box-shadow:none!important}

/* 작성 고객 안내문은 템플릿 선택 + 생성만 간단히 */
#workView .messageTemplateRowV333{display:grid!important;grid-template-columns:minmax(0,1fr) 72px!important;gap:6px!important;align-items:stretch!important}
#workView .messageTemplateRowV333 select,#workView .messageTemplateRowV333 button{height:39px!important;min-height:39px!important}
@media(max-width:350px){#workView .messageTemplateRowV333{grid-template-columns:minmax(0,1fr) 64px!important;gap:4px!important}}

/* 길찾기 버튼: 아이콘은 위 중앙, 문구는 아래 중앙 */
.addressRouteBtn,.historyRoute,.dashboardRoute,.customerRoute,.calendarRoute{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:1px!important;
  line-height:1.05!important;
}
.addressRouteBtn .uiLineIcon,.historyRoute .uiLineIcon,.dashboardRoute .uiLineIcon,.customerRoute .uiLineIcon,.calendarRoute .uiLineIcon{
  width:15px!important;height:15px!important;margin:0 auto!important;display:block!important;flex:0 0 auto!important;
}
.addressRouteBtn>span,.historyRoute>span,.dashboardRoute>span,.customerRoute>span,.calendarRoute>span{
  display:block!important;width:100%!important;text-align:center!important;line-height:1.05!important;
}

/* AI 정리/초기화: 높이는 동일, 폭만 차등 */
#workView .voiceActionRow{grid-template-columns:minmax(0,1fr) 70px!important;gap:6px!important;align-items:stretch!important}
#workView .voiceActionRow #analyzeBtn,#workView .voiceActionRow #resetBtn{height:40px!important;min-height:40px!important;align-self:stretch!important}
#workView .voiceActionRow #resetBtn{font-size:9.5px!important;padding:6px 4px!important}
@media(max-width:350px){#workView .voiceActionRow{grid-template-columns:minmax(0,1fr) 64px!important;gap:4px!important}}


/* v3.3.4: 길찾기 라인 아이콘 크기를 다른 액션 아이콘과 통일 */
.addressRouteBtn .uiLineIcon,
.historyRoute .uiLineIcon,
.dashboardRoute .uiLineIcon,
.customerRoute .uiLineIcon,
.calendarRoute .uiLineIcon{
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  min-height:13px!important;
}
@media(max-width:350px){
  .addressRouteBtn .uiLineIcon,
  .historyRoute .uiLineIcon,
  .dashboardRoute .uiLineIcon,
  .customerRoute .uiLineIcon,
  .calendarRoute .uiLineIcon{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important}
}


/* v3.3.5: 길찾기 버튼 크기 재보정 - 다른 소형 액션 버튼과 동일한 시각 크기 */
#workView .addressRouteBtn,
.historyRoute,
.dashboardRoute,
.customerRoute,
.calendarRoute{
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1!important;
  gap:1px!important;
}
#workView .addressRouteBtn .uiLineIcon,
.historyRoute .uiLineIcon,
.dashboardRoute .uiLineIcon,
.customerRoute .uiLineIcon,
.calendarRoute .uiLineIcon{
  width:12px!important;
  height:12px!important;
  min-width:12px!important;
  min-height:12px!important;
}
#workView .addressRouteBtn>span,
.historyRoute>span,
.dashboardRoute>span,
.customerRoute>span,
.calendarRoute>span{
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1!important;
  margin:0!important;
  padding:0!important;
}
#workView .addressRouteBtn{
  min-width:48px!important;
  min-height:36px!important;
  padding:4px 5px!important;
}
@media(max-width:350px){
  #workView .addressRouteBtn,
  .historyRoute,
  .dashboardRoute,
  .customerRoute,
  .calendarRoute{font-size:8px!important}
  #workView .addressRouteBtn .uiLineIcon,
  .historyRoute .uiLineIcon,
  .dashboardRoute .uiLineIcon,
  .customerRoute .uiLineIcon,
  .calendarRoute .uiLineIcon{width:11px!important;height:11px!important;min-width:11px!important;min-height:11px!important}
  #workView .addressRouteBtn>span,
  .historyRoute>span,
  .dashboardRoute>span,
  .customerRoute>span,
  .calendarRoute>span{font-size:8px!important}
}

/* v3.3.6: 라인 아이콘 적용 후 무너진 버튼 레이아웃 복구
   - 일반 액션 버튼은 아이콘+텍스트 가로 중앙 정렬
   - 전화/길찾기 소형 버튼만 아이콘 위, 텍스트 아래 유지
   - 길찾기는 같은 위치의 전화 버튼과 동일한 시각 크기 */
.historyActionGridV84 button,
.historySendActions button,
.customerQuickActionsV96 button,
.receivableActions button,
.documentActions button,
.messageActions button,
.messagePaymentActions button,
.workPhotoActions button,
.historyMarkPaid,
.markPaidBtn{
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:5px!important;
}
.historyActionGridV84 button .uiLineIcon,
.historySendActions button .uiLineIcon,
.customerQuickActionsV96 button .uiLineIcon,
.receivableActions button .uiLineIcon,
.documentActions button .uiLineIcon,
.messageActions button .uiLineIcon,
.messagePaymentActions button .uiLineIcon,
.workPhotoActions button .uiLineIcon,
.historyMarkPaid .uiLineIcon,
.markPaidBtn .uiLineIcon{
  width:13px!important;
  height:13px!important;
  min-width:13px!important;
  min-height:13px!important;
  margin:0!important;
  display:block!important;
}
.historyActionGridV84 button>span,
.historySendActions button>span,
.customerQuickActionsV96 button>span,
.receivableActions button>span,
.documentActions button>span,
.messageActions button>span,
.messagePaymentActions button>span,
.workPhotoActions button>span,
.historyMarkPaid>span,
.markPaidBtn>span{
  width:auto!important;
  display:inline!important;
  margin:0!important;
  padding:0!important;
  line-height:1.1!important;
  text-align:center!important;
}

/* 오늘 카드: 전화/길찾기 동일 규격 */
#dashboardView .dashboardQuickMini .dashboardCall,
#dashboardView .dashboardQuickMini .dashboardRoute{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  min-width:42px!important;
  min-height:32px!important;
  padding:4px 6px!important;
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
}
#dashboardView .dashboardQuickMini .dashboardCall .uiLineIcon,
#dashboardView .dashboardQuickMini .dashboardRoute .uiLineIcon{
  width:12px!important;
  height:12px!important;
  min-width:12px!important;
  min-height:12px!important;
  margin:0 auto!important;
}
#dashboardView .dashboardQuickMini .dashboardCall>span,
#dashboardView .dashboardQuickMini .dashboardRoute>span{
  width:auto!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  font-size:8.5px!important;
  line-height:1!important;
  text-align:center!important;
}

/* 내역 상세: 전화/길찾기 동일 규격 */
.historyMetaPhone .historyCall,
.historyAddressCompact .historyRoute{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  width:48px!important;
  min-width:48px!important;
  min-height:32px!important;
  padding:4px 5px!important;
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
}
.historyMetaPhone .historyCall .uiLineIcon,
.historyAddressCompact .historyRoute .uiLineIcon{
  width:12px!important;
  height:12px!important;
  min-width:12px!important;
  min-height:12px!important;
  margin:0 auto!important;
}
.historyMetaPhone .historyCall>span,
.historyAddressCompact .historyRoute>span{
  width:auto!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  font-size:8.5px!important;
  line-height:1!important;
  text-align:center!important;
}

/* 고객관리/작성 주소 길찾기: 기존 배치는 유지하고 과대 크기만 차단 */
.customerAddressV96 .customerRoute,
#workView .addressRouteBtn{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  text-align:center!important;
  font-size:8.5px!important;
  line-height:1!important;
}
.customerAddressV96 .customerRoute .uiLineIcon,
#workView .addressRouteBtn .uiLineIcon{
  width:12px!important;
  height:12px!important;
  min-width:12px!important;
  min-height:12px!important;
  margin:0 auto!important;
}
.customerAddressV96 .customerRoute>span,
#workView .addressRouteBtn>span{
  width:auto!important;
  display:block!important;
  font-size:8.5px!important;
  line-height:1!important;
  margin:0!important;
  padding:0!important;
}

@media(max-width:350px){
  .historyActionGridV84 button .uiLineIcon,
  .historySendActions button .uiLineIcon,
  .customerQuickActionsV96 button .uiLineIcon{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important}
  #dashboardView .dashboardQuickMini .dashboardCall,
  #dashboardView .dashboardQuickMini .dashboardRoute{min-width:40px!important;font-size:8px!important}
  #dashboardView .dashboardQuickMini .dashboardCall>span,
  #dashboardView .dashboardQuickMini .dashboardRoute>span,
  .historyMetaPhone .historyCall>span,
  .historyAddressCompact .historyRoute>span{font-size:8px!important}
}

/* v3.3.8 삭제 안전 확인창 */
.actionConfirmOverlay{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(15,23,42,.42);
  backdrop-filter:blur(2px);
}
.actionConfirmDialog{
  width:min(360px,100%);
  background:var(--card,#fff);
  color:var(--text,#111827);
  border:1px solid var(--line,#e5e7eb);
  border-radius:20px;
  padding:20px;
  box-shadow:0 18px 48px rgba(15,23,42,.22);
}
.actionConfirmDialog>b{display:block;font-size:18px;line-height:1.35;margin-bottom:8px;}
.actionConfirmDialog>p{margin:0;color:var(--muted,#64748b);font-size:14px;line-height:1.55;word-break:keep-all;}
.actionConfirmButtons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;}
.actionConfirmButtons button{height:46px;border-radius:14px;font-weight:800;font-size:15px;}
.actionConfirmCancel{background:#eef2f7!important;color:#111827!important;border:1px solid #dbe2ea!important;}
.actionConfirmDelete{background:#fee2e2!important;color:#b91c1c!important;border:1px solid #fecaca!important;}
.actionConfirmCancel:focus-visible{outline:3px solid rgba(59,130,246,.28);outline-offset:2px;}
[data-theme="dark"] .actionConfirmCancel{background:#1f2937!important;color:#f9fafb!important;border-color:#374151!important;}
[data-theme="dark"] .actionConfirmDelete{background:#3b171b!important;color:#fecaca!important;border-color:#7f1d1d!important;}


/* v3.3.9: 설정 > 데이터 관리 */
.dataManagementCard{padding-bottom:14px}
.dataManagementSummary{display:flex;gap:8px;align-items:center;justify-content:space-between;margin:2px 0 12px;padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--soft,#f8fafc);font-size:12px;color:var(--muted,#64748b)}
.dataManagementSummary span{display:flex;gap:4px;align-items:center;white-space:nowrap}
.dataManagementSummary b{font-size:13px;color:var(--text,#111827)}
.dataExportList{display:grid;gap:8px}
.dataExportButton{width:100%;min-height:64px;padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:15px;background:var(--card,#fff);color:var(--text,#111827);display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;box-shadow:none}
.dataExportButton:active{transform:scale(.995)}
.dataExportButton:disabled{opacity:.55}
.dataExportIcon{width:34px;height:34px;border-radius:11px;background:var(--soft,#f1f5f9);display:flex;align-items:center;justify-content:center}
.dataExportIcon .uiLineIcon{width:18px;height:18px}
.dataExportButton>span:nth-child(2){display:flex;flex-direction:column;min-width:0;gap:3px}
.dataExportButton b{font-size:14px;line-height:1.2}
.dataExportButton small{font-size:11px;color:var(--muted,#64748b);white-space:normal;line-height:1.35}
.dataExportButton>strong{font-size:11px;color:var(--muted,#64748b);font-weight:800;white-space:nowrap}
.backupExportButton{margin-top:2px}
#dataManagementNotice{min-height:0;margin:8px 2px 0}
#dataManagementNotice:empty{display:none}
#dataManagementNotice.error{color:#b91c1c}
@media(max-width:340px){
  .dataManagementSummary{padding:9px 8px;gap:5px;font-size:11px}
  .dataManagementSummary b{font-size:12px}
  .dataExportButton{grid-template-columns:32px minmax(0,1fr) auto;padding:9px;gap:8px}
  .dataExportIcon{width:32px;height:32px}
  .dataExportButton b{font-size:13px}
  .dataExportButton small{font-size:10px}
}

/* v3.3.13: 백업 추가 복원 / 전체 복원 */
.backupImportButton{margin-top:0}
.backupRestorePreview{margin-top:10px;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:15px;background:var(--soft,#f8fafc)}
.backupRestoreHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.backupRestoreHead>b{font-size:14px;color:var(--text,#111827)}
.backupRestoreClose{min-height:32px!important;height:32px!important;padding:5px 10px!important;border-radius:9px!important;font-size:11px!important}
.backupRestoreFile{padding:8px 10px;border-radius:10px;background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);font-size:11px;font-weight:700;color:var(--text,#111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.backupRestoreStats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.backupRestoreStats span{padding:8px 4px;border-radius:10px;background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);text-align:center;font-size:10px;color:var(--muted,#64748b)}
.backupRestoreStats b{display:block;margin-top:2px;font-size:12px;color:var(--text,#111827)}
.backupRestoreMeta{margin:8px 2px 0;font-size:10px;color:var(--muted,#64748b)}
.backupRestoreActions{display:grid;grid-template-columns:1.35fr .85fr;gap:8px;margin-top:10px}
.backupRestoreActions button{min-height:42px!important;height:42px!important;padding:8px 9px!important;border-radius:12px!important;font-size:11px!important;font-weight:800!important;line-height:1.15!important}
.dangerSoft{background:#fff1f2!important;color:#be123c!important;border:1px solid #fecdd3!important}
[data-theme="dark"] .backupRestorePreview{background:#111827;border-color:#374151}
[data-theme="dark"] .backupRestoreFile,[data-theme="dark"] .backupRestoreStats span{background:#1f2937;border-color:#374151;color:#f9fafb}
[data-theme="dark"] .dangerSoft{background:#3b171b!important;color:#fecdd3!important;border-color:#7f1d1d!important}
@media(max-width:340px){
  .backupRestoreStats{gap:4px}
  .backupRestoreStats span{font-size:9px;padding:7px 2px}
  .backupRestoreStats b{font-size:11px}
  .backupRestoreActions{grid-template-columns:1fr 1fr;gap:6px}
  .backupRestoreActions button{font-size:10px!important;padding:7px 5px!important}
}

/* v3.3.13: 복원 방식은 데이터 관리 화면에서 바로 구분 */
.backupReplaceButton{margin-top:0}
.backupRestoreMode{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:var(--card,#fff);font-size:11px}
.backupRestoreMode span{color:var(--muted,#64748b)}
.backupRestoreMode b{font-size:12px;color:var(--text,#111827)}
.backupRestoreActions.single{grid-template-columns:1fr}
[data-theme="dark"] .backupRestoreMode{background:#1f2937;border-color:#374151}

/* v3.3.14: 하루 1회 자동 백업 */
.autoBackupButton{margin-top:0}
.autoBackupList{display:grid;gap:7px}
.autoBackupItem{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line,#e5e7eb);border-radius:11px;background:var(--card,#fff)}
.autoBackupInfo{min-width:0;display:flex;flex-direction:column;gap:3px}
.autoBackupInfo b{font-size:11px;line-height:1.25;color:var(--text,#111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.autoBackupInfo span{font-size:10px;color:var(--muted,#64748b)}
.autoBackupActions{display:flex;gap:5px;align-items:center}
.autoBackupActions button{min-height:32px!important;height:32px!important;min-width:44px!important;padding:5px 8px!important;border-radius:9px!important;font-size:10px!important;font-weight:800!important}
.autoBackupEmpty{padding:14px 8px;text-align:center;font-size:11px;color:var(--muted,#64748b)}
[data-theme="dark"] .autoBackupItem{background:#1f2937;border-color:#374151}
@media(max-width:340px){
  .autoBackupItem{gap:6px;padding:8px}
  .autoBackupInfo b{font-size:10px}
  .autoBackupInfo span{font-size:9px}
  .autoBackupActions{gap:4px}
  .autoBackupActions button{min-width:40px!important;padding:5px 6px!important;font-size:9px!important}
}

/* v3.3.15: 데이터 관리 > 백업을 한 화면 안으로 정리 + Supabase 클라우드 백업 */
.backupManagementCard{padding-bottom:14px}
.cloudAutoBackupControl{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin:2px 0 12px;padding:11px 12px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--soft,#f8fafc)}
.cloudAutoBackupText{min-width:0;display:flex;flex-direction:column;gap:2px}
.cloudAutoBackupText b{font-size:14px;color:var(--text,#111827);line-height:1.2}
.cloudAutoBackupText span{font-size:10px;color:var(--muted,#64748b);line-height:1.3}
.cloudAutoBackupState{font-size:10px;font-weight:800;color:#64748b;white-space:nowrap}
.cloudAutoBackupState.on{color:#15803d}
.cloudAutoBackupToggle{min-height:34px!important;height:34px!important;min-width:52px!important;padding:5px 10px!important;border-radius:10px!important;font-size:11px!important;font-weight:800!important}
.backupActionList{margin-top:0}
.cloudBackupListWrap{margin-top:10px;padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:15px;background:var(--soft,#f8fafc)}
.cloudBackupListHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.cloudBackupListHead>b{font-size:14px;color:var(--text,#111827)}
#backupManagementNotice{min-height:0;margin:8px 2px 0}
#backupManagementNotice:empty{display:none}
#backupManagementNotice.error{color:#b91c1c}
[data-theme="dark"] .cloudAutoBackupControl,[data-theme="dark"] .cloudBackupListWrap{background:#111827;border-color:#374151}
[data-theme="dark"] .cloudAutoBackupText b,[data-theme="dark"] .cloudBackupListHead>b{color:#f9fafb}
[data-theme="dark"] .cloudAutoBackupState.on{color:#86efac}
@media(max-width:340px){
  .cloudAutoBackupControl{grid-template-columns:minmax(0,1fr) auto auto;gap:5px;padding:9px 8px}
  .cloudAutoBackupText b{font-size:13px}
  .cloudAutoBackupText span{font-size:9px}
  .cloudAutoBackupToggle{min-width:46px!important;padding:5px 7px!important;font-size:10px!important}
}
/* v3.3.17: 작성 탭 단어 사이 공백 폭 축소
   v3.3.16의 normal/0 지정으로도 기기 기본 한글 공백이 넓게 보이는 경우가 있어
   실제 문장 입력 필드에만 음수 word-spacing을 적용한다. 날짜/시간/선택/전화/금액은 제외. */
#workView #rawInput,
#workView #customer,
#workView #address,
#workView #job,
#workView #note,
#workView #message{
  word-spacing:-0.14em!important;
  letter-spacing:-0.01em!important;
  text-align:left!important;
  text-align-last:auto!important;
  white-space:pre-wrap;
  font-variant-ligatures:normal!important;
}
#workView #customer,
#workView #address,
#workView #job,
#workView #note{
  white-space:normal!important;
}
#workView #rawInput::placeholder,
#workView #customer::placeholder,
#workView #address::placeholder,
#workView #job::placeholder,
#workView #note::placeholder,
#workView #message::placeholder{
  word-spacing:normal!important;
  letter-spacing:0!important;
}

/* v3.3.18: PC에서도 모바일과 같은 앱 비율/헤더/6개 메뉴 배치 유지 */
@media (min-width:521px){
  .app{
    max-width:560px!important;
    padding:18px 14px 60px!important;
  }
  .brandHeader{
    grid-template-columns:78px minmax(0,1fr) 38px!important;
    min-height:82px!important;
    padding-left:1px!important;
    padding-right:2px!important;
  }
  .brandHeader::before{
    inset:12px 0 4px 0!important;
    border-radius:24px!important;
  }
  .brandMascot{
    width:80px!important;
    height:79px!important;
    transform:translate(-3px,3px)!important;
  }
  .brandTitleWrap h1{
    font-size:31px!important;
    letter-spacing:-.8px!important;
  }
  .brandTitleWrap p{
    font-size:9px!important;
    margin-top:6px!important;
  }
  .headerSettingsBtn{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    margin-top:0!important;
  }
  .topTabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
}


/* v3.3.21: UI 안정화 가드
   최근 버전에서 누적된 아이콘/버튼 override가 서로 번지지 않도록
   현재 의도된 레이아웃만 마지막에 명시한다. 화면 디자인 자체는 변경하지 않는다. */
.uiLineIcon{
  flex:0 0 auto!important;
  max-width:100%;
}
button.hasLineIcon{
  min-width:0;
}
button.hasLineIcon>span{
  min-width:0;
}
.historyActionGridV84,
.historySendActions,
.customerQuickActionsV96,
.receivableActions,
.documentActions,
.messageActions,
.messagePaymentActions,
.workPhotoActions{
  min-width:0;
}
.historyActionGridV84>button,
.historySendActions>button,
.customerQuickActionsV96>button,
.receivableActions>button,
.documentActions>button,
.messageActions>button,
.messagePaymentActions>button,
.workPhotoActions>button{
  min-width:0!important;
  max-width:100%;
  box-sizing:border-box!important;
}
/* 일반 액션 버튼은 아이콘+텍스트 가로 정렬을 고정 */
.historyActionGridV84>button.hasLineIcon,
.historySendActions>button.hasLineIcon,
.customerQuickActionsV96>button.hasLineIcon,
.receivableActions>button.hasLineIcon,
.documentActions>button.hasLineIcon,
.messageActions>button.hasLineIcon,
.messagePaymentActions>button.hasLineIcon,
.workPhotoActions>button.hasLineIcon,
.historyMarkPaid.hasLineIcon,
.markPaidBtn.hasLineIcon{
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
}
/* 전화/길찾기 미니 버튼만 아이콘 위, 글자 아래 유지 */
#dashboardView .dashboardQuickMini .dashboardCall,
#dashboardView .dashboardQuickMini .dashboardRoute,
.historyMetaPhone .historyCall,
.historyAddressCompact .historyRoute,
.customerAddressV96 .customerRoute,
#workView .addressRouteBtn{
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
[hidden]{display:none!important;}

/* v3.4.0 요금제·구독 */
.subscriptionPageCard{max-width:760px;margin-inline:auto}
.subscriptionCurrentCard{display:flex;flex-direction:column;gap:4px;padding:16px;margin:10px 0 14px;border:1px solid var(--line,#e5e7eb);border-radius:16px;background:var(--soft,#f8fafc)}
.subscriptionCurrentCard>span{font-size:12px;color:var(--muted,#6b7280);font-weight:700}
.subscriptionCurrentCard>b{font-size:20px;color:var(--text,#111827)}
.subscriptionCurrentCard>small{font-size:13px;color:var(--muted,#6b7280)}
.subscriptionPlans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.subscriptionPlanCard{border:1px solid var(--line,#e5e7eb);border-radius:16px;padding:14px;background:var(--card,#fff);display:flex;flex-direction:column;min-width:0}
.subscriptionPlanCard.proPlan{border-width:2px;border-color:#4f46e5}
.subscriptionPlanHead{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;flex-wrap:wrap}
.subscriptionPlanHead>b{font-size:17px}.subscriptionPlanHead>strong{font-size:15px;white-space:nowrap}
.subscriptionPlanCard p{font-size:12px;color:var(--muted,#6b7280);margin:7px 0 9px;line-height:1.45}
.subscriptionPlanCard ul{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px;flex:1}
.subscriptionPlanCard li{font-size:12px;line-height:1.35;padding-left:16px;position:relative}
.subscriptionPlanCard li::before{content:'✓';position:absolute;left:0;font-weight:900}
.subscriptionPlanCard li.planMuted{color:var(--muted,#6b7280)}
.subscriptionPlanCard li.planMuted::before{content:'—'}
.subscriptionPlanCard button{min-height:42px}
.subscriptionNotice{margin-top:10px}
.aiLocked{opacity:.72}
@media(max-width:620px){.subscriptionPlans{grid-template-columns:1fr}.subscriptionPlanCard{padding:13px}.subscriptionPlanHead>strong{font-size:16px}}


/* v3.4.1 관리자 회원·구독 현황 */
.adminSubscriptionsCard{max-width:760px;margin-inline:auto}
.adminSubscriptionStats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:10px 0 14px}
.adminSubscriptionStats>div{border:1px solid var(--line,#e5e7eb);background:var(--soft,#f8fafc);border-radius:13px;padding:10px 6px;text-align:center;min-width:0}
.adminSubscriptionStats span{display:block;font-size:10px;color:var(--muted,#6b7280);font-weight:700;white-space:nowrap}
.adminSubscriptionStats b{display:block;margin-top:4px;font-size:19px;line-height:1.1}
.adminSubscriptionListHeader{display:flex;align-items:center;justify-content:space-between;margin:4px 1px 7px;gap:8px}
.adminSubscriptionListHeader>b{font-size:14px}.adminSubscriptionListHeader>span{font-size:10px;color:var(--muted,#6b7280)}
.adminSubscriptionList{border-top:1px solid var(--line,#e5e7eb)}
.adminSubscriptionRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 3px;border-bottom:1px solid var(--line,#e5e7eb)}
.adminSubscriptionUser{display:grid;gap:2px;min-width:0}.adminSubscriptionUser>b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adminSubscriptionUser>small{font-size:10px;color:var(--muted,#6b7280)}
.adminPlanBadge{flex:0 0 auto;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#eef2ff;color:#3730a3}.adminPlanBadge.basic{background:#eef2f7;color:#334155}.adminPlanBadge.trial{background:#ecfeff;color:#0e7490}.adminPlanBadge.pro{background:#eef2ff;color:#4338ca}.adminPlanBadge.expired{background:#fef2f2;color:#b91c1c}
.adminSubscriptionEmpty{padding:24px 8px;text-align:center;color:var(--muted,#6b7280);font-size:12px}
@media(max-width:420px){.adminSubscriptionStats{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.adminSubscriptionStats>div{padding:8px 2px}.adminSubscriptionStats span{font-size:8.5px}.adminSubscriptionStats b{font-size:16px}.adminSubscriptionRow{padding:10px 2px}.adminSubscriptionUser>b{font-size:11px}}

/* v3.4.3 관리자 구독관리: 관리자 전용 무료체험 초기화 + 회원 조회 안정화 */
.adminSubscriptionActions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto}
.adminTrialResetBtn{min-height:28px!important;height:28px!important;padding:0 8px!important;border-radius:9px!important;font-size:10px!important;font-weight:800!important;white-space:nowrap!important}
@media(max-width:420px){
  .adminSubscriptionRow{align-items:flex-start}
  .adminSubscriptionActions{flex-direction:column;align-items:flex-end;gap:5px}
  .adminTrialResetBtn{font-size:9px!important;padding:0 6px!important}
}

/* v3.4.7 관리자 계정은 고객 요금제 집계/뱃지에서 제외 */
.adminPlanBadge.admin{font-weight:800;}


/* v3.4.9: 날짜별 직접 선택 스티커. 날짜 숫자와 분리된 하단 메타행에만 표시한다. */
#calendarView .calendarDay{position:relative!important;}
#calendarView .calendarDayMeta{
  width:100%;
  min-height:17px;
  margin-top:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  line-height:1;
}
#calendarView .calendarDayMeta .calendarCount{
  width:auto!important;
  margin:0!important;
  flex:0 0 auto;
}
#calendarView .calendarSticker{
  position:static!important;
  width:15px;
  height:15px;
  flex:0 0 15px;
  display:grid;
  place-items:center;
  border-radius:5px;
  border:1px solid currentColor;
  background:#f8fafc;
  color:#64748b;
  box-shadow:none;
  transform:none;
  pointer-events:none;
}
#calendarView .calendarSticker svg,
#calendarView .calendarStickerChoiceIcon svg{
  width:9px;
  height:9px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#calendarView .calendarSticker.violet,#calendarView .calendarStickerOption.violet .calendarStickerChoiceIcon{background:#f5f3ff;color:#7c3aed;}
#calendarView .calendarSticker.blue,#calendarView .calendarStickerOption.blue .calendarStickerChoiceIcon{background:#eff6ff;color:#2563eb;}
#calendarView .calendarSticker.cyan,#calendarView .calendarStickerOption.cyan .calendarStickerChoiceIcon{background:#ecfeff;color:#0891b2;}
#calendarView .calendarSticker.amber,#calendarView .calendarStickerOption.amber .calendarStickerChoiceIcon{background:#fffbeb;color:#d97706;}
#calendarView .calendarSticker.slate,#calendarView .calendarStickerOption.slate .calendarStickerChoiceIcon{background:#f1f5f9;color:#475569;}
#calendarView .calendarSticker.rose,#calendarView .calendarStickerOption.rose .calendarStickerChoiceIcon{background:#fff1f2;color:#e11d48;}
#calendarView .calendarSticker.green,#calendarView .calendarStickerOption.green .calendarStickerChoiceIcon{background:#ecfdf5;color:#16a34a;}
#calendarView .calendarDay.selected .calendarSticker{border-color:rgba(255,255,255,.72);background:rgba(255,255,255,.14);color:#fff;}
#calendarView .calendarDay.sunday:not(.selected):not(.today) .calendarDateNum{color:#dc2626;}
#calendarView .calendarDay.saturday:not(.selected):not(.today) .calendarDateNum{color:#2563eb;}

#calendarView .calendarStickerPickerBtn{
  min-height:30px!important;
  height:30px!important;
  padding:0 9px!important;
  border-radius:9px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  white-space:nowrap!important;
  font-size:9.5px!important;
  font-weight:800!important;
}
#calendarView .calendarStickerPickerBtn .uiLineIcon{width:12px;height:12px;}
#calendarView .calendarStickerPicker{
  margin:-1px 0 7px;
  padding:8px;
  border:1px solid #e5e7eb;
  border-radius:11px;
  background:#f8fafc;
}
#calendarView .calendarStickerOptions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;}
#calendarView .calendarStickerOption{
  min-width:0;
  min-height:47px;
  padding:5px 3px!important;
  border:1px solid #e5e7eb!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#334155!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  font-size:8.5px!important;
  font-weight:800!important;
}
#calendarView .calendarStickerOption.selected{border-color:#111827!important;box-shadow:inset 0 0 0 1px #111827;}
#calendarView .calendarStickerChoiceIcon{
  width:22px;height:22px;border-radius:7px;border:1px solid currentColor;display:grid;place-items:center;
}
#calendarView .calendarStickerChoiceIcon svg{width:12px;height:12px;}
#calendarView .calendarStickerOption.remove .calendarStickerChoiceIcon{background:#fff;color:#94a3b8;}
#calendarView .calendarStickerNotice{margin:0 0 5px;color:#b91c1c;font-size:9px;}
#calendarView .calendarStickerNotice:empty{display:none;}
html[data-theme="dark"] #calendarView .calendarStickerPicker{background:#111827;border-color:#374151;}
html[data-theme="dark"] #calendarView .calendarStickerOption{background:#1f2937!important;border-color:#374151!important;color:#e5e7eb!important;}
html[data-theme="dark"] #calendarView .calendarStickerOption.selected{border-color:#f9fafb!important;box-shadow:inset 0 0 0 1px #f9fafb;}
html[data-theme="dark"] #calendarView .calendarDay.sunday:not(.selected):not(.today) .calendarDateNum{color:#fca5a5;}
html[data-theme="dark"] #calendarView .calendarDay.saturday:not(.selected):not(.today) .calendarDateNum{color:#93c5fd;}
@media(max-width:430px){
  #calendarView .calendarDayMeta{min-height:15px;gap:2px;margin-top:1px;}
  #calendarView .calendarSticker{width:13px;height:13px;flex-basis:13px;border-radius:4px;}
  #calendarView .calendarSticker svg{width:8px;height:8px;}
  #calendarView .calendarStickerOptions{gap:4px;}
  #calendarView .calendarStickerOption{min-height:43px;font-size:8px!important;}
  #calendarView .calendarStickerChoiceIcon{width:20px;height:20px;}
}
@media(max-width:340px){
  #calendarView .calendarStickerOptions{grid-template-columns:repeat(4,minmax(0,1fr));}
  #calendarView .calendarStickerOption{padding-inline:1px!important;font-size:7.5px!important;}
}

/* v3.4.10: 참고 캘린더처럼 날짜 칸 안에 스티커를 장식형으로 배치 + 외부 캘린더 내보내기 */
#calendarView .calendarDay{
  min-height:56px!important;
  padding:4px 3px 3px!important;
}
#calendarView .calendarDayMeta{
  position:relative!important;
  width:100%!important;
  min-height:27px!important;
  margin-top:auto!important;
  display:block!important;
  line-height:1!important;
}
#calendarView .calendarDayMeta .calendarCount{
  position:absolute!important;
  left:2px!important;
  bottom:2px!important;
  margin:0!important;
  width:auto!important;
  z-index:1;
  font-size:7.5px!important;
  line-height:1!important;
}
#calendarView .calendarDayMeta .calendarCount.empty{display:none!important;}
#calendarView .calendarSticker{
  position:absolute!important;
  left:50%!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  width:24px!important;
  height:24px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none!important;
  font-size:20px!important;
  line-height:1!important;
  overflow:visible!important;
}
#calendarView .calendarSticker>span{display:block!important;line-height:1!important;}
#calendarView .calendarDay.selected .calendarSticker{background:transparent!important;border:0!important;color:inherit!important;}
#calendarView .calendarStickerPicker{
  padding:7px!important;
}
#calendarView .calendarStickerOptions{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:5px!important;
}
#calendarView .calendarStickerOption{
  min-height:48px!important;
  gap:2px!important;
}
#calendarView .calendarStickerChoiceIcon{
  width:26px!important;
  height:26px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  display:grid!important;
  place-items:center!important;
  font-size:21px!important;
  line-height:1!important;
}
#calendarView .calendarStickerOption.remove .calendarStickerChoiceIcon{
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#94a3b8!important;
  font-size:17px!important;
  font-weight:700!important;
}
#calendarView .calendarDayActions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  flex:0 0 auto!important;
}
#calendarView .calendarExportBtn,
#calendarView .calendarStickerPickerBtn{
  min-height:30px!important;
  height:30px!important;
  padding:0 8px!important;
  border-radius:9px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  white-space:nowrap!important;
  font-size:9px!important;
  font-weight:800!important;
}
#calendarView .calendarExportBtn .uiLineIcon,
#calendarView .calendarStickerPickerBtn .uiLineIcon{width:12px!important;height:12px!important;}
.calendarExportDialog{max-width:310px!important;}
.calendarExportChoices{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;}
.calendarExportChoices button{min-height:38px;border:1px solid #dbe2ea;border-radius:10px;background:#f8fafc;color:#111827;font-weight:850;font-size:11px;}
.calendarExportChoices button:first-child{background:#111827;color:#fff;border-color:#111827;}
.calendarExportCancel{width:100%;min-height:36px;margin-top:7px;border:0;border-radius:10px;background:#eef2f7;color:#475569;font-weight:800;font-size:10.5px;}
html[data-theme="dark"] .calendarExportChoices button{background:#1f2937;color:#f9fafb;border-color:#374151;}
html[data-theme="dark"] .calendarExportChoices button:first-child{background:#f9fafb;color:#111827;border-color:#f9fafb;}
html[data-theme="dark"] .calendarExportCancel{background:#1f2937;color:#cbd5e1;}
@media(max-width:430px){
  #calendarView .calendarDay{min-height:53px!important;}
  #calendarView .calendarDayMeta{min-height:24px!important;}
  #calendarView .calendarSticker{width:21px!important;height:21px!important;font-size:18px!important;}
  #calendarView .calendarDayMeta .calendarCount{font-size:7px!important;left:1px!important;}
  #calendarView .calendarDayActions{gap:4px!important;}
  #calendarView .calendarExportBtn,#calendarView .calendarStickerPickerBtn{padding:0 6px!important;font-size:8.5px!important;}
  #calendarView .calendarStickerChoiceIcon{width:24px!important;height:24px!important;font-size:19px!important;}
}
@media(max-width:350px){
  #calendarView .calendarDay{min-height:50px!important;}
  #calendarView .calendarSticker{width:19px!important;height:19px!important;font-size:16px!important;}
  #calendarView .calendarExportBtn,#calendarView .calendarStickerPickerBtn{padding:0 5px!important;font-size:8px!important;}
}


/* v3.4.11: 네이버 캘린더 월간 보기처럼 일정 띠 + 작은 스티커 + +n 구조 */
#calendarView .calendarCard{overflow:visible!important;}
#calendarView .calendarGrid{align-items:stretch!important;}
#calendarView .calendarBlank{min-height:72px!important;}
#calendarView .calendarDay{
  min-height:72px!important;
  padding:4px 2px 3px!important;
  gap:1px!important;
  background:#fff!important;
  border-color:#edf1f5!important;
  border-radius:8px!important;
  overflow:hidden!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  touch-action:manipulation!important;
  -webkit-touch-callout:none!important;
  user-select:none!important;
}
#calendarView .calendarDay.hasSchedule{background:#fff!important;border-color:#edf1f5!important;}
#calendarView .calendarDay>.calendarDayTop{
  min-height:18px!important;
  height:18px!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0 3px!important;
}
#calendarView .calendarDay .calendarDateNum{
  min-width:0!important;
  width:auto!important;
  height:auto!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#111827!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:1!important;
}
#calendarView .calendarDay.today:not(.selected){box-shadow:inset 0 0 0 1.5px #111827!important;border-color:#111827!important;}
#calendarView .calendarDay.selected{background:#111827!important;border-color:#111827!important;color:#fff!important;box-shadow:none!important;}
#calendarView .calendarDay.selected .calendarDateNum{color:#fff!important;}
#calendarView .calendarDay.sunday:not(.selected) .calendarDateNum{color:#dc2626!important;}
#calendarView .calendarDay.saturday:not(.selected) .calendarDateNum{color:#2563eb!important;}
#calendarView .calendarMiniEvents{
  width:100%!important;
  min-height:28px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
}
#calendarView .calendarMiniEvent{
  width:100%!important;
  min-width:0!important;
  height:13px!important;
  padding:0 2px!important;
  border-radius:2px!important;
  display:flex!important;
  align-items:center!important;
  gap:2px!important;
  overflow:hidden!important;
  text-align:left!important;
  font-size:6.8px!important;
  font-weight:750!important;
  line-height:13px!important;
  letter-spacing:-.02em!important;
  color:#334155!important;
  background:#f1f5f9!important;
  border-left:2px solid #94a3b8!important;
}
#calendarView .calendarMiniEvent.scheduled{background:#eaf3ff!important;border-left-color:#3b82f6!important;color:#1e4f8f!important;}
#calendarView .calendarMiniEvent.done{background:#eaf9ef!important;border-left-color:#22c55e!important;color:#166534!important;}
#calendarView .calendarMiniEvent.cancelled{background:#fff1f2!important;border-left-color:#ef4444!important;color:#9f1239!important;text-decoration:line-through!important;opacity:.78!important;}
#calendarView .calendarMiniEvent.received{background:#fff7ed!important;border-left-color:#f59e0b!important;color:#92400e!important;}
#calendarView .calendarMiniTime{flex:0 0 auto!important;font-size:6.2px!important;font-weight:850!important;line-height:1!important;}
#calendarView .calendarMiniText{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;line-height:1!important;}
#calendarView .calendarDayFoot{
  position:relative!important;
  width:100%!important;
  height:18px!important;
  min-height:18px!important;
  margin-top:auto!important;
  display:block!important;
}
#calendarView .calendarMore{
  position:absolute!important;
  left:3px!important;
  bottom:2px!important;
  color:#64748b!important;
  font-size:7px!important;
  font-weight:850!important;
  line-height:1!important;
}
#calendarView .calendarSticker{
  position:absolute!important;
  left:50%!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  width:17px!important;
  height:17px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:15px!important;
  line-height:1!important;
  overflow:visible!important;
  pointer-events:none!important;
}
#calendarView .calendarSticker>span{display:block!important;line-height:1!important;transform:none!important;}
#calendarView .calendarDay.selected .calendarMiniEvent{background:rgba(255,255,255,.16)!important;border-left-color:rgba(255,255,255,.78)!important;color:#fff!important;}
#calendarView .calendarDay.selected .calendarMore{color:#cbd5e1!important;}
#calendarView .calendarDay.selected .calendarSticker{filter:none!important;}
html[data-theme="dark"] #calendarView .calendarDay{background:#111827!important;border-color:#263244!important;}
html[data-theme="dark"] #calendarView .calendarDay.hasSchedule{background:#111827!important;border-color:#263244!important;}
html[data-theme="dark"] #calendarView .calendarDay .calendarDateNum{color:#f9fafb!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected{background:#f9fafb!important;border-color:#f9fafb!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected .calendarDateNum{color:#111827!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected .calendarMiniEvent{background:rgba(17,24,39,.12)!important;border-left-color:#334155!important;color:#111827!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected .calendarMore{color:#475569!important;}
html[data-theme="dark"] #calendarView .calendarMiniEvent.scheduled{background:#172554!important;color:#bfdbfe!important;}
html[data-theme="dark"] #calendarView .calendarMiniEvent.done{background:#052e16!important;color:#bbf7d0!important;}
html[data-theme="dark"] #calendarView .calendarMiniEvent.cancelled{background:#4c0519!important;color:#fecdd3!important;}
html[data-theme="dark"] #calendarView .calendarMiniEvent.received{background:#451a03!important;color:#fed7aa!important;}
@media(max-width:430px){
  #calendarView .calendarBlank,#calendarView .calendarDay{min-height:68px!important;}
  #calendarView .calendarDay{padding:3px 1.5px 2px!important;}
  #calendarView .calendarDay>.calendarDayTop{height:17px!important;min-height:17px!important;padding:0 2px!important;}
  #calendarView .calendarDay .calendarDateNum{font-size:9.5px!important;}
  #calendarView .calendarMiniEvents{min-height:27px!important;gap:1px!important;}
  #calendarView .calendarMiniEvent{height:12px!important;line-height:12px!important;font-size:6.2px!important;padding:0 1.5px!important;}
  #calendarView .calendarMiniTime{font-size:5.8px!important;}
  #calendarView .calendarDayFoot{height:17px!important;min-height:17px!important;}
  #calendarView .calendarSticker{width:16px!important;height:16px!important;font-size:14px!important;}
  #calendarView .calendarMore{font-size:6.5px!important;left:2px!important;}
}
@media(max-width:350px){
  #calendarView .calendarBlank,#calendarView .calendarDay{min-height:64px!important;}
  #calendarView .calendarMiniEvent{font-size:5.8px!important;}
  #calendarView .calendarMiniTime{display:none!important;}
  #calendarView .calendarSticker{width:15px!important;height:15px!important;font-size:13px!important;}
}

/* v3.4.12: 캘린더 최종 정리 - 오늘/선택 검정 덩어리 제거, 네이버형 스티커 팔레트, 일반 일정 */
#calendarView .calendarDay,
#calendarView .calendarDay.hasSchedule,
#calendarView .calendarDay.today,
#calendarView .calendarDay.selected,
#calendarView .calendarDay.today.selected{
  background:#fff!important;
  color:#111827!important;
  box-shadow:none!important;
}
#calendarView .calendarDay{border-color:#edf1f5!important;}
#calendarView .calendarDay.selected{
  background:#f3f8ff!important;
  border-color:#8db9ef!important;
  box-shadow:inset 0 0 0 1px #8db9ef!important;
}
#calendarView .calendarDay.today{
  border-color:#d7dde6!important;
  box-shadow:inset 0 0 0 1px #d7dde6!important;
}
#calendarView .calendarDay.today .calendarDateNum{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  border-radius:999px!important;
  background:#111827!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  line-height:18px!important;
}
#calendarView .calendarDay.selected:not(.today) .calendarDateNum{color:#111827!important;background:transparent!important;}
#calendarView .calendarDay.selected .calendarMiniEvent,
#calendarView .calendarDay.today .calendarMiniEvent{
  color:inherit!important;
}
#calendarView .calendarDay.selected .calendarMiniEvent.scheduled{background:#eaf3ff!important;border-left-color:#3b82f6!important;color:#1e4f8f!important;}
#calendarView .calendarDay.selected .calendarMiniEvent.done{background:#eaf9ef!important;border-left-color:#22c55e!important;color:#166534!important;}
#calendarView .calendarDay.selected .calendarMiniEvent.cancelled{background:#fff1f2!important;border-left-color:#ef4444!important;color:#9f1239!important;}
#calendarView .calendarDay.selected .calendarMiniEvent.received{background:#fff7ed!important;border-left-color:#f59e0b!important;color:#92400e!important;}
#calendarView .calendarMiniEvent.personal{
  background:#f5f3ff!important;
  border-left-color:#8b5cf6!important;
  color:#5b21b6!important;
}
#calendarView .calendarDay.selected .calendarMiniEvent.personal{background:#f5f3ff!important;border-left-color:#8b5cf6!important;color:#5b21b6!important;}
#calendarView .calendarDay.selected .calendarMore{color:#64748b!important;}

#calendarView .calendarSticker{
  width:18px!important;
  height:18px!important;
  font-size:16px!important;
  line-height:1!important;
  overflow:visible!important;
  filter:none!important;
}
#calendarView .calendarSticker.glyph{
  color:#ef6b72!important;
  font-family:Arial,sans-serif!important;
  font-weight:800!important;
  font-size:17px!important;
}
#calendarView .calendarSticker.glyph span{white-space:nowrap!important;letter-spacing:-2px!important;}
#calendarView .calendarStickerOptions{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:6px!important;
}
#calendarView .calendarStickerPicker{
  padding:10px 8px!important;
  background:#fff!important;
  border:1px solid #eef1f5!important;
  border-radius:12px!important;
}
#calendarView .calendarStickerOption{
  min-height:42px!important;
  padding:2px!important;
  border:0!important;
  background:transparent!important;
  border-radius:10px!important;
  display:grid!important;
  place-items:center!important;
}
#calendarView .calendarStickerOption.selected{
  border:1.5px solid #6d5dfc!important;
  box-shadow:none!important;
  background:#f7f5ff!important;
}
#calendarView .calendarStickerChoiceIcon{
  width:32px!important;
  height:32px!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  display:grid!important;
  place-items:center!important;
  font-size:25px!important;
  line-height:1!important;
}
#calendarView .calendarStickerChoiceIcon.glyph{
  color:#ef6b72!important;
  font-family:Arial,sans-serif!important;
  font-size:27px!important;
  font-weight:700!important;
}
#calendarView .calendarStickerOption.remove .calendarStickerChoiceIcon{
  background:#f8fafc!important;
  color:#94a3b8!important;
  border:1px dashed #cbd5e1!important;
}

#calendarView .calendarMainActions{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
  margin-top:7px!important;
}
#calendarView .calendarMainAction{
  min-height:32px!important;
  padding:0 6px!important;
  border-radius:9px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  font-size:9px!important;
  font-weight:800!important;
}
#calendarView .calendarMainAction .uiLineIcon{width:12px!important;height:12px!important;}
#calendarView .calendarDayActions{display:flex!important;align-items:center!important;justify-content:flex-end!important;}

#calendarView .calendarPersonalBadge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:22px!important;
  padding:2px 7px!important;
  border-radius:999px!important;
  background:#f5f3ff!important;
  color:#6d28d9!important;
  font-size:8.5px!important;
  font-weight:850!important;
}
#calendarView .calendarScheduleMain small{display:block;margin-top:2px;color:#64748b;font-size:8.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.calendarEventOverlay{z-index:12000!important;}
.calendarEventDialog{
  width:min(92vw,360px);
  max-height:min(86vh,680px);
  overflow:auto;
  padding:13px;
  border-radius:16px;
  background:#fff;
  box-shadow:0 20px 55px rgba(15,23,42,.2);
}
.calendarEventDialogHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
.calendarEventDialogHead b{font-size:16px;}
.calendarEventClose{width:30px;height:30px;border:0;border-radius:9px;background:#f1f5f9;color:#475569;font-size:20px;line-height:1;}
.calendarEventDialog label{display:grid;gap:5px;margin-top:8px;color:#475569;font-size:9px;font-weight:800;}
.calendarEventDialog input,.calendarEventDialog textarea{width:100%;min-height:38px;padding:8px 9px;border:1px solid #dbe2ea;border-radius:10px;background:#fff;color:#111827;font:inherit;font-size:11px;box-sizing:border-box;}
.calendarEventDialog textarea{min-height:72px;resize:vertical;}
.calendarEventDateRow{display:grid;grid-template-columns:minmax(0,1fr) 68px;gap:7px;align-items:end;}
.calendarAllDayLabel{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:61px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;}
.calendarAllDayLabel input{width:18px!important;height:18px!important;min-height:0!important;padding:0!important;}
.calendarEventTimeRow{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.calendarEventDialogActions{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;margin-top:12px;align-items:center;}
.calendarEventDialogActions button{min-height:36px;padding:0 12px;border:0;border-radius:10px;font-size:10px;font-weight:850;}
.calendarEventDelete{background:#fff1f2;color:#b91c1c;}
.calendarEventCancel{background:#eef2f7;color:#475569;}
.calendarEventSave{background:#111827;color:#fff;}

html[data-theme="dark"] #calendarView .calendarDay,
html[data-theme="dark"] #calendarView .calendarDay.hasSchedule,
html[data-theme="dark"] #calendarView .calendarDay.today,
html[data-theme="dark"] #calendarView .calendarDay.selected,
html[data-theme="dark"] #calendarView .calendarDay.today.selected{background:#111827!important;color:#f9fafb!important;border-color:#334155!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected{background:#172554!important;border-color:#3b82f6!important;box-shadow:inset 0 0 0 1px #3b82f6!important;}
html[data-theme="dark"] #calendarView .calendarDay.today .calendarDateNum{background:#f9fafb!important;color:#111827!important;}
html[data-theme="dark"] #calendarView .calendarStickerPicker{background:#111827!important;border-color:#374151!important;}
html[data-theme="dark"] #calendarView .calendarStickerOption.selected{background:#1e1b4b!important;border-color:#a78bfa!important;}
html[data-theme="dark"] .calendarEventDialog{background:#111827;color:#f9fafb;}
html[data-theme="dark"] .calendarEventDialog input,html[data-theme="dark"] .calendarEventDialog textarea{background:#1f2937;color:#f9fafb;border-color:#374151;}
html[data-theme="dark"] .calendarAllDayLabel{background:#1f2937;border-color:#374151;}

@media(max-width:430px){
  #calendarView .calendarStickerOptions{gap:4px!important;}
  #calendarView .calendarStickerChoiceIcon{width:28px!important;height:28px!important;font-size:22px!important;}
  #calendarView .calendarStickerChoiceIcon.glyph{font-size:24px!important;}
  #calendarView .calendarMainAction{font-size:8.5px!important;padding:0 4px!important;}
}
@media(max-width:350px){
  #calendarView .calendarStickerOptions{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
  #calendarView .calendarStickerChoiceIcon{width:25px!important;height:25px!important;font-size:20px!important;}
  #calendarView .calendarStickerChoiceIcon.glyph{font-size:22px!important;}
}
/* v3.4.12 hotfix: 오늘 날짜도 검정 채움 없이 얇은 원으로만 표시 */
#calendarView .calendarDay.today .calendarDateNum,
#calendarView .calendarDay.today.selected .calendarDateNum{
  background:transparent!important;
  color:#111827!important;
  border:1.5px solid #111827!important;
  box-sizing:border-box!important;
}
#calendarView .calendarDay.today.sunday .calendarDateNum{color:#dc2626!important;border-color:#dc2626!important;}
#calendarView .calendarDay.today.saturday .calendarDateNum{color:#2563eb!important;border-color:#2563eb!important;}
html[data-theme="dark"] #calendarView .calendarDay.today .calendarDateNum,
html[data-theme="dark"] #calendarView .calendarDay.today.selected .calendarDateNum{background:transparent!important;color:#f9fafb!important;border-color:#f9fafb!important;}

/* v3.4.13: 오늘 날짜 검정 덩어리 제거 + 네이버형 파스텔 라인 스티커 */
#calendarView .calendarDay.today > .calendarDayTop,
#calendarView .calendarDay.today > .calendarMiniEvents,
#calendarView .calendarDay.today > .calendarDayFoot{
  background:transparent!important;
  color:inherit!important;
  border-radius:0!important;
  min-width:0!important;
  box-shadow:none!important;
}
#calendarView .calendarDay.today > .calendarDayTop{
  width:100%!important;
  height:18px!important;
  min-height:18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0 3px!important;
}
#calendarView .calendarDay.today > .calendarMiniEvents{
  width:100%!important;
  height:auto!important;
  min-height:28px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:2px!important;
  padding:0!important;
}
#calendarView .calendarDay.today > .calendarDayFoot{
  position:relative!important;
  width:100%!important;
  height:18px!important;
  min-height:18px!important;
  display:block!important;
  margin-top:auto!important;
}
#calendarView .calendarDay.today,
#calendarView .calendarDay.today.selected{
  background:#fff!important;
  color:#111827!important;
  border-color:#d7dde6!important;
  box-shadow:inset 0 0 0 1px #d7dde6!important;
}
#calendarView .calendarDay.selected,
#calendarView .calendarDay.today.selected{
  background:#f3f8ff!important;
  color:#111827!important;
  border-color:#8db9ef!important;
  box-shadow:inset 0 0 0 1px #8db9ef!important;
}
#calendarView .calendarDay.today .calendarDateNum,
#calendarView .calendarDay.today.selected .calendarDateNum{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1.4px solid #5277ad!important;
  border-radius:999px!important;
  background:transparent!important;
  color:#315d95!important;
  line-height:16px!important;
  box-shadow:none!important;
}
#calendarView .calendarDay.selected .calendarDateNum{color:#111827!important;}
#calendarView .calendarDay.selected.sunday .calendarDateNum{color:#dc2626!important;}
#calendarView .calendarDay.selected.saturday .calendarDateNum{color:#2563eb!important;}
#calendarView .calendarDay.today.sunday .calendarDateNum{color:#dc2626!important;border-color:#dc2626!important;}
#calendarView .calendarDay.today.saturday .calendarDateNum{color:#2563eb!important;border-color:#2563eb!important;}

#calendarView .calendarSticker{
  width:20px!important;
  height:20px!important;
  left:50%!important;
  bottom:-1px!important;
  transform:translateX(-50%)!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
#calendarView .calendarStickerArt,
#calendarView .calendarStickerChoiceIcon{
  display:grid!important;
  place-items:center!important;
  line-height:1!important;
}
#calendarView .calendarStickerArt{width:20px!important;height:20px!important;}
#calendarView .calendarStickerSvg{
  width:100%!important;
  height:100%!important;
  overflow:visible!important;
  fill:none;
  stroke:#e76f78;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#calendarView .calendarStickerSvg .softFill{fill:#ffe8e6;}
#calendarView .calendarStickerSvg .accentFill,#calendarView .calendarStickerSvg .dotFill{fill:#e76f78;stroke:none;}
#calendarView .calendarStickerSvg.tone-yellow{stroke:#d69d22;}
#calendarView .calendarStickerSvg.tone-yellow .softFill{fill:#ffe59a;}
#calendarView .calendarStickerSvg.tone-yellow .accentFill,#calendarView .calendarStickerSvg.tone-yellow .dotFill{fill:#d69d22;}
#calendarView .calendarStickerSvg.tone-blue{stroke:#5a8fb5;}
#calendarView .calendarStickerSvg.tone-blue .softFill{fill:#dff2fb;}
#calendarView .calendarStickerSvg.tone-blue .accentFill,#calendarView .calendarStickerSvg.tone-blue .dotFill{fill:#5a8fb5;}
#calendarView .calendarStickerSvg.tone-purple{stroke:#8265b9;}
#calendarView .calendarStickerSvg.tone-purple .softFill{fill:#efe8ff;}
#calendarView .calendarStickerSvg.tone-purple .accentFill,#calendarView .calendarStickerSvg.tone-purple .dotFill{fill:#8265b9;}
#calendarView .calendarStickerSvg.tone-green{stroke:#5f9b72;}
#calendarView .calendarStickerSvg.tone-green .softFill{fill:#e5f5e9;}
#calendarView .calendarStickerSvg.tone-green .accentFill,#calendarView .calendarStickerSvg.tone-green .dotFill{fill:#5f9b72;}
#calendarView .calendarStickerSvg.tone-brown{stroke:#9a704d;}
#calendarView .calendarStickerSvg.tone-brown .softFill{fill:#f5e7da;}
#calendarView .calendarStickerSvg.tone-brown .accentFill,#calendarView .calendarStickerSvg.tone-brown .dotFill{fill:#9a704d;}
#calendarView .calendarStickerSvg.tone-muted{stroke:#a8b0bd;}

/* 별 3개: 위 1개 + 아래 2개의 삼각형 배치 */
#calendarView .calendarTripleStars{
  position:relative!important;
  display:block!important;
  width:23px!important;
  height:20px!important;
  color:#e76f78!important;
  font-family:Arial,sans-serif!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
}
#calendarView .calendarTripleStars i{
  position:absolute!important;
  display:block!important;
  width:12px!important;
  height:12px!important;
  font-style:normal!important;
  line-height:12px!important;
  text-align:center!important;
}
#calendarView .calendarTripleStars i:nth-child(1){left:5.5px!important;top:-1px!important;}
#calendarView .calendarTripleStars i:nth-child(2){left:0!important;bottom:0!important;}
#calendarView .calendarTripleStars i:nth-child(3){right:0!important;bottom:0!important;}

#calendarView .calendarStickerPicker{
  padding:10px 8px!important;
  background:#fff!important;
  border:1px solid #edf0f4!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
#calendarView .calendarStickerOptions{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:5px!important;
}
#calendarView .calendarStickerOption{
  min-height:45px!important;
  padding:3px!important;
  border:1px solid transparent!important;
  background:transparent!important;
  border-radius:11px!important;
}
#calendarView .calendarStickerOption.selected{
  background:#f7f5ff!important;
  border-color:#8b76f2!important;
  box-shadow:none!important;
}
#calendarView .calendarStickerChoiceIcon{
  width:31px!important;
  height:31px!important;
  font-size:0!important;
}
#calendarView .calendarStickerChoiceIcon .calendarStickerSvg{width:30px!important;height:30px!important;}
#calendarView .calendarStickerChoiceIcon .calendarTripleStars{transform:scale(1.18);transform-origin:center;}
#calendarView .calendarStickerRemoveIcon{border:0!important;background:transparent!important;}

html[data-theme="dark"] #calendarView .calendarDay.today,
html[data-theme="dark"] #calendarView .calendarDay.today.selected{background:#111827!important;color:#f9fafb!important;border-color:#475569!important;box-shadow:inset 0 0 0 1px #475569!important;}
html[data-theme="dark"] #calendarView .calendarDay.selected{background:#172554!important;color:#f9fafb!important;border-color:#3b82f6!important;box-shadow:inset 0 0 0 1px #3b82f6!important;}
html[data-theme="dark"] #calendarView .calendarDay.today .calendarDateNum{background:transparent!important;color:#dbeafe!important;border-color:#93c5fd!important;}
html[data-theme="dark"] #calendarView .calendarStickerPicker{background:#111827!important;border-color:#374151!important;}

@media(max-width:430px){
  #calendarView .calendarSticker{width:19px!important;height:19px!important;}
  #calendarView .calendarStickerArt{width:19px!important;height:19px!important;}
  #calendarView .calendarStickerChoiceIcon{width:29px!important;height:29px!important;}
  #calendarView .calendarStickerChoiceIcon .calendarStickerSvg{width:28px!important;height:28px!important;}
}

/* v3.4.14: 설정 > 일정 / Google Calendar 직접 연동 */
#calendarView .calendarMainActionsSingle{grid-template-columns:1fr!important}
.calendarSettingsCard{display:grid;gap:12px}
.calendarConnectCard{border:1px solid #e5e7eb;border-radius:18px;padding:14px;background:#fff;display:grid;gap:12px}
.calendarConnectHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.calendarConnectHead>div{display:grid;gap:4px;min-width:0}
.calendarConnectHead b{font-size:15px}
.calendarConnectHead small{font-size:11px;color:#6b7280;line-height:1.45}
.calendarConnectBadge{flex:0 0 auto;border-radius:999px;padding:6px 9px;background:#f3f4f6;color:#6b7280;font-size:11px;font-weight:800;white-space:nowrap}
.calendarConnectBadge.connected{background:#ecfdf5;color:#047857}
.calendarConnectBtn{width:100%;min-height:44px}
.calendarConnectedControls{display:grid;gap:10px}
.calendarSyncToggleRow{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #eef0f3;padding-top:12px}
.calendarSyncToggleRow>span{display:grid;gap:2px}
.calendarSyncToggleRow b{font-size:13px}
.calendarSyncToggleRow small{font-size:10.5px;color:#6b7280}
#googleCalendarAutoSyncToggle{min-width:64px;height:38px;padding:0 12px!important}
.calendarConnectionActions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:8px}
.calendarConnectionActions button{min-height:42px}
.calendarSettingsSection{display:grid;gap:8px}
.calendarSettingsSectionHead{padding:2px 2px 0;font-size:13px}
.calendarFileTools .dataExportButton{min-height:54px}
html[data-theme="dark"] .calendarConnectCard{background:#111827;border-color:#374151}
html[data-theme="dark"] .calendarConnectHead small,html[data-theme="dark"] .calendarSyncToggleRow small{color:#9ca3af}
html[data-theme="dark"] .calendarConnectBadge{background:#1f2937;color:#d1d5db}
html[data-theme="dark"] .calendarConnectBadge.connected{background:#064e3b;color:#d1fae5}
html[data-theme="dark"] .calendarSyncToggleRow{border-top-color:#374151}
@media(max-width:380px){
  .calendarConnectHead{gap:8px}
  .calendarConnectHead b{font-size:14px}
  .calendarConnectionActions{grid-template-columns:1fr 1fr}
}

/* v3.4.16: 도움말 + ICS 지원 캘린더 안내 */
.calendarImportHelp{border:1px solid #e5e7eb;border-radius:14px;padding:11px 12px;background:#f9fafb;display:grid;gap:5px}
.calendarImportHelp b{font-size:12.5px}
.calendarImportHelp p{margin:0;font-size:11px;line-height:1.55;color:#4b5563}
.calendarImportHelp small{font-size:10.5px;line-height:1.5;color:#6b7280}
.helpPageCard{display:grid;gap:12px}
.helpIntroCard{border:1px solid #e5e7eb;border-radius:16px;padding:13px;background:#f9fafb;display:grid;gap:5px}
.helpIntroCard b{font-size:14px}
.helpIntroCard p{margin:0;font-size:11.5px;line-height:1.55;color:#4b5563}
.helpAccordion{border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;background:#fff}
.helpAccordion details{border-bottom:1px solid #e5e7eb}
.helpAccordion details:last-child{border-bottom:0}
.helpAccordion summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 13px;cursor:pointer;font-size:13px;font-weight:850}
.helpAccordion summary::-webkit-details-marker{display:none}
.helpAccordion summary strong{font-size:19px;color:#9ca3af;transition:transform .15s}
.helpAccordion details[open] summary strong{transform:rotate(90deg)}
.helpAccordion details>div{padding:0 13px 13px;display:grid;gap:7px}
.helpAccordion p{margin:0;font-size:11.5px;line-height:1.6;color:#4b5563}
.helpAccordion .helpNote{padding:8px 9px;border-radius:10px;background:#f3f4f6;color:#6b7280}
html[data-theme="dark"] .calendarImportHelp,html[data-theme="dark"] .helpIntroCard,html[data-theme="dark"] .helpAccordion{background:#111827;border-color:#374151}
html[data-theme="dark"] .helpAccordion details{border-bottom-color:#374151}
html[data-theme="dark"] .calendarImportHelp p,html[data-theme="dark"] .calendarImportHelp small,html[data-theme="dark"] .helpIntroCard p,html[data-theme="dark"] .helpAccordion p{color:#d1d5db}
html[data-theme="dark"] .helpAccordion .helpNote{background:#1f2937;color:#d1d5db}

/* v3.4.17: 선택 날짜 일정은 2열 카드 + 탭 상세보기 */
#calendarView .calendarDayList,
#calendarView .calendarDayListV332{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px!important;
  align-items:stretch!important;
}
#calendarView .calendarHistoryRow,
#calendarView .calendarPersonalRow{
  width:100%!important;
  min-width:0!important;
  min-height:68px!important;
  margin:0!important;
  padding:8px!important;
  border:1px solid #e5e7eb!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#111827!important;
  text-align:left!important;
  box-sizing:border-box!important;
}
#calendarView .calendarPersonalRow{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto 1fr!important;
  gap:5px!important;
  align-content:start!important;
}
#calendarView .calendarHistoryRow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"time status" "main main"!important;
  grid-template-rows:auto 1fr!important;
  gap:4px 6px!important;
  align-content:start!important;
}
#calendarView .calendarPersonalRow .calendarScheduleTime,
#calendarView .calendarHistoryRow .calendarScheduleTime{
  grid-area:time!important;
  text-align:left!important;
  font-size:10px!important;
  font-weight:900!important;
  color:#475569!important;
  white-space:nowrap!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain,
#calendarView .calendarHistoryRow .calendarScheduleMain{
  grid-area:main!important;
  min-width:0!important;
  align-self:start!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain b,
#calendarView .calendarHistoryRow .calendarScheduleMain b{
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  white-space:normal!important;
  text-overflow:ellipsis!important;
  line-height:1.28!important;
  font-size:11px!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain small{
  display:block!important;
  margin-top:3px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:8.5px!important;
}
#calendarView .calendarHistoryRow .workStatusBadge{
  grid-area:status!important;
  align-self:start!important;
  justify-self:end!important;
  font-size:8px!important;
  padding:2px 5px!important;
}
#calendarView .calendarHistoryRow .calendarHistoryChevron,
#calendarView .calendarPersonalBadge{display:none!important;}
html[data-theme="dark"] #calendarView .calendarHistoryRow,
html[data-theme="dark"] #calendarView .calendarPersonalRow{
  background:#1f2937!important;
  border-color:#374151!important;
  color:#f9fafb!important;
}
html[data-theme="dark"] #calendarView .calendarPersonalRow .calendarScheduleTime,
html[data-theme="dark"] #calendarView .calendarHistoryRow .calendarScheduleTime{color:#cbd5e1!important;}

.calendarEventDetailDialog{padding:14px!important;}
.calendarEventDetailHero{
  display:grid;
  gap:5px;
  padding:12px;
  border-radius:12px;
  background:#f8fafc;
  border:1px solid #e5e7eb;
}
.calendarEventDetailHero>b{font-size:16px;line-height:1.35;word-break:break-word;}
.calendarEventDetailHero>span{font-size:10.5px;font-weight:750;color:#64748b;}
.calendarEventDetailRow{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:8px;
  padding:10px 2px;
  border-bottom:1px solid #eef2f7;
}
.calendarEventDetailRow>span{font-size:9.5px;font-weight:850;color:#64748b;}
.calendarEventDetailRow>b{font-size:11px;line-height:1.45;word-break:break-word;white-space:pre-wrap;}
.calendarEventDetailActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;}
.calendarEventDetailActions button{min-height:38px;border-radius:10px;font-size:11px;font-weight:850;}
.calendarEventDetailClose{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;}
.calendarEventDetailEdit{background:#111827;color:#fff;border:0;}
html[data-theme="dark"] .calendarEventDetailHero{background:#111827;border-color:#374151;}
html[data-theme="dark"] .calendarEventDetailHero>span,
html[data-theme="dark"] .calendarEventDetailRow>span{color:#94a3b8;}
html[data-theme="dark"] .calendarEventDetailRow{border-bottom-color:#374151;}
html[data-theme="dark"] .calendarEventDetailClose{background:#374151;color:#e5e7eb;border-color:#4b5563;}

@media(max-width:350px){
  #calendarView .calendarDayList,#calendarView .calendarDayListV332{gap:4px!important;}
  #calendarView .calendarHistoryRow,#calendarView .calendarPersonalRow{min-height:64px!important;padding:6px!important;}
  #calendarView .calendarPersonalRow .calendarScheduleMain b,#calendarView .calendarHistoryRow .calendarScheduleMain b{font-size:10px!important;}
}


/* v3.4.18: 선택 날짜 일정은 세로로 쌓지 않고 가로 카드 스트립으로 표시 */
#calendarView .calendarDayList,
#calendarView .calendarDayListV332{
  display:flex!important;
  grid-template-columns:none!important;
  gap:7px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  padding:1px 1px 5px!important;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
#calendarView .calendarDayList::-webkit-scrollbar,
#calendarView .calendarDayListV332::-webkit-scrollbar{display:none!important;}
#calendarView .calendarHistoryRow,
#calendarView .calendarPersonalRow{
  flex:0 0 calc(50% - 4px)!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:64px!important;
  scroll-snap-align:start;
  padding:8px 9px!important;
}
#calendarView .calendarPersonalRow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  grid-template-areas:"time" "main"!important;
  gap:4px!important;
  align-content:start!important;
}
#calendarView .calendarPersonalRow .calendarScheduleTime,
#calendarView .calendarHistoryRow .calendarScheduleTime{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain,
#calendarView .calendarHistoryRow .calendarScheduleMain{
  width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain b,
#calendarView .calendarHistoryRow .calendarScheduleMain b{
  width:100%!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
}
#calendarView .calendarPersonalRow .calendarScheduleMain small{
  max-width:100%!important;
}
#calendarView .calendarEmpty{
  flex:1 0 100%!important;
}
@media(max-width:360px){
  #calendarView .calendarHistoryRow,
  #calendarView .calendarPersonalRow{flex-basis:calc(54% - 4px)!important;}
}

/* v3.4.19: 다중 일정 알림 */
#notificationView .notificationSettingsV3419{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  align-items:stretch!important;
}
#notificationView .notificationSettingsTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
#notificationView .notificationSettingsTop>div{display:grid;gap:2px;min-width:0}
#notificationView .notificationSettingsTop b{font-size:13px;color:#111827}
#notificationView .notificationSettingsTop small{font-size:10.5px;color:#6b7280;font-weight:700}
#notificationView .notificationToggleCompact{min-width:64px!important;min-height:38px!important;padding:6px 10px!important}
#notificationView .notificationRuleGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
#notificationView .notificationRuleGrid label{
  position:relative;
  display:flex!important;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:7px 8px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#f8fafc;
  cursor:pointer;
  overflow:hidden;
}
#notificationView .notificationRuleGrid input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
#notificationView .notificationRuleGrid span{
  font-size:11.5px!important;
  font-weight:900!important;
  color:#374151!important;
  white-space:nowrap;
}
#notificationView .notificationRuleGrid label:has(input:checked){
  border-color:#111827;
  background:#111827;
  box-shadow:0 2px 7px rgba(17,24,39,.12);
}
#notificationView .notificationRuleGrid label:has(input:checked) span{color:#fff!important}
#notificationView .notificationScopeHint{
  margin:0;
  font-size:10.5px;
  line-height:1.45;
  font-weight:700;
  color:#6b7280;
}
html[data-theme="dark"] #notificationView .notificationSettingsTop b{color:#f9fafb}
html[data-theme="dark"] #notificationView .notificationSettingsTop small,
html[data-theme="dark"] #notificationView .notificationScopeHint{color:#9ca3af}
html[data-theme="dark"] #notificationView .notificationRuleGrid label{background:#111827;border-color:#374151}
html[data-theme="dark"] #notificationView .notificationRuleGrid span{color:#d1d5db!important}
html[data-theme="dark"] #notificationView .notificationRuleGrid label:has(input:checked){background:#f9fafb;border-color:#f9fafb}
html[data-theme="dark"] #notificationView .notificationRuleGrid label:has(input:checked) span{color:#111827!important}


/* v3.4.23: 알림 설정 하단 안내 문구 제거 */
/* v3.4.20: 알림 켜기/끄기 단일 마스터 스위치 */
#notificationView .notificationStatusHidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
}
#notificationView .notificationMasterToggle{
  width:100%;
  min-height:60px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px auto;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
  color:#111827;
  text-align:left;
  cursor:pointer;
}
#notificationView .notificationMasterText{display:grid;gap:2px;min-width:0}
#notificationView .notificationMasterText b{font-size:13px;color:#111827}
#notificationView .notificationMasterText small{font-size:10.5px;line-height:1.35;color:#6b7280;font-weight:700}
#notificationView .notificationMasterSwitch{
  width:42px;
  height:24px;
  padding:3px;
  border-radius:999px;
  background:#d1d5db;
  display:flex;
  align-items:center;
  transition:.18s ease;
  box-sizing:border-box;
}
#notificationView .notificationMasterSwitch i{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.18);
  transform:translateX(0);
  transition:.18s ease;
}
#notificationView .notificationMasterState{
  min-width:28px;
  font-size:11px;
  text-align:right;
  color:#6b7280;
}
#notificationView .notificationMasterToggle.isOn{
  border-color:#111827;
  background:#f8fafc;
}
#notificationView .notificationMasterToggle.isOn .notificationMasterSwitch{background:#111827}
#notificationView .notificationMasterToggle.isOn .notificationMasterSwitch i{transform:translateX(18px)}
#notificationView .notificationMasterToggle.isOn .notificationMasterState{color:#111827}
#notificationView .notificationMasterToggle.isBlocked .notificationMasterSwitch{background:#fca5a5}
#notificationView .notificationMasterToggle.isUnsupported{opacity:.55;cursor:not-allowed}
#notificationView .notificationRuleHeading{display:grid;gap:2px;padding:1px 2px 0}
#notificationView .notificationRuleHeading b{font-size:13px;color:#111827}
#notificationView .notificationRuleHeading small{font-size:10.5px;color:#6b7280;font-weight:700}
html[data-theme="dark"] #notificationView .notificationMasterToggle{background:#111827;border-color:#374151;color:#f9fafb}
html[data-theme="dark"] #notificationView .notificationMasterText b,
html[data-theme="dark"] #notificationView .notificationRuleHeading b{color:#f9fafb}
html[data-theme="dark"] #notificationView .notificationMasterText small,
html[data-theme="dark"] #notificationView .notificationRuleHeading small{color:#9ca3af}
html[data-theme="dark"] #notificationView .notificationMasterToggle.isOn{background:#0f172a;border-color:#f9fafb}
html[data-theme="dark"] #notificationView .notificationMasterToggle.isOn .notificationMasterSwitch{background:#f9fafb}
html[data-theme="dark"] #notificationView .notificationMasterToggle.isOn .notificationMasterSwitch i{background:#111827}
html[data-theme="dark"] #notificationView .notificationMasterToggle.isOn .notificationMasterState{color:#f9fafb}

/* v3.4.22: 작성 화면 압축 - 기본정보/예약금액 그룹 + 사진·안내문 접기 + 고정 저장 */
#workView{padding-bottom:82px!important}
#workView .workVoiceCard{padding:12px!important;margin-bottom:8px!important}
#workView .workVoiceCard h2{font-size:15px!important;margin-bottom:5px!important}
#workView .workVoiceCard .actions{margin:6px 0!important}
#workView .workVoiceCard #rawInput{min-height:64px!important;height:64px!important;padding:9px 10px!important;font-size:12px!important}
#workView .workVoiceCard .voiceActionRow{margin-top:6px!important}
#workView .workTemplateQuickCard{padding:10px 12px!important;margin-bottom:8px!important}
#workView .workTemplateQuickHead{margin-bottom:6px!important}
#workView .workTemplateQuickHead b{font-size:12px!important}
#workView .workTemplateQuickSelect{min-height:38px!important;height:38px!important}

#workView .workCompactGroup{padding:12px!important;margin-bottom:8px!important}
#workView .workCompactHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
#workView .workCompactHead h2{margin:0;font-size:15px!important;line-height:1.15}
#workView .workCompactHead small{display:block;margin-top:2px;color:#64748b;font-size:9px;font-weight:700;line-height:1.25}
#workView .workCompactGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#workView .workCompactField{min-width:0;padding:8px;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc}
#workView .workCompactSpan2{grid-column:1/-1}
#workView .workCompactField label{margin:0 0 5px!important;font-size:9px!important;font-weight:800!important;color:#64748b!important}
#workView .workCompactField input,
#workView .workCompactField select{min-height:38px!important;height:38px!important;padding:8px 9px!important;border-radius:10px!important;font-size:12px!important;background:#fff!important}
#workView .workCompactField .phoneInputRow,
#workView .workCompactField .addressInputRow{gap:5px!important}
#workView .workCompactField .contactPickBtn{width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:5px!important;border-radius:10px!important}
#workView .workCompactField .addressRouteBtn{width:54px!important;min-width:54px!important;height:38px!important;min-height:38px!important;padding:3px!important;font-size:8px!important;border-radius:10px!important}
#workView .workCompactField .addressRouteBtn .uiLineIcon{width:14px!important;height:14px!important}
#workView .workCompactField .workScheduleInputs{gap:6px!important}
#workView .workCompactField .workScheduleHelp{margin-top:4px!important;font-size:8.5px!important;line-height:1.2!important}

#workView .workOptionalGroup{padding:0!important;margin-bottom:8px!important;overflow:hidden!important}
#workView .workOptionalGroup>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:12px 14px;cursor:pointer;font-size:14px;font-weight:900}
#workView .workOptionalGroup>summary::-webkit-details-marker{display:none}
#workView .workOptionalGroup>summary small{font-size:9px;color:#64748b;font-weight:700}
#workView .workOptionalGroup>summary::after{content:'⌄';font-size:16px;color:#64748b;transition:transform .18s ease}
#workView .workOptionalGroup[open]>summary::after{transform:rotate(180deg)}
#workView .workOptionalGroup[open]>summary{border-bottom:1px solid #eef2f7}
#workView .workOptionalBody{display:grid;gap:10px;padding:10px}
#workView .workNestedSection{padding:10px!important;margin:0!important;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
#workView .workNestedSection h2{font-size:14px!important;margin-bottom:7px!important}
#workView .workPhotoGrid{gap:7px!important}
#workView .workPhotoMultiPreview{min-height:68px!important}
#workView .workPhotoActions{gap:5px!important}
#workView .workPhotoActions button{min-height:34px!important;padding:6px 5px!important;font-size:9px!important}
#workView .messageCard #message{min-height:74px!important;height:74px!important;font-size:11px!important;padding:9px!important}
#workView #messageQuickActions{margin:7px 0 5px!important;gap:6px!important}
#workView #messageQuickActions .messageActionBtn{min-height:36px!important;padding:7px 5px!important;font-size:10px!important}

#workView .saveOnlyCard{position:fixed!important;left:50%!important;bottom:max(10px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:min(calc(100vw - 28px),532px)!important;z-index:90!important;margin:0!important;padding:7px!important;border:1px solid rgba(148,163,184,.35)!important;border-radius:16px!important;background:rgba(255,255,255,.94)!important;box-shadow:0 10px 28px rgba(15,23,42,.18)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
#workView .saveOnlyCard #saveBtn{margin:0!important;min-height:46px!important;height:46px!important;border-radius:12px!important;font-size:13px!important}

html[data-theme="dark"] #workView .workCompactField{background:#111827!important;border-color:#374151!important}
html[data-theme="dark"] #workView .workCompactField input,
html[data-theme="dark"] #workView .workCompactField select{background:#1f2937!important;border-color:#4b5563!important;color:#f9fafb!important}
html[data-theme="dark"] #workView .workNestedSection{background:#111827!important;border-color:#374151!important}
html[data-theme="dark"] #workView .saveOnlyCard{background:rgba(17,24,39,.94)!important;border-color:#374151!important}

@media(max-width:360px){
  #workView .workCompactGroup{padding:10px!important}
  #workView .workCompactGrid{gap:6px!important}
  #workView .workCompactField{padding:6px!important}
  #workView .workCompactField input,#workView .workCompactField select{font-size:11px!important;padding:7px!important}
  #workView .workCompactHead small{display:none}
  #workView .workOptionalGroup>summary{padding:10px 12px;min-height:44px}
  #workView .saveOnlyCard{width:calc(100vw - 20px)!important;bottom:max(7px,env(safe-area-inset-bottom))!important}
}

/* v3.4.23: 작성 화면 재구성 - 예약/금액 분리, 주소 길찾기 우측 고정, 개별 펼쳐보기 */
#workView .addressInputRow{display:grid!important;grid-template-columns:minmax(0,1fr) 54px!important;align-items:stretch!important;gap:6px!important}
#workView .addressInputRow #address{min-width:0!important;width:100%!important}
#workView .addressInputRow .addressRouteBtn{grid-column:2!important;width:54px!important;min-width:54px!important;margin:0!important;align-self:stretch!important}

#workView .workBookingGroup .workCompactGrid{grid-template-columns:1fr!important}
#workView .workBookingGroup .workCompactField{grid-column:1/-1}
#workView .workScheduleInputsV3423{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
#workView .workDateInputWrap,#workView .workTimeInputWrap{position:relative;min-width:0}
#workView .workDateInputWrap input,#workView .workTimeInputWrap input{width:100%!important;padding-right:8px!important}
#workView .workInputExample{position:absolute;left:10px;top:50%;transform:translateY(-50%);z-index:2;pointer-events:none;color:#94a3b8;font-size:10px;font-weight:700;line-height:1;background:#fff;padding:1px 3px;border-radius:4px;max-width:calc(100% - 34px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#workView .workDateInputWrap input:focus + .workInputExample,
#workView .workTimeInputWrap input:focus + .workInputExample,
#workView .workDateInputWrap input:valid + .workInputExample,
#workView .workTimeInputWrap input:valid + .workInputExample{display:none}

#workView .workSectionToggle{padding:0!important;margin-bottom:8px!important;overflow:hidden!important}
#workView .workSectionToggle>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:12px 14px;cursor:pointer;font-size:14px;font-weight:900}
#workView .workSectionToggle>summary::-webkit-details-marker{display:none}
#workView .workSectionToggle>summary::after{content:'⌄';font-size:16px;color:#64748b;transition:transform .18s ease}
#workView .workSectionToggle[open]>summary::after{transform:rotate(180deg)}
#workView .workSectionToggle[open]>summary{border-bottom:1px solid #eef2f7}
#workView .workSectionToggleBody{padding:10px}
#workView .workMoneyGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#workView .workMoneyGroup .workCompactField{margin:0!important}
#workView .workPhotoToggle .workNestedSection,#workView .workMessageToggle .workNestedSection{padding:0!important;border:0!important;background:transparent!important}

html[data-theme="dark"] #workView .workInputExample{background:#1f2937;color:#94a3b8}
html[data-theme="dark"] #workView .workSectionToggle[open]>summary{border-bottom-color:#374151}

@media(max-width:360px){
  #workView .addressInputRow{grid-template-columns:minmax(0,1fr) 50px!important}
  #workView .addressInputRow .addressRouteBtn{width:50px!important;min-width:50px!important}
  #workView .workInputExample{font-size:9px;left:8px;max-width:calc(100% - 30px)}
}

/* v3.4.30: 내역 필터 압축 + 상세보기 팝업 레이아웃 정상화 */
#historyView .historyFilterRowV323{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
#historyView .historyInlineField{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:3px!important;
  min-width:0!important;
}
#historyView .historyInlineField>span{
  font-size:9.5px!important;
  line-height:1.15!important;
}
#historyView .historyInlineField input,
#historyView .historyInlineField select{
  width:100%!important;
  min-width:0!important;
}
.historyDetailOverlay{
  z-index:13000!important;
  align-items:center!important;
  justify-content:center!important;
  padding:14px!important;
}
.historyDetailDialog{
  width:min(94vw,430px)!important;
  max-height:min(88dvh,760px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  background:var(--card,#fff)!important;
  color:var(--text,#111827)!important;
  border:1px solid var(--line,#e5e7eb)!important;
  border-radius:18px!important;
  box-shadow:0 22px 60px rgba(15,23,42,.24)!important;
  padding:0!important;
}
.historyDetailDialogHead{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:12px 12px 10px!important;
  border-bottom:1px solid var(--line,#e5e7eb)!important;
  background:var(--card,#fff)!important;
}
.historyDetailDialogTitle{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  flex:1 1 auto!important;
}
.historyDetailDialogTitle>b{
  min-width:0!important;
  font-size:14px!important;
  line-height:1.3!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.historyDetailDialogTitle .workStatusBadge{flex:0 0 auto!important;}
.historyDetailClose{
  flex:0 0 auto!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  min-height:32px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:10px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  font-size:22px!important;
  font-weight:700!important;
  line-height:32px!important;
  text-align:center!important;
}
.historyDetailModalBody{
  min-height:0!important;
  overflow:auto!important;
  padding:0 12px 12px!important;
  overscroll-behavior:contain!important;
}
.historyDetailInModal{
  display:block!important;
  border-top:0!important;
  padding:10px 0 0!important;
  margin:0!important;
}
.historyDetailInModal[hidden]{display:block!important;}
.historyDetailInModal .historyMetaGridV79{margin-top:0!important;}
.historyDetailInModal .historyActionGridV84{margin-top:9px!important;}
.historyDetailInModal .historySavedAt{padding-bottom:2px!important;}
html[data-theme="dark"] .historyDetailDialogHead{background:#111827!important;}
html[data-theme="dark"] .historyDetailClose{background:#1f2937!important;color:#d1d5db!important;}
@media(max-width:370px){
  #historyView .historyFilterRowV323{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .historyDetailOverlay{padding:9px!important;}
  .historyDetailDialog{
    width:100%!important;
    max-height:91dvh!important;
    border-radius:16px!important;
  }
  .historyDetailDialogHead{padding:10px!important;}
  .historyDetailModalBody{padding:0 10px 10px!important;}
}


/* v3.4.31: 작성 상태/결제상태를 모바일 기본 select 대신 앱 내부 선택 버튼으로 통일 */
#workView .workChoiceField{padding-bottom:8px!important}
#workView .workChoiceGroup{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
  width:100%!important;
}
#workView .workChoiceBtn{
  min-width:0!important;
  min-height:38px!important;
  height:38px!important;
  padding:6px 4px!important;
  border:1px solid #dbe1e8!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#475569!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  box-shadow:none!important;
  white-space:nowrap!important;
}
#workView .workChoiceBtn.isActive{
  background:#111827!important;
  border-color:#111827!important;
  color:#fff!important;
}
#workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="미결제"]{
  background:#fff7ed!important;
  border-color:#fdba74!important;
  color:#c2410c!important;
}
#workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="부분입금"]{
  background:#eff6ff!important;
  border-color:#93c5fd!important;
  color:#1d4ed8!important;
}
#workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="입금완료"]{
  background:#ecfdf5!important;
  border-color:#86efac!important;
  color:#15803d!important;
}
html[data-theme="dark"] #workView .workChoiceBtn{
  background:#1f2937!important;
  border-color:#4b5563!important;
  color:#d1d5db!important;
}
html[data-theme="dark"] #workView .workChoiceBtn.isActive{
  background:#f9fafb!important;
  border-color:#f9fafb!important;
  color:#111827!important;
}
html[data-theme="dark"] #workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="미결제"]{background:#7c2d12!important;border-color:#fb923c!important;color:#ffedd5!important}
html[data-theme="dark"] #workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="부분입금"]{background:#1e3a8a!important;border-color:#60a5fa!important;color:#dbeafe!important}
html[data-theme="dark"] #workView .paymentChoiceGroup .workChoiceBtn.isActive[data-value="입금완료"]{background:#14532d!important;border-color:#4ade80!important;color:#dcfce7!important}
@media(max-width:360px){
  #workView .workChoiceBtn{font-size:10px!important;padding:5px 2px!important}
}


/* v3.4.32: 내역 상태 필터를 네이티브 select 대신 앱 내부 4분할 버튼으로 표시 */
#historyView .historyStatusField{
  min-width:0!important;
}
#historyView .historyStatusChoices{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:3px!important;
  width:100%!important;
  min-width:0!important;
}
#historyView .historyStatusBtn{
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  padding:5px 2px!important;
  border:1px solid #dbe1e8!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#475569!important;
  font-size:10.5px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
#historyView .historyStatusBtn.isActive{
  background:#111827!important;
  border-color:#111827!important;
  color:#fff!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn{
  background:#1f2937!important;
  border-color:#4b5563!important;
  color:#d1d5db!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn.isActive{
  background:#f9fafb!important;
  border-color:#f9fafb!important;
  color:#111827!important;
}
@media(max-width:360px){
  #historyView .historyStatusBtn{font-size:9.5px!important;padding:4px 1px!important}
}


/* v3.4.34: 내역 필터 비율 조정 - 날짜 영역 확대, 상태 영역 축소 */
#historyView .historyFiltersV323{
  padding:9px!important;
}
#historyView .historyFilterRowV323{
  display:grid!important;
  grid-template-columns:minmax(0,52%) minmax(0,48%)!important;
  gap:8px!important;
  align-items:end!important;
}
#historyView .historyDateField,
#historyView .historyStatusField{
  width:100%!important;
  min-width:0!important;
}
#historyView .historyDateField input{
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  padding:7px 10px!important;
}
#historyView .historyStatusChoices{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:5px!important;
  width:100%!important;
  min-width:0!important;
}
#historyView .historyStatusBtn{
  width:100%!important;
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  padding:5px 3px!important;
  border:1px solid #dbe1e8!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#475569!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:none!important;
  transition:background .14s ease,border-color .14s ease,color .14s ease,transform .08s ease!important;
}
#historyView .historyStatusBtn:active{transform:scale(.97)!important}
#historyView .historyStatusBtn.isActive[data-value=""]{
  background:#111827!important;
  border-color:#111827!important;
  color:#fff!important;
}
#historyView .historyStatusBtn.isActive[data-value="예약"]{
  background:#e0f7fa!important;
  border-color:#67e8f9!important;
  color:#0e7490!important;
}
#historyView .historyStatusBtn.isActive[data-value="완료"]{
  background:#dcfce7!important;
  border-color:#86efac!important;
  color:#15803d!important;
}
#historyView .historyStatusBtn.isActive[data-value="취소"]{
  background:#fee2e2!important;
  border-color:#fca5a5!important;
  color:#b91c1c!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn{
  background:#1f2937!important;
  border-color:#4b5563!important;
  color:#d1d5db!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn.isActive[data-value=""]{
  background:#f9fafb!important;border-color:#f9fafb!important;color:#111827!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn.isActive[data-value="예약"]{
  background:#164e63!important;border-color:#22d3ee!important;color:#cffafe!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn.isActive[data-value="완료"]{
  background:#14532d!important;border-color:#4ade80!important;color:#dcfce7!important;
}
html[data-theme="dark"] #historyView .historyStatusBtn.isActive[data-value="취소"]{
  background:#7f1d1d!important;border-color:#f87171!important;color:#fee2e2!important;
}
@media(max-width:420px){
  #historyView .historyFilterRowV323{grid-template-columns:minmax(0,50%) minmax(0,50%)!important;gap:6px!important}
  #historyView .historyStatusChoices{gap:3px!important}
  #historyView .historyStatusBtn{font-size:10px!important;padding:4px 1px!important}
}


/* v3.4.37: settings cleanup + accent colors + font size + merged support */
:root{--accent:#3b5bdb;--accent-soft:#edf2ff;--accent-contrast:#fff;--text-scale:1}
html[data-accent="navy"]{--accent:#3b5bdb;--accent-soft:#edf2ff;--accent-contrast:#fff}
html[data-accent="blue"]{--accent:#0f6fff;--accent-soft:#eef6ff;--accent-contrast:#fff}
html[data-accent="mint"]{--accent:#0f8b8d;--accent-soft:#e9fbfb;--accent-contrast:#fff}
html[data-accent="purple"]{--accent:#6d4aff;--accent-soft:#f2edff;--accent-contrast:#fff}
html[data-accent="coral"]{--accent:#e85d75;--accent-soft:#fff0f3;--accent-contrast:#fff}
html[data-accent="olive"]{--accent:#6f7f36;--accent-soft:#f4f8e8;--accent-contrast:#fff}

/* Apply accent to the main interactive identity without recoloring content/status semantics */
.tabBtn.active,.primary,.full,.versionCard span,.headerSettingsBtn,.adminFilterBtn.active,.pageBtn.active,
.notificationRuleGrid input:checked+span,.supportTab.active,.fontSizeBtn.active{background:var(--accent)!important;color:var(--accent-contrast)!important;border-color:var(--accent)!important}
.themeBtn.active,.accentBtn.active{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent) inset}
.notificationMasterToggle[aria-checked="true"] .notificationMasterSwitch{background:var(--accent)!important}
html[data-theme="dark"] .tabBtn.active,html[data-theme="dark"] .primary,html[data-theme="dark"] .full,html[data-theme="dark"] .versionCard span,
html[data-theme="dark"] .headerSettingsBtn,html[data-theme="dark"] .pageBtn.active,html[data-theme="dark"] .supportTab.active,html[data-theme="dark"] .fontSizeBtn.active{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}

.displaySettingsCard{display:grid;gap:14px}.displaySettingGroup{padding-top:4px}.displaySettingGroup+.displaySettingGroup{border-top:1px solid #eef2f7;padding-top:14px}.displaySettingTitle{margin-bottom:9px}.displaySettingTitle b{font-size:14px}
.accentButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.accentBtn{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;background:#f8fafc;border:1px solid #e5e7eb;color:#111827}.accentBtn i{width:18px;height:18px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 2px #fff,0 0 0 3px #d1d5db}.accentBtn span{font-size:12px}.fontSizeButtons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fontSizeBtn{min-height:46px;background:#eef2f7;border:1px solid transparent;color:#111827}.fontSizeBtn[data-font-size="small"]{font-size:12px}.fontSizeBtn[data-font-size="normal"]{font-size:14px}.fontSizeBtn[data-font-size="large"]{font-size:17px}
html[data-theme="dark"] .displaySettingGroup+.displaySettingGroup{border-top-color:#374151}html[data-theme="dark"] .accentBtn,html[data-theme="dark"] .fontSizeBtn{background:#374151;border-color:#4b5563;color:#f9fafb}
@media(max-width:430px){.accentButtons{grid-template-columns:repeat(2,minmax(0,1fr))}}

html[data-font-size="small"]{--text-scale:.92;-webkit-text-size-adjust:92%;text-size-adjust:92%}
html[data-font-size="normal"]{--text-scale:1;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html[data-font-size="large"]{--text-scale:1.1;-webkit-text-size-adjust:110%;text-size-adjust:110%}
html[data-font-size="small"] body{font-size:15px}html[data-font-size="normal"] body{font-size:16px}html[data-font-size="large"] body{font-size:17.5px}
html[data-font-size] button,html[data-font-size] input,html[data-font-size] textarea,html[data-font-size] select{font-size:calc(15px * var(--text-scale))}
html[data-font-size] .tabBtn{font-size:calc(14px * var(--text-scale))}html[data-font-size] .eyebrow,html[data-font-size] label,html[data-font-size] .notice{font-size:calc(12px * var(--text-scale))}

.calendarImportHelpCompact{padding:10px 12px}.calendarImportHelpCompact small{display:block;line-height:1.5}.calendarImportHelpCompact strong{color:inherit}

.supportPageCard{display:grid;gap:12px}.supportTabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#eef2f7;border-radius:14px}.supportTab{min-height:44px;background:transparent;color:#6b7280}.supportTab.active{box-shadow:0 2px 8px #00000010}.supportInnerCard{display:grid;gap:10px}.supportHistoryHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.supportHistoryHead .adminInquiryCount{flex:1;margin:0}.supportPanel[hidden]{display:none!important}
html[data-theme="dark"] .supportTabs{background:#111827}html[data-theme="dark"] .supportTab{color:#d1d5db}
/* v3.4.37 accent coverage for major segmented controls */
.revenuePeriodTabs button.active,.receivableAgeBtn.active,.documentTypeBtn.active,.calendarDay.today>.calendarDayTop>.calendarDateNum,.calendarEventSave,.calendarEventDetailEdit{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
html[data-theme="dark"] .revenuePeriodTabs button.active,html[data-theme="dark"] .receivableAgeBtn.active,html[data-theme="dark"] .documentTypeBtn.active{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}


/* v3.4.39: subscription launch discount-rate badges */
/* v3.4.38: subscription normal/launch pricing + separate plan cards */
.subscriptionTrialBanner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:11px 13px;border-radius:14px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}
.subscriptionTrialBanner b{font-size:13px}.subscriptionTrialBanner span{font-size:12px;line-height:1.45}
.subscriptionPlans{display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
.subscriptionPlanCard{padding:16px!important;border-radius:18px!important}
.subscriptionPlanCard.proPlan{border:2px solid #4f46e5!important}
.subscriptionPlanTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.subscriptionPlanHead{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:4px!important}
.subscriptionPlanHead>b{font-size:19px!important;display:flex;align-items:center;gap:7px}.planForWho{font-size:12px;color:var(--muted,#6b7280);font-weight:600}
.recommendedBadge{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#4f46e5;color:#fff;font-size:10px;font-weight:900;line-height:1}
.subscriptionPriceBox{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;white-space:nowrap}
.subscriptionPriceBox .normalPrice{font-size:12px;color:#9ca3af;text-decoration:line-through;text-decoration-thickness:1.5px}
.subscriptionPriceBox strong{font-size:17px;color:var(--text,#111827);line-height:1.2}
.subscriptionPriceBox strong em{font-style:normal;font-size:10px;font-weight:900;color:#dc2626;background:#fef2f2;border-radius:999px;padding:3px 6px;margin-right:4px;vertical-align:2px}
.planFeatureList{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px!important;margin:0 0 14px!important;padding:12px!important;border-radius:14px;background:var(--soft,#f8fafc)}
.subscriptionPlanCard .planFeatureList li{font-size:12px!important;line-height:1.35!important;padding-left:20px!important;position:relative}
.subscriptionPlanCard .planFeatureList li::before{position:absolute!important;left:0!important;top:0!important;font-weight:900!important}
.subscriptionPlanCard .planFeatureList li.planIncluded{font-weight:800;color:#2563eb}
.subscriptionPlanCard .planFeatureList li.planIncluded::before{content:'O'!important;color:#2563eb}
.subscriptionPlanCard .planFeatureList li.planExcluded{font-weight:400;color:#dc2626}
.subscriptionPlanCard .planFeatureList li.planExcluded::before{content:'X'!important;color:#dc2626}
.subscriptionTerms{margin:11px 2px 0;font-size:11px;line-height:1.5;color:var(--muted,#6b7280)}
html[data-theme="dark"] .subscriptionTrialBanner{background:#172554;border-color:#1d4ed8;color:#dbeafe}
html[data-theme="dark"] .planFeatureList{background:#111827}
html[data-theme="dark"] .subscriptionPlanCard .planFeatureList li.planIncluded{color:#60a5fa}
html[data-theme="dark"] .subscriptionPlanCard .planFeatureList li.planIncluded::before{color:#60a5fa}
html[data-theme="dark"] .subscriptionPlanCard .planFeatureList li.planExcluded{color:#f87171}
html[data-theme="dark"] .subscriptionPlanCard .planFeatureList li.planExcluded::before{color:#f87171}
html[data-theme="dark"] .subscriptionPriceBox strong{color:#f9fafb}
html[data-theme="dark"] .subscriptionPriceBox strong em{background:#450a0a;color:#fca5a5}
@media(max-width:520px){
  .subscriptionPlanTop{flex-direction:column;gap:8px}
  .subscriptionPriceBox{align-items:flex-start;text-align:left}
  .planFeatureList{grid-template-columns:1fr!important}
}

/* =========================================================
   v3.4.41 — Modern mobile shell / dashboard / bottom nav (PC top-nav collision fix)
   ========================================================= */
:root{
  --modern-blue:#2f6fed;
  --modern-blue-2:#2563eb;
  --modern-bg:#f6f8fb;
  --modern-card:#ffffff;
  --modern-text:#111827;
  --modern-muted:#7b8798;
  --modern-line:#e9edf3;
  --modern-shadow:0 10px 30px rgba(30,58,95,.07);
}

html,body{background:var(--modern-bg)}
body{min-height:100dvh;color:var(--modern-text)}
.app{
  max-width:560px!important;
  margin:0 auto!important;
  padding:18px 16px calc(108px + env(safe-area-inset-bottom))!important;
}
/* Android WebView(edge-to-edge)에서 상태바와 앱 헤더가 겹치지 않도록 실제 여백을 확보 */
html.android-webview .app{
  padding-top:calc(18px + env(safe-area-inset-top))!important;
}

/* Header */
.brandHeader.modernHeader{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  grid-template-columns:none!important;
  min-height:68px!important;
  gap:12px!important;
  margin:0 0 18px!important;
  padding:0 2px!important;
  background:transparent!important;
  position:relative!important;
}
.brandHeader.modernHeader::before{display:none!important}
.modernHeader .brandIdentity{
  display:flex!important;
  align-items:center!important;
  gap:11px!important;
  min-width:0!important;
  flex:1!important;
}
.modernHeader .brandMascot{
  width:64px!important;
  height:64px!important;
  flex:0 0 64px!important;
  border:0!important;
  border-radius:18px!important;
  box-shadow:none!important;
  object-fit:contain!important;
  background:transparent!important;
  transform:none!important;
}
.modernHeader .brandTitleWrap{
  display:grid!important;
  gap:3px!important;
  text-align:left!important;
  min-width:0!important;
}
.modernHeader .brandTitleWrap h1{
  margin:0!important;
  font-family:'Jua',system-ui,sans-serif!important;
  font-size:30px!important;
  line-height:1!important;
  letter-spacing:-.6px!important;
  color:#0f172a!important;
  white-space:nowrap!important;
}
.modernHeader .brandTitleWrap p{
  margin:0!important;
  font-size:11px!important;
  line-height:1.3!important;
  font-weight:750!important;
  color:#738096!important;
  white-space:nowrap!important;
}
.headerActions{display:flex!important;align-items:center!important;gap:8px!important;flex:0 0 auto!important}
.headerIconBtn{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  flex:0 0 42px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #eef1f5!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#172033!important;
  box-shadow:0 4px 18px rgba(30,58,95,.055)!important;
  position:relative!important;
}
.headerIconBtn svg,.headerIconBtn .uiLineIcon{width:21px!important;height:21px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.headerNotifyBtn i{position:absolute;right:8px;top:7px;width:7px;height:7px;border-radius:50%;background:#ef4444;border:2px solid #fff}
.headerSettingsBtn.active{background:#fff!important;color:var(--modern-blue)!important;border-color:#dbe8ff!important}

/* Bottom navigation */
.topTabs.appBottomNav{
  position:fixed!important;
  z-index:200!important;
  left:50%!important;
  top:auto!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  width:min(100%,560px)!important;
  height:calc(78px + env(safe-area-inset-bottom))!important;
  padding:7px 14px calc(7px + env(safe-area-inset-bottom))!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:2px!important;
  align-items:end!important;
  background:rgba(255,255,255,.96)!important;
  border:0!important;
  border-top:1px solid rgba(226,232,240,.85)!important;
  border-radius:0!important;
  box-shadow:0 -10px 30px rgba(15,23,42,.055)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
}
.appBottomNav .tabBtn{
  min-width:0!important;
  min-height:60px!important;
  padding:6px 2px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:4px!important;
  border:0!important;
  border-radius:16px!important;
  background:transparent!important;
  color:#8a96a8!important;
  box-shadow:none!important;
  font-size:11px!important;
  font-weight:800!important;
}
.appBottomNav .tabIcon{width:24px!important;height:24px!important;display:grid!important;place-items:center!important}
.appBottomNav .tabIcon svg{width:24px!important;height:24px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.appBottomNav .moreDots svg circle{fill:currentColor!important;stroke:none!important}
.appBottomNav .tabLabel{font-size:11px!important;line-height:1.1!important;font-weight:800!important}
.appBottomNav .tabBtn.active{background:transparent!important;color:var(--modern-blue)!important;border:0!important}
.appBottomNav .composeTab{justify-content:flex-end!important;overflow:visible!important}
.appBottomNav .composeTab .composeCircle{
  width:54px!important;height:54px!important;margin-top:-24px!important;margin-bottom:0!important;
  display:grid!important;place-items:center!important;border-radius:50%!important;
  background:linear-gradient(145deg,#4b8cff 0%,#2563eb 100%)!important;
  color:#fff!important;box-shadow:0 8px 22px rgba(37,99,235,.32)!important;
  border:4px solid #fff!important;
}
.appBottomNav .composeTab .composeCircle .tabIcon,.appBottomNav .composeTab .composeCircle svg{width:27px!important;height:27px!important}
.appBottomNav .composeTab.active{color:var(--modern-blue)!important}
.legacyNavBtn{display:none!important}

/* Dashboard */
.modernDashboard{display:grid;gap:15px}
.modernDashboard .card{margin:0!important}
.dashboardHero.modernHero{
  position:relative!important;
  overflow:hidden!important;
  padding:22px!important;
  border:1px solid #edf1f6!important;
  border-radius:26px!important;
  background:
    radial-gradient(circle at 88% 18%,rgba(253,204,107,.36) 0 22px,transparent 23px),
    radial-gradient(circle at 80% 42%,rgba(183,224,255,.28) 0 46px,transparent 47px),
    linear-gradient(145deg,#ffffff 0%,#f5fbff 55%,#edf9f5 100%)!important;
  box-shadow:var(--modern-shadow)!important;
}
.dashboardHeroTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;position:relative;z-index:1}
.dashboardHeroCopy{display:grid;gap:5px}
.dashboardHeroCopy h2{margin:0!important;font-size:24px!important;line-height:1.15!important;letter-spacing:-.5px!important;color:#0f172a!important}
.dashboardHeroCopy p{margin:0!important;font-size:13px!important;line-height:1.35!important;color:#8b96a7!important;font-weight:700!important}
.modernHero .refreshIconBtn{
  width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;border-radius:12px!important;
  background:rgba(255,255,255,.75)!important;border:1px solid rgba(226,232,240,.9)!important;color:#5f6c80!important;box-shadow:none!important;
}
.modernStats{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:0!important;
  padding:16px 4px!important;margin:0 0 16px!important;border-radius:21px!important;
  background:rgba(255,255,255,.88)!important;border:1px solid rgba(235,239,245,.95)!important;
  box-shadow:0 8px 22px rgba(46,78,110,.045)!important;position:relative;z-index:1;
}
.modernStats .dashboardStat{
  min-width:0!important;min-height:96px!important;padding:6px 4px!important;display:grid!important;
  grid-template-columns:auto auto!important;grid-template-rows:42px 20px 30px!important;align-items:center!important;justify-content:center!important;
  column-gap:3px!important;background:transparent!important;border:0!important;border-radius:0!important;color:#172033!important;box-shadow:none!important;
  position:relative!important;
}
.modernStats .dashboardStat:not(:last-child)::after{content:"";position:absolute;right:0;top:12px;bottom:12px;width:1px;background:#e8edf3}
.modernStats .statIcon{grid-column:1/3;width:42px;height:42px;margin:auto;display:grid;place-items:center;border-radius:50%}
.modernStats .statIcon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.modernStats .statToday{background:#edf4ff;color:#3478f6}.modernStats .statBooked{background:#e9f8f2;color:#13866f}.modernStats .statDone{background:#f1edff;color:#7654da}
.modernStats .statText{grid-column:1/3;font-size:12px!important;color:#6f7c90!important;font-weight:800!important}
.modernStats .dashboardStat b{grid-column:1;font-size:26px!important;line-height:1!important;color:#0f172a!important;font-weight:900!important;letter-spacing:-.6px!important}
.modernStats .dashboardStat small{grid-column:2;font-size:12px!important;color:#0f172a!important;font-weight:800!important;align-self:end!important;padding-bottom:2px!important}
.modernQuickActions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin:0!important;position:relative;z-index:1}
.dashboardPrimaryCta{
  width:100%!important;min-height:58px!important;margin:0!important;padding:0 18px!important;border-radius:18px!important;
  display:grid!important;grid-template-columns:28px 1fr 24px!important;align-items:center!important;
  background:linear-gradient(135deg,#4d8dff,#2563eb)!important;color:#fff!important;border:0!important;
  box-shadow:0 10px 24px rgba(37,99,235,.24)!important;font-size:16px!important;font-weight:850!important;letter-spacing:-.2px!important;
}
.dashboardPrimaryCta span{font-size:26px;line-height:1}.dashboardPrimaryCta b{font-size:24px;justify-self:end;font-weight:500}
.dashboardHistoryLink{justify-self:center!important;width:auto!important;min-height:auto!important;padding:3px 8px!important;background:transparent!important;color:#8290a3!important;font-size:11px!important;font-weight:750!important}

.modernListCard{
  overflow:hidden!important;padding:0!important;border:1px solid #edf0f4!important;border-radius:24px!important;background:#fff!important;box-shadow:var(--modern-shadow)!important;
}
.modernListCard summary{
  list-style:none!important;min-height:64px!important;padding:16px 18px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
  cursor:pointer!important;border:0!important;background:#fff!important;
}
.modernListCard summary::-webkit-details-marker{display:none}
.dashboardSectionTitle{display:flex;align-items:center;gap:10px;min-width:0}
.dashboardSectionTitle b{font-size:16px!important;letter-spacing:-.2px!important;color:#111827!important}
.sectionIcon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;flex:0 0 34px;background:#eef5ff;color:#2f6fed}
.sectionIcon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sectionBooked{background:#eaf8f3;color:#13866f}.sectionRecent{background:#f0f4ff;color:#466bd7}
.dashboardSummaryRight{display:flex;align-items:center;gap:8px;color:#98a2b1}
.dashboardSummaryRight small{font-size:11px!important;font-weight:800!important;color:#8c97a8!important}
.dashboardSummaryRight em{font-style:normal;font-size:22px;line-height:1;transform:rotate(90deg);transition:transform .2s ease}
.modernListCard[open] .dashboardSummaryRight em{transform:rotate(-90deg)}
.modernListCard[open] summary{border-bottom:1px solid #f0f2f5!important}
.modernListCard .dashboardList{padding:0 18px 8px!important}

/* Home record rows: keep all current actions, but present them as clean modern rows */
.modernDashboard .dashboardWorkItem{padding:14px 0!important;border:0!important;border-bottom:1px solid #f0f2f5!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
.modernDashboard .dashboardWorkItem:last-child{border-bottom:0!important}
.modernDashboard .dashboardWorkMain{display:grid!important;gap:7px!important}
.modernDashboard .dashboardWorkTitle{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:10px!important}
.modernDashboard .dashboardWorkTitle b{font-size:14px!important;line-height:1.35!important;color:#172033!important;letter-spacing:-.15px!important}
.modernDashboard .workStatusBadge{flex:0 0 auto!important;padding:5px 9px!important;border-radius:999px!important;font-size:10px!important;font-weight:850!important}
.modernDashboard .dashboardWorkMeta{display:flex!important;flex-wrap:wrap!important;gap:5px 12px!important;color:#8a96a8!important}
.modernDashboard .dashboardWorkMeta small,.modernDashboard .dashboardAddressRow small{font-size:11px!important;color:#8a96a8!important}
.modernDashboard .dashboardAddressRow{margin-top:-2px!important}
.modernDashboard .dashboardItemActions{margin-top:2px!important;padding-top:7px!important;border-top:0!important}
.modernDashboard .dashboardOpenHint{font-size:10px!important;color:#91a0b3!important;font-weight:800!important}
.modernDashboard .dashboardQuickMini button{min-height:31px!important;padding:5px 8px!important;border-radius:10px!important;background:#f6f8fb!important;color:#536177!important;font-size:10px!important}
.modernDashboard .dashboardEmpty{padding:20px 4px!important;text-align:center!important;color:#8a96a8!important}
.modernDashboard .dashboardEmpty p{margin:5px 0!important;font-size:12px!important}
.modernDashboard .dashboardMore{padding:11px 0!important;text-align:center!important;color:#8a96a8!important;font-size:10.5px!important}

/* More/settings screen */
#settingsView{display:grid;gap:14px}
#settingsView[hidden]{display:none!important}
#settingsView .settingsCard{margin:0!important;border:1px solid #edf0f4!important;border-radius:22px!important;background:#fff!important;box-shadow:var(--modern-shadow)!important}
#settingsView .settingsMenuCard{padding:8px 16px 6px!important;display:block!important}
.moreQuickGrid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;padding:8px 0 14px!important;border-bottom:1px solid #eef1f5!important;margin-bottom:2px!important}
.moreQuickButton{min-height:94px!important;padding:14px!important;display:grid!important;grid-template-columns:34px 1fr!important;grid-template-rows:auto auto!important;align-items:center!important;column-gap:9px!important;text-align:left!important;border-radius:17px!important;background:#f8faff!important;border:1px solid #edf2fb!important;color:#172033!important}
.moreQuickIcon{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#eaf2ff;color:#2f6fed}
.moreQuickIcon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.moreQuickButton b{font-size:12px!important;align-self:end}.moreQuickButton small{font-size:9.5px!important;color:#8b97a8!important;align-self:start}
#settingsView .settingsMenuButton{min-height:54px!important;padding:0 4px!important;border-radius:0!important;border:0!important;border-bottom:1px solid #f0f2f5!important;background:#fff!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:space-between!important;color:#172033!important;text-align:left!important}
#settingsView .settingsMenuButton:last-child{border-bottom:0!important}
#settingsView .settingsMenuButton b{font-size:13px!important;font-weight:800!important}
#settingsView .settingsMenuButton strong{font-size:21px!important;color:#a2abb9!important;font-weight:500!important}
#settingsView .versionCard{padding:15px 17px!important}

/* General modern shell touches */
#calendarView>.card,#workView>.card,#historyView>.card,#customersView>.card,#revenueView>.card,#receivablesView>.card{
  border-color:#edf0f4!important;box-shadow:0 8px 26px rgba(30,58,95,.055)!important;
}

/* Dark mode remains readable while preserving the new hierarchy */
html[data-theme="dark"] body,html[data-theme="dark"]{background:#0f172a!important}
html[data-theme="dark"] .brandTitleWrap h1{color:#f8fafc!important}
html[data-theme="dark"] .brandTitleWrap p{color:#94a3b8!important}
html[data-theme="dark"] .headerIconBtn,html[data-theme="dark"] .topTabs.appBottomNav,html[data-theme="dark"] .modernListCard,html[data-theme="dark"] .modernListCard summary,html[data-theme="dark"] #settingsView .settingsCard,html[data-theme="dark"] #settingsView .settingsMenuButton{background:#182235!important;border-color:#263449!important;color:#f8fafc!important}
html[data-theme="dark"] .dashboardHero.modernHero{background:linear-gradient(145deg,#172236,#18283b)!important;border-color:#263449!important}
html[data-theme="dark"] .dashboardHeroCopy h2,html[data-theme="dark"] .dashboardSectionTitle b,html[data-theme="dark"] .modernDashboard .dashboardWorkTitle b{color:#f8fafc!important}
html[data-theme="dark"] .modernStats{background:#111b2b!important;border-color:#263449!important}
html[data-theme="dark"] .modernStats .dashboardStat b,html[data-theme="dark"] .modernStats .dashboardStat small{color:#f8fafc!important}
html[data-theme="dark"] .modernStats .dashboardStat:not(:last-child)::after,html[data-theme="dark"] .modernListCard[open] summary,html[data-theme="dark"] .modernDashboard .dashboardWorkItem,html[data-theme="dark"] #settingsView .settingsMenuButton{border-color:#263449!important}
html[data-theme="dark"] .modernDashboard .dashboardWorkItem{background:#182235!important}
html[data-theme="dark"] .moreQuickButton{background:#111b2b!important;border-color:#263449!important;color:#f8fafc!important}

@media(max-width:430px){
  .app{padding-left:12px!important;padding-right:12px!important}
  .brandHeader.modernHeader{margin-bottom:14px!important}
  .modernHeader .brandMascot{width:56px!important;height:56px!important;flex-basis:56px!important}
  .modernHeader .brandTitleWrap h1{font-size:27px!important}
  .modernHeader .brandTitleWrap p{font-size:10px!important}
  .headerIconBtn{width:38px!important;height:38px!important;min-width:38px!important;flex-basis:38px!important}
  .dashboardHero.modernHero{padding:18px!important;border-radius:23px!important}
  .dashboardHeroCopy h2{font-size:22px!important}
  .modernStats{padding:13px 2px!important}
  .modernStats .dashboardStat{min-height:91px!important}
  .modernStats .statIcon{width:39px;height:39px}
  .modernStats .dashboardStat b{font-size:24px!important}
  .modernListCard{border-radius:21px!important}
  .modernListCard summary{padding:14px 15px!important}
  .modernListCard .dashboardList{padding:0 15px 7px!important}
  .topTabs.appBottomNav{padding-left:7px!important;padding-right:7px!important}
}

/* =========================================================
   v3.4.42 — settings/calendar polish
   - reminder selected text no inner highlight block
   - calendar date-number circle removed; selected/today uses cell outline only
   - modern UI primary accent follows Screen Settings color immediately
   ========================================================= */

/* 1) Reminder time chips: selected state belongs to the whole button only */
#notificationView .notificationRuleGrid label:has(input:checked){
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  box-shadow:0 2px 7px rgba(17,24,39,.12)!important;
}
#notificationView .notificationRuleGrid input:checked + span,
#notificationView .notificationRuleGrid label:has(input:checked) span{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:var(--accent-contrast)!important;
}
html[data-theme="dark"] #notificationView .notificationRuleGrid label:has(input:checked){
  background:var(--accent)!important;
  border-color:var(--accent)!important;
}
html[data-theme="dark"] #notificationView .notificationRuleGrid label:has(input:checked) span{
  background:transparent!important;
  color:#fff!important;
}

/* 2) Calendar: no circle around the date number. Cell outline already shows today/selected. */
#calendarView .calendarDay.today .calendarDateNum,
#calendarView .calendarDay.today.selected .calendarDateNum,
#calendarView .calendarDay.selected .calendarDateNum{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  line-height:1!important;
}
#calendarView .calendarDay.selected,
#calendarView .calendarDay.today.selected{
  background:var(--accent-soft)!important;
  border-color:var(--accent)!important;
  box-shadow:inset 0 0 0 1px var(--accent)!important;
}
#calendarView .calendarDay.today:not(.selected){
  background:#fff!important;
  border-color:#d7dde6!important;
  box-shadow:inset 0 0 0 1px #d7dde6!important;
}
html[data-theme="dark"] #calendarView .calendarDay.today:not(.selected){
  background:#111827!important;
  border-color:#475569!important;
  box-shadow:inset 0 0 0 1px #475569!important;
}

/* 3) Modern UI: Screen Settings accent drives the primary app identity */
:root{
  --modern-blue:var(--accent);
  --modern-blue-2:var(--accent);
}
.appBottomNav .tabBtn.active,
.appBottomNav .composeTab.active,
.headerSettingsBtn.active{
  color:var(--accent)!important;
}
.appBottomNav .composeTab .composeCircle,
.dashboardPrimaryCta{
  background:var(--accent)!important;
}
.appBottomNav .composeTab .composeCircle{
  box-shadow:0 8px 22px rgba(15,23,42,.18)!important;
}
.dashboardPrimaryCta{
  box-shadow:0 10px 24px rgba(15,23,42,.14)!important;
}
.sectionIcon,
.moreQuickIcon{
  background:var(--accent-soft)!important;
  color:var(--accent)!important;
}
.headerSettingsBtn.active{
  border-color:var(--accent-soft)!important;
}

/* v3.4.43: mobile dashboard stats layout hard-fix
   Legacy #dashboardView rules used ID specificity and were overriding the modern cards. */
#dashboardView .modernStats .dashboardStat{
  min-width:0!important;
  min-height:78px!important;
  padding:8px 8px!important;
  display:grid!important;
  grid-template-columns:40px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
  justify-content:stretch!important;
  column-gap:8px!important;
  row-gap:1px!important;
  text-align:left!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
}
#dashboardView .modernStats .dashboardStat .statIcon{
  grid-column:1!important;
  grid-row:1 / 3!important;
  width:40px!important;
  height:40px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
}
#dashboardView .modernStats .dashboardStat .statText{
  grid-column:2!important;
  grid-row:1!important;
  display:block!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:11px!important;
  line-height:1.15!important;
  color:#6f7c90!important;
  font-weight:800!important;
}
#dashboardView .modernStats .dashboardStat b{
  grid-column:2!important;
  grid-row:2!important;
  display:block!important;
  margin:0!important;
  white-space:nowrap!important;
  font-size:22px!important;
  line-height:1.05!important;
  color:#0f172a!important;
  font-weight:900!important;
  letter-spacing:-.4px!important;
}
#dashboardView .modernStats .dashboardStat b::after{
  content:"건";
  margin-left:3px;
  font-size:10px;
  line-height:1;
  font-weight:800;
  color:#0f172a;
  letter-spacing:0;
}
#dashboardView .modernStats .dashboardStat small{display:none!important}
@media(max-width:360px){
  #dashboardView .modernStats .dashboardStat{grid-template-columns:34px minmax(0,1fr)!important;column-gap:5px!important;padding:7px 5px!important}
  #dashboardView .modernStats .dashboardStat .statIcon{width:34px!important;height:34px!important}
  #dashboardView .modernStats .dashboardStat .statIcon svg{width:18px!important;height:18px!important}
  #dashboardView .modernStats .dashboardStat b{font-size:19px!important}
  #dashboardView .modernStats .dashboardStat .statText{font-size:10px!important}
}

/* v3.4.44: Android system navigation inset bridge.
   Android MainActivity injects --android-nav-inset in CSS px.
   Default stays 0 on desktop/mobile browsers. */
:root{--android-nav-inset:0px}
.topTabs.appBottomNav{
  bottom:var(--android-nav-inset)!important;
  height:78px!important;
  padding:7px 14px!important;
}
.app{
  padding-bottom:calc(104px + var(--android-nav-inset))!important;
}
@media (min-width:521px){
  .app{padding-bottom:calc(104px + var(--android-nav-inset))!important}
}

/* =========================================================
   v3.4.48 — compact More screen
   ========================================================= */
#settingsView{gap:10px!important}
#settingsView .modernMoreMenu{padding:14px 14px 10px!important;border-radius:20px!important}
.moreSectionHead{display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:24px!important;margin:0 2px 7px!important;color:#8b95a1!important;font-size:10px!important;font-weight:850!important;letter-spacing:.01em!important}
.moreSectionHeadSettings{margin-top:10px!important}
.moreQuickGrid{gap:8px!important;padding:0 0 12px!important;margin:0!important;border-bottom:0!important}
.moreQuickButton{min-height:68px!important;height:68px!important;padding:10px 11px!important;display:grid!important;grid-template-columns:32px minmax(0,1fr) 14px!important;grid-template-rows:1fr!important;align-items:center!important;column-gap:9px!important;border-radius:15px!important;background:#f8faff!important}
.moreQuickIcon{grid-row:auto!important;width:32px!important;height:32px!important;border-radius:10px!important}
.moreQuickIcon svg{width:17px!important;height:17px!important}
.moreQuickText{display:grid!important;gap:2px!important;min-width:0!important}
.moreQuickButton b{font-size:12px!important;line-height:1.2!important;align-self:auto!important}
.moreQuickButton small{font-size:9px!important;line-height:1.25!important;align-self:auto!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.moreQuickButton>strong{font-size:18px!important;line-height:1!important;color:#a7b0be!important;font-weight:500!important}
.moreMenuGroup{overflow:hidden!important;border:1px solid #eef1f5!important;border-radius:15px!important;background:#fff!important;margin-bottom:10px!important}
#settingsView .moreMenuGroup .settingsMenuButton{min-height:46px!important;height:46px!important;padding:0 11px!important;border-bottom:1px solid #f0f2f5!important}
#settingsView .moreMenuGroup .settingsMenuButton:last-child{border-bottom:0!important}
#settingsView .moreMenuGroup .settingsMenuButton b{font-size:12.5px!important;line-height:1.2!important}
#settingsView .moreMenuGroup .settingsMenuButton strong{font-size:19px!important}
#settingsView .compactVersionCard{padding:10px 13px!important;border-radius:16px!important;box-shadow:none!important}
#settingsView .compactVersionCard b{font-size:11px!important}
#settingsView .compactVersionCard small{font-size:8.5px!important}
#settingsView .compactVersionCard>span{font-size:9.5px!important;padding:5px 8px!important}
html[data-theme="dark"] .moreMenuGroup{background:#182235!important;border-color:#263449!important}
@media(max-width:430px){
  #settingsView .modernMoreMenu{padding:12px 12px 9px!important}
  .moreQuickButton{min-height:64px!important;height:64px!important;padding:9px 10px!important}
  #settingsView .moreMenuGroup .settingsMenuButton{min-height:44px!important;height:44px!important}
}


/* =========================================================
   v3.4.48 — dashboard hero decoration separation
   - refresh action stays in the title row
   - decorative sun/scenery sits lower as background only
   - prevents refresh button / sun visual overlap on mobile
   ========================================================= */
.dashboardHero.modernHero{
  background:
    radial-gradient(circle at 90% 34%,rgba(253,204,107,.27) 0 20px,transparent 21px),
    radial-gradient(circle at 82% 52%,rgba(183,224,255,.20) 0 44px,transparent 45px),
    linear-gradient(145deg,#ffffff 0%,#f5fbff 55%,#edf9f5 100%)!important;
}
.dashboardHeroTop{
  align-items:flex-start!important;
  margin-bottom:20px!important;
}
.modernHero .refreshIconBtn{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  flex:0 0 32px!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(226,232,240,.95)!important;
  color:#64748b!important;
  box-shadow:0 2px 8px rgba(15,23,42,.035)!important;
  position:relative!important;
  z-index:3!important;
}
.modernHero .refreshIconBtn .uiLineIcon,
.modernHero .refreshIconBtn svg{
  width:15px!important;
  height:15px!important;
}
@media(max-width:430px){
  .dashboardHero.modernHero{
    background:
      radial-gradient(circle at 91% 36%,rgba(253,204,107,.25) 0 19px,transparent 20px),
      radial-gradient(circle at 83% 54%,rgba(183,224,255,.18) 0 39px,transparent 40px),
      linear-gradient(145deg,#ffffff 0%,#f5fbff 55%,#edf9f5 100%)!important;
  }
  .dashboardHeroTop{margin-bottom:22px!important}
}
html[data-theme="dark"] .dashboardHero.modernHero{
  background:linear-gradient(145deg,#172236,#18283b)!important;
}


/* v3.4.50: 홈 요금제 카드 강조 강화 */
.dashboardPlanCta{
  margin-top:10px;
  padding:12px 13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid color-mix(in srgb,var(--accent,#2563eb) 24%,#e5e7eb);
  border-radius:15px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#2563eb) 8%,#fff),#fff 68%);
}
.dashboardPlanCtaCopy{display:grid;gap:2px;min-width:0;flex:1}
.dashboardPlanCtaCopy>span{font-size:9.5px;font-weight:900;color:var(--accent,#2563eb)}
.dashboardPlanCtaCopy>b{font-size:12.5px;line-height:1.3;color:var(--text,#111827)}
.dashboardPlanCtaCopy>small{font-size:9.5px;line-height:1.35;color:var(--muted,#64748b)}
.dashboardPlanButton{flex:0 0 auto;min-height:34px!important;padding:7px 10px!important;border-radius:10px!important;background:var(--accent,#2563eb)!important;color:#fff!important;font-size:10px!important;font-weight:900!important;white-space:nowrap}
.dashboardPlanButton span{margin-left:3px;font-size:14px;line-height:1}
.subscriptionMenuFeatured{
  border:1px solid color-mix(in srgb,var(--accent,#2563eb) 22%,#e5e7eb)!important;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent,#2563eb) 6%,#fff),#fff)!important;
}
.subscriptionMenuCopy{display:grid!important;gap:2px!important;min-width:0!important;text-align:left!important}
.subscriptionMenuCopy small{font-size:9px!important;color:var(--muted,#64748b)!important;font-weight:700!important;line-height:1.25!important}
.subscriptionMenuAction{margin-left:auto;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent,#2563eb) 11%,#fff);color:var(--accent,#2563eb);font-size:8.5px;font-weight:900;white-space:nowrap}
.subscriptionHeader>div{min-width:0}
.subscriptionHeader p{margin:3px 0 0;font-size:10px;line-height:1.35;color:var(--muted,#64748b)}
@media(max-width:420px){
  .dashboardPlanCta{padding:10px 11px;gap:8px}
  .dashboardPlanCtaCopy>b{font-size:11.5px}
  .dashboardPlanCtaCopy>small{font-size:8.8px}
  .dashboardPlanButton{padding:6px 8px!important;font-size:9.3px!important}
  .subscriptionMenuAction{display:none}
}
html[data-theme="dark"] .dashboardPlanCta,html[data-theme="dark"] .subscriptionMenuFeatured{background:linear-gradient(135deg,#1f2937,#111827)!important}


/* v3.4.50: 홈 구독 상태 카드 시각적 강조 */
.dashboardPlanCta{
  position:relative;
  overflow:hidden;
  margin-top:12px!important;
  padding:14px 14px!important;
  min-height:78px;
  border:1px solid color-mix(in srgb,var(--accent,#2563eb) 34%,#dbe3ee)!important;
  border-left:3px solid var(--accent,#2563eb)!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#2563eb) 13%,#fff),color-mix(in srgb,var(--accent,#2563eb) 4%,#fff) 72%,#fff)!important;
  box-shadow:0 8px 22px color-mix(in srgb,var(--accent,#2563eb) 10%,transparent)!important;
}
.dashboardPlanCta::after{
  content:'';
  position:absolute;
  width:84px;
  height:84px;
  right:-26px;
  top:-30px;
  border-radius:50%;
  background:color-mix(in srgb,var(--accent,#2563eb) 8%,transparent);
  pointer-events:none;
}
.dashboardPlanCtaCopy{gap:4px!important;position:relative;z-index:1}
.dashboardPlanCtaCopy>span{
  display:inline-flex;
  width:max-content;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  background:color-mix(in srgb,var(--accent,#2563eb) 13%,#fff);
  color:var(--accent,#2563eb)!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.1px;
}
.dashboardPlanCtaCopy>b{
  font-size:14px!important;
  line-height:1.3!important;
  letter-spacing:-.15px;
  color:var(--text,#111827)!important;
}
.dashboardPlanCtaCopy>small{
  font-size:9.8px!important;
  line-height:1.4!important;
  color:var(--muted,#64748b)!important;
  font-weight:650;
}
.dashboardPlanButton{
  position:relative;
  z-index:1;
  min-height:38px!important;
  padding:8px 12px!important;
  border-radius:11px!important;
  box-shadow:0 5px 12px color-mix(in srgb,var(--accent,#2563eb) 18%,transparent)!important;
  font-size:10px!important;
}
@media(max-width:420px){
  .dashboardPlanCta{padding:12px 11px!important;gap:9px!important;min-height:74px}
  .dashboardPlanCtaCopy>b{font-size:12.7px!important}
  .dashboardPlanCtaCopy>small{font-size:9px!important}
  .dashboardPlanButton{padding:7px 9px!important;font-size:9.2px!important;min-height:36px!important}
}
html[data-theme="dark"] .dashboardPlanCta{
  border-color:color-mix(in srgb,var(--accent,#2563eb) 45%,#374151)!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#2563eb) 22%,#111827),#111827 72%)!important;
}


/* v3.4.50: 홈 하단 프리미엄 요금제 CTA */
#dashboardView>.dashboardPlanCtaPremium{
  position:relative!important;
  overflow:hidden!important;
  margin:18px 0 8px!important;
  min-height:150px!important;
  padding:20px 18px 18px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  border:1px solid color-mix(in srgb,var(--accent,#0f8f82) 45%,#d9e7e4)!important;
  border-radius:22px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--accent,#0f8f82) 18%,#fff) 0%,#ffffff 48%,color-mix(in srgb,var(--accent,#0f8f82) 8%,#fff) 100%)!important;
  box-shadow:0 14px 34px color-mix(in srgb,var(--accent,#0f8f82) 16%,transparent)!important;
  isolation:isolate;
}
#dashboardView>.dashboardPlanCtaPremium::before{
  content:'PRO';
  position:absolute;
  right:20px;
  top:14px;
  font-size:52px;
  line-height:1;
  font-weight:950;
  letter-spacing:-3px;
  color:color-mix(in srgb,var(--accent,#0f8f82) 7%,transparent);
  z-index:-1;
  pointer-events:none;
}
.dashboardPlanGlow{position:absolute;border-radius:999px;filter:blur(2px);pointer-events:none;z-index:-1}
.dashboardPlanGlowOne{width:140px;height:140px;right:-50px;bottom:-60px;background:color-mix(in srgb,var(--accent,#0f8f82) 13%,transparent)}
.dashboardPlanGlowTwo{width:90px;height:90px;left:-28px;top:-32px;background:color-mix(in srgb,var(--accent,#0f8f82) 9%,transparent)}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanCtaCopy{display:grid!important;gap:6px!important;min-width:0!important;position:relative!important;z-index:1!important}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanBadge{
  display:inline-flex!important;
  width:max-content!important;
  align-items:center!important;
  min-height:25px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:var(--accent,#0f8f82)!important;
  color:#fff!important;
  font-size:9.5px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.2px!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--accent,#0f8f82) 22%,transparent)!important;
}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanCtaCopy>b{
  margin-top:2px!important;
  max-width:390px!important;
  font-size:18px!important;
  line-height:1.25!important;
  letter-spacing:-.5px!important;
  color:var(--text,#101828)!important;
  font-weight:950!important;
}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanCtaCopy>small{
  max-width:420px!important;
  font-size:10.8px!important;
  line-height:1.45!important;
  color:var(--muted,#667085)!important;
  font-weight:700!important;
}
.dashboardPlanBenefits{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.dashboardPlanBenefits span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid color-mix(in srgb,var(--accent,#0f8f82) 20%,#e5e7eb);
  color:color-mix(in srgb,var(--accent,#0f8f82) 80%,#0f172a);
  font-size:8.8px;
  font-weight:850;
  white-space:nowrap;
}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanButtonPremium{
  position:relative!important;
  z-index:2!important;
  min-width:128px!important;
  min-height:48px!important;
  padding:10px 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  border-radius:14px!important;
  background:var(--accent,#0f8f82)!important;
  color:#fff!important;
  box-shadow:0 9px 22px color-mix(in srgb,var(--accent,#0f8f82) 28%,transparent)!important;
  font-size:11px!important;
  font-weight:950!important;
}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanButtonPremium strong{font-size:11px!important;font-weight:950!important}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanButtonPremium span{font-size:19px!important;line-height:1!important;margin:0!important}
#dashboardView>.dashboardPlanCtaPremium .dashboardPlanButtonPremium:active{transform:translateY(1px);box-shadow:0 5px 14px color-mix(in srgb,var(--accent,#0f8f82) 24%,transparent)!important}
@media(max-width:520px){
  #dashboardView>.dashboardPlanCtaPremium{
    min-height:0!important;
    margin:16px 0 8px!important;
    padding:17px 15px 15px!important;
    grid-template-columns:1fr!important;
    gap:13px!important;
  }
  #dashboardView>.dashboardPlanCtaPremium::before{right:12px;top:12px;font-size:44px}
  #dashboardView>.dashboardPlanCtaPremium .dashboardPlanCtaCopy>b{font-size:16px!important;max-width:82%!important}
  #dashboardView>.dashboardPlanCtaPremium .dashboardPlanCtaCopy>small{font-size:10px!important}
  #dashboardView>.dashboardPlanCtaPremium .dashboardPlanButtonPremium{width:100%!important;min-height:46px!important}
  .dashboardPlanBenefits{gap:5px}
  .dashboardPlanBenefits span{font-size:8.4px;padding:4px 7px}
}
html[data-theme="dark"] #dashboardView>.dashboardPlanCtaPremium{
  border-color:color-mix(in srgb,var(--accent,#0f8f82) 52%,#334155)!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#0f8f82) 22%,#111827),#111827 58%,#172033)!important;
}
html[data-theme="dark"] .dashboardPlanBenefits span{background:rgba(15,23,42,.72);border-color:color-mix(in srgb,var(--accent,#0f8f82) 34%,#334155)}

/* v3.4.55 billing tap diagnostics */
#subscriptionView,#subscriptionView .settingsCard,#subscriptionView .subscriptionPlans,#subscriptionView .subscriptionPlanCard{position:relative!important;pointer-events:auto!important}
#basicPlanBtn,#proPlanBtn{position:relative!important;z-index:20001!important;pointer-events:auto!important;touch-action:manipulation!important;cursor:pointer!important;-webkit-tap-highlight-color:rgba(79,70,229,.16)!important}
#billingDiagToast{position:fixed!important;left:50%!important;bottom:150px!important;transform:translateX(-50%)!important;z-index:99999!important;max-width:calc(100vw - 32px)!important;padding:11px 14px!important;border-radius:12px!important;background:#111827!important;color:#fff!important;font-size:13px!important;font-weight:800!important;line-height:1.35!important;box-shadow:0 8px 28px rgba(0,0,0,.28)!important;pointer-events:none!important;text-align:center!important}


/* =========================================================
   v3.4.60 — Subscription cancellation sync / mobile bottom safe area
   ========================================================= */
#subscriptionView{
  padding-bottom:calc(138px + var(--android-nav-inset,0px))!important;
}
#subscriptionView .subscriptionPageCard{
  margin-bottom:18px!important;
  overflow:visible!important;
}
#subscriptionView .subscriptionPlans{
  padding-bottom:10px!important;
}
body.subscriptionViewActive .scrollTopBtn{
  display:none!important;
}
@media(max-width:520px){
  #subscriptionView{
    padding-bottom:calc(156px + var(--android-nav-inset,0px))!important;
  }
  #subscriptionView .subscriptionPlanCard{
    overflow:visible!important;
  }
  #subscriptionView #basicPlanBtn,
  #subscriptionView #proPlanBtn{
    position:relative!important;
    z-index:2!important;
    margin-bottom:4px!important;
  }
}


/* =========================================================
   v3.4.61 — 하단 더보기=설정 진입점 / 구독 해지 상태 표시
   ========================================================= */
.headerActions{
  gap:0!important;
}
#subscriptionView #basicPlanBtn:disabled,
#subscriptionView #proPlanBtn:disabled{
  opacity:1!important;
}


/* =========================================================
   v3.4.63 — 로그인 접근성 / 내 정보 구조 / 홈 시작
   ========================================================= */
.headerActions{
  gap:7px!important;
}
.headerAuthBtn{
  min-width:58px!important;
  height:38px!important;
  padding:0 12px!important;
  border:1px solid #dbe8ff!important;
  border-radius:999px!important;
  background:#eff6ff!important;
  color:#2563eb!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-.2px!important;
  box-shadow:none!important;
  white-space:nowrap!important;
}
.headerAuthBtn.signedIn{
  border-color:#e5e7eb!important;
  background:#fff!important;
  color:#64748b!important;
}
.profileLoginGuide{
  margin:0 0 9px!important;
  font-size:10.5px!important;
  line-height:1.55!important;
  color:#64748b!important;
}
.profileInfoList{
  display:grid!important;
  gap:6px!important;
  margin:0 0 8px!important;
}
.profileInfoRow{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  min-height:34px!important;
  padding:7px 9px!important;
  border:1px solid #edf1f5!important;
  border-radius:9px!important;
  background:#fff!important;
}
.profileInfoRow span{
  flex:0 0 auto!important;
  font-size:10px!important;
  font-weight:800!important;
  color:#64748b!important;
}
.profileInfoRow b{
  min-width:0!important;
  text-align:right!important;
  font-size:11.5px!important;
  color:#172033!important;
  word-break:break-all!important;
}
.profileLoggedInMeta{
  display:flex!important;
  justify-content:flex-end!important;
  margin:0 0 7px!important;
}
.profileInfoSection{
  padding:10px!important;
  margin:0 0 10px!important;
  border:1px solid #e8edf4!important;
  border-radius:12px!important;
  background:#fbfcfe!important;
}
.profileInfoSection .profileSectionTitle{
  margin:0 0 8px!important;
}
#profileSignedContent #saveProfileBtn{
  margin-top:2px!important;
}
#openProfileBtn span{
  display:grid!important;
  gap:2px!important;
}
#openProfileBtn small{
  font-size:9.5px!important;
  font-weight:650!important;
  color:#94a3b8!important;
}
html[data-theme="dark"] .headerAuthBtn{
  background:#172554!important;
  border-color:#1e3a8a!important;
  color:#bfdbfe!important;
}
html[data-theme="dark"] .headerAuthBtn.signedIn{
  background:#1f2937!important;
  border-color:#374151!important;
  color:#cbd5e1!important;
}
html[data-theme="dark"] .profileInfoRow{
  background:#1f2937!important;
  border-color:#374151!important;
}
html[data-theme="dark"] .profileInfoRow span,
html[data-theme="dark"] .profileLoginGuide{
  color:#9ca3af!important;
}
html[data-theme="dark"] .profileInfoRow b{
  color:#f8fafc!important;
}
html[data-theme="dark"] .profileInfoSection{
  background:#111827!important;
  border-color:#374151!important;
}
@media(max-width:420px){
  .brandTitleWrap p{display:none!important;}
  .headerActions{gap:5px!important;}
  .headerAuthBtn{min-width:54px!important;padding:0 9px!important;font-size:10.5px!important;}
  .headerIconBtn{width:36px!important;height:36px!important;min-width:36px!important;flex-basis:36px!important;}
}


/* =========================================================
   v3.4.64 — 전역 로그인 팝업
   ========================================================= */
body.authModalOpen{
  overflow:hidden!important;
}
.authModal[hidden]{
  display:none!important;
}
.authModal{
  position:fixed!important;
  inset:0!important;
  z-index:3000!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
.authModalBackdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.38)!important;
  backdrop-filter:blur(2px)!important;
}
.authModalSheet{
  position:relative!important;
  z-index:1!important;
  width:min(100%,480px)!important;
  margin:0!important;
  padding:14px 14px calc(18px + env(safe-area-inset-bottom))!important;
  border:1px solid #e5e7eb!important;
  border-bottom:0!important;
  border-radius:20px 20px 0 0!important;
  background:#fff!important;
  box-shadow:0 -16px 42px rgba(15,23,42,.16)!important;
  animation:authModalIn .18s ease-out!important;
}
@keyframes authModalIn{
  from{transform:translateY(18px);opacity:.5}
  to{transform:translateY(0);opacity:1}
}
.authModalHeader{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-bottom:12px!important;
}
.authModalHeader>div{
  display:grid!important;
  gap:2px!important;
}
.authModalHeader b{
  font-size:16px!important;
  color:#172033!important;
}
.authModalHeader small{
  font-size:10.5px!important;
  color:#64748b!important;
}
.authModalCloseBtn{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  font-size:23px!important;
  font-weight:400!important;
  line-height:1!important;
}
.authModalBody{
  display:grid!important;
  gap:9px!important;
}
.authModalField{
  display:grid!important;
  gap:5px!important;
}
.authModalField>span{
  padding-left:2px!important;
  font-size:10px!important;
  font-weight:800!important;
  color:#64748b!important;
}
.authModalField input{
  width:100%!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid #dbe3ec!important;
  border-radius:11px!important;
  background:#fff!important;
  font-size:13px!important;
}
.authModalActions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin-top:2px!important;
}
.authModalActions button{
  min-height:43px!important;
  margin:0!important;
}
.authModalNotice{
  min-height:18px!important;
  margin:0!important;
  text-align:center!important;
  font-size:10.5px!important;
}
.authModalHint{
  margin:0!important;
  text-align:center!important;
  font-size:9.5px!important;
  line-height:1.45!important;
  color:#94a3b8!important;
}
.profileSignedOutBox{
  display:grid!important;
  gap:8px!important;
}
.profileSignedOutBox .profileLoginGuide{
  margin:0!important;
}
html[data-theme="dark"] .authModalBackdrop{
  background:rgba(0,0,0,.55)!important;
}
html[data-theme="dark"] .authModalSheet{
  border-color:#374151!important;
  background:#111827!important;
}
html[data-theme="dark"] .authModalHeader b{
  color:#f8fafc!important;
}
html[data-theme="dark"] .authModalHeader small,
html[data-theme="dark"] .authModalField>span{
  color:#9ca3af!important;
}
html[data-theme="dark"] .authModalCloseBtn{
  background:#1f2937!important;
  color:#cbd5e1!important;
}
html[data-theme="dark"] .authModalField input{
  border-color:#374151!important;
  background:#1f2937!important;
  color:#f8fafc!important;
}
@media(min-width:700px){
  .authModal{
    align-items:center!important;
    padding:24px!important;
  }
  .authModalSheet{
    border-bottom:1px solid #e5e7eb!important;
    border-radius:18px!important;
    padding:18px!important;
  }
  html[data-theme="dark"] .authModalSheet{
    border-color:#374151!important;
  }
}


/* =========================================================
   v3.4.65 — 더보기 전체 행 터치 / 로그인 팝업 안정화
   ========================================================= */

/* 메뉴 안쪽 글자·설명·화살표가 터치 이벤트를 가로채지 않게 한다.
   어느 부분을 눌러도 부모 button 자체가 실제 클릭 타깃이 된다. */
#settingsView .settingsMenuButton > *,
#settingsView .settingsMenuButton > * *,
#settingsView .moreQuickButton > *,
#settingsView .moreQuickButton > * *{
  pointer-events:none!important;
}

#settingsView .settingsMenuButton,
#settingsView .moreQuickButton{
  position:relative!important;
  z-index:1!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:rgba(47,111,237,.10)!important;
  user-select:none!important;
}

#settingsView .settingsMenuButton:active,
#settingsView .moreQuickButton:active{
  background:var(--accent-soft)!important;
  transform:scale(.995)!important;
}

.headerAuthBtn:disabled{
  opacity:.6!important;
  pointer-events:none!important;
}



/* =========================================================
   v3.4.68 — Android native voice bridge + work save button safe area
   ========================================================= */
#workView{
  padding-bottom:calc(176px + var(--android-nav-inset,0px))!important;
}
#workView .saveOnlyCard{
  bottom:calc(88px + var(--android-nav-inset,0px))!important;
  z-index:120!important;
}
@media(max-width:520px){
  #workView{
    padding-bottom:calc(188px + var(--android-nav-inset,0px))!important;
  }
  #workView .saveOnlyCard{
    bottom:calc(86px + var(--android-nav-inset,0px))!important;
  }
}


/* =========================================================
   v3.4.69 — refreshed theme colors inspired by modern productivity apps
   ========================================================= */
:root{
  --page-bg:#f4f7fb;
  --page-bg-2:#eef3fb;
  --card-bg:#ffffff;
  --line-soft:#e3eaf4;
  --text-main:#182235;
  --muted-main:#66758c;
  --surface-soft:#f7faff;
  --surface-accent:color-mix(in srgb,var(--accent,#3b5bdb) 9%,#fff);
  --shadow-soft:0 12px 30px rgba(32,56,96,.08);
  --shadow-strong:0 18px 40px rgba(32,56,96,.12);
}
body{
  background:linear-gradient(180deg,var(--page-bg) 0%,var(--page-bg-2) 100%)!important;
  color:var(--text-main)!important;
}
.app{
  color:var(--text-main)!important;
}
.brandHeader.modernHeader{
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.2))!important;
}
.brandTitleWrap h1,
.card h2,
.hero h2,
.subpageHeader h2,
.sectionTitle h2{
  color:var(--text-main)!important;
}
.brandTitleWrap p,
.eyebrow,
label,
.notice,
.card small,
.authModalHint,
.subpageHeader small{
  color:var(--muted-main)!important;
}
.card,
.settingsCard,
.calendarCard,
.historyItemCard,
.receivablesCard,
.workVoiceCard,
.modernListCard,
.dashboardListCard,
.settingsMenuCard,
.planCard,
.displaySettingsCard,
.subscriptionCard,
.profileCard,
.backupCard,
.messageCard,
.workNestedSection{
  background:rgba(255,255,255,.92)!important;
  border:1px solid var(--line-soft)!important;
  box-shadow:var(--shadow-soft)!important;
}
textarea,input,select{
  border:1px solid var(--line-soft)!important;
  background:#fff!important;
  color:var(--text-main)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
}
textarea::placeholder,input::placeholder{color:#8a97aa!important}
.primary,.full,
.dashboardPrimaryCta,
.dashboardPlanButton,
.authModalActions .primary,
.composeCircle,
.topTabs .composeTab.active .composeCircle{
  background:linear-gradient(135deg,var(--accent,#3b5bdb),color-mix(in srgb,var(--accent,#3b5bdb) 78%,#fff))!important;
  color:var(--accent-contrast,#fff)!important;
  box-shadow:0 10px 22px color-mix(in srgb,var(--accent,#3b5bdb) 24%,transparent)!important;
}
.ghost,
.smallBtn,
.resetBtn,
.calendarMainAction,
.backSettingsBtn,
.iconBackBtn,
.historySearchIcon,
.contactPickBtn,
.addressRouteBtn{
  background:var(--surface-soft)!important;
  color:var(--text-main)!important;
  border:1px solid var(--line-soft)!important;
}
.headerAuthBtn{
  background:var(--surface-accent)!important;
  color:var(--accent,#3b5bdb)!important;
  border:1px solid color-mix(in srgb,var(--accent,#3b5bdb) 24%,#dbeafe)!important;
}
.headerAuthBtn.signedIn{
  background:#fff!important;
  color:var(--muted-main)!important;
  border:1px solid var(--line-soft)!important;
}
.topTabs{
  background:linear-gradient(180deg,rgba(244,247,251,.98),rgba(244,247,251,.88))!important;
  backdrop-filter:blur(16px)!important;
  border-top:1px solid rgba(255,255,255,.45)!important;
}
.tabBtn{
  background:#ecf1f7!important;
  color:#56657d!important;
  border:1px solid transparent!important;
}
.tabBtn.active{
  background:var(--surface-accent)!important;
  color:var(--accent,#3b5bdb)!important;
  border-color:color-mix(in srgb,var(--accent,#3b5bdb) 18%,#dbeafe)!important;
}
.tabBtn .composeCircle{
  background:linear-gradient(135deg,var(--accent,#3b5bdb),color-mix(in srgb,var(--accent,#3b5bdb) 74%,#fff))!important;
}
.dashboardHero.modernHero{
  background:linear-gradient(180deg,#ffffff 0%,color-mix(in srgb,var(--accent,#3b5bdb) 5%,#ffffff) 100%)!important;
  border:1px solid color-mix(in srgb,var(--accent,#3b5bdb) 12%,#e2e8f0)!important;
  box-shadow:var(--shadow-strong)!important;
}
.dashboardStat{
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)!important;
  border:1px solid var(--line-soft)!important;
  box-shadow:0 6px 18px rgba(31,41,55,.04)!important;
}
.dashboardStat .statText,
.dashboardStat small{color:var(--muted-main)!important}
.dashboardFold summary,
.settingsMenuCard .settingsMenuButton,
.calendarListItem,
.historyOpen,
.receivableRow,
.customerCard,
.inquiryRow{
  background:transparent!important;
}
.dashboardWorkItem,
.historyMetaGrid>div,
.receivableItem,
.calendarDayItem,
.workChoiceGroup,
.messagePreview,
.profileInfoRow,
.subscriptionStatusCard,
.quickInfoPill{
  background:var(--surface-soft)!important;
  border:1px solid var(--line-soft)!important;
}
.authModalSheet{
  border:1px solid var(--line-soft)!important;
  box-shadow:0 22px 48px rgba(17,24,39,.18)!important;
}
.authModalActions .ghost{
  background:#f8fafc!important;
}
.displaySettingGroup,
.planFeatureList li,
.profileInfoRow,
.settingsMenuCard .settingsMenuButton{
  border-color:var(--line-soft)!important;
}
.accentBtn i{
  box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(148,163,184,.14)!important;
}
.accentBtn.active,
.themeBtn.active,
.fontSizeBtn.active{
  border-color:color-mix(in srgb,var(--accent,#3b5bdb) 24%,#dbeafe)!important;
  background:var(--surface-accent)!important;
  color:var(--accent,#3b5bdb)!important;
}
.dashboardPlanCta{
  border:1px solid color-mix(in srgb,var(--accent,#3b5bdb) 18%,#dbeafe)!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#3b5bdb) 10%,#fff),#fff 72%)!important;
  box-shadow:var(--shadow-soft)!important;
}
#themeView .displaySettingTitle b::after{
  content:' · 모던 컬러';
  color:var(--muted-main);
  font-weight:700;
  font-size:11px;
}

/* v3.4.70 admin member deletion */
.adminMemberDeleteBtn{
  color:#b42318!important;
  background:#fff5f5!important;
  border:1px solid #fecaca!important;
}
.adminMemberDeleteBtn:active{opacity:.72}


/* v3.4.71 signup verification resend */
.authResendBtn{
  display:block;
  width:100%;
  margin:8px 0 0!important;
  padding:9px 10px!important;
  border:0!important;
  background:transparent!important;
  color:var(--accent,#0f6fff)!important;
  font-size:11px!important;
  font-weight:900!important;
  text-decoration:underline;
  text-underline-offset:3px;
}
.authResendBtn:disabled{opacity:.55;text-decoration:none}
