:root{--ink:#263b36;--green:#356d61;--paper:#faf8f3;--line:#d9d8d1;--muted:#68756f;--soft:#edf4ef;--warm:#fff7e9;--danger:#a53f30}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.ch-header{min-height:72px;padding:14px clamp(18px,4vw,54px);display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:#fffdf9}
.brand{color:var(--ink);text-decoration:none;letter-spacing:3px;font-weight:800}
.brand small{display:block;font-size:9px;letter-spacing:4px;color:var(--green)}
.ch-header strong{font-size:18px}
.ch-header nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
.ch-header nav a{color:var(--green);text-decoration:none;font-weight:700}
.ch-shell{width:min(1280px,calc(100% - 36px));margin:24px auto 54px}
.search-bar{padding:22px 26px;display:flex;align-items:end;justify-content:space-between;gap:25px;border:1px solid var(--line);border-radius:14px;background:#fff}
.search-bar p,.kicker{margin:0;color:var(--green);font-size:12px;font-weight:800;letter-spacing:1.5px}
.search-bar h1{margin:3px 0 4px;font:700 32px Georgia,serif}
.search-bar span{color:var(--muted)}
.search-bar form{display:flex;gap:9px;min-width:min(470px,100%)}
input,textarea,button{font:inherit}
input,textarea{width:100%;border:1px solid #b7c8bf;border-radius:8px;padding:11px 12px;background:#fff;color:var(--ink)}
textarea{resize:vertical}
.primary,.secondary{min-height:44px;padding:9px 15px;border-radius:8px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.primary{background:var(--green);color:white;border:1px solid var(--green)}
.secondary{border:1px solid #9fb5ab;color:#2f6056;background:#fff}
.search-results{display:flex;gap:10px;flex-wrap:wrap;padding:13px 0}
.result{padding:10px 13px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;color:var(--ink)}
.result b,.result small{display:block}
.result small{color:var(--muted)}
.notice{padding:10px 13px;border:1px solid #e5bb90;background:var(--warm);border-radius:8px;color:#784515}
.hub-empty{margin-top:28px;padding:42px;text-align:center;border:1px dashed #bbc8c0;border-radius:14px;color:var(--muted)}
.customer-top{display:flex;justify-content:space-between;align-items:start;gap:18px;padding:26px 0 18px}
.customer-top h2{margin:3px 0;font:700 37px Georgia,serif}
.customer-top .meta{color:var(--muted);margin:0}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.fact,.panel{border:1px solid var(--line);border-radius:12px;background:#fff}
.fact{padding:15px}
.fact small{display:block;color:var(--muted);margin-bottom:3px}
.fact b{font-size:18px}
.fact.credit{background:var(--soft);border-color:#a9c5b8}
.hub-grid{margin-top:14px;display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
.panel{padding:18px;min-width:0}
.panel.full{grid-column:1/-1}
.panel h3{font:700 22px Georgia,serif;margin:2px 0 12px}
.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.panel-head a{color:var(--green);font-weight:700;text-decoration:none}
.panel-head small{display:block;color:var(--muted);margin-top:-8px}
.report-subsection{margin-top:16px;padding-top:14px;border-top:1px solid #ece9e2}
.report-subsection>.facts{margin-top:10px}
.ledger{display:grid;gap:0}
.ledger-row{display:grid;grid-template-columns:1.35fr .8fr .8fr;gap:10px;padding:10px 0;border-top:1px solid #ece9e2}
.ledger-row:first-child{border-top:0}
.ledger-row small{display:block;color:var(--muted)}
.money.plus{color:#276853}
.money.minus{color:#a44c37}
.visit-row,.appointment-row,.form-row{display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:12px;border-top:1px solid #ece9e2;padding:11px 0;color:inherit;text-decoration:none}
.visit-row:first-child,.appointment-row:first-child,.form-row:first-child{border-top:0}
.visit-number{font-size:18px;color:var(--green);font-weight:800}
.visit-row small,.appointment-row small,.form-row small{display:block;color:var(--muted)}
.tag{display:inline-block;border-radius:12px;padding:3px 8px;background:#eff3f0;color:#48685c;font-size:12px;font-weight:800}
.status-cancelled{background:#fdecea;color:#903f35}
.empty{color:var(--muted)}
.internal-note{padding:12px;border-radius:8px;background:#fafaf7;white-space:pre-wrap;min-height:50px}
.sheet{width:min(520px,calc(100% - 28px));border:0;border-radius:14px;padding:24px;box-shadow:0 18px 55px #0004}
.sheet::backdrop{background:#21332d77}
.sheet h2{margin:0 0 14px;font-family:Georgia,serif}
.sheet form{display:grid;gap:12px}
.sheet label{display:grid;gap:5px;font-weight:700}
.inline-check{display:flex!important;align-items:center;gap:8px}
.inline-check input{width:auto}
.close{float:right;border:0;background:transparent;font-size:25px;cursor:pointer;color:var(--ink)}
@media(max-width:820px){.search-bar{display:block}
.search-bar form{margin-top:16px;min-width:0}
.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub-grid{grid-template-columns:1fr}
.panel.full{grid-column:auto}
.ch-header nav{display:none}
.customer-top h2{font-size:31px}
}
@media(max-width:520px){.ch-shell{width:min(100% - 24px,1280px)}
.search-bar{padding:18px}
.facts{grid-template-columns:1fr}
.search-bar form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.search-bar form>*{width:100%;min-width:0}
.search-bar form select,.search-bar form button{grid-column:1/-1}
.report-booking-structure .panel-head{display:block}
.report-booking-structure .panel-head>span{display:block;margin-top:8px;overflow-wrap:anywhere}
.visit-row,.appointment-row,.form-row{grid-template-columns:62px 1fr}
.visit-row .tag,.appointment-row .tag{display:none}
}
:root{--credit-border:#bdd1c6}
.credit-lookup{margin-top:14px;padding:17px 21px;display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap;border:1px solid var(--credit-border);border-radius:12px;background:var(--soft)}
.credit-lookup p{margin:0;color:var(--green);font-size:12px;font-weight:800;letter-spacing:1.3px}
.credit-lookup h2{margin:3px 0;font:700 22px Georgia,serif}
.credit-lookup span{color:var(--muted)}
.credit-lookup form{display:flex;gap:8px;min-width:min(400px,100%)}
.credit-lookup-result{width:100%}
@media(max-width:820px){.credit-lookup{display:block}.credit-lookup form{margin-top:14px;min-width:0}}
