:root{--color-primary:#0f172a;--color-action:#0369a1;--color-bg:#f8fafc;--color-surface:#fff;--color-border:#e2e8f0;--color-text:#020617;--color-muted:#64748b;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-info:#2563eb}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif;overflow:hidden}button,input,textarea,select{font:inherit}.app-shell,.app-sider{height:100vh;overflow:hidden}.app-menu-scroll{height:calc(100vh - 56px);overflow:hidden auto}.app-main{min-width:0;height:100vh;overflow:hidden}.app-logo{color:#fff;background:var(--color-primary);border-bottom:1px solid #ffffff1f;align-items:center;gap:10px;height:56px;padding:0 18px;display:flex}.app-logo-mark{color:#dbeafe;border:1px solid #dbeafe6b;border-radius:6px;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.app-logo-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:650;overflow:hidden}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex:0 0 56px;justify-content:space-between;align-items:center;height:56px;padding:0 18px;line-height:normal;display:flex}.app-header-left,.app-header-right{align-items:center;gap:12px;display:flex}.app-header-left{min-width:0}.app-header-right{min-width:max-content}.app-user-profile{flex:none}.app-user-meta{flex-direction:column;justify-content:center;min-width:0;line-height:1.2;display:flex}.app-user-name,.app-user-role{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.app-user-role{font-size:12px}.app-content{background:var(--color-bg);height:calc(100vh - 56px);min-height:0;padding:18px;overflow:hidden auto}.page-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.page-section{margin-top:16px}.page-title-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.page-title-row h1{color:var(--color-text);letter-spacing:0;margin:0;font-size:20px;font-weight:700}.page-title-row p{color:var(--color-muted);margin:5px 0 0;font-size:13px}.filter-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:16px}.metric-label{color:var(--color-muted);font-size:13px}.metric-value{color:var(--color-text);margin-top:8px;font-size:24px;font-weight:750}.amount{color:var(--color-danger);font-variant-numeric:tabular-nums;font-weight:650}.grave-grid{gap:6px;display:grid;overflow:auto}.grave-legend{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.grave-legend-item{min-height:28px;color:var(--color-text);border:1px solid var(--color-border);background:#fff;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.grave-legend-item strong{color:var(--color-muted);font-variant-numeric:tabular-nums}.grave-legend-swatch{border:2px solid;border-radius:4px;width:14px;height:14px}.grave-cell{border:1.5px solid var(--color-border);cursor:pointer;text-align:left;border-radius:6px;min-width:74px;min-height:72px;padding:8px 7px 7px;transition:border-color .16s,box-shadow .16s,transform .16s,filter .16s;position:relative;overflow:hidden}.grave-cell:hover{filter:saturate(1.08);transform:translateY(-1px);box-shadow:0 0 0 3px #0369a11f}.grave-cell:focus-visible{outline-offset:2px;outline:3px solid #0369a159}.grave-code{font-variant-numeric:tabular-nums;font-size:12px;font-weight:800;line-height:1.1}.grave-meta{white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:10.5px;font-weight:650;line-height:1.2;overflow:hidden}.grave-status-pill{white-space:nowrap;border-radius:4px;align-items:center;max-width:100%;min-height:18px;margin-top:6px;padding:1px 5px;font-size:10px;font-weight:750;line-height:1;display:inline-flex}.document-preview{border:1px solid var(--color-border);background:#fff;max-width:760px;margin:0 auto;padding:28px;box-shadow:0 12px 30px #0f172a14}.sales-contract-preview{background:#f1f5f9;gap:18px;padding:12px 0 24px;display:grid}.sales-contract-toolbar{z-index:1;border:1px solid var(--color-border);background:#f8fafcf2;border-radius:6px;flex-wrap:wrap;gap:8px;padding:10px 12px;display:flex;position:sticky;top:0}.sales-contract-page{color:#111827;background:#fff;border:1px solid #d1d5db;width:210mm;min-height:297mm;margin:0 auto;padding:18mm 18mm 16mm;position:relative;box-shadow:0 14px 34px #0f172a24}.sales-contract-page-header,.sales-contract-page-footer{color:#6b7280;justify-content:space-between;font-size:12px;display:flex;position:absolute;left:18mm;right:18mm}.sales-contract-page-header{border-bottom:1px solid #e5e7eb;padding-bottom:5px;top:9mm}.sales-contract-page-footer{border-top:1px solid #e5e7eb;justify-content:center;padding-top:5px;bottom:8mm}.sales-contract-page-body{min-height:248mm}.sales-contract-cover{text-align:center;place-items:center;min-height:118mm;display:grid}.sales-contract-cover h2{letter-spacing:0;margin-bottom:18px;font-size:28px}.sales-contract-no{font-size:16px;font-weight:650}.sales-contract-cover-meta{color:#374151;text-align:left;gap:12px;margin-top:40px;font-size:15px;display:grid}.sales-contract-block{margin-top:14px}.sales-contract-paragraph{color:#1f2937;text-indent:2em;margin-top:18px;font-size:14px;line-height:1.9}.sales-contract-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:14px}.sales-contract-table th,.sales-contract-table td{text-align:left;border:1px solid #d1d5db;padding:10px 12px}.sales-contract-table th{background:#f8fafc;font-weight:700}.sales-contract-clauses{color:#1f2937;gap:14px;margin:16px 0 0;padding-left:22px;font-size:14px;line-height:1.9;display:grid}.sales-contract-sign-grid{grid-template-columns:1fr 1fr;gap:28px;margin-top:54px;display:grid}.sales-contract-sign-grid>div{border:1px solid #d1d5db;min-height:88px;padding:18px}.sales-contract-sign-title{margin-bottom:24px;font-weight:700}.sales-contract-sign-line{margin-top:14px}.sales-contract-security{color:#4b5563;border-top:1px solid #e5e7eb;justify-content:space-between;align-items:end;gap:16px;margin-top:58px;padding-top:16px;font-size:13px;display:flex}.receipt-print-sheet,.sales-contract-print-sheet{display:none}@media print{@page{size:A5 landscape;margin:8mm}body.receipt-print-mode{background:#fff}body.receipt-print-mode #root,body.receipt-print-mode .ant-modal-root{display:none}body.receipt-print-mode .receipt-print-sheet{background:#fff;display:block}body.receipt-print-mode .receipt-print-sheet .document-preview{width:194mm;max-width:none;min-height:132mm;box-shadow:none;border:0;margin:0 auto;padding:8mm}@page sales-contract{size:A4 portrait;margin:0}body.contract-print-mode{background:#fff}body.contract-print-mode #root,body.contract-print-mode .ant-modal-root{display:none}body.contract-print-mode .sales-contract-print-sheet{background:#fff;display:block}body.contract-print-mode .sales-contract-preview{background:#fff;gap:0;padding:0}body.contract-print-mode .sales-contract-toolbar{display:none}body.contract-print-mode .sales-contract-page{page:sales-contract;width:210mm;min-height:297mm;box-shadow:none;break-after:page;border:0;margin:0}body.contract-print-mode .sales-contract-page:last-child{break-after:auto}}.reservation-checkout-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:16px;display:grid}.customer-screen-preview{border:1px solid var(--color-border);background:linear-gradient(#f0fdfacc,#fffffff2),#fff;border-radius:8px;min-height:420px;padding:18px}@media (width<=1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-checkout-grid{grid-template-columns:1fr}}@media (width<=920px){.sales-contract-page{width:100%;min-height:auto;padding:48px 20px 44px}.sales-contract-page-header,.sales-contract-page-footer{left:20px;right:20px}.sales-contract-page-body{min-height:auto}.sales-contract-cover{min-height:360px}.sales-contract-sign-grid{grid-template-columns:1fr}}@media (width<=760px){.app-content{padding:12px}.app-header{padding:0 12px}.metric-grid{grid-template-columns:1fr}.page-title-row{flex-direction:column}}
