:root{--practice-ink:#1d1a16;--practice-muted:#6b6257;--practice-line:#d8cbb8;--practice-paper:#fffdf8;--practice-accent:#8b4513;--practice-good:#1f7a4f;--practice-warn:#a45a00;--practice-danger:#a52a2a}
.practice-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:24px 0 48px}
.practice-shell h1,.practice-shell h2,.practice-shell h3{line-height:1.15;color:var(--practice-ink)}
.practice-shell h1{font-size:clamp(1.8rem,5vw,3rem);margin:.2rem 0 1rem}.practice-shell h2{margin:2rem 0 1rem}.practice-shell p{max-width:75ch}
.practice-shell a{overflow-wrap:anywhere}.practice-shell hr{border:0;border-top:1px solid var(--practice-line);margin:28px 0}
.card,.dashboard-summary,.patient-card,.appointment-card,.session-card,.referral-card{background:var(--practice-paper);border:1px solid var(--practice-line);border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 10px 28px rgba(54,40,24,.07)}
.nav,.actions,.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
.btn,.practice-shell button,.practice-shell input[type=submit]{appearance:none;border:1px solid #6f4b2e;background:#fffaf1;color:#2c2118;border-radius:999px;padding:11px 16px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px}
.btn:hover,.practice-shell button:hover,.practice-shell input[type=submit]:hover{transform:translateY(-1px)}.btn-primary,.practice-shell button[type=submit],.practice-shell input[type=submit]{background:#2e241c;color:#fff;border-color:#2e241c}
.practice-shell form{display:grid;gap:14px;max-width:780px}.practice-shell label{font-weight:700;color:var(--practice-ink)}
.practice-shell input,.practice-shell select,.practice-shell textarea{width:100%;border:1px solid #bcae9b;border-radius:12px;background:#fff;color:#201a15;padding:12px 13px;font:inherit;min-height:44px}.practice-shell textarea{min-height:120px;resize:vertical}
.practice-shell table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.practice-shell th,.practice-shell td{text-align:left;padding:12px;border-bottom:1px solid #e7ddd0;vertical-align:top}.practice-shell th{background:#f2e8d9}
.practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.practice-stat{background:#fff;border:1px solid var(--practice-line);border-radius:16px;padding:16px}.practice-stat strong{display:block;font-size:1.75rem}
.status-completed{color:var(--practice-good)}.status-cancelled,.status-no_show{color:var(--practice-danger)}
.practice-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgba(21,18,14,.38);backdrop-filter:blur(2px)}.practice-loader[hidden]{display:none}.practice-loader__mark{width:54px;height:54px;border-radius:50%;border:5px solid rgba(255,255,255,.5);border-top-color:#fff;animation:practice-spin .75s linear infinite}@keyframes practice-spin{to{transform:rotate(360deg)}}
.login-panel{max-width:520px;margin:8vh auto;background:#fffdf8;border:1px solid var(--practice-line);border-radius:24px;padding:clamp(22px,5vw,42px);box-shadow:0 24px 70px rgba(54,40,24,.16)}.login-panel form{max-width:none}.notice-error{padding:12px 14px;border-radius:12px;background:#fff0ed;border:1px solid #e5aaa0;color:#7b2016}
@media(max-width:720px){.practice-shell{width:min(100% - 18px,1180px);padding-top:16px}.practice-shell table{display:block;overflow-x:auto}.btn,.practice-shell button,.practice-shell input[type=submit]{width:100%}.nav .btn,.actions .btn{flex:1 1 145px}.kos-main{padding-inline:0}}
@media print{.kos-app-header,.kos-footer,.nav,.actions,.practice-loader{display:none!important}.practice-shell{width:100%;padding:0}.card{box-shadow:none}}
