:root{--primary: #95c11f;--primary-dark: #7ba818;--primary-darker: #5f8612;--primary-soft: #e9f4cd;--primary-tint: #f4faea;--primary-on: #ffffff;--accent: #2e6b1e;--bg: #fafaf7;--surface: #ffffff;--surface-elev: #fefefb;--text: #1f2a37;--muted: #6b7280;--border: #e8e7e0;--border-strong: #d8d7cd;--danger: #c43c3c;--shadow: 0 1px 3px rgba(60, 90, 20, .06), 0 1px 2px rgba(0,0,0,.04);--shadow-elev: 0 4px 12px rgba(60, 90, 20, .1), 0 2px 4px rgba(0,0,0,.04);--radius: 10px;--touch-min: 44px;--touch-pad-h: 14px;--touch-font: 15px;--touch-radius: 8px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 8px;gap:12px;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;z-index:40}.sidebar-header{display:flex;align-items:center;gap:10px;padding:8px 10px 14px;border-bottom:1px solid var(--border)}.brand-logo{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--primary-soft);padding:3px;box-shadow:0 1px 2px #3c5a141f}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.brand-name-jp{font-weight:800;font-size:15px;color:var(--accent);letter-spacing:.02em;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-name-sub{font-size:10.5px;color:var(--muted);line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-mark{font-size:22px}.nav-group{display:flex;flex-direction:column;gap:2px;padding-top:14px}.nav-group.first{padding-top:0}.nav-group-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:4px 12px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;text-align:left;cursor:pointer;border-radius:10px;font-size:14px;color:var(--text);transition:background .15s,color .15s,transform .05s}.nav-item:hover{background:var(--primary-soft);color:var(--accent)}.nav-item.active{background:var(--primary);color:var(--primary-on);box-shadow:0 2px 6px #95c11f59}.nav-item.active:hover{background:var(--primary-dark)}.nav-icon{font-size:18px}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:0 4px}.lang-switcher{display:flex;gap:4px}.lang-btn{flex:1;padding:6px 0;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:16px;transition:background .15s,border-color .15s}.lang-btn:hover{background:var(--primary-tint);border-color:var(--primary)}.lang-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.logout-btn{padding:8px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.logout-btn:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--accent)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.topbar h1{margin:0;font-size:18px;font-weight:600}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-right .user-name{color:var(--muted);font-size:14px}.store-switcher{padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;max-width:180px}.store-switcher:hover{border-color:var(--primary)}.store-switcher:focus{outline:2px solid var(--primary);outline-offset:1px}@media (max-width: 640px){.store-switcher{max-width:120px;font-size:13px;padding:4px 8px}}.content{padding:24px;flex:1}.register-layout{display:grid;grid-template-columns:260px 1fr 320px;gap:16px;align-items:start}.register-layout.no-panel{grid-template-columns:1fr 320px}.register-form.card,.register-summary.card{padding:20px}.register-summary{position:sticky;top:80px}.register-today-panel{padding:12px;position:sticky;top:80px;max-height:calc(100vh - 120px);overflow-y:auto}.register-today-panel .rtp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:6px}.register-today-panel .rtp-badge-row{display:flex;gap:4px}.register-today-panel .rtp-badge{font-size:11px;padding:2px 6px;border-radius:10px;font-weight:600}.register-today-panel .rtp-badge-unpaid{background:#fef3c7;color:#b45309}.register-today-panel .rtp-badge-paid{background:#e5e7eb;color:#6b7280}.register-today-panel .rtp-list{display:flex;flex-direction:column;gap:6px}.register-today-panel .rtp-item{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;text-align:left;font-size:13px;transition:background .15s,border-color .15s;width:100%}.register-today-panel .rtp-item:hover{background:var(--primary-tint);border-color:var(--primary)}.register-today-panel .rtp-item.is-paid{background:#f3f4f6;color:#9ca3af;border-style:dashed}.register-today-panel .rtp-item.is-paid:hover{background:#e5e7eb}.register-today-panel .rtp-item.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.register-today-panel .rtp-item.is-active .rtp-sub{color:#fff;opacity:.85}.register-today-panel .rtp-time{font-weight:600;font-size:13px;display:flex;align-items:center;gap:2px}.register-today-panel .rtp-check{color:#16a34a;font-weight:700}.register-today-panel .rtp-item.is-paid .rtp-check{color:#9ca3af}.register-today-panel .rtp-name{font-weight:600}.register-today-panel .rtp-sub{font-size:11px;color:#6b7280;margin-top:1px}.register-today-panel .rtp-via{font-size:14px;opacity:.7}.selected-customer{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--primary-tint);border-radius:8px}.customer-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.customer-chip{padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer;font-size:13px}.customer-chip:hover{border-color:var(--primary);background:var(--primary-tint)}.seg-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg-toggle button{padding:8px 16px;border:none;background:var(--surface);cursor:pointer;font-size:14px}.seg-toggle button.on{background:var(--primary);color:#fff}.amount-display{display:flex;flex-direction:column;gap:4px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}.amount-label{font-size:13px;color:var(--muted)}.amount-value{font-size:32px;font-weight:700;color:var(--accent)}.amount-calc{font-size:12px;color:var(--muted)}.checkout-btn{width:100%;padding:14px;font-size:16px;font-weight:600}.recent-sales{margin-top:20px}.recent-sales h4{margin:0 0 8px;font-size:13px;color:var(--muted)}.recent-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.recent-amount{font-weight:600}@media (max-width: 1100px){.register-layout{grid-template-columns:220px 1fr}.register-layout.no-panel{grid-template-columns:1fr}.register-summary{position:static;grid-column:1 / -1}}@media (max-width: 860px){.register-layout{grid-template-columns:1fr}.register-summary{position:static}.register-today-panel{position:static;max-height:260px}}.close-breakdown{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.close-row{display:flex;justify-content:space-between;font-size:14px}.close-strong{font-weight:700}.close-divider{height:1px;background:var(--border);margin:4px 0}.amount-display.diff-over .amount-value{color:#1f8a4c}.amount-display.diff-short .amount-value{color:#d64545}.amount-display.diff-match .amount-value{color:var(--muted)}td.diff-over{color:#1f8a4c}td.diff-short{color:#d64545}td.diff-match{color:var(--muted)}.cell.occupied.is-backdated{background:#ecedef!important;border-left-color:#7f8c8d!important;opacity:.85}.cell.occupied.is-backdated .cell-customer{color:#555}.cmdk-backdrop{position:fixed;inset:0;background:#0006;z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.cmdk-panel{width:min(640px,92vw);max-height:70vh;background:var(--surface);border-radius:12px;box-shadow:0 10px 40px #00000040;display:flex;flex-direction:column;overflow:hidden}.cmdk-input{border:none;border-bottom:1px solid var(--border);padding:16px 20px;font-size:16px;outline:none;background:transparent}.cmdk-results{flex:1;overflow-y:auto;padding:8px}.cmdk-section{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:8px 12px 4px}.cmdk-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .1s}.cmdk-row:hover,.cmdk-row.active{background:var(--primary-soft)}.cmdk-icon{font-size:18px}.cmdk-label{flex:1;font-size:14px}.cmdk-subtitle{font-size:12px;color:var(--muted)}.cmdk-empty{padding:24px;text-align:center;color:var(--muted)}.cmdk-footer{display:flex;gap:14px;padding:8px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.kbhelp-panel{padding:20px}.kbhelp-title{margin:0 0 16px;font-size:16px}.kbhelp-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.kbhelp-list li{display:flex;justify-content:space-between;align-items:center;gap:12px}.kbhelp-key{display:inline-block;padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);font-family:monospace;font-size:12px;min-width:24px;text-align:center}.kbhelp-plus{padding:0 4px;color:var(--muted)}.kbhelp-label{color:var(--muted);font-size:13px}.nav-badge{margin-left:auto;background:#ef4444;color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;min-width:20px;text-align:center}.approval-list{display:flex;flex-direction:column;gap:10px}.approval-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid #f59e0b;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.approval-card-head{display:flex;gap:12px;align-items:center;font-size:14px}.approval-kind{font-size:11px;font-weight:700;padding:3px 10px;border-radius:6px}.approval-kind.sale{background:#dbeafe;color:#1e40af}.approval-kind.usage{background:#fef3c7;color:#92400e}.approval-date{color:var(--muted);margin-left:auto;font-size:12px}.approval-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.approval-meta>span{white-space:nowrap}.approval-reason{background:#fef9c3;border-radius:6px;padding:8px 10px;font-size:13px;color:#78350f}.ar-cat{font-weight:700;margin-bottom:4px}.ar-detail{white-space:pre-wrap}.approval-card-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.approval-card.ntr-pending{border-left-color:#f59e0b}.approval-card.ntr-approved{border-left-color:#16a34a}.approval-card.ntr-rejected{border-left-color:#dc2626;opacity:.85}.approval-kind.ntr-status-pending{background:#fef3c7;color:#92400e}.approval-kind.ntr-status-approved{background:#dcfce7;color:#166534}.approval-kind.ntr-status-rejected{background:#fee2e2;color:#991b1b}.compliance-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.compliance-table th{font-size:12px}.compliance-table td{font-variant-numeric:tabular-nums}.compliance-pct{display:inline-block;padding:3px 10px;border-radius:12px;font-weight:700;font-size:12px}.level-good{color:#166534;background:#dcfce7}.level-warn{color:#92400e;background:#fef3c7}.level-danger{color:#991b1b;background:#fee2e2}.num-good{color:#166534}.num-warn{color:#b45309}.num-bad{color:#b91c1c}.kpi-card.level-good{border-left:4px solid #16a34a}.kpi-card.level-warn{border-left:4px solid #f59e0b}.kpi-card.level-danger{border-left:4px solid #dc2626}.compliance-legend{display:flex;gap:12px;font-size:12px;align-items:center}.compliance-legend>span:before{content:"凡例: ";color:var(--muted);font-weight:400}.compliance-legend>span:not(:first-child):before{content:""}.backdated-banner{background:#fef2f2;border:2px solid #fca5a5;border-radius:10px;padding:12px 16px}.backdated-banner-msg{color:#b91c1c;font-weight:700;font-size:14px}.empty-cta{padding:32px 16px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted)}.payment-lines{display:flex;flex-direction:column;gap:12px}.payment-lines-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:6px;overflow:hidden}.payment-lines-table th{background:var(--bg);padding:8px;text-align:left;font-size:12px;font-weight:600;color:var(--muted)}.payment-lines-table td{padding:6px 8px;border-top:1px solid var(--border)}.payment-lines-table td input,.payment-lines-table td select{width:100%}.payment-lines-empty{text-align:center;color:var(--muted);padding:20px}.pay-line-no{text-align:center;color:var(--muted);font-size:12px}.pay-line-amount{display:flex;gap:4px}.pay-line-amount input{flex:1;text-align:right}.btn-mini{padding:2px 6px;font-size:11px;border:1px solid var(--border);background:var(--bg);border-radius:4px;cursor:pointer;white-space:nowrap}.btn-mini:hover{background:var(--primary-soft)}.btn-icon-danger{width:28px;height:28px;border:1px solid var(--border);background:transparent;border-radius:4px;cursor:pointer;color:var(--danger);font-size:18px;line-height:1}.btn-icon-danger:hover{background:var(--danger);color:#fff}.payment-lines-add{display:flex;flex-wrap:wrap;gap:6px}.btn-add-line{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer;font-size:12px;font-weight:600}.btn-add-line:hover{background:var(--primary-soft);border-color:var(--primary)}.btn-add-credit{border-color:#d97706;color:#d97706}.btn-add-credit:hover{background:#d977061a}.btn-add-discount{border-color:#6366f1;color:#6366f1}.payment-lines-summary{display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:var(--bg);border-radius:6px}.pls-row{display:flex;justify-content:space-between;font-size:13px}.pls-row>span:last-child{font-family:monospace;font-weight:600}.pls-discount>span:last-child{color:#6366f1}.pls-paid{color:var(--muted)}.pls-remaining{font-size:14px;padding-top:6px;border-top:1px solid var(--border);margin-top:4px}.pls-remaining.pls-balanced>span:last-child{color:var(--primary)}.pls-remaining.pls-short>span:last-child{color:#d97706}.pls-remaining.pls-over>span:last-child{color:var(--danger)}.pay-line-credit td{background:#d977060d}.pay-line-discount td{background:#6366f10d}.muted{color:var(--muted)}.course-selector-backdrop{position:fixed;inset:0;background:#00000073;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.course-selector-panel{width:min(900px,96vw);height:min(640px,90vh);background:var(--surface);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 12px 48px #0000004d;overflow:hidden}.course-selector-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--border)}.course-selector-header h3{margin:0;font-size:15px;flex-shrink:0}.course-selector-search{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.course-selector-close{width:32px;height:32px;border:none;background:transparent;font-size:24px;cursor:pointer;color:var(--muted);border-radius:4px}.course-selector-close:hover{background:var(--border);color:var(--text)}.course-selector-body{flex:1;display:grid;grid-template-columns:240px 1fr;overflow:hidden}.course-selector-cats{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow-y:auto;background:#00000005}.course-cat{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:none;background:transparent;text-align:left;cursor:pointer;font-size:13px;border-bottom:1px solid var(--border);transition:background .1s}.course-cat:hover{background:var(--primary-soft)}.course-cat.on{background:#fffac8;font-weight:700;color:#92400e;border-left:4px solid #d97706;padding-left:10px}.course-cat-count{font-size:11px;color:var(--muted);background:var(--border);padding:1px 6px;border-radius:10px}.course-cat.on .course-cat-count{background:#d97706;color:#fff}.course-cat-empty{padding:24px 14px;color:var(--muted);font-size:12px;text-align:center}.course-selector-courses{display:flex;flex-direction:column;overflow-y:auto}.course-row{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border:none;background:transparent;text-align:left;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.course-row:hover{background:var(--primary-soft)}.course-row.on{background:#fffac8;border-left:4px solid #d97706;padding-left:12px}.course-row-name{font-size:14px;font-weight:600}.course-row-meta{display:flex;gap:12px;font-size:12px;color:var(--muted)}.course-row-price{font-weight:600;color:var(--primary);margin-left:auto}.course-row-memo{font-size:11px;color:var(--muted)}.course-row-empty{padding:40px 16px;color:var(--muted);text-align:center;font-size:13px}.course-selector-footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg)}.course-btn-cancel,.course-btn-ok{padding:8px 24px;font-size:14px;font-weight:700;border-radius:999px;cursor:pointer;border:none;min-width:80px}.course-btn-cancel{background:#ef4444;color:#fff}.course-btn-cancel:hover{background:#dc2626}.course-btn-ok{background:#ef4444;color:#fff}.course-btn-ok:hover{background:#dc2626}.course-btn-ok:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}@media (max-width: 640px){.course-selector-body{grid-template-columns:110px 1fr}.course-cat{padding:10px 8px;font-size:12px}}.btn-pick-course{padding:12px 20px;background:var(--surface);border:2px dashed var(--border);border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--primary);text-align:center}.btn-pick-course:hover{border-color:var(--primary);background:var(--primary-soft)}.course-pick-display{padding:12px 16px;background:#fff7ed;border:2px solid #d97706;border-radius:8px;display:flex;flex-direction:column;gap:6px}.course-pick-name{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700}.course-pick-cat{font-size:11px;padding:2px 8px;background:#d97706;color:#fff;border-radius:10px;font-weight:600}.course-pick-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.course-pick-price{font-weight:700;color:var(--primary);margin-left:auto}.contract-summary{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.cs-row{display:flex;justify-content:space-between;font-size:13px}.cs-row>span:first-child{color:#92400e}.cs-row>span:last-child{font-family:monospace;font-weight:700;color:#78350f}.customer-strip{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#6b4423,#8b5e3c);color:#fef3c7;padding:12px 20px;border-radius:8px;margin-bottom:12px;gap:16px}.cs-main{display:flex;flex-direction:column;gap:4px}.cs-name{font-size:22px;font-weight:700}.cs-sub{font-size:12px;opacity:.85}.cs-badges{display:flex;gap:8px;align-items:center}.cs-badge{padding:4px 12px;border-radius:6px;font-size:11px;line-height:1.3;text-align:center;font-weight:600}.cs-badge-primary{background:#ef4444;color:#fff}.cs-badge-mute{background:#ffffff26;color:#fef3c7;border:1px solid rgba(255,255,255,.2)}.cs-clear{width:32px;height:32px;border-radius:50%;border:none;background:#00000040;color:#fff;cursor:pointer;font-size:18px}.cs-clear:hover{background:#0006}.register-actions-row{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin:12px 0 16px}.round-btn{border:none;border-radius:50%;cursor:pointer;font-size:13px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;width:64px;height:64px;box-shadow:0 2px 6px #0003;transition:transform .05s,box-shadow .15s}.round-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #00000040}.round-btn:disabled{opacity:.4;cursor:not-allowed}.round-btn-pink{background:#f9a8b4}.round-btn-red{background:#dc2626}.round-btn-large{width:88px;height:88px;font-size:16px}.register-counters{display:flex;gap:8px;padding:8px 12px;background:var(--bg);border-radius:8px;margin-bottom:12px}.rc-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px;border-radius:6px;background:var(--surface)}.rc-label{font-size:10px;color:var(--muted)}.rc-value{font-size:18px;font-weight:700}.rc-pending .rc-value{color:#ef4444}.rc-done .rc-value{color:var(--primary)}.today-reservations{margin-top:12px}.today-reservations h4{margin:0 0 8px;font-size:13px;color:var(--muted)}.today-row{width:100%;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer;text-align:left;margin-bottom:4px;font-size:13px}.today-row:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.today-row.on{background:#fef3c7;border-color:#d97706}.today-row.done{opacity:.5;cursor:not-allowed;text-decoration:line-through}.tr-time{background:#fef3c7;color:#78350f;padding:2px 6px;border-radius:4px;font-family:monospace;font-weight:700;font-size:12px;flex-shrink:0}.tr-name{flex:1}.tr-pract{color:var(--muted);font-size:11px}.tr-badge{color:var(--primary);font-weight:700}.quick-actions{position:relative}.quick-actions-trigger{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--primary);color:#fff;font-size:20px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .05s}.quick-actions-trigger:hover{background:var(--primary-dark)}.quick-actions-trigger:active{transform:scale(.95)}.quick-actions-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 12px #00000014;padding:6px;min-width:180px;z-index:100;display:flex;flex-direction:column;gap:2px}.quick-actions-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:14px;text-align:left}.quick-actions-item:hover{background:var(--primary-soft)}.quick-actions-icon{font-size:18px}.customer-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--border);margin-bottom:16px}.customer-tabs .tab-btn{padding:10px 16px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:500;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:inline-flex;align-items:center;gap:6px}.customer-tabs .tab-btn:hover{color:var(--text)}.customer-tabs .tab-btn.on{color:var(--accent);border-bottom-color:var(--primary);font-weight:700}.tab-count{background:var(--border);color:var(--muted);padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600}.tab-btn.on .tab-count{background:var(--primary-soft);color:var(--accent)}.tab-count.alert{background:#fde8e8;color:#c0392b}.todo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.todo-card{padding:14px 16px;text-align:left;cursor:pointer;border:1px solid var(--border);transition:border-color .15s,transform .05s}.todo-card:hover{border-color:var(--primary);transform:translateY(-1px)}.todo-card-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.todo-icon{font-size:20px}.todo-title{font-weight:700;flex:1}.todo-count{background:var(--accent);color:#fff;font-weight:700;padding:2px 10px;border-radius:12px;font-size:13px}.todo-desc{font-size:12px;color:var(--muted);margin-bottom:6px}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.todo-list li{display:flex;gap:8px;align-items:baseline;font-size:13px}.todo-list li .muted{color:var(--muted);margin-left:auto;font-size:12px}.todo-empty{padding:32px;text-align:center}.todo-empty-text{font-size:16px;color:var(--muted)}.alert-card{border-left:4px solid #f0c674}.alert-title{margin:0 0 8px;font-size:14px}.alert-row{display:flex;flex-wrap:wrap;gap:8px}.alert-pill{padding:8px 14px;border-radius:999px;border:1px solid;cursor:pointer;font-size:13px}.alert-pill.alert-warn{background:#fff4e0;border-color:#f0c674;color:#b8730a}.alert-pill.alert-warn:hover{background:#fce8c4}.alert-pill.alert-info{background:#e7f2fb;border-color:#99c6e8;color:#1d6fa5}.alert-pill.alert-info:hover{background:#d4e8f7}.kpi-card.kpi-warn{background:#fff4e0;border:1px solid #f0c674}.kpi-card.kpi-warn .kpi-value{color:#b8730a}tr.row-overdue{background:#fdf3e6}tr.row-overdue:hover{background:#fbe7cc}button.kpi-card{border:1px solid var(--border)}button.kpi-card:hover{border-color:var(--primary)}.badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;vertical-align:middle}.badge-sign{background:#fff4e0;color:#b8730a;border:1px solid #f0c674}.badge-dormant{background:#fde8e8;color:#c0392b;border:1px solid #e8a0a0}.karte-board-columns{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px;align-items:flex-start}.karte-board-col{flex:0 0 240px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px}.karte-board-col-head{font-weight:600;padding:4px 6px 10px;border-bottom:2px solid var(--primary);margin-bottom:8px}.karte-board-card{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;padding:10px 12px;margin-bottom:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s}.karte-board-card:hover{border-color:var(--primary);background:var(--primary-tint)}.karte-board-card.done{border-left:4px solid #1f8a4c}.karte-board-card.todo{border-left:4px solid #f0c674}.kb-name{font-weight:600}.kb-status{font-size:11px;font-weight:600}.kb-status.done{color:#1f8a4c}.kb-status.todo{color:#b8730a}.karte-picker h4{margin:0 0 8px;font-size:14px}.btn-danger-text{color:#c0392b;background:none;border:none;cursor:pointer}.btn-danger-text:hover{text-decoration:underline}.karte-label-rows{display:flex;flex-direction:column;gap:4px}.karte-label-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:8px;padding:2px 4px;border-bottom:1px dashed var(--border)}.karte-label-row:last-child{border-bottom:none}.karte-label-name{font-weight:700;font-size:12px}.karte-label-tag{font-size:10px;color:var(--muted)}.karte-seg-group{display:inline-flex;gap:0}.karte-seg-group .karte-seg{border-radius:0}.karte-seg-group .karte-seg:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.karte-seg-group .karte-seg:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.karte-seg-group .karte-seg+.karte-seg{margin-left:-1px}.karte-seg.on{z-index:1}.karte-seg-primary{font-weight:700}@media (max-width: 640px){.karte-label-row{grid-template-columns:56px 1fr}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.kpi-card{background:var(--surface);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{font-size:28px;font-weight:700;margin-top:8px}.hint{color:var(--muted);font-size:13px}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(at 20% 10%,rgba(149,193,31,.18),transparent 50%),radial-gradient(at 80% 90%,rgba(149,193,31,.1),transparent 50%),linear-gradient(160deg,#fafaf7,#f4f8e8)}.login-card{background:var(--surface);padding:36px;border-radius:14px;box-shadow:var(--shadow-elev);width:400px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--border)}.login-brand{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px dashed var(--border);margin-bottom:8px}.login-brand img{border-radius:50%;background:var(--primary-soft);padding:4px;box-shadow:0 2px 6px #3c5a1426}.login-brand-text{display:flex;flex-direction:column;gap:2px}.login-brand-jp{font-size:19px;font-weight:800;color:var(--accent);letter-spacing:.04em}.login-brand-sub{font-size:11.5px;color:var(--muted)}.login-card h2{margin:0 0 4px;font-size:18px;color:var(--text)}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px}.login-card input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #95c11f2e}.login-card button[type=submit]{background:var(--primary);color:#fff;padding:12px;border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:14px;letter-spacing:.04em;box-shadow:0 2px 6px #95c11f59;transition:background .15s,transform .05s}.login-card button[type=submit]:hover{background:var(--primary-dark)}.login-card button[type=submit]:active{transform:translateY(1px)}.login-card button[type=submit]:disabled{opacity:.6;cursor:wait}.error{color:var(--danger);font-size:13px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-header button{padding:8px 14px;border:none;background:var(--primary);color:#fff;border-radius:6px;cursor:pointer}.search-box{width:100%;max-width:360px;margin-bottom:12px}.customer-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.customer-table th,.customer-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.customer-table.compact th,.customer-table.compact td{padding:4px 8px;font-size:12.5px}.customer-table tr.row-selected{background:#1f8a4c0f}.customer-table tr.row-selected:hover{background:#1f8a4c1f}.customer-table th{background:#f9fafb;color:var(--muted);font-weight:600}.customer-table .empty{text-align:center;color:var(--muted);padding:24px}.customer-table button:not(.btn-primary):not(.btn-secondary):not(.danger){padding:4px 10px;border:1px solid var(--border);background:var(--surface);border-radius:4px;cursor:pointer}.customer-table .btn-primary{padding:6px 12px;font-size:12px}.placeholder{background:var(--surface);padding:32px;border-radius:12px;box-shadow:var(--shadow)}.placeholder code{background:#f3f4f6;padding:2px 6px;border-radius:4px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}.page-actions{display:flex;gap:8px;align-items:center}.muted{color:var(--muted);font-weight:400;font-size:14px}.filter-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.tag-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.filter-label{font-size:13px;color:var(--muted)}.mode-toggle{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:12px;padding:4px 8px}.tag-chip{display:inline-flex;align-items:center;padding:4px 10px;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.tag-chip:hover{background:#f3f4f6}.tag-chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}.tag-chip.small{font-size:11px;padding:2px 8px}.tag-cell{display:flex;gap:4px;flex-wrap:wrap}.tag-picker{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid var(--border);border-radius:6px;min-height:40px}.btn-primary{padding:8px 16px;border:none;background:var(--primary);color:var(--primary-on);border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;letter-spacing:.02em;box-shadow:0 1px 3px #95c11f4d;transition:background .15s,transform .05s,box-shadow .15s}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 2px 6px #95c11f66}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-secondary{padding:8px 14px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px;transition:background .15s,border-color .15s,color .15s}.btn-secondary:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--accent)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.back-btn{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px}.back-btn:hover{background:var(--primary-tint);border-color:var(--primary)}.customer-table th.sortable{cursor:pointer;user-select:none}.customer-table th.sortable:hover{background:#eef0f3}.row-actions{display:flex;gap:4px}.row-actions button{padding:4px 8px;border:1px solid var(--border);background:var(--surface);border-radius:4px;cursor:pointer;font-size:12px}.row-actions button:hover{background:#f3f4f6}.row-actions button.danger{color:var(--danger);border-color:#fcc}.row-actions button.danger:hover{background:#fee}.pagination{display:flex;justify-content:center;gap:16px;padding:16px;align-items:center}.pagination button{padding:6px 14px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer}.pagination button:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-card{background:var(--surface);border-radius:12px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;width:100%;box-shadow:0 12px 40px #0003}.modal-sm{max-width:400px}.modal-md{max-width:600px}.modal-lg{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16px}.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted)}.modal-body{padding:20px;overflow-y:auto;flex:1 1 auto;min-height:0}.modal-footer{padding:12px 20px;padding-bottom:max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fafbfc;flex-shrink:0;position:sticky;bottom:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px}.field-full{grid-column:1 / -1}.field-label{color:var(--muted);font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--touch-radius);font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.field-error{color:var(--danger);font-size:12px}.required{color:var(--danger);margin-left:2px}.toast-container{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:16px;left:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;z-index:1000;pointer-events:none}.toast{background:var(--surface);padding:12px 16px;border-radius:6px;box-shadow:0 4px 16px #00000026;border-left:4px solid var(--primary);font-size:14px;min-width:240px;pointer-events:auto;animation:toast-in .2s ease;display:flex;align-items:center;gap:12px}.toast-message{cursor:pointer;flex:1}.toast-action{background:transparent;border:1px solid var(--border);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;color:var(--primary);flex-shrink:0}.toast-action:hover{background:var(--primary-soft)}.toast-success{border-left-color:var(--primary)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:#4a90e2}@keyframes toast-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.detail-page .page-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:var(--surface);border-radius:12px;padding:20px;box-shadow:var(--shadow)}.card h3{margin:0 0 12px;font-size:15px}.kv{display:grid;grid-template-columns:100px 1fr;gap:6px 12px;margin:0;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}.memo{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:13px}.memo p{white-space:pre-wrap;margin:4px 0 0}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{padding:12px;background:#f9fafb;border-radius:8px}.metric-label{color:var(--muted);font-size:12px}.metric-value{font-size:20px;font-weight:700;margin-top:4px}.mini-table{width:100%;border-collapse:collapse;font-size:12px}.mini-table th,.mini-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border)}.mini-table th{color:var(--muted);font-weight:500}.empty{text-align:center;color:var(--muted);padding:16px 0}.calendar-nav{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-radius:8px;margin-bottom:16px;box-shadow:var(--shadow);position:sticky;top:56px;z-index:40}.calendar-nav button{width:32px;height:32px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer}.calendar-nav button:hover{background:#f3f4f6}.calendar-nav .today-btn{width:auto;padding:0 12px}.nav-title{font-weight:600;font-size:16px;margin-left:8px}.view-switcher{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface)}.view-switcher button{padding:8px 16px;border:none;background:var(--surface);color:var(--text);cursor:pointer;min-width:56px;font-size:13px;font-weight:500;border-right:1px solid var(--border);white-space:nowrap}.view-switcher button:last-child{border-right:none}.view-switcher button:hover:not(.on){background:#f3f4f6}.view-switcher button.on{background:var(--primary);color:#fff;font-weight:600}.month-view{background:var(--surface);border-radius:12px;padding:12px;box-shadow:var(--shadow)}.month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.weekday{text-align:center;padding:8px 0;font-size:12px;font-weight:600;color:var(--muted)}.weekday.wd-0{color:#c43c3c}.weekday.wd-6{color:#4a90e2}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day-cell{background:#fafbfc;border:1px solid var(--border);border-radius:6px;min-height:90px;padding:6px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:4px;font-family:inherit;transition:background .1s}.day-cell:hover{background:#eef0f3}.day-cell.other-month{opacity:.4}.day-cell.today{border-color:var(--primary);border-width:2px}.day-cell.wd-0 .day-num{color:#c43c3c}.day-cell.wd-6 .day-num{color:#4a90e2}.day-num{font-weight:600;font-size:14px}.avail-row{display:flex;gap:2px;flex-wrap:wrap}.avail-pill{font-size:10px;padding:1px 4px;border-radius:3px;background:#fff;border:1px solid var(--border)}.avail-pill.avail-open{background:#d9f5e1;border-color:#66c187;color:#136035}.avail-pill.avail-few{background:#fff4d9;border-color:#d4a040;color:#6f4a00}.avail-pill.avail-full{background:#ffe0e0;border-color:#d97070;color:#a13030}.day-count{font-size:11px;color:var(--muted);margin-top:auto}.day-view{display:grid;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:visible;font-size:12px}.day-corner{background:#fafbfc;border-bottom:2px solid var(--border);border-right:1px solid var(--border);position:sticky;top:124px;left:0;z-index:12}.practitioner-head{background:var(--surface);padding:10px 6px;text-align:center;font-weight:700;font-size:13px;border-top:4px solid var(--primary);border-bottom:2px solid var(--border);border-right:1px solid var(--border);position:sticky;top:124px;z-index:11;box-shadow:0 2px 4px #0000000a}.time-label{background:#fafbfc;padding:0 8px;text-align:right;color:var(--muted);font-size:11px;line-height:28px;min-height:0;border-right:2px solid var(--border);position:sticky;left:0;z-index:8}.time-label.hour{font-weight:700;color:var(--text);font-size:13px;border-top:1px solid var(--border)}.cell{background:var(--surface);padding:0 4px;position:relative;cursor:pointer;min-height:0;overflow:hidden;border-right:1px solid #f0f0f0}.cell.out-of-hours{background:#f0f0f0;cursor:default}.cell.break-time{background:#fff4d9;text-align:center;line-height:28px;color:#6f4a00;cursor:default;font-size:11px;font-weight:500}.cell.open{background:#fcfffe}.cell.open:hover{background:#e8f5ee}.cell.is-past{background:#f3f4f6}.cell.is-past:hover{background:#e5e7eb}.cell.is-past .avail-mark{opacity:.08;color:#9ca3af}.day-view-wrap .now-line{box-shadow:0 0 0 1px #dc26264d}.cell.open .avail-mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--primary);font-size:14px;font-weight:700;opacity:.18;transition:opacity .1s}.canceled-bar{position:absolute;top:2px;left:2px;right:2px;display:flex;align-items:center;gap:4px;z-index:3;pointer-events:none;min-width:0}.canceled-pill{display:flex;align-items:center;gap:4px;padding:2px 5px;background:#c43c3c1a;border:1px dashed rgba(196,60,60,.5);border-radius:3px;cursor:pointer;pointer-events:auto;transition:background .15s,border-color .15s;min-width:0;overflow:hidden;flex:1 1 auto}.canceled-pill:hover{background:#c43c3c33;border-color:#c43c3ccc}.canceled-pill .canceled-mark{font-size:10px;font-weight:700;color:#c43c3c;background:#c43c3c40;padding:0 4px;border-radius:2px;flex-shrink:0;line-height:1.3}.canceled-pill .canceled-name{font-size:11px;font-weight:700;color:#555;text-decoration:line-through;text-decoration-color:#c43c3cb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0;line-height:1.3}.canceled-pill .canceled-time{font-size:10px;color:var(--muted);flex-shrink:0;line-height:1.3}.canceled-new-btn{padding:2px 7px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:10px;font-weight:700;cursor:pointer;line-height:1.3;pointer-events:auto;flex-shrink:0;white-space:nowrap;transition:background .15s,transform .05s}.canceled-new-btn:hover{background:#2c8a3f}.canceled-new-btn:active{transform:translateY(1px)}.cell.open:hover .avail-mark{opacity:1}.cell.open:hover{background:#e8f5ee;box-shadow:inset 0 0 0 1px var(--primary)}.cell.occupied{background:#e8f0fe;cursor:pointer;padding:4px 8px;display:flex;flex-direction:column;gap:1px;line-height:1.25;box-shadow:inset 0 0 0 1px #0000000f;z-index:2;border-radius:3px}.cell.occupied.compact{padding:4px 6px}.cell.occupied.compact .cell-compact-row{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0}.cell.occupied.compact .cell-customer{font-weight:700;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.cell.occupied.compact .cell-time-inline{font-size:10px;color:var(--muted);flex-shrink:0}.cell.occupied:hover{background:#d4e3fc;box-shadow:inset 0 0 0 1px #00000026}.cell.occupied.continuation{pointer-events:none;opacity:.6}.cell-time{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-customer{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-memo{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-day{background:var(--surface);padding:40px;text-align:center;color:var(--muted);border-radius:8px;box-shadow:var(--shadow)}.customer-suggest{display:flex;flex-wrap:wrap;gap:6px;max-height:120px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:6px;margin-top:4px}.customer-chip{padding:4px 10px;border:1px solid var(--border);background:var(--surface);border-radius:14px;cursor:pointer;font-size:12px}.customer-chip:hover{background:#f3f4f6}.customer-chip.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.slot-picker{display:flex;gap:6px;flex-wrap:wrap}.slot-btn{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer;font-size:12px;display:inline-flex;align-items:center;gap:4px}.slot-btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}.slot-btn.conflict{border-color:#c43c3c;color:#c43c3c;background:#fff4f4}.slot-btn.conflict.on{background:#c43c3c;color:#fff;border-color:#c43c3c}.slot-btn.warn{border-color:#d4a040;color:#6f4a00;background:#fff8e1}.slot-btn.warn.on{background:#d4a040;color:#fff;border-color:#d4a040}.slot-btn .slot-warn{font-size:11px;line-height:1}.conflict-alert{background:#fff4d9;padding:8px 12px;border-radius:6px;color:#6f4a00;border-left:3px solid #d4a040;font-size:13px}.conflict-alert-strong{background:#fde8e8;color:#7a1f1f;border-left-color:#c43c3c}.danger-text{color:var(--danger);border-color:#fcc}.log-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.log-item{background:#f9fafb;padding:10px 12px;border-radius:8px;border-left:3px solid var(--primary)}.log-header{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:6px;flex-wrap:wrap}.log-action{padding:2px 8px;border-radius:4px;font-weight:600;font-size:11px}.log-time{color:var(--muted)}.log-user{margin-left:auto;color:var(--muted);font-weight:500}.log-diff{font-size:12px;color:var(--text)}.log-diff>div{padding:2px 0}.diff-label{color:var(--muted);font-weight:600}.diff-before{text-decoration:line-through;color:#888}.diff-after{color:var(--primary);font-weight:600}.log-note{font-size:12px;color:var(--muted);margin-top:4px;padding-top:6px;border-top:1px dashed var(--border)}.log-list.compact .log-item{padding:6px 10px}.log-list.compact .log-header{font-size:11px}.context-history{padding:8px;background:#f9fafb;border-radius:6px}.channel-picker{display:flex;flex-wrap:wrap;gap:6px}.muted-cell{color:var(--muted)}.checkbox-inline{display:flex;align-items:center;gap:6px;padding:8px 0}.info-box{background:#f9fafb;padding:10px 12px;border-radius:6px;font-size:13px;border-left:3px solid var(--primary)}.net-refund{font-size:18px;font-weight:700;color:var(--primary);text-align:center;padding:14px}.quick-date-buttons{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.quick-date-buttons .link-btn{font-size:11px;padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface)}.quick-date-buttons .link-btn:hover{background:#f3f4f6}.filter-chips{display:flex;gap:4px}.status-badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.st-active{background:#d9f5e1;color:#136035}.st-finished{background:#e3e8ec;color:#555}.st-canceled{background:#fff4d9;color:#6f4a00}.st-expired{background:#ffe0e0;color:#a13030}.analytics-layout{display:grid;grid-template-columns:200px 1fr;gap:16px}.sub-sidebar{background:var(--surface);border-radius:12px;padding:12px 8px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);height:fit-content}.sub-sidebar .nav-item{font-size:13px;padding:8px 12px}.analytics-body{display:flex;flex-direction:column;gap:16px;min-width:0}.range-bar{background:var(--surface);padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;box-shadow:var(--shadow)}.range-bar input[type=date]{padding:4px 6px;border:1px solid var(--border);border-radius:4px;font-size:13px}.kpi-card.muted .kpi-value{color:var(--muted)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.day-series{display:flex;gap:4px;align-items:flex-end;padding:8px 0;overflow-x:auto}.day-bar{flex:0 0 auto;min-width:36px;display:flex;flex-direction:column;align-items:center;gap:2px}.bar-track{width:24px;height:120px;background:#f3f4f6;border-radius:4px;position:relative}.bar-fill{position:absolute;bottom:0;left:0;right:0;background:var(--primary);border-radius:4px 4px 0 0;transition:height .2s}.bar-fill.negative{background:var(--danger)}.bar-amt{font-size:10px;color:var(--muted)}.bar-date{font-size:11px}.bar-row{display:flex;align-items:center;gap:6px;min-width:120px}.bar-line{height:8px;background:var(--primary);border-radius:4px;min-width:2px}.total-row{font-weight:700;background:#f9fafb}.pw-meter{display:flex;flex-direction:column;gap:4px}.pw-bar{height:6px;background:#f3f4f6;border-radius:3px;overflow:hidden}.pw-bar>div{height:100%;transition:width .2s,background .2s}.pw-meter.score-0 .pw-bar>div{background:#d97070}.pw-meter.score-1 .pw-bar>div{background:#d97070}.pw-meter.score-2 .pw-bar>div{background:#d4a040}.pw-meter.score-3 .pw-bar>div{background:#66c187}.pw-meter.score-4 .pw-bar>div{background:var(--primary)}.master-row{display:flex;gap:8px;margin-bottom:12px;align-items:center;flex-wrap:wrap}.master-row input[type=color]{width:40px;padding:2px;height:32px}.customer-table input,.customer-table select{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;background:transparent}.customer-table input:focus,.customer-table select:focus{outline:2px solid var(--primary);outline-offset:-2px}.customer-table input[type=color]{width:30px;padding:2px;height:24px}.shift-grid-wrap{background:var(--surface);border-radius:12px;padding:12px;box-shadow:var(--shadow);overflow-x:auto}.shift-grid{width:100%;border-collapse:collapse;font-size:13px}.shift-grid th,.shift-grid td{border:1px solid var(--border);padding:6px;vertical-align:middle}.shift-grid th{background:#f9fafb}.shift-grid th.today{background:#d9f5e1}.shift-grid th.wd-0{color:#c43c3c}.shift-grid th.wd-6{color:#4a90e2}.weekday-small{font-size:11px;color:var(--muted)}.pname-head{width:100px}.pname-cell{font-weight:600;padding-left:10px}.shift-cell{cursor:pointer;min-width:90px;text-align:center;transition:background .1s}.shift-cell:hover{background:#f3f4f6}.shift-cell.has-shift{background:#e8f5ee}.shift-cell.has-shift:hover{background:#d4ecdc}.shift-time{font-weight:600}.shift-break{font-size:11px;color:#6f4a00}.shift-empty{color:var(--muted);font-size:18px}.copy-cell{display:flex;flex-direction:column;gap:2px;padding:4px}.cell.event-cell{background:#fff4d9;cursor:pointer;padding:4px 6px;overflow:hidden}.cell.event-cell:hover{background:#ffe9b0}.cell.event-cell.continuation{pointer-events:none;opacity:.6}.hamburger{background:none;border:none;font-size:24px;cursor:pointer;padding:4px 8px;margin-right:8px}.app-shell.mobile{display:block}.app-shell.mobile .main{padding-bottom:calc(64px + env(safe-area-inset-bottom))}.app-shell.mobile .topbar{position:sticky;top:0;z-index:50;padding-top:max(8px,env(safe-area-inset-top))}.app-shell.mobile .sidebar{position:static;height:auto;overflow:visible}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(6,1fr);z-index:90;box-shadow:0 -2px 8px #0000000f;padding-bottom:env(safe-area-inset-bottom)}.m-nav-item{background:none;border:none;padding:8px 0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--muted);cursor:pointer;min-height:56px}.m-nav-item.active{color:var(--primary)}.m-nav-icon{font-size:20px}.m-nav-label{font-size:10px}.drawer-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex}.drawer-card{background:var(--surface);width:280px;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:12px 8px;gap:8px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:4px 0 16px #0003;animation:drawer-in .18s ease;overflow-y:auto}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border)}.drawer-user{padding:8px 12px;font-size:13px;color:var(--muted)}.drawer-footer{margin-top:auto;padding:8px 4px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border)}@media (max-width: 768px){.topbar{padding:8px 12px}.topbar h1{font-size:15px}.content{padding:12px}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}input,select,textarea{font-size:16px!important}.modal-card{max-height:100vh;max-height:100dvh;height:100vh;height:100dvh;max-width:100vw;border-radius:0}.modal-overlay{padding:0;align-items:stretch}.form-grid,.detail-grid,.analytics-layout{grid-template-columns:1fr}.sub-sidebar{flex-direction:row;overflow-x:auto;padding:6px;gap:2px}.sub-sidebar .nav-item{white-space:nowrap;padding:8px 12px}.customer-table,.mini-table,.shift-grid{font-size:12px}.shift-grid-wrap,.day-view{overflow-x:auto}.month-grid{gap:2px}.row-actions button,.nav-item,.btn-primary,.btn-secondary,.modal-close,.tag-chip,.lang-btn,.logout-btn{min-height:44px}.row-actions{flex-wrap:wrap;gap:4px}.login-screen{padding:16px;align-items:flex-start;padding-top:max(40px,env(safe-area-inset-top))}.day-series{padding-bottom:8px}body{overscroll-behavior-y:contain}.day-cell{min-height:60px;padding:4px}.avail-pill{font-size:9px;padding:1px 3px}.day-num{font-size:12px}.day-count{font-size:10px}.row-actions button,.nav-item,.btn-primary,.btn-secondary,.modal-close{min-height:36px}.customer-table{font-size:12px}.customer-table th,.customer-table td{padding:8px 6px}.day-view{font-size:12px}.calendar-nav{top:44px;padding:8px 12px;gap:8px}.practitioner-head{padding:8px 2px;font-size:12px;top:112px}.day-corner{top:112px}.time-label{font-size:11px;padding:0 6px;line-height:40px}.time-label.hour{font-size:12px}.cell.break-time{line-height:40px}.cell.occupied{padding:4px 6px}.cell.occupied .cell-time{font-size:10px}.cell.occupied .cell-customer{font-size:13px}.cell.occupied .cell-memo{display:none}.cell.event-cell{padding:4px 6px}.cell.event-cell .cell-time{font-size:10px}.cell.event-cell .cell-customer{font-size:12px}.cell.event-cell .cell-memo{display:none}.calendar-nav{padding:8px;gap:8px;flex-wrap:wrap}.nav-title{font-size:14px}.page-header{gap:8px}.page-header h2{font-size:16px}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi-value{font-size:20px}.login-card{width:100%;max-width:360px;padding:24px 20px}.filter-bar{flex-direction:column;align-items:stretch}.search-box{max-width:none}.shift-grid th,.shift-grid td{padding:4px 2px;font-size:11px}.shift-cell{min-width:60px}}@media (max-width: 768px){.analytics-layout{grid-template-columns:1fr}.sub-sidebar{flex-direction:row;overflow-x:auto}}@media (max-width: 768px){.form-grid,.detail-grid{grid-template-columns:1fr}.sidebar{width:60px}.sidebar .brand-name,.sidebar .brand-text,.sidebar .nav-item span:not(.nav-icon){display:none}.day-cell{min-height:60px}}.birthday-picker{display:flex;flex-direction:column;gap:4px}.birthday-picker .bp-mode{display:inline-flex;gap:0;align-self:flex-start;border:1px solid var(--border);border-radius:8px;overflow:hidden}.birthday-picker .bp-tab{padding:4px 10px;font-size:11px;background:var(--surface);border:none;cursor:pointer;color:var(--muted);transition:background .15s,color .15s}.birthday-picker .bp-tab:hover{background:var(--primary-tint);color:var(--accent)}.birthday-picker .bp-tab.on{background:var(--primary);color:#fff}.birthday-picker .bp-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.birthday-picker .bp-row input,.birthday-picker .bp-row select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:13px}.birthday-picker .bp-unit{font-size:12px;color:var(--muted);margin-right:4px}.birthday-picker .bp-clear{font-size:11px;padding:4px 8px;margin-left:4px}.birthday-picker .bp-hint{font-size:11px;color:var(--muted);margin-left:2px}.birthday-picker .bp-leap{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);margin-left:4px}.birthday-picker .bp-leap input[type=checkbox]{width:auto}.karte-editor{display:flex;flex-direction:column;gap:12px}.karte-editor-header{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.karte-editor-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}.karte-editor-chart{min-width:0}.karte-editor-panel{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto;padding-right:4px}.panel-section{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--surface-elev)}.panel-section h4{margin:0 0 6px;font-size:13px;color:var(--accent)}.btn-row{display:flex;flex-wrap:wrap;gap:6px}.btn-tool{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer;font-size:13px}.btn-tool:hover{background:var(--primary-tint)}.btn-tool.on{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.btn-tool.danger{color:var(--danger);border-color:var(--danger)}.body-chart{display:flex;gap:12px;flex-wrap:wrap}.body-chart-4{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto auto;gap:12px}.body-chart-4 .body-chart-pane{min-width:0}@media (max-width: 768px){.body-chart-4{grid-template-columns:1fr}}.body-chart-pane{flex:1 1 calc(50% - 12px);min-width:140px;display:flex;flex-direction:column;gap:4px;background:var(--surface-elev);border:1px solid var(--border);border-radius:8px;padding:8px}.body-chart-label{text-align:center;font-size:12px;color:var(--muted)}.body-svg{width:100%;height:auto;touch-action:none;user-select:none}.body-chart-thumb .body-chart-pane{padding:4px}.body-coord-readout{position:absolute;top:4px;right:4px;background:#1f2a37d9;color:#fff;font-size:11px;padding:2px 6px;border-radius:4px;pointer-events:none;z-index:10;font-family:ui-monospace,monospace}.body-chart-thumb .body-chart-label{font-size:10px}.color-palette{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.color-chip{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;position:relative}.color-chip:hover{transform:scale(1.05)}.color-chip.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--primary-soft)}.color-chip.add{width:auto;height:32px;border-radius:16px;background:var(--surface);border:1px dashed var(--border);padding:0 10px;font-size:12px;color:var(--muted)}.color-chip-label{position:absolute;left:50%;bottom:-16px;transform:translate(-50%);font-size:10px;color:var(--muted);white-space:nowrap}.inline-add{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.inline-add input[type=text]{padding:4px 6px;font-size:13px;border:1px solid var(--border);border-radius:4px}.symptom-list{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.pain-scale{display:flex;gap:4px;flex-wrap:wrap}.pain-cell{flex:1 1 auto;min-width:32px;padding:8px 0;text-align:center;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;font-weight:600}.pain-cell:hover{background:var(--primary-tint)}.pain-cell.on{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (max-width: 768px){.karte-editor-header,.karte-editor-body{grid-template-columns:1fr}.karte-editor-panel{max-height:none}.form-grid-2{grid-template-columns:1fr}}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input:not([type]),select,textarea{min-height:var(--touch-min);padding:10px var(--touch-pad-h);font-size:var(--touch-font);border-radius:var(--touch-radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.pay-line-amount input{padding:6px 8px}.btn-primary,.btn-secondary,.danger,button[type=submit],button[type=button]:not(.tab-btn):not(.cmdk-row):not(.course-cat):not(.course-row):not(.today-row):not(.cs-clear):not(.round-btn):not(.btn-mini):not(.btn-icon-danger):not(.btn-add-line):not(.customer-chip):not(.tag-chip):not(.link-btn){min-height:var(--touch-min);padding:10px 18px;font-size:var(--touch-font);border-radius:var(--touch-radius);cursor:pointer}.btn-primary{background:var(--primary);color:var(--primary-on);border:none;font-weight:700;box-shadow:0 2px 4px #95c11f4d;transition:background .15s,transform .05s,box-shadow .15s}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 3px 8px #95c11f66}.btn-primary:active{background:var(--primary-darker);transform:translateY(1px)}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text);font-weight:600}.btn-secondary:hover{background:var(--bg)}.danger{background:var(--surface);border:1px solid var(--danger);color:var(--danger);font-weight:600}.danger:hover{background:var(--danger);color:#fff}button:disabled{opacity:.45;cursor:not-allowed}.btn-add-line{min-height:40px;padding:8px 16px;font-size:14px;font-weight:700;border-radius:999px}.payment-lines-table td{padding:8px}.payment-lines-table select,.payment-lines-table input{min-height:40px;font-size:14px}.customer-chip,.tag-chip{min-height:40px;padding:8px 14px;font-size:14px;border-radius:999px}.tag-chip.on{font-weight:700}.customer-table button:not(.btn-primary):not(.btn-secondary):not(.danger){min-height:36px;padding:6px 14px;font-size:13px}.customer-table .btn-primary,.customer-table .danger{min-height:36px;padding:6px 14px;font-size:13px}.course-cat{min-height:52px}.course-row{min-height:56px}.today-row{min-height:48px;padding:10px 14px;font-size:14px}.tr-time{font-size:13px;padding:4px 8px}.modal-actions{gap:12px;padding:12px 4px 0}.modal-actions button{min-width:100px}.btn-icon-danger{min-width:40px;min-height:40px;font-size:20px}.btn-mini{min-height:36px;padding:4px 10px;font-size:13px}.link-btn{padding:6px 10px;min-height:36px}.view-switcher button{min-height:40px;padding:8px 16px;font-size:14px}.seg-toggle button{min-height:44px;padding:8px 18px;font-size:14px;font-weight:600}.tab-btn{min-height:44px;padding:8px 16px;font-size:14px}@media (max-width: 1024px){:root{--touch-min: 48px;--touch-pad-h: 16px;--touch-font: 16px}.btn-add-line{min-height:44px;padding:10px 18px;font-size:15px}.modal-actions button{min-width:120px;min-height:48px;padding:12px 22px;font-size:16px}.customer-chip,.tag-chip{min-height:44px;padding:10px 16px;font-size:15px}.today-row{min-height:56px;padding:12px 16px;font-size:15px}.course-cat{min-height:56px;font-size:15px}.course-row{min-height:64px;font-size:15px}.course-row-name{font-size:16px}.seg-toggle button{min-height:48px;font-size:15px}.form-grid{gap:14px}.customer-table th,.customer-table td{padding:12px 10px}}@media (max-width: 640px){:root{--touch-font: 16px}.modal-actions{flex-wrap:wrap}.modal-actions button{flex:1;min-width:0}.btn-add-line{font-size:15px;padding:12px 16px}.content{padding:12px}.card{padding:12px;border-radius:10px}.page-header{flex-direction:column;align-items:stretch;gap:10px}.page-header h2{font-size:18px;margin:0}.page-actions,.view-switcher{width:100%}.view-switcher{display:flex}.view-switcher button{flex:1}.form-grid{grid-template-columns:1fr!important;gap:12px}.field-label{font-size:13px;font-weight:600}.field{width:100%}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi-card{padding:12px}.kpi-label{font-size:11px}.kpi-value{font-size:22px}.modal-backdrop{padding:0!important;align-items:stretch}.modal{width:100%!important;max-width:100%!important;height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.modal-body{flex:1;overflow-y:auto}.modal-actions{padding:14px 12px;box-shadow:0 -2px 8px #00000014}.course-selector-panel{width:100%;height:100vh;border-radius:0}.course-selector-body{grid-template-columns:100px 1fr}.course-cat{padding:12px 8px;font-size:13px}.register-layout{grid-template-columns:1fr;gap:12px}.register-summary{position:static}.amount-display{padding:16px 14px}.amount-value{font-size:28px}.customer-strip{flex-direction:column;align-items:stretch;padding:12px;gap:8px}.cs-badges{justify-content:flex-start;flex-wrap:wrap}.round-btn{width:56px;height:56px;font-size:12px}.round-btn-large{width:72px;height:72px;font-size:14px}.register-counters{gap:6px}.rc-value{font-size:16px}.card>.customer-table,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.customer-table{min-width:600px}.customer-table th,.customer-table td{padding:10px 8px;font-size:13px;white-space:nowrap}.filter-bar{gap:6px;padding:8px 0}.customer-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.tab-btn{flex-shrink:0}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input:not([type]),select,textarea{font-size:16px}.course-row{padding:12px;min-height:64px}.course-row-name{font-size:15px}.course-row-price{font-size:14px}.payment-lines-table thead{display:none}.payment-lines-table tr{display:block;padding:12px;border:1px solid var(--border);border-radius:10px;margin-bottom:8px;background:var(--surface)}.payment-lines-table td{display:block;padding:4px 0;border:none}.payment-lines-table td:first-child{display:none}.pay-line-amount{gap:8px}.pay-line-amount input{font-size:17px;font-weight:600}.btn-icon-danger{position:absolute;top:12px;right:12px}.payment-lines-table tr{position:relative}.payment-lines-summary{padding:12px}.pls-row{font-size:14px}.pls-remaining{font-size:16px}}
