:root{--backend-bg:#f5f0e8;--backend-card:#fffdf9;--backend-line:#ded2c4;--backend-muted:#76685e;--backend-success:#417246;--backend-error:#9c3d32}
.backend-body{background:var(--backend-bg);min-height:100vh}.backend-header{height:76px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;justify-content:space-between;background:var(--backend-card);border-bottom:1px solid var(--backend-line);position:sticky;top:0;z-index:20}.backend-header .brand img{width:215px}.backend-header nav{display:flex;gap:26px;align-items:center}.backend-header nav a{font-size:14px;font-weight:700}.backend-header nav a:hover{color:var(--copper)}.backend-main{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:48px 0 90px;min-height:calc(100vh - 150px)}.backend-footer{text-align:center;padding:25px;background:#1c1410;color:#a89b91;font-size:12px}.auth-card{width:min(520px,100%);margin:35px auto;background:var(--backend-card);padding:42px;border:1px solid var(--backend-line);box-shadow:0 18px 55px rgba(55,34,21,.08)}.auth-card-wide{width:min(760px,100%)}.auth-card h1,.page-title h1{font:700 clamp(34px,4vw,48px) "Fraunces";line-height:1.05;margin:10px 0}.auth-card>p,.page-title p{color:var(--backend-muted)}.backend-form{display:grid;gap:18px;margin-top:28px}.backend-form label>span,.backend-form legend{font-size:13px;font-weight:700;margin-bottom:7px;display:block}.backend-form input,.backend-form select,.backend-form textarea{width:100%;min-height:48px;border:1px solid var(--backend-line);background:white;border-radius:4px;padding:10px 13px;outline:none}.backend-form textarea{min-height:130px;resize:vertical}.backend-form input:focus,.backend-form select:focus,.backend-form textarea:focus{border-color:var(--copper);box-shadow:0 0 0 3px rgba(198,109,54,.12)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}.role-choice{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-choice label{border:1px solid var(--backend-line);padding:15px;display:flex;gap:12px;align-items:flex-start;background:white}.role-choice input{width:auto;min-height:0;margin-top:5px}.role-choice strong,.role-choice small{display:block}.role-choice small{font-size:12px;color:var(--backend-muted);margin-top:3px}.check-row{display:flex!important;gap:10px;align-items:center}.check-row input{width:auto;min-height:auto}.check-row span{margin:0!important;font-weight:400!important}.auth-links{display:flex;justify-content:space-between;margin-top:24px;font-size:13px}.auth-links a{color:var(--copper-dark);font-weight:700}.alert{padding:15px 18px;border-radius:4px;margin:0 0 22px;background:white;border-left:4px solid var(--copper)}.alert ul{margin:8px 0 0}.alert-success{border-color:var(--backend-success);background:#edf5ec}.alert-error{border-color:var(--backend-error);background:#fbefed}.dashboard-top,.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:35px}.page-actions{display:flex;gap:10px;flex-wrap:wrap}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:35px}.stat-card{background:var(--backend-card);border:1px solid var(--backend-line);padding:24px}.stat-card small{display:block;color:var(--backend-muted);font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:700}.stat-card strong{display:block;font:700 38px "Fraunces";margin-top:7px}.panel{background:var(--backend-card);border:1px solid var(--backend-line);padding:28px;margin-bottom:24px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.panel h2{font:700 26px "Fraunces";margin:0}.panel h3{font:700 20px "Fraunces"}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:14px 11px;border-bottom:1px solid var(--backend-line);vertical-align:top}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--backend-muted)}.data-table td{font-size:14px}.data-table a{font-weight:700;color:var(--copper-dark)}.badge{display:inline-flex;padding:4px 9px;border-radius:20px;background:#eee6dc;font-size:11px;font-weight:700}.badge-open,.badge-available,.badge-accepted,.badge-verified,.badge-active{background:#e5f1e4;color:#39683f}.badge-pending,.badge-matched,.badge-reserved{background:#fff0dc;color:#996022}.badge-declined,.badge-cancelled,.badge-blocked,.badge-rejected{background:#f9e4e0;color:#98453b}.empty-state{text-align:center;padding:45px 20px;color:var(--backend-muted)}.empty-state h3{color:var(--ink)}.side-layout{display:grid;grid-template-columns:240px 1fr;gap:28px}.side-nav{background:var(--backend-card);border:1px solid var(--backend-line);padding:14px;height:max-content;position:sticky;top:100px}.side-nav a{display:block;padding:11px 12px;font-weight:700;font-size:13px;border-radius:3px}.side-nav a:hover,.side-nav a.active{background:var(--cream);color:var(--copper-dark)}.match-card{display:grid;grid-template-columns:90px 1fr auto;gap:20px;align-items:center;padding:20px;border:1px solid var(--backend-line);background:white;margin-bottom:12px}.match-score{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:var(--cream);color:var(--copper-dark);font:700 22px "Fraunces"}.match-card h3{margin:0}.match-card p{margin:4px 0;color:var(--backend-muted);font-size:13px}.message-layout{display:grid;grid-template-columns:320px 1fr;min-height:600px;border:1px solid var(--backend-line);background:white}.conversation-list{border-right:1px solid var(--backend-line)}.conversation-link{display:block;padding:18px;border-bottom:1px solid var(--backend-line)}.conversation-link:hover,.conversation-link.active{background:var(--cream)}.conversation-link strong,.conversation-link small{display:block}.conversation-link small{color:var(--backend-muted)}.conversation{display:flex;flex-direction:column}.message-feed{padding:25px;display:flex;flex-direction:column;gap:12px;flex:1;max-height:520px;overflow:auto}.message{max-width:72%;padding:12px 15px;background:var(--cream);border-radius:10px 10px 10px 2px}.message.mine{margin-left:auto;background:var(--copper);color:white;border-radius:10px 10px 2px 10px}.message small{display:block;opacity:.65;margin-top:5px}.message-form{border-top:1px solid var(--backend-line);padding:15px;display:flex;gap:10px}.message-form textarea{flex:1;min-height:52px;padding:10px;border:1px solid var(--backend-line);resize:none}.inline-form{display:inline}.danger-button{background:transparent;color:var(--backend-error);border:1px solid #d6a9a2}.helper{font-size:12px;color:var(--backend-muted);margin-top:5px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.progress-note{padding:15px;background:#fff5e8;border:1px solid #efcfaa;color:#82531e;margin-bottom:24px}.filter-bar{display:flex;gap:12px;align-items:end;margin-bottom:22px}.filter-bar label{flex:1}.filter-bar span{font-size:11px;font-weight:700;display:block}.filter-bar select,.filter-bar input{width:100%;height:44px;border:1px solid var(--backend-line);background:white;padding:0 10px}
.autocomplete-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid var(--backend-line);
    border-top: none;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    border-radius: 0 0 4px 4px;
}
.autocomplete-suggestion {
    padding: 10px 13px;
    cursor: pointer;
    font-size: 14px;
}
.autocomplete-suggestion:hover {
    background: var(--backend-bg);
}
@media(max-width:900px){.stat-grid{grid-template-columns:1fr 1fr}.side-layout{grid-template-columns:1fr}.side-nav{position:static;display:flex;overflow:auto}.message-layout{grid-template-columns:1fr}.conversation-list{border-right:0;border-bottom:1px solid var(--backend-line);max-height:230px;overflow:auto}.admin-grid{grid-template-columns:1fr}}
@media(max-width:620px){.backend-header{height:auto;min-height:70px;padding:12px 18px}.backend-header .brand img{width:170px}.backend-header nav{gap:12px}.backend-header nav a:first-child{display:none}.backend-main{width:min(100% - 24px,1180px);padding-top:28px}.auth-card{padding:28px 20px;margin:10px auto}.form-grid,.role-choice,.stat-grid{grid-template-columns:1fr}.dashboard-top,.page-title{align-items:flex-start;flex-direction:column}.panel{padding:20px 14px;overflow-x:auto}.match-card{grid-template-columns:60px 1fr}.match-score{width:56px;height:56px;font-size:17px}.match-card>.button{grid-column:1/-1}.message{max-width:90%}}
