:root{
  --ink:#0A4060; --ink-deep:#062C42; --ink-soft:#48606A; --paper:#EEF0E9; --card:#FFFFFF;
  --gold:#C4922F; --gold-deep:#A97A22; --sage:#6F8F82; --sage-deep:#4F6F63;
  --coral:#BD5B3D; --coral-deep:#96432A; --line:#D6DAD0;
  --serif:'Fraunces', Georgia, serif; --sans:'IBM Plex Sans', -apple-system, sans-serif;
}
*{box-sizing:border-box;}
body{margin:0; background:var(--paper); color:var(--ink-deep); font-family:var(--sans); line-height:1.6; font-size:16px; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; margin:0; color:var(--ink-deep);}
p{margin:0;} a{color:inherit;}
.wrap{max-width:980px; margin:0 auto; padding:0 20px;}
.topbar{background:var(--ink-deep); color:var(--paper);}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:64px; gap:12px;}
.topbar a.brand{font-family:var(--serif); font-size:1.15rem; text-decoration:none; color:var(--paper);}
.topbar .right{display:flex; gap:14px; align-items:center; font-size:0.92rem;}
.topbar .right a, .topbar .right button{color:#AFC4C9; background:none; border:none; font:inherit; cursor:pointer; text-decoration:none;}
.topbar .right a:hover, .topbar .right button:hover{color:var(--paper);}
main{padding:40px 0 80px;}
.kicker{font-family:var(--serif); font-style:italic; color:var(--gold-deep); margin-bottom:6px;}
.lead{color:var(--ink-soft); margin-top:8px; max-width:62ch;}
.card{background:var(--card); border:1px solid var(--line); border-radius:6px; padding:28px; margin-top:24px;}
.card h3{font-size:1.3rem; margin-bottom:14px;}
label{font-size:0.88rem; color:var(--ink-soft); display:block; margin-bottom:6px;}
input, select, textarea{width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:4px; font:inherit; background:#FBFBF8; color:var(--ink-deep);}
textarea{min-height:90px; resize:vertical;}
input:focus, select:focus, textarea:focus{outline:2px solid var(--gold); outline-offset:1px;}
.field{margin-bottom:16px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.row3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px;}
.btn{display:inline-block; background:var(--gold); color:var(--ink-deep); border:none; border-radius:4px; padding:12px 22px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none;}
.btn:hover{background:#DDA83D;}
.btn:disabled{opacity:.55; cursor:wait;}
.btn.ghost{background:transparent; border:1px solid var(--line); color:var(--ink-deep); font-weight:500;}
.btn.ghost:hover{border-color:var(--gold);}
.btn.sage{background:var(--sage); color:#fff;} .btn.sage:hover{background:var(--sage-deep);}
.btn.coral{background:var(--coral); color:#fff;} .btn.coral:hover{background:var(--coral-deep);}
.btn.sm{padding:7px 12px; font-size:0.86rem;}
.tabs{display:flex; gap:0; border-bottom:1px solid var(--line); margin-bottom:22px;}
.tabs button{background:none; border:none; font:inherit; padding:10px 16px; cursor:pointer; color:var(--ink-soft); border-bottom:2px solid transparent; margin-bottom:-1px;}
.tabs button.active{color:var(--ink-deep); border-bottom-color:var(--gold); font-weight:600;}
.msg{padding:12px 14px; border-radius:4px; margin-top:14px; font-size:0.93rem; display:none;}
.msg.show{display:block;}
.msg.ok{background:#E3EDE7; color:var(--sage-deep);}
.msg.err{background:#F6E3DC; color:var(--coral-deep);}
.status{display:inline-block; padding:3px 10px; border-radius:20px; font-size:0.8rem; font-weight:600;}
.status.pendente, .status.solicitado{background:#F5EAD3; color:var(--gold-deep);}
.status.aprovado, .status.confirmado{background:#E3EDE7; color:var(--sage-deep);}
.status.recusado, .status.suspenso, .status.cancelado{background:#F6E3DC; color:var(--coral-deep);}
.status.realizado{background:#E1E8EC; color:var(--ink);}
.banner{border-left:4px solid var(--gold); background:#FBF6EA; padding:14px 18px; border-radius:4px; margin-top:20px; font-size:0.95rem;}
.banner.ok{border-color:var(--sage); background:#EEF4F0;}
.banner.err{border-color:var(--coral); background:#FBEFEA;}
.photo-row{display:flex; gap:20px; align-items:center; margin-bottom:18px;}
.photo{width:110px; height:110px; border-radius:50%; background:var(--paper) center/cover no-repeat; border:1px solid var(--line); flex:none; display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-size:0.8rem; text-align:center;}
.hours-grid{display:grid; gap:14px;}
.hours-day h4{font-size:0.98rem; margin-bottom:8px;}
.chips{display:flex; flex-wrap:wrap; gap:6px;}
.chip{border:1px solid var(--line); background:#FBFBF8; border-radius:4px; padding:6px 9px; font:inherit; font-size:0.84rem; cursor:pointer; color:var(--ink-deep);}
.chip.on{background:var(--ink-deep); color:var(--paper); border-color:var(--ink-deep);}
.day-tools{display:inline-flex; gap:8px; margin-left:10px; font-family:var(--sans); font-size:0.78rem;}
.day-tools button{background:none; border:none; color:var(--gold-deep); cursor:pointer; font:inherit; padding:0; text-decoration:underline;}
table{width:100%; border-collapse:collapse; font-size:0.92rem;}
th, td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top;}
th{font-weight:600; color:var(--ink-soft); font-size:0.82rem;}
.muted{color:var(--ink-soft); font-size:0.9rem;}
.actions{display:flex; gap:6px; flex-wrap:wrap;}
.psi-admin{display:grid; grid-template-columns:72px 1fr auto; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); align-items:start;}
.psi-admin .photo{width:72px; height:72px;}
.hidden{display:none !important;}
@media (max-width:720px){
  .row2, .row3{grid-template-columns:1fr;}
  .card{padding:20px;}
  .psi-admin{grid-template-columns:56px 1fr;}
  .psi-admin .photo{width:56px; height:56px;}
  .psi-admin .actions{grid-column:1 / -1;}
  table, thead, tbody, tr, td, th{display:block;} thead{display:none;}
  tr{border-bottom:1px solid var(--line); padding:8px 0;} td{border:none; padding:3px 0;}
}
