:root{--ink-2:#33454f;--faint:#8696a0;--line-strong:#c3cdd3;--ok-soft:#e4f4eb;--ok-ink:#145c39;--ok-line:#b5dcc6;--warn-soft:#fff1dc;--warn-line:#f2d3a0;--warn-ink:#5c3200;--danger-soft:#fce9e7;--danger-line:#f1c2bd;--danger-ink:#7a1610;--accent-line:#b9dbe6;--idle-soft:#edf0f2;--idle-ink:#3f505a}.app-shell{--bg:#f3f5f6;--panel:#ffffff;--panel-strong:#edf0f2;--ink:#0f1e26;--muted:#5a6b75;--line:#dde3e7;--brand:#0a6c8c;--brand-dark:#07526b;--accent:#0a6c8c;--accent-soft:#e3f1f5;--ok:#1f7a4d;--ok-soft:#e4f4eb;--ok-ink:#145c39;--warn:#b26a00;--warn-soft:#fff1dc;--warn-line:#f2d3a0;--warn-ink:#5c3200;--danger:#b3261e;--danger-soft:#fce9e7;--danger-line:#f1c2bd;--danger-ink:#7a1610;--idle-soft:#edf0f2;--idle-ink:#3f505a;--nav-bg:#0f1e26;--nav-line:#23363f;--nav-ink:#c9d4da;--nav-muted:#8fa2ac;--nav-active:#1f3b49;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;background:var(--bg);color:var(--ink);font-family:IBM Plex Sans,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}.app-shell .nav-sidebar{width:248px;background:var(--nav-bg);color:var(--nav-ink);border-right:0}.app-shell .nav-sidebar-logo{height:auto;padding:20px 22px 14px;gap:10px;border-bottom:0}.app-shell .brand-logo-mark{width:32px;height:32px;border-radius:8px;background:var(--brand);color:#ffffff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-shell .brand-logo-copy{display:flex;flex-direction:column;min-width:0;line-height:1.3}.app-shell .nav-sidebar-logo .brand-logo-text{font-size:15px;font-weight:600}.app-shell .brand-logo-sub,.app-shell .nav-channel{font-size:12px;color:#9fb0b9}.app-shell .nav-channel{display:flex;flex-direction:column;gap:6px;padding:0 18px 14px}.app-shell .nav-channel select{height:40px;width:100%;border-radius:8px;border:1px solid #2b424e;background:#172a34;color:#ffffff;padding:0 10px;font-size:14px;cursor:pointer}.app-shell .nav-sidebar-menu{padding:4px 14px 16px;gap:16px}.app-shell .nav-group{display:flex;flex-direction:column;gap:2px}.app-shell .nav-group-label{font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--nav-muted);padding:0 10px 4px;white-space:nowrap}.app-shell .nav-sidebar-item{min-height:40px;padding:0 10px;gap:10px;font-size:14px;font-weight:400;color:var(--nav-ink);transition:background .15s ease,color .15s ease}.app-shell .nav-sidebar-item:hover{background:rgba(255,255,255,.06);color:#ffffff}.app-shell .nav-sidebar-item.active{background:var(--nav-active);color:#ffffff;font-weight:600}.app-shell .nav-channel select:focus-visible,.app-shell .nav-sidebar-collapse-btn:focus-visible,.app-shell .nav-sidebar-item:focus-visible{outline:2px solid #7fd0e6;outline-offset:2px}.app-shell .nav-sidebar-footer{padding:10px 14px 14px;border-top:1px solid var(--nav-line);gap:2px}.app-shell .nav-sidebar-collapse-btn{margin-top:6px;min-height:36px;background:transparent;border:1px solid var(--nav-line);color:var(--nav-muted)}.app-shell.sidebar-collapsed .nav-sidebar{width:72px}.app-shell.sidebar-collapsed .brand-logo-copy,.app-shell.sidebar-collapsed .nav-channel,.app-shell.sidebar-collapsed .nav-group-label{display:none}.app-shell.sidebar-collapsed .nav-sidebar-logo{padding:20px 0 14px}.app-shell.sidebar-collapsed .nav-sidebar-menu{gap:10px}.app-shell.sidebar-collapsed .nav-sidebar-item{padding:0}@media (max-width:980px){.app-shell .nav-sidebar{left:-248px}.app-shell .nav-sidebar.mobile-open{left:0}}.app-shell .mobile-top-bar{background:var(--nav-bg);border-bottom:0}.app-shell .mobile-top-bar .hamburger-btn{min-width:44px;min-height:44px;border-radius:8px}.app-shell .mobile-top-bar .mobile-title{font-size:16px;font-weight:600}.app-shell .button{border-radius:8px;font-size:14px;box-shadow:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.app-shell .button:hover{transform:none;box-shadow:none}.app-shell .button.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--line);backdrop-filter:none;-webkit-backdrop-filter:none;font-weight:500;box-shadow:none}.app-shell .button.secondary:hover{background:var(--panel-strong);border-color:#c3cdd3;box-shadow:none}.app-shell .button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app-shell .conversation-item.active{box-shadow:inset 0 0 0 1.5px rgba(10,108,140,.2)}.app-shell .filter-pill.active,.app-shell .message-row.outbound .message-bubble,.app-shell .unread-badge,.app-shell .week-day-col.active{box-shadow:none}.app-shell .kanban-column.drag-over{box-shadow:0 0 0 2px rgba(10,108,140,.25)}@media (min-width:769px){.app-shell .page-header{padding:16px 32px!important}.app-shell .page-header h2{font-size:22px!important;font-weight:600!important;letter-spacing:.01em}.app-shell .page-header .desktop-only-subtitle{font-size:13px!important}}.status-chip{display:inline-flex;align-items:center;gap:4px;min-height:26px;padding:0 10px;border-radius:13px;font-size:13px;font-weight:500;background:var(--idle-soft);color:var(--idle-ink)}.status-chip.ok{background:var(--ok-soft);color:var(--ok-ink)}.status-chip.warn{background:var(--warn-soft);color:var(--warn-ink)}.status-chip.danger{background:var(--danger-soft);color:var(--danger-ink)}.page-body{flex:1 1;min-height:0;overflow-y:auto;padding:28px 32px 40px}.today-inner{max-width:1200px;gap:28px}.today-inner,.today-section{display:flex;flex-direction:column}.today-section{gap:12px}.today-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.today-section h3{margin:0;font-size:15px;font-weight:600}.today-section-note{font-size:13px;color:var(--muted)}.today-attention{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px}.today-attention-card{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--muted)}.today-attention-card.warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn-ink)}.today-attention-card.danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-ink)}.today-attention-num{font-family:var(--mono);font-size:34px;font-weight:600;line-height:1}.today-attention-copy{display:flex;flex-direction:column}.today-attention-label{font-size:15px;font-weight:600}.today-attention-hint{font-size:13px}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:var(--panel);border:1px solid var(--line);border-radius:12px}.stat-item{padding:18px 22px;display:flex;flex-direction:column;gap:4px}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-family:var(--mono);font-size:26px;font-weight:600}.stat-value.ok{color:var(--ok)}.stat-value small{font-size:15px;font-weight:500;color:var(--muted)}.data-table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px}.data-table{width:100%;min-width:820px;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:12px;font-size:12px;font-weight:500;color:var(--muted);border-bottom:1px solid var(--line)}.data-table td{padding:14px 12px;vertical-align:top;border-bottom:1px solid var(--panel-strong)}.data-table tr:last-child td{border-bottom:0}.data-table td:first-child,.data-table th:first-child{padding-left:20px}.data-table td:last-child,.data-table th:last-child{padding-right:20px}.cell-time{font-family:var(--mono);white-space:nowrap}.cell-name,.cell-time{font-weight:600}.cell-sub{font-size:13px;color:var(--muted)}.today-unassigned{color:var(--danger-ink)}.today-chips{display:flex;flex-wrap:wrap;gap:6px}.today-next{margin-top:8px;font-size:13px;color:#33454f}.empty-box{text-align:center;padding:56px 24px;color:var(--muted);background:var(--panel);border:1px dashed #c3cdd3;border-radius:12px}@media (max-width:768px){.page-body{padding:16px}.today-inner{gap:20px}.today-attention{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.today-attention-card{flex-direction:column;align-items:flex-start;gap:4px;padding:12px}.today-attention-num{font-size:28px}.today-attention-label{font-size:13px}.today-attention-hint{display:none}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-item{padding:12px 14px}.stat-value{font-size:20px}}.page-body.list{display:flex;flex-direction:column;gap:16px;padding-top:24px}.data-table.middle td{vertical-align:middle}.data-table .mono-num,.mono-num{font-family:var(--mono)}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.filter-bar-group{display:flex;flex-wrap:wrap;gap:8px}.seg{display:inline-flex;gap:2px;padding:3px;background:#e6ebee;border-radius:10px}.seg button{height:34px;padding:0 12px;border-radius:7px;font-size:13px;color:var(--idle-ink);cursor:pointer;white-space:nowrap}.seg button.active{background:#ffffff;color:var(--ink);font-weight:600}.row-action:focus-visible,.search-field input:focus-visible,.seg button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.search-field{position:relative;flex:1 1 260px;max-width:360px;color:var(--muted)}.search-field>svg{position:absolute;left:12px;top:12px;pointer-events:none}.search-field input{width:100%;height:40px;padding:0 36px;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--ink);font-size:14px}.search-field button{position:absolute;right:4px;top:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--muted);cursor:pointer}.mini-tag{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:4px;font-size:12px;white-space:nowrap;background:var(--idle-soft);color:var(--idle-ink)}.row-actions{display:flex;align-items:center;gap:2px}.row-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:36px;padding:0 8px;border-radius:8px;background:none;color:var(--brand);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer}.row-action:hover{background:var(--accent-soft)}.row-action.icon{width:36px;padding:0;color:var(--idle-ink)}.row-action.icon:hover{background:var(--panel-strong)}.row-action.danger{color:var(--danger)}.row-action.danger:hover{background:var(--danger-soft)}.data-card,.data-card-list{display:flex;flex-direction:column;gap:10px}.data-card{padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.data-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.data-card-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:600}.data-card dl{margin:0;display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:4px 10px;gap:4px 10px;font-size:13px}.data-card dt{color:var(--muted)}.data-card dd{margin:0}.data-card .row-actions{flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--panel-strong)}.data-card .row-action{height:44px}.data-card .row-action.icon{width:44px}@media (max-width:768px){.search-field{max-width:none}}.app-shell .workspace{grid-template-columns:minmax(300px,340px) minmax(0,1fr)}.app-shell .sidebar-header{padding:18px 16px 12px}.app-shell .search-input,.app-shell .select-input,.app-shell .textarea-input{background:#ffffff;border:1px solid var(--line);border-radius:8px;box-shadow:none;color:var(--ink);font-size:14px}.app-shell .reply-editor:focus,.app-shell .search-input:focus,.app-shell .select-input:focus,.app-shell .textarea-input:focus{background:#ffffff;border:1px solid var(--brand);box-shadow:0 0 0 3px var(--accent-soft)}.app-shell .filter-toggle-row{border-radius:8px}.app-shell .filter-active-count,.app-shell .unread-badge{font-family:var(--mono);font-weight:600}.app-shell .unread-badge{background:#ffb454;color:#2a1a00}.app-shell .conversation-item{border-radius:8px;margin-bottom:2px;transition:background .15s ease}.app-shell .conversation-name{font-weight:600}.app-shell .avatar{background:#d5e3e9;color:#0b2f3b;font-weight:600;box-shadow:none}.app-shell .status-pill{border-radius:12px;font-size:12px;font-weight:500;background:var(--idle-soft);color:var(--idle-ink)}.app-shell .status-pill.closed,.app-shell .status-pill.ready_for_quote,.app-shell .status-pill.sent{background:var(--ok-soft);color:var(--ok-ink)}.app-shell .status-pill.ai_processing,.app-shell .status-pill.ready_for_inspection{background:var(--accent-soft);color:var(--brand-dark)}.app-shell .status-pill.draft_ready,.app-shell .status-pill.insufficient_info,.app-shell .status-pill.ready_for_repair_survey{background:var(--warn-soft);color:var(--warn-ink)}.app-shell .status-pill.needs-review{background:var(--danger-soft);color:var(--danger-ink)}.app-shell .case-subtitle .status-pill{font-size:11px}.app-shell .case-header{box-shadow:none}.app-shell .case-title{font-weight:600}.app-shell .section-title{font-weight:500;text-transform:none;letter-spacing:.08em}.app-shell .message-bubble{border:1px solid var(--line);border-radius:14px;border-top-left-radius:4px;box-shadow:none}.app-shell .message-row.outbound .message-bubble{border-color:transparent;border-radius:14px;border-top-right-radius:4px}.app-shell .message-row.system .message-bubble{border:0}.app-shell .chat-message-sender,.app-shell .chat-sender-badge{font-weight:500}.app-shell .chat-sender-badge.ai{background:var(--accent-soft);color:var(--brand-dark)}.app-shell .chat-sender-badge.admin{background:var(--idle-soft);color:var(--idle-ink)}.app-shell .chat-date-separator span{background:var(--bg);font-weight:500;letter-spacing:0;box-shadow:none}.app-shell .draft-pane{background:var(--panel)}.app-shell .info-band{box-shadow:none}.app-shell .info-band:hover{border-color:var(--line)}.app-shell .info-band h3{font-weight:600}.app-shell .info-band li,.app-shell .info-band p{color:#33454f}.app-shell .reply-editor{border-radius:8px;font-size:14px}.app-shell .main-content th{font-weight:500!important;color:var(--muted)}.app-shell .main-content h3{letter-spacing:0}.app-shell .modal-content{border-radius:12px}.app-shell .modal-content h2,.app-shell .modal-content h3{font-weight:600}.app-shell input[type=date]:focus-visible,.app-shell input[type=number]:focus-visible,.app-shell input[type=search]:focus-visible,.app-shell input[type=tel]:focus-visible,.app-shell input[type=text]:focus-visible,.app-shell select:focus-visible,.app-shell textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.app-shell .kanban-column.drag-over{background:var(--accent-soft)}.sched-toolbar{justify-content:space-between;gap:10px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.sched-toolbar,.sched-toolbar-group{display:flex;flex-wrap:wrap;align-items:center}.sched-toolbar-group{gap:8px 12px}.sched-nav{gap:4px}.sched-nav,.sched-nav button{display:flex;align-items:center}.sched-nav button{width:36px;height:36px;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);cursor:pointer}.sched-nav button:hover{background:var(--panel-strong)}.sched-range{min-width:124px;text-align:center;font-family:var(--mono);font-size:15px;font-weight:600;white-space:nowrap}.app-shell .sched-today-btn{height:36px;padding:0 14px}.sched-filter-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:18px;background:var(--accent-soft);color:var(--brand-dark);font-family:var(--mono);font-size:13px;font-weight:600;cursor:pointer}.sched-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}.sched-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.sched-legend i{width:12px;height:12px;border-radius:3px;border:1px solid}.sched-daypill:focus-visible,.sched-event:focus-visible,.sched-filter-chip:focus-visible,.sched-nav button:focus-visible,.sched-week-day:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.sched-week{background:var(--panel);border:1px solid var(--line);border-radius:12px}.sched-week-body,.sched-week-head{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr))}.sched-week-head{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}.sched-week-corner{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}.sched-week-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px 6px;border-left:1px solid var(--line);color:var(--ink);cursor:pointer}.sched-week-day:hover{background:var(--panel-strong)}.sched-week-day.selected{background:var(--accent-soft)}.sched-week-day-name{font-size:12px;color:var(--muted)}.sched-week-day-num{font-family:var(--mono);font-size:15px;font-weight:600;padding:1px 8px;border-radius:12px}.sched-week-day.today .sched-week-day-num{background:var(--brand);color:#ffffff}.sched-week-day-count{font-size:11px;color:var(--muted)}.sched-week-body{position:relative;border-radius:0 0 12px 12px;overflow:hidden}.sched-hour-label{height:60px;box-sizing:border-box;padding:3px 8px 0 0;text-align:right;font-family:var(--mono);font-size:12px;color:var(--muted);border-bottom:1px solid var(--panel-strong)}.sched-track{position:relative;border-left:1px solid var(--line);background:var(--panel);cursor:cell}.sched-track.out{background:var(--bg)}.sched-track.today{background:#f7fbfc}.sched-hour-cell{height:60px;box-sizing:border-box;border-bottom:1px solid var(--panel-strong);background:linear-gradient(to bottom,transparent 29px,var(--panel-strong) 29px,var(--panel-strong) 30px,transparent 30px);background-size:100% 60px;opacity:.9}.sched-track:hover .sched-hour-cell:hover{background-color:var(--accent-soft)}.sched-now{left:0;right:0;height:2px;z-index:10;pointer-events:none}.sched-now,.sched-now:before{position:absolute;background:var(--danger)}.sched-now:before{content:"";left:-4px;top:-4px;width:10px;height:10px;border-radius:50%}.sched-event{position:absolute;box-sizing:border-box;padding:4px 6px;border-radius:6px;overflow:hidden;cursor:pointer;z-index:2;line-height:1.3}.sched-event.selected,.sched-event:hover{z-index:5;box-shadow:0 0 0 2px var(--brand)}.sched-event-time{display:flex;justify-content:space-between;gap:4px;font-family:var(--mono);font-size:11px;font-weight:600;white-space:nowrap}.sched-event-time span{font-family:IBM Plex Sans,Noto Sans TC,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis}.sched-event-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-event-meta{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--ink-2);white-space:nowrap;overflow:hidden}.sched-event-meta span{overflow:hidden;text-overflow:ellipsis}.sched-daypills{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.sched-daypill{min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);cursor:pointer}.sched-daypill-name{font-size:12px;color:var(--muted)}.sched-daypill-num{font-family:var(--mono);font-size:17px;font-weight:600}.sched-daypill-count{min-width:18px;padding:0 4px;border-radius:9px;font-family:var(--mono);font-size:11px;font-weight:600;line-height:16px;background:var(--warn-soft);color:var(--warn-ink)}.sched-daypill:not(.has) .sched-daypill-count{background:transparent}.sched-daypill.today{border-color:var(--brand)}.sched-daypill.today .sched-daypill-num{color:var(--brand)}.sched-daypill.selected{background:var(--brand);border-color:var(--brand);color:#ffffff}.sched-daypill.selected .sched-daypill-name,.sched-daypill.selected .sched-daypill-num{color:#ffffff}.sched-dayhead{margin-top:6px;font-size:13px;font-weight:600;color:var(--muted)}.app-shell .sched-agenda-actions .button{min-height:40px;padding:0 14px!important;font-size:13px!important}@media (max-width:768px){.sched-toolbar{padding:8px 12px}.sched-toolbar-group{width:100%;justify-content:space-between}.sched-nav button{width:44px;height:44px}.app-shell .sched-today-btn,.sched-filter-chip{height:44px}.sched-legend{display:none}.sched-toolbar .seg{width:100%}.sched-toolbar .seg button{flex:1 1;height:40px}}.sched-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;min-width:760px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.sched-month-weekday{padding:8px 10px;text-align:center;font-size:12px;color:var(--muted);background:var(--bg)}.sched-month-weekday.weekend{color:var(--faint)}.sched-month-cell{min-height:118px;padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--panel);cursor:pointer}.sched-month-cell:hover{background:#f7fbfc}.sched-month-cell.out{background:var(--bg)}.sched-month-cell.out .sched-month-daynum{color:var(--faint)}.sched-month-cell.selected{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--brand)}.sched-month-cell-head{display:flex;align-items:center;justify-content:space-between;min-height:24px}.sched-month-daynum{min-width:24px;height:24px;padding:0 4px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink-2)}.sched-month-cell.today .sched-month-daynum{background:var(--brand);color:#ffffff}.sched-month-add{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--brand);cursor:pointer;opacity:0}.sched-month-add:focus-visible,.sched-month-cell:hover .sched-month-add{opacity:1}.sched-month-add:hover{background:var(--panel);box-shadow:inset 0 0 0 1px var(--accent-line)}.sched-month-events{display:flex;flex-direction:column;gap:3px;min-width:0}.sched-month-event{display:flex;align-items:baseline;gap:5px;min-width:0;padding:2px 6px;border-radius:4px;font-size:12px;line-height:1.5;text-align:left;cursor:pointer}.sched-month-event:hover{box-shadow:0 0 0 1.5px var(--brand)}.sched-month-event-time{font-family:var(--mono);font-size:11px;font-weight:600;flex-shrink:0}.sched-month-event-name{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-month-more{padding:1px 6px;border-radius:4px;font-size:12px;color:var(--brand);text-align:left;cursor:pointer}.sched-month-more:hover{background:var(--panel);text-decoration:underline}.bill-cell:focus-visible,.sched-month-add:focus-visible,.sched-month-event:focus-visible,.sched-month-more:focus-visible,.sched-mpicker-day:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.sched-mpicker{padding:10px 8px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.sched-mpicker-grid,.sched-mpicker-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:2px;gap:2px;text-align:center}.sched-mpicker-weekdays{margin-bottom:4px;font-size:12px;color:var(--muted)}.sched-mpicker-day{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:10px;color:var(--ink);cursor:pointer}.sched-mpicker-day.out{color:var(--faint)}.sched-mpicker-num{width:26px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;font-family:var(--mono);font-size:14px;font-weight:500}.sched-mpicker-day.today .sched-mpicker-num{background:var(--accent-soft);color:var(--brand-dark);font-weight:600}.sched-mpicker-count{min-width:16px;padding:0 3px;border-radius:7px;font-family:var(--mono);font-size:10px;font-weight:600;line-height:14px}.sched-mpicker-count.has{background:var(--warn-soft);color:var(--warn-ink)}.sched-mpicker-day.selected{background:var(--brand);color:#ffffff}.sched-mpicker-day.selected .sched-mpicker-num{background:transparent;color:#ffffff;font-weight:600}.app-shell .billing-calendar-container{flex:1 1;min-height:0;width:100%;box-sizing:border-box;overflow-y:auto}.bill-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(112px,auto);grid-gap:1px;gap:1px;background:var(--panel-strong)}.bill-cell{min-width:0;padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--panel);cursor:pointer}.bill-cell:hover{background:#f7fbfc}.bill-cell.out{background:var(--bg)}.bill-cell.out .bill-daynum{color:var(--faint)}.bill-cell.selected{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--brand)}.bill-cell-head{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:24px}.bill-daynum{min-width:24px;height:24px;padding:0 4px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink-2)}.bill-cell.today .bill-daynum{background:var(--brand);color:#ffffff}.bill-reconcile-tag{padding:0 5px;border-radius:4px;background:var(--warn-soft);color:var(--warn-ink)}.bill-count,.bill-reconcile-tag{font-size:11px;font-weight:600;line-height:18px;white-space:nowrap}.bill-count{padding:0 6px;border-radius:9px;background:var(--panel-strong);color:var(--ink-2)}.bill-pills{display:flex;flex-direction:column;gap:2px}.bill-pill{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:1px 5px;border-radius:4px;font-size:11px;font-weight:600;min-width:0}.bill-pill.ok{background:var(--ok-soft);color:var(--ok-ink)}.bill-pill.warn{background:var(--warn-soft);color:var(--warn-ink)}.bill-pill.danger{background:var(--danger-soft);color:var(--danger-ink)}.bill-amount{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis}.bill-preview{display:flex;flex-direction:column;gap:2px;min-width:0}.bill-preview-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden}.bill-preview-item i{width:6px;height:6px;border-radius:50%;flex-shrink:0}.bill-preview-item b{font-weight:600}.bill-preview-item span{overflow:hidden;text-overflow:ellipsis}.bill-preview-item span,.bill-preview-more{font-size:11px;color:var(--muted)}.bill-day-panel{scroll-margin-top:12px}@media (max-width:1100px){.app-shell .calendar-layout-grid{grid-template-columns:minmax(0,1fr)!important}}@media (max-width:768px){.app-shell .billing-calendar-container{padding:12px!important}.bill-tabs button{flex:1 1 auto;justify-content:center;min-height:44px}.bill-grid{grid-auto-rows:minmax(66px,auto)}.bill-cell{padding:4px 2px;gap:2px;align-items:stretch}.bill-cell-head{flex-wrap:wrap;justify-content:center;gap:2px}.bill-preview,.bill-wide{display:none}.bill-count,.bill-reconcile-tag{padding:0 4px;font-size:10px;line-height:15px}.bill-pill{justify-content:center;padding:0 2px;font-size:10px}}.doc-toolbar{flex-wrap:wrap;gap:10px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}.doc-reason,.doc-toolbar{display:flex;align-items:center}.doc-reason{flex:1 1 260px;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap}.doc-reason input{flex:1 1;min-width:0;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--ink);background:#ffffff}.doc-reason input:disabled{background:var(--bg)}.doc-error{flex-basis:100%;margin:0;font-size:13px;color:var(--danger)}.doc-scroll{flex:1 1;min-height:0;overflow-y:auto;padding:28px 20px 80px;background:#e6ebee}.doc-page{max-width:820px;margin:0 auto;padding:56px 64px 72px;background:#ffffff;border:1px solid var(--line);border-radius:4px;font-size:16px;line-height:1.85;color:var(--ink)}.doc-kicker{margin:0 0 4px;font-size:13px;letter-spacing:.08em;color:var(--muted)}.doc-head h1{margin:0 0 16px;font-size:28px;font-weight:700;line-height:1.4}.doc-meta{margin:0;padding:14px 0;display:grid;grid-template-columns:88px minmax(0,1fr);grid-gap:2px 12px;gap:2px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px}.doc-meta dt{color:var(--muted);padding-top:2px}.doc-meta dd{margin:0;min-width:0}.doc-readonly{margin:0;padding:2px 6px;color:var(--ink-2)}.doc-section{margin-top:36px}.doc-section h2{margin:0 0 6px;font-size:21px;font-weight:700}.doc-unit-head{padding-bottom:8px;margin-bottom:8px;border-bottom:2px solid var(--ink)}.doc-unit-head .doc-readonly{padding-left:0;font-size:14px}.doc-space{margin-top:24px}.doc-conclusion h3,.doc-space h3{margin:0 0 8px;font-size:18px;font-weight:700}.doc-entry+.doc-entry{margin-top:18px;padding-top:18px;border-top:1px dashed var(--line)}.doc-entry-facts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}.doc-entry-facts,.doc-page h4{font-size:13px;color:var(--muted)}.doc-page h4{margin:14px 0 0;padding-left:6px;font-weight:500;letter-spacing:.04em}.doc-conclusion{padding-top:20px;border-top:1px solid var(--line)}.doc-space+.doc-conclusion{margin-top:28px}.doc-field{position:relative;margin:0 0 2px}.doc-grow{display:grid}.doc-grow:after{content:attr(data-value) " ";visibility:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.doc-grow textarea,.doc-grow:after{grid-area:1/1/2/2;box-sizing:border-box;min-width:0;padding:2px 6px;border:1px solid transparent;border-radius:4px;font:inherit;line-height:inherit;letter-spacing:inherit}.doc-grow textarea{resize:none;overflow:hidden;background:transparent;color:inherit;outline:none;overflow-wrap:anywhere;transition:background .12s ease,border-color .12s ease}.doc-grow textarea::placeholder{color:var(--faint)}.doc-grow textarea:hover{background:var(--bg)}.doc-grow textarea:focus{background:#ffffff;border-color:var(--brand);box-shadow:0 0 0 3px var(--accent-soft)}.doc-field.changed .doc-grow textarea{background:var(--warn-soft)}.doc-field.changed .doc-grow textarea:focus{background:#ffffff}.doc-field-meta{display:flex;align-items:center;gap:8px;padding:2px 6px 0;font-size:12px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--warn-ink)}.doc-field-meta button{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;font-size:12px;color:var(--brand);cursor:pointer}.doc-field-meta button:hover{background:var(--accent-soft)}.doc-photos{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-left:6px}.doc-photo-label{font-size:12px;color:var(--muted)}.doc-photo-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}.doc-photo-row img{display:block;width:72px;height:72px;object-fit:cover;border-radius:4px;border:1px solid var(--line);background:var(--bg)}.doc-photo-row a:focus-visible img,.doc-photo-row a:hover img{outline:2px solid var(--brand);outline-offset:1px}.doc-photo-more{font-family:var(--mono);font-size:13px;color:var(--muted)}@media (max-width:768px){.doc-toolbar{padding:8px 12px}.doc-reason{flex-basis:100%;order:3}.doc-scroll{padding:0 0 80px}.doc-page{padding:24px 14px 40px;border:0;border-radius:0;font-size:16px}.doc-head h1{font-size:23px}.doc-meta{grid-template-columns:72px minmax(0,1fr)}.doc-photo-row img{width:60px;height:60px}}@media print{.doc-field-meta,.doc-photos,.doc-toolbar{display:none}}.doc-split{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(360px,460px) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.doc-split .doc-scroll{flex:none;padding:0;background:var(--panel);border-right:1px solid var(--line)}.doc-split .doc-page{max-width:none;padding:20px 18px 64px;border:0;border-radius:0;font-size:15px;line-height:1.75}.doc-split .doc-head h1{font-size:21px;margin-bottom:10px}.doc-split .doc-section{margin-top:26px}.doc-split .doc-section h2{font-size:18px}.doc-split .doc-conclusion h3,.doc-split .doc-space h3{font-size:16px}.doc-split .doc-photo-row img{width:56px;height:56px}.doc-preview{min-width:0;min-height:0;display:flex;flex-direction:column;background:#d9dfe3}.doc-preview-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.doc-preview-bar .status-chip{margin-right:auto}.doc-auto{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:13px;color:var(--ink-2);cursor:pointer}.doc-auto input{width:16px;height:16px;accent-color:var(--brand)}.doc-preview-body{position:relative;flex:1 1;min-height:0;display:flex;flex-direction:column;transition:opacity .15s ease}.doc-preview-body.loading{opacity:.6}.doc-preview-pages{flex:1 1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;align-items:center;gap:14px}.doc-preview-pages canvas{display:block;flex-shrink:0;background:#ffffff;box-shadow:0 1px 4px rgba(15,30,38,.18)}.doc-preview-frame{flex:1 1;width:100%;border:0}.doc-preview-count{position:absolute;right:14px;bottom:12px;padding:2px 10px;border-radius:12px;background:rgba(15,30,38,.72);color:#ffffff;font-size:12px;pointer-events:none}.doc-preview-empty{margin:0;padding:48px 16px;text-align:center;color:var(--ink-2)}.doc-pane-tabs{display:none}@media (max-width:1100px){.doc-split{grid-template-columns:minmax(0,1fr)}.doc-pane-tabs{display:inline-flex}.doc-pane-tabs button{height:40px}.doc-split.show-edit .doc-preview,.doc-split.show-preview .doc-scroll{display:none}.doc-split .doc-scroll{border-right:0}.doc-preview-pages{padding:10px;gap:10px}}.pdf-sheets{align-items:center;gap:16pt;width:max-content;margin:0 auto;color:#000000;line-height:1.2;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}.pdf-sheet,.pdf-sheets{display:flex;flex-direction:column}.pdf-sheet{position:relative;width:595.28pt;min-height:841.89pt;overflow:hidden;background:#ffffff;box-shadow:0 1px 4px rgba(15,30,38,.18)}.pdf-sheet,.pdf-sheet *,.pdf-sheet :before{box-sizing:border-box}.pdf-view{display:flex;flex-direction:column;flex-shrink:0}.pdf-text,.pdf-view{position:relative;min-width:0}.pdf-text{display:block;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;text-decoration:none}.pdf-image{display:block;flex-shrink:0;max-width:none}.pdf-edit{border-radius:2px;outline:1px dashed transparent;outline-offset:1px;cursor:text;transition:background .12s ease,outline-color .12s ease}.pdf-edit:hover{background:rgba(10,108,140,.1);outline-color:rgba(10,108,140,.55)}.pdf-edit:focus{background:#ffffff;outline:2px solid var(--brand);box-shadow:0 0 0 4px var(--accent-soft)}.pdf-edit.changed{background:var(--warn-soft)}.pdf-edit.changed:focus{background:#ffffff}.pdf-edit:empty{display:inline-block;min-width:6em;outline-color:rgba(10,108,140,.45)}.pdf-edit:empty:before{content:"點此輸入";color:#8696a0;font-weight:400}.pdf-sheets.hide-marks .pdf-edit:not(:focus){background:transparent;outline-color:transparent}.doc-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.doc-edit{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.doc-sheets-pane{flex:1 1;min-height:0;overflow:auto;padding:16px;background:#d9dfe3;transition:opacity .15s ease}.doc-sheets-pane.loading{opacity:.6}.doc-extra{max-width:760px;margin:20px auto 0;padding:16px 18px 18px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:15px;line-height:1.7}.doc-extra h3{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--ink-2)}.doc-extra .doc-field{display:block;margin-top:10px}.doc-extra-label{display:block;padding-left:6px;font-size:13px;color:var(--muted)}.doc-extra .doc-grow textarea{border-color:var(--line);background:#ffffff}@media (max-width:1280px){.doc-split{grid-template-columns:minmax(0,1fr)}.doc-pane-tabs{display:inline-flex}.doc-pane-tabs button{height:40px}.doc-split.show-edit .doc-preview,.doc-split.show-preview .doc-edit{display:none}.doc-edit{border-right:0}}@media (max-width:768px){.doc-sheets-pane{padding:10px}}.bill-sched{display:flex;flex-direction:column;gap:2px;min-width:0}.bill-sched-item{display:flex;align-items:center;gap:4px;padding:0 4px;border:1px dashed var(--brand);border-radius:4px;font-size:11px;line-height:18px;white-space:nowrap;overflow:hidden;color:var(--brand-dark);background:var(--panel)}.bill-sched-item:hover{border-style:solid}.bill-sched-item[draggable=true]{cursor:-webkit-grab;cursor:grab}.bill-sched-item.drafting{opacity:.5}.bill-day-panel.drag-over .ledger-drop{border-color:var(--brand);background:var(--accent-soft)}.draft-info{display:flex;flex-direction:column;gap:4px;margin:0;padding:10px 12px;border-radius:8px;background:var(--bg);font-size:13px}.draft-info>div{display:flex;gap:10px}.draft-info dt{flex:0 0 76px;color:var(--muted)}.draft-info dd{flex:1 1;min-width:0;margin:0;color:var(--ink);overflow-wrap:anywhere}.draft-info-notes{white-space:pre-wrap;max-height:120px;overflow-y:auto}.bill-sched-item.google{border-color:#c4a5e6;color:#6b21a8;background:#faf5ff}.bill-sched-item b{font-weight:600;overflow:hidden;text-overflow:ellipsis}.bill-pending-chip{display:none;align-self:flex-start;padding:0 6px;border:1px dashed var(--brand);border-radius:4px;font-size:11px;font-weight:600;line-height:18px;white-space:nowrap;color:var(--brand-dark);background:var(--panel)}.bill-pending-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}.bill-pending-tab.has{color:var(--brand-dark);box-shadow:inset 0 0 0 1px var(--accent-line);background:var(--accent-soft)}.bill-pending-tab.active{background:var(--brand);color:#ffffff;box-shadow:none}.pend-block{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed var(--brand);border-radius:12px;background:#f7fbfc}.pend-block-title{display:flex;align-items:baseline;justify-content:space-between;font-size:13px;font-weight:600;color:var(--brand-dark)}.pend-block-title span{font-family:var(--mono);font-weight:500}.pend-item{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.pend-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pend-time{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink-2)}.pend-source{padding:0 6px;border-radius:4px;font-size:11px;line-height:18px;white-space:nowrap;background:var(--idle-soft);color:var(--idle-ink)}.pend-source.google{background:#faf5ff;color:#6b21a8}.pend-name{font-size:15px;font-weight:600}.pend-meta,.pend-name{overflow-wrap:anywhere}.pend-meta{font-size:13px;color:var(--muted)}.pend-form{flex-wrap:wrap;gap:8px;margin-top:6px}.pend-amount,.pend-form{display:flex;align-items:center}.pend-amount{flex:1 1 130px;gap:6px;min-width:0;height:40px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:#ffffff;font-size:13px;color:var(--muted);white-space:nowrap}.pend-amount:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--accent-soft)}.pend-amount input{flex:1 1;min-width:0;width:100%;border:0;outline:none;background:transparent;text-align:right;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--ink)}.app-shell .pend-create{height:40px}.pend-form .seg button{height:34px}.pend-hint{font-size:12px;color:var(--muted)}.pend-view{display:flex;flex-direction:column;gap:14px}.pend-view-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.pend-view-head h3{margin:0;font-size:17px;font-weight:600}.pend-view-head p{margin:4px 0 0;max-width:680px;font-size:13px;line-height:1.6;color:var(--muted)}.pend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:12px;gap:12px}@media (max-width:768px){.bill-sched{display:none}.bill-pending-chip{display:block;align-self:center;padding:0 4px;font-size:10px;line-height:15px}.bill-pending-tab{flex:1 1 auto;justify-content:center;min-height:44px}.pend-grid{grid-template-columns:minmax(0,1fr)}.pend-form .seg{width:100%}.pend-form .seg button{flex:1 1;height:40px}.app-shell .pend-create{flex:1 1 auto;height:44px}.pend-amount{height:44px}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bill-ledger-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}.bill-ledger-tab.active{background:var(--ink);color:#ffffff}.ledger{display:flex;flex-direction:column;gap:14px}.ledger-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ledger-add-title{font-size:13px;font-weight:600;color:var(--ink-2)}.ledger-add input[type=date],.ledger-add-name{height:40px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:#ffffff;font-size:14px;color:var(--ink)}.ledger-add-name{flex:2 1 160px;min-width:0}.ledger-add .pend-amount{flex:1 1 150px}.ledger-pending-note{align-self:flex-start;padding:8px 12px;border:1px dashed var(--brand);border-radius:8px;background:#f7fbfc;font-size:13px;font-weight:500;color:var(--brand-dark);text-align:left;cursor:pointer}.ledger-pending-note:hover{background:var(--accent-soft)}.ledger-table{min-width:1040px}.ledger-table td{padding-top:8px;padding-bottom:8px}.ledger-table tr.reconciled td{background:#f6faf7}.ledger-table tr.pending-confirm td{background:var(--warn-soft)}.ledger-table tr.busy{opacity:.7}.ledger-table tfoot td{border-top:1px solid var(--line);border-bottom:0;background:var(--bg);font-weight:600}.ledger-check input{width:20px;height:20px;accent-color:var(--ok);cursor:pointer}.ledger-date,.ledger-who{white-space:nowrap}.ledger-date .cell-sub,.ledger-who .cell-sub{display:block;font-size:12px;white-space:normal}.ledger-who .cell-name{display:block}.ledger-quote-link{display:inline-flex;align-items:center;margin-left:6px;color:var(--accent,#0a6c8c);vertical-align:middle}.ledger-quote-link:hover{opacity:.7}.ledger-note,.ledger-num,.ledger-select{height:38px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:14px;color:var(--ink)}.ledger-num{width:104px;padding:0 8px;text-align:right;font-family:var(--mono);font-weight:600}.ledger-note{width:100%;min-width:140px;padding:0 8px}.ledger-select{padding:0 4px;cursor:pointer}.ledger-table tr:hover .ledger-note,.ledger-table tr:hover .ledger-num,.ledger-table tr:hover .ledger-select{border-color:var(--line);background:#ffffff}.ledger-note:focus,.ledger-num:focus,.ledger-select:focus{outline:none;border-color:var(--brand);background:#ffffff;box-shadow:0 0 0 3px var(--accent-soft)}.ledger-received{display:flex;align-items:center;justify-content:flex-end;gap:2px}.ledger-actions{white-space:nowrap;text-align:right}.ledger-saved{display:inline-block;min-width:52px;font-size:12px;color:var(--ok-ink)}.ledger-help{margin:0;font-size:13px;color:var(--muted)}@media (min-width:769px){.ledger-table tbody td:nth-child(-n+4),.ledger-table tfoot td:nth-child(-n+4),.ledger-table thead th:nth-child(-n+4){position:-webkit-sticky;position:sticky;box-sizing:border-box}.ledger-table tbody td:first-child,.ledger-table tfoot td:first-child,.ledger-table thead th:first-child{left:0;width:52px;min-width:52px}.ledger-table tbody td:nth-child(2),.ledger-table tfoot td:nth-child(2),.ledger-table thead th:nth-child(2){left:52px;width:64px;min-width:64px}.ledger-table tbody td:nth-child(3),.ledger-table tfoot td:nth-child(3),.ledger-table thead th:nth-child(3){left:116px;width:100px;min-width:100px}.ledger-table tbody td:nth-child(4),.ledger-table tfoot td:nth-child(4),.ledger-table thead th:nth-child(4){left:216px;width:200px;min-width:200px;max-width:200px;box-shadow:2px 0 4px -2px rgba(15,23,42,.15)}.ledger-table tbody td:nth-child(4) .cell-name,.ledger-table tbody td:nth-child(4) .cell-sub{overflow:hidden;text-overflow:ellipsis}.ledger-table thead th:nth-child(-n+4){z-index:3;background:var(--panel)}.ledger-table tbody td:nth-child(-n+4){z-index:2;background:#fff}.ledger-table tbody tr.reconciled td:nth-child(-n+4){background:#f6faf7}.ledger-table tbody tr.pending-confirm td:nth-child(-n+4){background:var(--warn-soft)}.ledger-table tfoot td:nth-child(-n+4){z-index:2;background:var(--bg)}}@media (max-width:768px){.bill-ledger-tab{flex:1 1 auto;justify-content:center;min-height:44px}.ledger-add .pend-amount,.ledger-add .seg,.ledger-add input[type=date],.ledger-add-name{flex:1 1 100%;height:44px}.ledger-add .seg button{flex:1 1;height:38px}.ledger .data-table-wrap{overflow:visible;border:0;background:transparent}.ledger-table{min-width:0}.ledger-table thead{display:none}.ledger-table,.ledger-table tbody,.ledger-table tfoot{display:block}.ledger-table tbody tr{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 10px;gap:6px 10px;margin-bottom:10px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ledger-table tbody td{display:flex;flex-direction:column;gap:2px;padding:0!important;border:0;background:transparent!important}.ledger-table tbody td[data-label]:before{content:attr(data-label);font-size:12px;color:var(--muted)}.ledger-table tbody .ledger-actions,.ledger-table tbody .ledger-who,.ledger-table tbody td[data-label="備註"]{grid-column:1/-1}.ledger-table tbody .ledger-check{flex-direction:row;align-items:center;gap:8px;order:2}.ledger-table tbody .ledger-check input{width:24px;height:24px}.ledger-table tbody .ledger-who{order:-2}.ledger-table tbody .ledger-date{order:-1}.ledger-note,.ledger-num,.ledger-select{width:100%;height:44px;border-color:var(--line);background:#ffffff;text-align:left}.ledger-received{justify-content:flex-start}.ledger-table tbody .ledger-actions{flex-direction:row;align-items:center;justify-content:flex-end;order:3}.ledger-table tfoot tr{display:flex;flex-wrap:wrap;gap:4px 14px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ledger-table tfoot td{padding:0!important;border:0;background:transparent;text-align:left!important}.ledger-table tfoot td:empty{display:none}}.ledger-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:16px;gap:16px;align-items:start}.ledger-side{position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 140px);padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ledger-side-head{display:flex;align-items:baseline;justify-content:space-between}.ledger-side-head h3{margin:0;font-size:15px;font-weight:600}.ledger-side-head span{padding:0 8px;border-radius:10px;background:var(--accent-soft);color:var(--brand-dark);font-size:13px;font-weight:600}.ledger-side-empty,.ledger-side-help{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}.ledger-side-list{display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto}.face{flex-shrink:0;display:inline-flex;justify-content:center;border-radius:50%;object-fit:cover;background:#d5e3e9;color:#0b2f3b;font-weight:600}.face,.src-card{align-items:center}.src-card{display:flex;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#ffffff;cursor:-webkit-grab;cursor:grab}.src-item{display:flex;flex-direction:column;gap:6px}.src-card.billed{cursor:default;background:var(--bg)}.src-card.billed .src-card-name{color:var(--muted)}.src-card-tags{display:flex;flex-wrap:wrap;gap:4px}.src-card-billed,.src-card-bind{padding:0 6px;border-radius:4px;font-size:11px;line-height:18px;white-space:nowrap}.src-card-bind{border:1px dashed var(--line-strong);background:var(--panel);color:var(--ink-2);cursor:pointer}.src-card-bind:hover{border-color:var(--brand);color:var(--brand-dark)}.src-card-billed{background:var(--ok-soft);color:var(--ok-ink)}.src-card:not(.billed):hover{border-color:var(--brand);background:#f7fbfc}.src-card:active{cursor:-webkit-grabbing;cursor:grabbing}.src-card-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.src-card-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.src-card-meta{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:12px;color:var(--muted)}.src-card-line,.src-card-noline{align-self:flex-start;padding:0 6px;border-radius:4px;font-size:11px;line-height:18px;white-space:nowrap}.src-card-line{background:#e6f7ec;color:#05703a}.src-card-noline{background:var(--idle-soft);color:var(--idle-ink)}.ledger-drop{display:flex;flex-direction:column;gap:10px;padding:14px;border:1.5px dashed var(--line-strong);border-radius:12px;background:var(--bg);transition:border-color .12s ease,background .12s ease}.ledger-drop>p{margin:0;text-align:center;font-size:13px;color:var(--muted)}.ledger-drop.filled{border-style:solid;border-color:var(--accent-line);background:#f7fbfc}.ledger.drag-over .ledger-drop{border-color:var(--brand);background:var(--accent-soft)}.draft-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.draft-who{display:flex;align-items:flex-start;gap:12px}.draft-who-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.draft-name{font-size:17px;font-weight:600;overflow-wrap:anywhere}.draft-sub{gap:2px 10px;font-size:13px;color:var(--muted)}.draft-row,.draft-sub{display:flex;flex-wrap:wrap;align-items:center}.draft-row{gap:8px 10px}.draft-row .pend-amount{flex:1 1 160px;max-width:240px}.draft-paid{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 4px;font-size:14px;cursor:pointer}.draft-paid input{width:18px;height:18px;accent-color:var(--ok)}.draft-transfer{align-items:flex-end;padding:10px 12px;border-radius:8px;background:var(--bg)}.draft-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.draft-field input,.draft-notes{height:40px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:#ffffff;font-size:14px;color:var(--ink)}.draft-last5,.ledger-last5{width:92px;font-family:var(--mono);letter-spacing:.12em}.draft-notes{flex:1 1 200px;min-width:0}.draft-field input:focus-visible,.draft-notes:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.ledger-transfer{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.ledger-transfer input,.ledger-transfer select{height:32px;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:#ffffff;font-size:13px;color:var(--ink)}.ledger-transfer .ledger-last5{width:74px}.ledger-transfer input:focus,.ledger-transfer select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--accent-soft)}@media (max-width:1280px){.ledger-layout{grid-template-columns:minmax(0,1fr)}.ledger-side{position:static;order:-1;max-height:none}.ledger-side-list{max-height:300px}}@media (max-width:768px){.draft-row .pend-amount{max-width:none;flex-basis:100%}.draft-row .seg{width:100%}.draft-row .seg button{flex:1 1;height:40px}.draft-field,.draft-field input,.draft-notes{flex:1 1 100%;width:100%;height:auto}.draft-field input,.draft-notes{height:44px}.draft-row .button{flex:1 1 auto;min-height:44px}.ledger-transfer input,.ledger-transfer select{flex:1 1 100%;height:44px}}.ledger-day{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding-top:10px;border-top:1px solid var(--panel-strong)}.ledger-day-note{font-size:13px;color:var(--muted)}.ledger-day-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:3px 10px 3px 4px;border:1px solid var(--accent-line);border-radius:18px;background:#f7fbfc;font-size:13px;color:var(--ink);cursor:pointer}.ledger-day-chip:hover:not(:disabled){border-color:var(--brand);background:var(--accent-soft)}.ledger-day-chip:disabled{border-color:var(--line);background:var(--bg);color:var(--muted);cursor:default}.ledger-day-chip-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-day-chip-tag{padding:0 6px;border-radius:4px;font-size:11px;line-height:18px;background:var(--idle-soft);color:var(--idle-ink)}.ledger-day-chip.pending .ledger-day-chip-tag{background:#e6f7ec;color:#05703a}.ledger-day-chip:focus-visible,.line-picker-item:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.line-picker{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--accent-line);border-radius:10px;background:#f7fbfc;box-shadow:0 8px 24px rgba(0,0,0,.12)}.line-picker-head{display:flex;align-items:center;gap:8px}.line-picker-head input{flex:1 1;min-width:0;height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:#ffffff;font-size:14px;color:var(--ink)}.line-picker-head input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.line-picker-label{font-size:12px;color:var(--muted)}.line-picker-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto}.line-picker-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 8px;border-radius:8px;text-align:left;font-size:14px;color:var(--ink);cursor:pointer}.line-picker-item:hover:not(:disabled){background:var(--accent-soft)}.line-picker-item:disabled{opacity:.6;cursor:wait}.line-picker-name{flex:1 1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-picker-phone{font-size:12px;color:var(--muted)}