.app>nav .add span{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#1768df;color:#fff;font-size:34px;line-height:1;box-shadow:0 8px 18px #236cd94d}
.company-hero{position:relative}
.company-hero [data-edit-company]{position:absolute;right:14px;top:14px}
.ui-icon{display:block;width:24px;height:24px;min-width:24px;min-height:24px}
aside button .ui-icon{width:25px;height:25px}
.app>nav button:not(.add) .ui-icon{width:23px;height:23px}
.app>header .ui-icon{width:23px;height:23px}
.settings button>span:first-child{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eaf3ff;color:#216bd8;flex:none}
.settings button>span:first-child .ui-icon{width:25px;height:25px}
.settings button>span:last-child .ui-icon{width:20px;height:20px;color:#9aa8b9}
.contact button .ui-icon{width:25px;height:25px}
.stats .ui-icon{width:20px;height:20px}
.quick .ui-icon{width:24px;height:24px}
.profile .avatar .ui-icon{width:31px;height:31px}
.secure .ui-icon{width:16px;height:16px}
.admin-note>span,.storage-info>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#216bd8;flex:none}
.admin-note .ui-icon,.storage-info .ui-icon{width:23px;height:23px}
.storage-card>span .ui-icon{width:28px;height:28px}
.folder-tree>div>span:first-child{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#edf4ff;color:#216bd8;flex:none}
.folder-tree .ui-icon{width:23px;height:23px}
.device>span .ui-icon{width:25px;height:25px}
.time .ui-icon{width:18px;height:18px}
.heading button .ui-icon{width:17px;height:17px}
.visit>span:last-child .ui-icon{width:20px;height:20px;color:#9aa8b9}
.search .ui-icon{width:23px;height:23px}
@media(min-width:900px){aside{width:116px}aside button{width:82px;padding:14px 5px;gap:7px;font-size:12px}}

/* v0.4 interactive dashboard */
.stats button{border:1px solid #e8edf4;background:#fff;padding:14px;border-radius:18px;display:grid;gap:6px;text-align:left;color:#13213a;transition:.18s ease}
.stats button:hover{transform:translateY(-2px);border-color:#b8d2f8;box-shadow:0 10px 25px #276bc214}
.stats button>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}
.stats button small{font-size:12px;color:#7a899b}.stats button b{font-size:23px}.stats button em{font-size:12px;margin-left:3px;font-weight:500;font-style:normal}
.recent-list{display:grid;gap:9px}.recent-row{width:100%;border:1px solid #e5ebf2;background:#fff;border-radius:16px;padding:13px;display:flex;align-items:center;gap:12px;text-align:left}
.recent-row>span:nth-child(2){display:flex;flex-direction:column;flex:1;gap:3px}.recent-row small{font-size:12px;color:#8190a2}.recent-row>span:last-child .ui-icon{width:18px;height:18px;color:#a2adba}
.recent-icon{width:42px;height:42px;border-radius:13px;background:#eaf3ff;color:#1967e8;display:grid;place-items:center}.recent-icon .ui-icon{width:22px;height:22px}

/* v1.5: v1.3 팔레트 복원 — 크기와 배치는 변경하지 않음 */
.stats .blue{background:#e7f1ff;color:#1767dc}.stats .orange{background:#fff0df;color:#dc7b19}.stats .green{background:#e8f8ef;color:#289966}
.recent-icon{background:#f2edff;color:#7755cc}
.settings button[data-view="accounts"]>span:first-child{background:#eaf3ff;color:#216bd8}.settings button[data-view="storage"]>span:first-child{background:#e8f8ef;color:#289966}.settings button[data-view="widget"]>span:first-child{background:#f2edff;color:#7755cc}.settings button[data-notice]>span:first-child{background:#fff0df;color:#dc7b19}.settings button[data-voice]>span:first-child{background:#f3edff;color:#7959dc}

/* Company detail */
.company-edit{position:absolute;right:16px;top:16px;border:1px solid #cfe0f6;background:#fff;color:#2667c4;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:750}
.device-heading{display:flex;align-items:end;justify-content:space-between;margin:26px 1px 12px}.device-heading h2{margin:0;font-size:19px}.device-heading small{color:#8996a7}
.device-list{display:grid;gap:10px}.device-v4{align-items:center}.device-v4>div:nth-child(2){flex:1;min-width:0}.device-actions{margin-left:auto;display:flex;gap:6px}.device-actions button{border:1px solid #d7e1ee;background:#fff;border-radius:9px;padding:7px 10px;color:#49617e;font-weight:700;font-size:12px}.device-actions .danger{color:#ca4250;border-color:#f0cbd0;background:#fff8f8}
.company-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:28px 0 14px;padding:6px;background:#eaf0f7;border-radius:17px}
.company-tabs button{border:0;background:transparent;border-radius:12px;min-height:58px;padding:8px;display:flex;align-items:center;justify-content:center;gap:7px;color:#718096;font-weight:750}
.company-tabs button .ui-icon{width:20px;height:20px}.company-tabs button em{font-size:10px;font-style:normal;background:#dbe4ef;min-width:20px;padding:3px 6px;border-radius:10px}
.company-tabs button.active{background:#fff;color:#1768df;box-shadow:0 4px 14px #173b6614}.company-tabs button.active em{background:#e5f0ff;color:#1768df}
.company-panel{background:#fff;border:1px solid #e2e9f2;border-radius:21px;padding:18px;min-height:240px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.panel-head h3{margin:0;font-size:17px}.panel-head p{margin:4px 0 0;color:#8592a4;font-size:12px}
.primary.mini{padding:9px 12px;font-size:12px;white-space:nowrap}.polished-empty{min-height:170px;display:grid;place-items:center;align-content:center;text-align:center;gap:7px;color:#74849a}.polished-empty .ui-icon{width:34px;height:34px;color:#3977d1;margin-bottom:4px}.polished-empty b{color:#33445c}.polished-empty small{max-width:320px}.polished-empty.compact{min-height:110px}.polished-empty.wide{grid-column:1/-1}
.timeline-top{display:flex;align-items:center;justify-content:space-between}.status-badge{font-size:10px;background:#fff1d9;color:#ad7118;padding:4px 7px;border-radius:8px}.status-badge.complete{background:#e7f8ef;color:#23845a}.timeline .parts{background:#f3f7fc;border-radius:8px;padding:7px 9px;color:#46617f}

/* AS intake */
.app-modal{max-height:min(90dvh,820px);overflow:auto}.form-section{display:grid;gap:8px}.field-label{font-size:14px!important;color:#263a56!important}.select-card,.datetime-card{position:relative;border:1px solid #b9c7d8;background:#fff;border-radius:14px;min-height:58px;display:flex;align-items:center;gap:11px;padding:10px 13px;box-shadow:0 3px 10px #24486f0a}
.select-card:focus-within,.datetime-card:focus-within{border-color:#1c68da;box-shadow:0 0 0 3px #1c68da18}.select-card>.ui-icon:first-child,.datetime-card>.ui-icon{color:#216bd8}.select-card>.ui-icon:last-child{width:18px;height:18px;color:#8b98aa}
.select-card select{appearance:none!important;border:0!important;background:transparent!important;padding:0!important;outline:0;flex:1;font-weight:750;color:#1c2f49;min-width:0}
.symptom-box{border:1px solid #b9c7d8!important;background:#fff!important;border-radius:14px!important;min-height:105px!important}
.datetime-shell{display:grid;grid-template-columns:1fr auto;gap:9px}.datetime-card{cursor:pointer;overflow:hidden}.datetime-card>div{display:flex;flex-direction:column;gap:2px;flex:1}.datetime-card small{color:#8390a1}.datetime-card b{font-size:14px;color:#273b57}
.datetime-card input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.date-confirm{border:1px solid #b9c7d8;background:#fff;color:#9aa5b2;border-radius:13px;padding:0 13px;font-weight:750}.date-confirm:not(:disabled){color:#1768df;border-color:#78a9ee;background:#edf5ff}.date-confirm.confirmed{color:#23845a;border-color:#8bd0ae;background:#eaf8f1}
.status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.status-options label{border:1px solid #bdc9d8;background:#fff;border-radius:13px;padding:12px 8px;display:flex!important;flex-direction:row;align-items:center;justify-content:center;gap:7px;color:#68788d!important;cursor:pointer}.status-options input{position:absolute;opacity:0}.status-options .ui-icon{width:19px;height:19px}.status-options label.selected{border-color:#1b68df;background:#edf5ff;color:#155ec7!important;box-shadow:0 0 0 2px #1b68df14}
.submit-area{display:grid;gap:8px;text-align:center;margin-top:4px}.intake-submit{height:50px;font-size:16px}.submit-area small{color:#7b899b}
.confirm-card{display:flex;align-items:center;gap:12px;background:#f5f8fc;border:1px solid #e1e8f1;border-radius:15px;padding:15px}.confirm-card>.ui-icon{color:#1c68d8}.confirm-card>div{display:flex;flex-direction:column}.confirm-card small{color:#7b899b}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.danger-button{border:0;background:#d94855;color:#fff;border-radius:10px;padding:10px 14px;font-weight:750}

/* Voice */
.voice-center{width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 6px 8px}.voice-center .orb{margin:4px auto 18px}.voice-center .orb .ui-icon{width:31px;height:31px}.voice-copy{width:100%;text-align:center;margin:0 0 14px}.voice-result{width:min(100%,390px);display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.5;margin:0 auto 14px}.voice-actions{width:100%;display:flex;justify-content:center;align-items:stretch;gap:9px;flex-wrap:wrap}.voice-actions button{min-height:44px;min-width:136px}.voice-actions button:disabled{opacity:.48;cursor:not-allowed}

/* Schedule */
.schedule-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.date-jump{position:relative;border:1px solid #c7d3e2;background:#fff;border-radius:13px;padding:10px 12px;display:flex;align-items:center;gap:7px;color:#216bd8;cursor:pointer}.date-jump input{position:absolute;inset:0;opacity:0;cursor:pointer}.date-jump .ui-icon{width:20px;height:20px}.date-jump span{font-size:12px;font-weight:750}.dates button{transition:.15s}.dates button:hover{background:#e8f1ff}.day-summary{display:flex;align-items:center;gap:12px;background:#edf5ff;border:1px solid #d2e3fa;border-radius:16px;padding:14px;margin-bottom:4px}.day-summary>span{width:42px;height:42px;border-radius:13px;background:#1b69e2;color:#fff;display:grid;place-items:center}.day-summary>span .ui-icon{width:23px;height:23px}.day-summary>div{display:flex;flex-direction:column}.day-summary small{color:#6e7f94}
.favorite-editor{display:grid;gap:8px;max-height:430px;overflow:auto}.favorite-editor label{display:flex;align-items:center;gap:11px;border:1px solid #e0e7f0;border-radius:13px;padding:11px}.favorite-editor label>span:nth-child(2){display:flex;flex:1;flex-direction:column}.favorite-editor small{color:#8390a2}.favorite-editor input{width:21px;height:21px}.favorite-avatar{width:40px;height:40px;border-radius:12px;background:#eaf3ff;color:#1768df;display:grid;place-items:center;font-weight:850}.favorite-save{width:100%;margin-top:15px}.detail-list{display:grid;gap:9px}

@media(max-width:560px){.datetime-shell{grid-template-columns:1fr}.date-confirm{min-height:44px}.status-options label{flex-direction:column!important;gap:3px}.device-v4{align-items:flex-start}.device-actions{flex-direction:column}.company-tabs button{flex-direction:column;gap:3px}.company-tabs button em{position:absolute;margin:0 0 30px 42px}.company-tabs button{position:relative}.schedule-title{align-items:center}.date-jump span{display:none}.file-grid{grid-template-columns:repeat(2,1fr)}}

/* v0.5 polished intake picker */
.company-picker{position:relative}.company-trigger{width:100%;min-height:66px;border:1px solid #aebed2;background:linear-gradient(180deg,#fff,#fbfdff);border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:12px;text-align:left;box-shadow:0 5px 16px #24486f0b;transition:.16s}.company-trigger:hover,.company-trigger:focus,.company-trigger.selected{border-color:#2a72da;box-shadow:0 0 0 3px #1c68da13}.company-trigger>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:3px}.company-trigger small{color:#7c8ca0}.company-trigger b{font-size:15px;color:#1d314d}.company-trigger>.ui-icon{width:19px;height:19px;color:#8a99ac}.company-mark{width:42px;height:42px;border-radius:13px;background:#e8f2ff;color:#1768df;font-weight:850;display:grid;place-items:center;flex:none}
.company-menu{position:absolute;z-index:20;left:0;right:0;top:73px;background:#fff;border:1px solid #bdcada;border-radius:17px;padding:10px;box-shadow:0 18px 46px #1836532b}.company-menu>label{height:43px;border:1px solid #d3deeb;background:#f6f9fc;border-radius:12px;padding:0 11px;display:flex;align-items:center;gap:8px}.company-menu>label .ui-icon{width:18px;height:18px;color:#6f8095}.company-menu>label input{border:0!important;background:transparent!important;padding:0!important;outline:0;flex:1}.company-menu [data-company-options]{max-height:260px;overflow:auto;margin-top:8px;display:grid;gap:4px}.company-menu [data-pick-company]{border:0;background:#fff;border-radius:12px;padding:9px;display:flex;align-items:center;gap:10px;text-align:left}.company-menu [data-pick-company]:hover{background:#eef5ff}.company-menu [data-pick-company]>span:first-child{width:37px;height:37px;border-radius:11px;background:#edf4ff;color:#1768df;display:grid;place-items:center;font-weight:800}.company-menu [data-pick-company]>span:nth-child(2){display:flex;flex:1;flex-direction:column}.company-menu [data-pick-company] small{color:#8795a7}.company-menu [data-pick-company]>.ui-icon{width:17px;height:17px;color:#a0adbd}.company-option-empty{padding:25px;text-align:center;color:#8492a4}
.field-line{display:flex;justify-content:space-between;align-items:center}.field-line small{color:#8492a4}.date-time-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:9px}.date-field{border:1px solid #9fb0c5!important;background:#fff!important;border-radius:15px!important;padding:10px 13px!important;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;color:#216bd8!important;box-shadow:0 4px 13px #24486f0b}.date-field:focus-within{border-color:#1768df!important;box-shadow:0 0 0 3px #1768df17}.date-field>.ui-icon{width:22px;height:22px;flex:none}.date-field>span{display:flex;flex:1;flex-direction:column;gap:2px}.date-field small{font-size:11px;color:#7d8da1}.date-field input{border:0!important;background:transparent!important;padding:0!important;min-height:25px!important;font-size:15px!important;font-weight:750;color:#182e4b;width:100%;outline:0;color-scheme:light}.schedule-section>.date-confirm{min-height:45px;padding:8px 12px}.schedule-section>.date-confirm.confirmed{border-color:#2b8a62;background:#ecf9f3;color:#197650}

/* Voice recording and stored audio */
.record-state{display:flex;align-items:center;justify-content:center;gap:8px;margin:-5px 0 16px;color:#496078}.record-state i{width:9px;height:9px;border-radius:50%;background:#9ba8b7}.record-state time{font-variant-numeric:tabular-nums;color:#7e8da0}.recording{animation:recordPulse 1.25s infinite;background:#e7505b!important}.recording+.record-state i,.record-state:has(+*) i{transition:.2s}@keyframes recordPulse{50%{box-shadow:0 0 0 16px #e7505b18}}
.voice-company{width:min(100%,420px);display:flex!important;flex-direction:column;align-items:stretch!important;text-align:left;color:#3b506a!important;margin-bottom:12px}.voice-company select{border:1px solid #aebed2!important;background:#fff!important;border-radius:13px!important;min-height:47px;padding:0 12px!important;font-weight:700}.voice-preview{width:min(100%,420px);margin:2px auto 13px}.record-actions,.voice-final-actions{width:100%;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.record-actions{margin-bottom:9px}.record-actions button,.voice-final-actions button{min-height:44px}.record-actions .ui-icon{width:19px;height:19px;display:inline-block;vertical-align:middle;margin-right:4px}.voice-help{font-size:11px;color:#8a97a8;margin:13px 0 0}.voice-files{display:grid;gap:9px;margin-top:14px}.voice-file{border:1px solid #dce5ef;background:#f9fbfe;border-radius:15px;padding:12px;display:flex;align-items:flex-start;gap:11px}.voice-file>span{width:40px;height:40px;border-radius:12px;background:#eee9ff;color:#7556d5;display:grid;place-items:center}.voice-file>span .ui-icon{width:21px;height:21px}.voice-file>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.voice-file small{color:#7f8da0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-file audio{width:100%;height:36px}.panel-actions{display:flex;gap:7px}

/* PWA push setup */
.push-guide{display:grid;gap:10px}.push-status{border:1px solid #e0e7f0;background:#f8fafc;border-radius:15px;padding:13px;display:flex;align-items:center;gap:11px}.push-status>.ui-icon{width:24px;height:24px;color:#c18124}.push-status.ok{background:#f1faf6;border-color:#cdebdc}.push-status.ok>.ui-icon{color:#23845a}.push-status>div{display:flex;flex-direction:column;gap:3px}.push-status small{color:#7f8da0}.push-actions{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px;margin-top:5px}.push-actions button{min-height:47px}.push-result{margin:2px 0 0;padding:11px;border-radius:12px;background:#edf4ff;color:#46617f;text-align:center;font-size:12px}
.push-actions button:disabled,.record-actions button:disabled{opacity:.42;filter:saturate(.35);cursor:not-allowed}.secure-open{display:flex;align-items:center;justify-content:center;min-height:47px;border-radius:13px;background:#1768df;color:#fff!important;text-decoration:none;font-weight:800;padding:10px 14px}.voice-help+.secure-open{width:min(100%,420px);margin-top:10px}

@media(max-width:560px){.date-time-grid{grid-template-columns:1fr}.company-menu{position:fixed;left:14px;right:14px;top:18%;max-height:64dvh}.push-actions{grid-template-columns:1fr}.panel-actions{flex-direction:column}.voice-file audio{height:34px}}

/* v0.7 voice command analysis and material deletion */
.voice-detected{width:min(100%,420px);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:-3px auto 15px}.voice-detected span{display:flex;align-items:center;gap:6px;border:1px solid #d6e0ec;background:#f7f9fc;color:#687a91;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:750}.voice-detected span.ok{border-color:#bfe4d1;background:#effaf4;color:#1c7a52}.voice-detected span.warn{border-color:#edd6ad;background:#fff9ed;color:#9a681b}.voice-detected .ui-icon{width:16px;height:16px}
.material-card{position:relative;border:1px solid #dce5ef;border-radius:15px;background:#fff;overflow:hidden}.material-card .file-card{width:100%;border:0;border-radius:0;padding-bottom:42px}.material-delete{border:1px solid #efc8ce;background:#fff7f8;color:#bd3f4c;border-radius:9px;padding:7px 10px;font-size:12px;font-weight:800;white-space:nowrap}.material-card>.material-delete{position:absolute;right:9px;bottom:9px}.voice-file>.material-delete{align-self:center;margin-left:4px}.material-delete:hover{background:#ffecef;border-color:#e69ba5}.material-delete:disabled{opacity:.45}
@media(max-width:560px){.voice-file{flex-wrap:wrap}.voice-file>div{width:calc(100% - 55px)}.voice-file>.material-delete{margin-left:auto}.material-card .file-card{padding-bottom:47px}}

/* v0.8 contextual search */
.search-result{max-height:min(66dvh,560px);overflow:auto;padding:7px}.search-result .search-company-card{display:flex;flex-direction:column;gap:8px;border:0!important;border-radius:13px!important;padding:10px!important;margin:0;background:#fff}.search-result .search-company-card:hover{background:#f4f8fd}.search-company-head{display:flex;align-items:center;gap:10px;width:100%}.search-company-head>span:first-child{width:38px;height:38px;border-radius:12px;background:#e9f2ff;color:#1768df;display:grid;place-items:center;font-weight:850;flex:none}.search-company-head>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}.search-company-head>span:nth-child(2) b{color:#142946}.search-company-head small{color:#8290a2;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-company-head>.ui-icon{width:17px;height:17px;color:#a0adbd}.search-context{width:100%;display:grid;gap:5px;padding-left:48px}.search-match{display:flex;align-items:center;gap:7px;border-radius:9px;padding:7px 9px;text-align:left}.search-match>.ui-icon{width:18px;height:18px;flex:none}.search-match>span{display:flex;min-width:0;flex-direction:column}.search-match b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-match small{font-size:10px;color:#718198;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-match{background:#edf5ff;color:#1768df}.symptom-match{background:#fff4e8;color:#ad6819}.search-context-empty{padding-left:48px;color:#8391a3;font-size:11px}
@media(max-width:430px){.search-context{padding-left:0}.search-context-empty{padding-left:48px}}

/* v1.0 fixed iPhone app viewport */
html,body,#app{width:100%;height:100%;max-width:100%;overflow:hidden;overscroll-behavior:none;background:#f7f9fc}body{position:relative;touch-action:pan-y}.shell{width:100%;height:100dvh;min-height:0;max-width:100vw;overflow:hidden}.app{height:100dvh;min-height:0;max-width:100vw;padding-bottom:0;display:flex;flex-direction:column;overflow:hidden}.app>header{width:100%;flex:0 0 auto}.content{width:100%;max-width:100%;min-width:0;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:none;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(112px + env(safe-area-inset-bottom))}.content>*{max-width:100%;min-width:0}.stats,.quick,.date-time-grid,.status-options{grid-template-columns:repeat(var(--fixed-cols,3),minmax(0,1fr))}.quick,.date-time-grid{--fixed-cols:2}.app-modal{max-width:calc(100vw - 28px);max-height:calc(100dvh - 24px);overflow-x:hidden;overscroll-behavior:contain;margin:auto}.modal-inner,.modal-inner form,.form-section,.company-picker,.date-time-grid{width:100%;max-width:100%;min-width:0}.modal-inner{overflow-x:hidden}.modal-head>div{min-width:0}.modal-head h2,.modal-head p{overflow-wrap:anywhere}.company-trigger,.date-field,.symptom-box{max-width:100%;min-width:0}
@media(max-width:768px){input,textarea,select{font-size:16px!important}.search input{font-size:16px!important}.date-field input{font-size:16px!important}.app-modal{width:calc(100vw - 28px)}.modal-inner{padding:24px 20px}.status-options label{font-size:13px!important}.status-options label b{font-size:13px}.app>nav{padding-bottom:max(4px,env(safe-area-inset-bottom));height:calc(76px + env(safe-area-inset-bottom))}}
@media(max-width:560px){.date-time-grid{grid-template-columns:minmax(0,1fr)}.form-row{grid-template-columns:minmax(0,1fr)}.modal-inner{padding:22px 18px}.app-modal{width:calc(100vw - 20px);max-width:calc(100vw - 20px)}}
@media(min-width:900px){.shell{height:100dvh}.app{height:calc(100dvh - 72px)}}
.standalone-hint{display:flex;align-items:center;gap:11px;margin:0 0 18px;padding:13px 15px;border:1px solid #cfe0f7;border-radius:16px;background:#eef5ff;color:#345372}.standalone-hint .ui-icon{width:23px;height:23px;color:#1768df;flex:none}.standalone-hint span{display:flex;min-width:0;flex-direction:column;gap:3px}.standalone-hint b{font-size:13px}.standalone-hint small{font-size:11px;line-height:1.45;color:#6e8199}.push-diagnostic{display:grid;gap:4px;margin:0;padding:11px 13px;border:1px solid #dde6f1;border-radius:12px;background:#f8fafc;color:#52677f;font-size:11px;line-height:1.45}.push-diagnostic b{color:#263d59}.push-diagnostic.error{border-color:#efcbd0;background:#fff7f8;color:#a84550}

/* v1.0 company address actions */
.company-info{min-width:0;padding-right:98px}.company-info>p{overflow-wrap:anywhere}.address-actions{display:flex;gap:7px;margin-top:11px}.address-actions button{min-height:36px;border:1px solid #bfd0e5;border-radius:11px;background:#fff;color:#405b7d;padding:7px 10px;display:flex;align-items:center;gap:6px;font-weight:750}.address-actions button .ui-icon{width:17px;height:17px}.address-actions button b{font-size:11px}.address-actions .tmap-button{border-color:#7facf0;background:#edf5ff;color:#1768df}
@media(max-width:430px){.company-info{padding-right:0;width:100%}.company-hero{align-items:flex-start;flex-wrap:wrap;padding-top:66px}.company-hero>.avatar{margin-top:2px}.company-info{flex:1}.address-actions{width:100%}.address-actions button{flex:1;justify-content:center}}

/* v1.1 time, timeline editor, stable status controls and clean logo */
.brand,.brand.small{border:0;background:#fff;box-shadow:none}.brand img{object-fit:contain}
.timeline article{padding-left:84px}.timeline article:not(:last-child)::before{left:62px;top:27px}.timeline article>label{left:0;top:5px;width:48px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.timeline article>i{left:56px;top:7px;width:14px;height:14px}.timeline .timeline-card{width:100%;border:1px solid #dce5f0;background:#fff;border-radius:18px;padding:16px;text-align:left;display:flex;flex-direction:column;gap:6px;color:#13213a;box-shadow:0 4px 14px #1b36560a;-webkit-tap-highlight-color:transparent}.timeline .timeline-card:active{transform:translateY(1px);background:#f9fbfe}.timeline .timeline-card>b{font-size:16px;line-height:1.4}.timeline-edit{margin-top:4px;display:flex;align-items:center;justify-content:flex-end;gap:3px;color:#5e7592;font-size:11px;font-weight:750}.timeline-edit .ui-icon{width:14px;height:14px}
.status-options label{position:relative;isolation:isolate;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;outline:0!important}.status-options input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;opacity:0!important;appearance:none!important;-webkit-appearance:none!important;outline:0!important;border:0!important}.status-options label:focus,.status-options label:focus-within,.status-options input:focus,.status-options input:focus-visible{outline:0!important}.status-options label:active{transform:scale(.985)}
.job-company-summary{display:flex;align-items:center;gap:11px;border:1px solid #d7e1ed;background:#f6f9fd;border-radius:15px;padding:12px}.job-company-summary>span{width:42px;height:42px;border-radius:13px;background:#e7f1ff;color:#1768df;display:grid;place-items:center;font-weight:850}.job-company-summary>div{display:flex;flex-direction:column}.job-company-summary small{color:#7c8ca0}.job-edit-actions{display:grid;grid-template-columns:auto 1fr;gap:9px}.job-edit-actions button{min-height:49px}
@media(max-width:430px){.timeline article{padding-left:72px}.timeline article:not(:last-child)::before{left:52px}.timeline article>label{width:39px;font-size:11px}.timeline article>i{left:46px}.timeline .timeline-card{padding:14px}.job-edit-actions{grid-template-columns:1fr}.job-edit-actions .danger-button{order:2}}

/* v1.2 browser-independent calendar and work execution panel */
.date-field{width:100%;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.date-field b{font-size:15px;color:#182e4b;line-height:1.35}.date-field:hover{border-color:#1768df!important;background:#f8fbff!important}.stacked-modal{width:min(94vw,470px);z-index:20}.calendar-picker{display:grid;gap:15px}.calendar-toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}.calendar-toolbar strong{text-align:center;font-size:18px;color:#152a47}.calendar-toolbar button{width:44px;height:44px;border:1px solid #c9d6e5;border-radius:13px;background:#fff;color:#286bd0;display:grid;place-items:center}.calendar-toolbar .ui-icon{width:20px;height:20px}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-week span{text-align:center;color:#7d8ca0;font-size:12px;font-weight:750;padding:2px}.calendar-days>span,.calendar-days button{aspect-ratio:1;border:1px solid transparent;border-radius:12px;background:#f5f8fc;color:#263c58;font-weight:750;display:grid;place-items:center}.calendar-days button:hover{border-color:#8cb3ea;background:#eef5ff}.calendar-days button.today{border-color:#b8cff0;color:#1768df}.calendar-days button.selected{border-color:#1768df;background:#1768df;color:#fff;box-shadow:0 5px 13px #1768df2e}.calendar-time{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:5px}.calendar-time label{display:flex;flex-direction:column;gap:6px;color:#536982;font-size:12px;font-weight:750}.calendar-time select{min-height:48px;border:1px solid #aebed2!important;border-radius:13px!important;background:#fff!important;padding:0 12px!important;font-size:16px!important;font-weight:750;color:#172c48}.calendar-confirm{min-height:50px}.calendar-guide{text-align:center;color:#74869c;margin:2px 0}.calendar-confirm:disabled{opacity:.45}
.work-detail{display:grid;gap:13px}.work-hero{display:flex;align-items:flex-start;gap:13px;border:1px solid #cfe0f5;background:linear-gradient(145deg,#eef5ff,#f9fbff);border-radius:18px;padding:16px}.work-hero>span{width:50px;height:50px;border-radius:15px;background:#1768df;color:#fff;display:grid;place-items:center;flex:none}.work-hero>span .ui-icon{width:26px;height:26px}.work-hero>div{min-width:0}.work-hero small{color:#6680a0}.work-hero h3{font-size:19px;line-height:1.4;margin:5px 0;color:#112744;overflow-wrap:anywhere}.work-hero p{margin:0;color:#1768df;font-weight:800}.work-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px}.work-facts>div{display:flex;align-items:center;gap:10px;border:1px solid #dbe4ef;background:#fff;border-radius:15px;padding:12px}.work-facts .ui-icon{width:23px;height:23px;color:#1768df;flex:none}.work-facts span{display:flex;min-width:0;flex-direction:column}.work-facts small,.work-note small{color:#7c8ca0;font-size:11px}.work-facts b{font-size:13px;overflow-wrap:anywhere}.work-note{border:1px solid #dce5ef;border-radius:14px;background:#f8fafc;padding:12px;display:grid;gap:4px}.work-note p{margin:0;color:#354b66;line-height:1.5}.work-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.work-actions button,.work-primary-actions button{min-height:47px;display:flex;align-items:center;justify-content:center;gap:7px}.work-actions .ui-icon,.work-primary-actions .ui-icon{width:18px;height:18px}.work-primary-actions{display:grid;gap:8px;padding-top:2px}
@media(max-width:430px){.calendar-days{gap:4px}.calendar-days>span,.calendar-days button{border-radius:10px}.work-facts,.work-actions{grid-template-columns:1fr}.stacked-modal{width:calc(100vw - 20px)}}

/* v1.3 primary devices and unified 12-hour minute picker */
.primary-device{border-color:#91b9ef;background:linear-gradient(135deg,#f0f6ff,#fff)}.device-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.device-title mark{border:0;border-radius:999px;background:#1768df;color:#fff;padding:4px 7px;font-size:10px;font-weight:800}.device-actions .primary-device-button{border-color:#80ace9;background:#edf5ff;color:#1768df}.primary-device-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:11px;border:1px solid #c9d9ed!important;background:#f4f8fe;border-radius:15px;padding:12px!important;cursor:pointer}.primary-device-toggle>input{width:21px;height:21px;accent-color:#1768df}.primary-device-toggle>span:nth-child(2){width:40px;height:40px;border-radius:12px;background:#e3efff;color:#1768df;display:grid;place-items:center}.primary-device-toggle .ui-icon{width:21px;height:21px}.primary-device-toggle>span:last-child{display:flex;flex-direction:column;gap:2px}.primary-device-toggle small{color:#71839b;font-size:11px}
.device-choice-section{display:grid;gap:9px}.device-choice-list{display:grid;gap:8px}.device-choice{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:10px;border:1px solid #cfdae7!important;background:#fff;border-radius:15px;padding:11px!important;cursor:pointer;-webkit-tap-highlight-color:transparent}.device-choice:hover,.device-choice.selected{border-color:#1768df!important;background:#f0f6ff;box-shadow:0 0 0 2px #1768df12}.device-choice>input{position:absolute;opacity:0;pointer-events:none}.device-choice-icon{width:42px;height:42px;border-radius:12px;background:#e7f1ff;color:#1768df;display:grid;place-items:center;flex:none}.device-choice-icon .ui-icon{width:22px;height:22px}.device-choice>span:nth-child(3){display:flex;min-width:0;flex:1;flex-direction:column}.device-choice b{font-size:14px;color:#172b48;overflow-wrap:anywhere}.device-choice small{font-size:11px;color:#7a8ba0}.device-choice em{font-style:normal;border-radius:999px;background:#1768df;color:#fff;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap}.device-choice em.choose{background:#edf3fb;color:#61758e}.device-choice-empty{display:flex;align-items:center;gap:10px;border:1px dashed #bdcada;border-radius:15px;padding:14px;color:#718299}.device-choice-empty>.ui-icon{width:24px;height:24px}.device-choice-empty span{display:flex;flex-direction:column}.device-choice-empty small{font-size:11px}
.datetime-combined{min-height:69px}.datetime-combined>span{gap:4px}.datetime-combined>.ui-icon:last-child{margin-left:auto;color:#91a1b4;width:19px;height:19px}.calendar-time{grid-template-columns:1.25fr 1fr 1fr;align-items:end}.period-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;border:1px solid #aebed2;border-radius:13px;background:#f3f6fa;padding:4px;min-height:48px}.period-toggle button{border:0;border-radius:9px;background:transparent;color:#687b92;font-weight:800}.period-toggle button.active{background:#1768df;color:#fff;box-shadow:0 3px 9px #1768df28}.visit .time b{font-size:11px;line-height:1.25;text-align:center}.widget time{font-size:11px;white-space:nowrap}
@media(max-width:560px){.calendar-time{grid-template-columns:1fr 1fr}.period-toggle{grid-column:1/-1}.device-choice em{font-size:9px}.device-actions{align-items:stretch}.device-actions button{white-space:nowrap}}

/* v1.4 reliable reminders, searchable product catalog and typography */
.reminder-section{display:grid;gap:9px}.reminder-presets{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reminder-presets label{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:9px;border:1px solid #cbd7e6!important;border-radius:15px;padding:12px!important;background:#fff;color:#53677f!important;cursor:pointer;-webkit-tap-highlight-color:transparent}.reminder-presets input{position:absolute;opacity:0}.reminder-presets .ui-icon{width:22px;height:22px;color:#8292a6;flex:none}.reminder-presets span{display:flex;flex-direction:column}.reminder-presets small{font-size:10px;color:#8796a8}.reminder-presets label.selected{border-color:#1768df!important;background:#eef5ff;color:#1768df!important;box-shadow:0 0 0 2px #1768df12}.reminder-presets label.selected .ui-icon{color:#1768df}.reminder-custom.selected{border-color:#1768df!important;background:#f3f8ff!important}.reminder-clear{justify-self:end;border:0;background:transparent;color:#bd4450;padding:4px 2px;font-size:11px;font-weight:750}.reminder-help{margin:0;color:#7b8ba0;font-size:11px;line-height:1.5}
.catalog-section{display:grid;gap:9px;border:1px solid #d4e2f3;border-radius:18px;background:linear-gradient(145deg,#f0f6ff,#fbfdff);padding:14px}.catalog-title{display:flex;align-items:center;gap:10px}.catalog-title>.ui-icon{width:24px;height:24px;color:#1768df}.catalog-title>span{display:flex;flex-direction:column}.catalog-title small{font-size:11px;color:#71839a}.catalog-search input{height:48px!important;border:1px solid #aec2dc!important;border-radius:13px!important;background:#fff!important;padding:0 13px!important}.catalog-results{display:grid;gap:6px;max-height:245px;overflow:auto}.catalog-results button{display:flex;align-items:center;gap:9px;width:100%;border:1px solid #d8e2ed;border-radius:13px;background:#fff;padding:10px;text-align:left;color:#203751}.catalog-results button:hover,.catalog-results button.selected{border-color:#1768df;background:#edf5ff}.catalog-results button>.ui-icon{width:21px;height:21px;color:#1768df;flex:none}.catalog-results button>span{display:flex;min-width:0;flex:1;flex-direction:column}.catalog-results button small{font-size:10px;color:#77899f}.catalog-results button b{font-size:13px;overflow-wrap:anywhere}.catalog-results button em{font-style:normal;border-radius:999px;background:#edf3fb;color:#53708f;padding:4px 7px;font-size:10px;font-weight:800}.catalog-results button.selected em{background:#1768df;color:#fff}.catalog-section>p{margin:0;color:#6f8299;font-size:10px;line-height:1.5}.catalog-empty{padding:15px;text-align:center;color:#7c8da2;font-size:11px}
.login-title h1,.welcome h1,.page-title h1,.company-hero h1,.profile h1,.modal-head h2{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Apple SD Gothic Neo","Noto Sans KR",sans-serif;font-weight:800;letter-spacing:-.035em}.brand img,.brand.small img{padding:0}
@media(max-width:560px){.reminder-presets{grid-template-columns:1fr}.catalog-section{padding:12px}.catalog-results{max-height:210px}}

/* v1.6 monthly work calendar */
.now-button{border:1px solid #b9cee9;background:#eef5ff;color:#1768df;border-radius:10px;padding:7px 10px;display:flex;align-items:center;gap:5px;font-weight:800;font-size:12px}.now-button .ui-icon{width:16px;height:16px}.field-help{margin:7px 2px 0;color:#7c8da1;font-size:11px}
.month-calendar{margin:0 0 18px;border:1px solid #dce5f0;border-radius:22px;background:#fff;padding:16px;box-shadow:0 8px 25px #365a8509}.month-toolbar{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:9px;margin-bottom:13px}.month-toolbar strong{text-align:center;color:#142844;font-size:18px}.month-toolbar button{width:40px;height:40px;border:1px solid #d9e3ef;border-radius:12px;background:#f8fafc;color:#42607f;display:grid;place-items:center}.month-toolbar .ui-icon{width:18px;height:18px}.month-week,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.month-week span{text-align:center;padding:5px 0;color:#8b98a9;font-size:11px;font-weight:800}.month-week span:first-child{color:#d85b66}.month-week span:last-child{color:#3476d0}.month-days>span,.month-days>button{aspect-ratio:1;min-width:0;border:1px solid transparent;border-radius:12px;background:transparent;position:relative;display:grid;place-items:center;color:#263b57;-webkit-tap-highlight-color:transparent}.month-days>button:hover{background:#f0f5fb}.month-days>button.today{border-color:#9fbfea;background:#f5f9ff;color:#1768df}.month-days>button.selected{border-color:#1768df;background:#1768df;color:#fff;box-shadow:0 5px 13px #1768df2e}.month-days>button>b{font-size:13px}.month-count{position:absolute;right:3px;top:3px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#e8f1ff;color:#1768df;font-size:9px;font-weight:900;display:grid;place-items:center}.selected .month-count{background:#fff;color:#1768df}.month-dot{position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:#e38a24}.month-dot.complete{background:#2d9a68}.month-legend{display:flex;justify-content:flex-end;gap:13px;margin-top:11px;color:#8492a4;font-size:10px}.month-legend span{display:flex;align-items:center;gap:5px}.month-legend i{width:7px;height:7px;border-radius:50%;background:#e38a24}.month-legend i.complete{background:#2d9a68}
.schedule-job-list{display:grid;gap:10px}.schedule-job{border:1px solid #e0e7f0;border-radius:19px;background:#fff;overflow:hidden;box-shadow:0 5px 16px #8192a40b}.schedule-job-main{width:100%;border:0;background:#fff;padding:13px;display:grid;grid-template-columns:68px 1fr 19px;align-items:center;gap:12px;text-align:left;color:#172c48}.schedule-job-main>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:4px}.schedule-job-main small{color:#75869c;font-size:11px}.schedule-job-main b{overflow-wrap:anywhere}.schedule-job-main em{width:max-content;border-radius:8px;background:#fff0df;color:#bd7419;padding:4px 7px;font-style:normal;font-size:10px;font-weight:800}.schedule-job-main>.ui-icon{width:19px;color:#a1adbb}.schedule-job-time{height:62px;border-radius:15px;background:#e7f1ff;color:#1767dc;display:grid;place-items:center;align-content:center;gap:3px}.schedule-job-time .ui-icon{width:20px;height:20px}.schedule-job-time b{font-size:10px;text-align:center}.schedule-status-button{width:100%;min-height:38px;border:0;border-top:1px solid #e8edf4;background:#f8fafc;color:#42607f;font-weight:800}.schedule-job.done{border-color:#d6e7de}.schedule-job.done .schedule-job-main{background:#f6faf8}.schedule-job.done .schedule-job-time{background:#e8f8ef;color:#289966}.schedule-job.done .schedule-job-main>span:nth-child(2)>b{text-decoration:line-through;color:#84948d}.schedule-job.done .schedule-job-main em{background:#e8f8ef;color:#28855d}.schedule-job.done .schedule-status-button{background:#eef8f3;color:#287b59}.work-hero.done{border-color:#cfe7da;background:linear-gradient(145deg,#eef9f3,#fbfdfc)}.work-hero.done>span{background:#289966}.work-hero.done h3{text-decoration:line-through;color:#64766d}
@media(max-width:430px){.month-calendar{padding:13px}.month-week,.month-days{gap:3px}.month-days>span,.month-days>button{border-radius:10px}.month-count{right:1px;top:1px}.schedule-job-main{grid-template-columns:60px 1fr 17px;padding:11px;gap:9px}.schedule-job-time{height:58px}}

/* v1.7 semantic color system */
:root{--km-blue:#1768df;--km-blue-soft:#e7f1ff;--km-orange:#c97716;--km-orange-soft:#fff0df;--km-purple:#7556d5;--km-purple-soft:#f2edff;--km-week:#289966;--km-week-soft:#e8f8ef;--km-done:#16806a;--km-done-soft:#e7f7f2;--km-danger:#bd3f4c;--km-danger-soft:#fff0f2}
.time.schedule,.tone-schedule .time{background:var(--km-orange-soft)!important;color:var(--km-orange)!important}.day-summary{background:var(--km-orange-soft);border-color:#f0d3ad}.day-summary>span{background:var(--km-orange)}
.month-count{background:var(--km-orange-soft);color:var(--km-orange)}.selected .month-count{background:#fff4e5;color:var(--km-orange)}.month-dot,.month-legend i{background:var(--km-orange)}.month-dot.complete,.month-legend i.complete{background:var(--km-done)}.month-days>button.selected:has(.month-dot){border-color:var(--km-orange);background:var(--km-orange);box-shadow:0 5px 13px #c9771630}.month-days>button.selected:has(.month-dot.complete){border-color:var(--km-done);background:var(--km-done);box-shadow:0 5px 13px #16806a30}.month-days>button.selected:has(.month-dot) .month-count{background:#fff;color:var(--km-orange)}.month-days>button.selected:has(.month-dot.complete) .month-count{color:var(--km-done)}
.schedule-job:not(.done){border-color:#edd9bd}.schedule-job:not(.done) .schedule-job-main{background:#fffdf9}.schedule-job:not(.done) .schedule-job-time{background:var(--km-orange-soft);color:var(--km-orange)}.schedule-job:not(.done) .schedule-job-main em{background:var(--km-orange-soft);color:var(--km-orange)}.schedule-job:not(.done) .schedule-status-button{background:#fff8ee;color:var(--km-orange)}
.schedule-job.done{border-color:#cce4da}.schedule-job.done .schedule-job-main,.schedule-job.done .schedule-status-button{background:var(--km-done-soft)}.schedule-job.done .schedule-job-time{background:#dff3ec;color:var(--km-done)}.schedule-job.done .schedule-job-main em{background:#dff3ec;color:var(--km-done)}
.recent-row.tone-recent .recent-icon{background:var(--km-purple-soft);color:var(--km-purple)}.recent-row.tone-week .recent-icon,.tone-week .recent-icon{background:var(--km-week-soft);color:var(--km-week)}
body[data-work-tone="recent"] .work-hero{border-color:#ded5f7;background:linear-gradient(145deg,var(--km-purple-soft),#fcfbff)}body[data-work-tone="recent"] .work-hero>span{background:var(--km-purple)}body[data-work-tone="recent"] .work-hero p,body[data-work-tone="recent"] .work-facts .ui-icon{color:var(--km-purple)}
body[data-work-tone="week"] .work-hero{border-color:#cde9da;background:linear-gradient(145deg,var(--km-week-soft),#fbfefc)}body[data-work-tone="week"] .work-hero>span{background:var(--km-week)}body[data-work-tone="week"] .work-hero p,body[data-work-tone="week"] .work-facts .ui-icon{color:var(--km-week)}
body[data-work-tone="schedule"] .work-hero{border-color:#efd5b3;background:linear-gradient(145deg,var(--km-orange-soft),#fffdf9)}body[data-work-tone="schedule"] .work-hero>span{background:var(--km-orange)}body[data-work-tone="schedule"] .work-hero p,body[data-work-tone="schedule"] .work-facts .ui-icon{color:var(--km-orange)}
.work-hero.done,body[data-work-tone] .work-hero.done{border-color:#cce4da;background:linear-gradient(145deg,var(--km-done-soft),#fbfefc)}.work-hero.done>span,body[data-work-tone] .work-hero.done>span{background:var(--km-done)}.work-hero.done p,body[data-work-tone] .work-hero.done p,.work-hero.done+.work-facts .ui-icon{color:var(--km-done)}
.status-options label:nth-child(1).selected{border-color:var(--km-blue);background:var(--km-blue-soft);color:var(--km-blue)!important}.status-options label:nth-child(2).selected{border-color:var(--km-orange);background:var(--km-orange-soft);color:var(--km-orange)!important}.status-options label:nth-child(3).selected{border-color:var(--km-done);background:var(--km-done-soft);color:var(--km-done)!important}
.status-badge{background:var(--km-orange-soft);color:var(--km-orange)}.status-badge.complete{background:var(--km-done-soft);color:var(--km-done)}.todo:not(.done) em{background:var(--km-orange-soft);color:var(--km-orange)}.todo.done{border-color:#cce4da;background:#f6faf8}.todo.done em{background:var(--km-done-soft);color:var(--km-done)}
.recognition-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 9px}.recognition-actions button{min-height:46px;border-radius:12px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:6px}.recognition-actions .ui-icon{width:19px;height:19px}.recognition-start{border:1px solid #d8cff4;background:var(--km-purple-soft);color:var(--km-purple)}.recognition-start.active{box-shadow:0 0 0 3px #7556d51b}.recognition-done{border:1px solid #b9dccf;background:var(--km-done-soft);color:var(--km-done)}.recognition-actions button:disabled{opacity:.42;filter:saturate(.45)}.voice-center [data-record]{background:var(--km-purple)}.voice-center [data-stop]:not(:disabled){border-color:#efc8ce;background:var(--km-danger-soft);color:var(--km-danger)}.job-current-row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px}
@media(max-width:430px){.recognition-actions{grid-template-columns:1fr}.recognition-actions button{min-height:44px}}

/* v1.8 visible completion, focused controls and searchable voice company picker */
.home-visit{display:grid;gap:0;border-radius:19px;overflow:hidden}.home-visit .visit{border-radius:19px}.home-visit-status{width:max-content;margin-top:5px;padding:4px 8px;border-radius:999px;background:var(--km-orange-soft);color:var(--km-orange);font-size:10px;font-style:normal;font-weight:850}.home-visit.done{border:1px solid #b9dfca;background:var(--km-done-soft);box-shadow:0 5px 16px #276f4b10}.home-visit.done .visit{border:0;border-radius:18px 18px 0 0;background:var(--km-done-soft)}.home-visit.done .time.schedule{background:#d9f3e4!important;color:var(--km-done)!important}.home-visit.done .visit>div:nth-child(2)>b{color:var(--km-done)}.home-visit.done .home-visit-status{background:var(--km-done);color:#fff}.home-visit-restore{min-height:40px;border:0;border-top:1px solid #c9e6d6;background:#f5fcf8;color:var(--km-done);font-weight:850}.quick button>span.quick-plus{font-size:31px;font-weight:400;line-height:1}.company-mark.placeholder{font-size:25px;font-weight:900}.search input[type="search"]::-webkit-search-cancel-button,.voice-company-search input[type="search"]::-webkit-search-cancel-button,.company-menu input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}.search-clear,.company-filter-clear{width:30px;height:30px;flex:none;border:0;border-radius:50%;background:#edf2f8;color:#60738b;font-size:21px;line-height:1;display:grid;place-items:center}.search-clear[hidden],.company-filter-clear[hidden]{display:none}
.voice-company-picker{width:min(100%,420px);display:grid;gap:8px;margin:0 auto 13px;text-align:left}.voice-company-picker>label{display:grid;gap:7px;color:#3b506a;font-weight:800}.voice-company-search{height:49px;border:1px solid #aebed2;border-radius:14px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 11px}.voice-company-search:focus-within{border-color:var(--km-purple);box-shadow:0 0 0 3px #7556d514}.voice-company-search>.ui-icon{width:20px;height:20px;color:#7c8da3;flex:none}.voice-company-search input{height:45px!important;min-width:0;flex:1;border:0!important;background:transparent!important;outline:0;padding:0!important;font:inherit}.voice-company-search button{width:29px;height:29px;flex:none;border:0;border-radius:50%;background:#eef2f7;color:#5f7188;font-size:20px;display:grid;place-items:center}.voice-company-search button[hidden]{display:none}.voice-company-results{display:grid;gap:6px;max-height:214px;overflow:auto;padding-right:2px}.voice-company-results>button{width:100%;min-height:58px;border:1px solid #dce5ef;border-radius:14px;background:#fff;display:flex;align-items:center;gap:9px;padding:9px 11px;text-align:left;color:#20344f}.voice-company-results>button.selected{border-color:var(--km-purple);background:var(--km-purple-soft);box-shadow:0 0 0 2px #7556d510}.voice-company-results>button>span:first-child{width:38px;height:38px;border-radius:12px;background:#e9f2ff;color:#246edb;font-weight:900;display:grid;place-items:center;flex:none}.voice-company-results>button>span:nth-child(2){display:flex;min-width:0;flex:1;flex-direction:column}.voice-company-results small{color:#7d8da1;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-company-results em{font-style:normal;border-radius:999px;background:var(--km-purple);color:#fff;padding:5px 8px;font-size:10px;font-weight:850}.voice-company-results .ui-icon{width:17px;height:17px;color:#9aa7b6}.recognition-done.ready{border-color:var(--km-done);box-shadow:0 0 0 3px #16806a18;position:relative}.voice-help b{color:var(--km-done)}
@media(max-width:430px){.quick button>span.quick-plus{font-size:29px}.voice-company-results{max-height:184px}}

/* v1.9 compact status cards: received blue, planned orange, completed green */
.status-received{--state-color:var(--km-blue);--state-soft:var(--km-blue-soft);--state-border:#c7dcfa}.status-planned{--state-color:var(--km-orange);--state-soft:var(--km-orange-soft);--state-border:#efd0a7}.status-done{--state-color:var(--km-done);--state-soft:var(--km-done-soft);--state-border:#bfe2cf}
.home-visit.status-received,.home-visit.status-planned,.home-visit.status-done{border:1px solid var(--state-border);background:var(--state-soft);box-shadow:0 4px 14px #3155790c}.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit{min-height:94px;padding:10px 12px;border:0;border-radius:17px 17px 0 0;background:var(--state-soft)}.home-visit .visit>div:nth-child(2){min-width:0;flex:1}.home-visit .visit>div:nth-child(2)>b,.home-visit .visit>div:nth-child(2)>small,.home-visit .visit p{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-visit.status-received .time,.home-visit.status-planned .time,.home-visit.status-done .time{width:58px;height:58px;background:color-mix(in srgb,var(--state-color) 10%,white)!important;color:var(--state-color)!important}.home-visit-status{width:58px;height:22px;margin-top:3px;padding:0;border-radius:999px;background:var(--state-color);color:#fff;display:grid;place-items:center;font-size:9px;line-height:1;white-space:nowrap}.home-visit-restore{height:34px;min-height:34px;border-top:1px solid var(--state-border);background:color-mix(in srgb,var(--state-soft) 55%,white);color:var(--state-color);font-size:11px;line-height:1;font-weight:850}
.schedule-job.status-received,.schedule-job.status-planned,.schedule-job.status-done{border-color:var(--state-border);background:var(--state-soft);box-shadow:0 4px 14px #3155790c}.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{min-height:92px;padding:10px 12px;background:var(--state-soft)}.schedule-job.status-received .schedule-job-time,.schedule-job.status-planned .schedule-job-time,.schedule-job.status-done .schedule-job-time{width:58px;height:58px;background:color-mix(in srgb,var(--state-color) 10%,white);color:var(--state-color)}.schedule-job.status-received .schedule-job-main em,.schedule-job.status-planned .schedule-job-main em,.schedule-job.status-done .schedule-job-main em{width:58px;height:22px;padding:0;background:var(--state-color);color:#fff;display:grid;place-items:center;border-radius:999px;font-size:9px;line-height:1;white-space:nowrap}.schedule-job.status-received .schedule-status-button,.schedule-job.status-planned .schedule-status-button,.schedule-job.status-done .schedule-status-button{height:34px;min-height:34px;border-color:var(--state-border);background:color-mix(in srgb,var(--state-soft) 55%,white);color:var(--state-color);font-size:11px;line-height:1}.schedule-job.status-done .schedule-job-main>span:nth-child(2)>b{text-decoration:line-through;color:#71887d}.schedule-job-main>span:nth-child(2)>b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}
.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{min-height:70px;padding:10px 12px;border-color:var(--state-border);background:var(--state-soft)}.recent-row.status-received .recent-icon,.recent-row.status-planned .recent-icon,.recent-row.status-done .recent-icon{width:44px;height:44px;background:color-mix(in srgb,var(--state-color) 10%,white);color:var(--state-color)}.recent-row>span:nth-child(2){min-width:0}.recent-row>span:nth-child(2)>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-row.status-received small,.recent-row.status-planned small,.recent-row.status-done small{display:flex;align-items:center;gap:7px;color:#7a8ba0}.recent-row small em{width:58px;height:21px;border-radius:999px;background:var(--state-color);color:#fff;display:grid;place-items:center;flex:none;font-size:9px;font-style:normal;font-weight:850;line-height:1}.recent-row small span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body[data-work-tone="received"] .work-hero{border-color:#c7dcfa;background:linear-gradient(145deg,var(--km-blue-soft),#fbfdff)}body[data-work-tone="received"] .work-hero>span{background:var(--km-blue)}body[data-work-tone="received"] .work-hero p,body[data-work-tone="received"] .work-facts .ui-icon{color:var(--km-blue)}body[data-work-tone="planned"] .work-hero{border-color:#efd0a7;background:linear-gradient(145deg,var(--km-orange-soft),#fffdf9)}body[data-work-tone="planned"] .work-hero>span{background:var(--km-orange)}body[data-work-tone="planned"] .work-hero p,body[data-work-tone="planned"] .work-facts .ui-icon{color:var(--km-orange)}body[data-work-tone="done"] .work-hero{border-color:#bfe2cf;background:linear-gradient(145deg,var(--km-done-soft),#fbfefc)}body[data-work-tone="done"] .work-hero>span{background:var(--km-done)}body[data-work-tone="done"] .work-hero p,body[data-work-tone="done"] .work-facts .ui-icon{color:var(--km-done)}
@media(max-width:430px){.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit{min-height:90px;padding:9px 10px}.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{min-height:88px;padding:9px 10px}.home-visit.status-received .time,.home-visit.status-planned .time,.home-visit.status-done .time,.schedule-job.status-received .schedule-job-time,.schedule-job.status-planned .schedule-job-time,.schedule-job.status-done .schedule-job-time{width:54px;height:54px}.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{min-height:66px}}
.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit{height:94px}.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{height:92px}.schedule-job-main>span:nth-child(2)>small,.schedule-job-main>span:nth-child(2)>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-job-main>span:nth-child(2)>b{display:block}.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{height:70px}
@media(max-width:430px){.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit{height:90px}.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{height:88px}.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{height:66px}}

/* v2.0 stable scroll position and readable responsive work lists */
.home-visit.status-done .visit p{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--km-done) 70%,transparent);color:#73877e}
.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{width:100%;max-width:100%;height:auto;min-height:72px;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:start;gap:10px;overflow:hidden}
.recent-row .recent-body{min-width:0;display:grid;gap:4px;text-align:left}
.recent-row .recent-body>b{max-width:100%;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}
.recent-row .recent-body small{min-width:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.recent-row .recent-body small span{min-width:0;white-space:normal;overflow-wrap:anywhere}
.recent-action{margin:0;color:#53677f;font-size:11px;line-height:1.45;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.recent-action strong{color:var(--state-color);font-weight:850}
.recent-next{align-self:center;display:grid;place-items:center}
.detail-list{width:100%;max-width:100%;min-width:0;max-height:min(62dvh,560px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px}
.detail-list>*{width:100%;max-width:100%;min-width:0}
.app-modal .modal-inner{max-height:calc(100dvh - 24px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.voice-company-example{margin:0;color:#7c8da2;font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.voice-company-results{max-height:122px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}
.voice-company-results>button{height:58px;min-height:58px}
@media(max-width:430px){.recent-row.status-received,.recent-row.status-planned,.recent-row.status-done{height:auto;min-height:70px;grid-template-columns:42px minmax(0,1fr) 17px;padding:10px}.voice-company-results{max-height:122px}.detail-list{max-height:60dvh}}

/* v2.1 readable schedule cards with treatment details */
.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit{width:100%;max-width:100%;height:auto;min-height:108px;display:grid;grid-template-columns:58px minmax(0,1fr) 18px;align-items:start;gap:12px;padding:12px;overflow:hidden;text-align:left}
.home-visit .visit>.time{align-self:start;flex:none}
.visit-body{min-width:0;max-width:100%;display:grid;gap:4px;text-align:left}
.visit-body>b,.visit-body>small,.visit-symptom,.visit-action{max-width:100%;min-width:0;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:break-word}
.visit-body>b{color:#0788ef;font-weight:850;line-height:1.35}
.visit-body>small{color:#7a8ba0;line-height:1.35}
.visit-symptom{color:#263d59;font-size:13px;line-height:1.45}
.visit-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;color:#53677f;font-size:11px;line-height:1.45}
.visit-action>strong{color:var(--state-color);font-weight:850}
.visit-action>span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.visit-next{align-self:center;display:grid;place-items:center;color:#9aa9ba}
.home-visit.status-done .visit-symptom{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--km-done) 70%,transparent);color:#73877e}
.home-visit.status-done .visit-action{text-decoration:none;color:#536f63}
.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{width:100%;max-width:100%;height:auto;min-height:108px;grid-template-columns:58px minmax(0,1fr) 18px;align-items:start;gap:12px;padding:12px;overflow:hidden}
.schedule-job-body{min-width:0;max-width:100%;display:grid!important;gap:4px}
.schedule-job-body>small,.schedule-job-body>b,.schedule-job-action{max-width:100%;min-width:0;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:break-word}
.schedule-job-body>small{line-height:1.35}
.schedule-job-body>b{display:block!important;line-height:1.45}
.schedule-job-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px;color:#53677f;font-size:11px;line-height:1.45}
.schedule-job-action>strong{color:var(--state-color);font-weight:850}
.schedule-job-action>span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.schedule-job-next{align-self:center;display:grid;place-items:center;color:#9aa9ba}
.schedule-job.status-done .schedule-job-body>b{text-decoration:line-through;color:#71887d}
@media(max-width:430px){.home-visit.status-received .visit,.home-visit.status-planned .visit,.home-visit.status-done .visit,.schedule-job.status-received .schedule-job-main,.schedule-job.status-planned .schedule-job-main,.schedule-job.status-done .schedule-job-main{height:auto;min-height:104px;grid-template-columns:54px minmax(0,1fr) 17px;gap:10px;padding:10px}.visit-symptom,.schedule-job-body>b{font-size:12px}.visit-action,.schedule-job-action{font-size:10.5px}}

/* v2.2 voice command field separation */
.voice-detected span{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left}

/* v2.3 quick treatment notes inside the work execution dialog */
.quick-action-editor{display:grid;gap:10px;border:1px solid #c9d9ed;border-radius:18px;background:linear-gradient(145deg,#f3f8ff,#fbfdff);padding:14px}
.quick-action-head{display:flex;align-items:center;gap:10px}.quick-action-head>span{width:38px;height:38px;border-radius:12px;background:var(--km-blue-soft);color:var(--km-blue);display:grid;place-items:center;flex:none}.quick-action-head .ui-icon{width:20px;height:20px}.quick-action-head>div{display:flex;min-width:0;flex-direction:column;gap:2px}.quick-action-head b{color:#17304f;font-size:14px}.quick-action-head small{color:#73859b;font-size:10px;line-height:1.4}
.quick-action-editor textarea{width:100%;min-height:92px;resize:vertical;border:1px solid #aebed2;border-radius:14px;background:#fff;padding:12px;color:#203751;font:inherit;font-size:13px;line-height:1.55;outline:0}.quick-action-editor textarea:focus{border-color:var(--km-blue);box-shadow:0 0 0 3px #1768df16}.quick-action-editor textarea::placeholder{color:#95a3b4}
.quick-action-presets{display:flex;flex-wrap:wrap;gap:6px}.quick-action-presets button{min-height:31px;border:1px solid #d1dfef;border-radius:999px;background:#fff;color:#45617f;padding:5px 9px;font-size:10px;font-weight:800;-webkit-tap-highlight-color:transparent}.quick-action-presets button:active{border-color:var(--km-blue);background:var(--km-blue-soft);color:var(--km-blue)}
.quick-action-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.quick-action-footer>small{color:#71849a;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.quick-action-footer>small.dirty{color:#b56a12}.quick-action-footer button{min-height:41px;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px}.quick-action-footer .ui-icon{width:17px;height:17px}.quick-action-shortcut{color:#8b99aa;font-size:9px;text-align:right}
@media(max-width:430px){.work-actions{grid-template-columns:1fr 1fr}.work-actions button{min-height:44px;padding:8px 6px;font-size:10px}.quick-action-editor{padding:12px}.quick-action-footer{grid-template-columns:1fr}.quick-action-footer button{width:100%}.quick-action-shortcut{text-align:left}}
