:root { color-scheme:light; --ink:#231e2d; --muted:#51495b; --brand:#44285e; --line:#cfc6d8; --wash:#f3eef7; }
* { box-sizing:border-box }
[hidden] { display:none!important }
body { margin:0; background:#fff; color:var(--ink); font:1.125rem/1.5 system-ui,sans-serif }
button,input,select { font:inherit }
button { cursor:pointer; min-height:48px; padding:.55rem 1rem; border:2px solid var(--brand); border-radius:4px; background:white; color:var(--brand); font-weight:650 }
button:hover { background:var(--wash) }
button:disabled { cursor:wait; opacity:.65 }
:focus-visible { outline:3px solid #20152a; outline-offset:3px; box-shadow:0 0 0 6px #ffce54 }
.primary,.accept { background:var(--brand); color:white }
.primary:hover,.accept:hover { background:#301b45 }
.textbtn,.clear { text-decoration:underline; text-underline-offset:.2em }
.skip { position:absolute; top:-6rem; left:1rem; background:white; padding:.75rem; z-index:10 }
.skip:focus { top:1rem }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem max(1rem,calc((100% - 70rem)/2)); background:var(--brand); color:white; border-bottom:6px solid #ffce54 }
.identity strong,.identity div span { display:block }
.identity strong { font-size:1.3rem }
.identity-mark,.section-label,#openForm2 { display:none!important }
main { max-width:72rem; margin:auto; padding:0 1rem }
h1,h2,h3,p { margin-top:0; overflow-wrap:anywhere }
h1 { font-size:clamp(2rem,5vw,3rem); line-height:1.12; margin-bottom:.6rem }
h2 { font-size:1.55rem; line-height:1.2; margin-bottom:.55rem }
h3 { font-size:1.25rem }
p { margin-bottom:1rem }
.masthead { padding:2rem 0 1.4rem }
#identity { color:var(--muted) }
.summary { padding:0 0 1.25rem }
.workspace { display:grid; gap:2rem }
.agenda,.approval { border-top:4px solid var(--brand); padding-top:1.3rem; min-width:0 }
.approval { padding:1.3rem; background:var(--wash) }
.filters,.twocol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1rem 0 }
.filters { background:var(--wash); padding:1rem }
.filters .clear { justify-self:start }
label { display:block; font-weight:650; min-width:0 }
input,select { width:100%; min-width:0; min-height:48px; display:block; padding:.55rem .65rem; margin-top:.35rem; color:var(--ink); background:white; border:2px solid #776885; border-radius:4px }
.list-head,.item { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:1rem; padding:.9rem .65rem }
.list-head { background:var(--brand); color:white; font-weight:700 }
.item,.pending-item { border-bottom:1px solid var(--line); overflow-wrap:anywhere }
.item:nth-child(even) { background:#faf7fc }
.item strong,.item small { display:block }
small,.hint,footer { font-size:1rem; color:var(--muted) }
.badge { display:inline-block; padding:.2rem .55rem; border:1px solid currentColor; border-radius:4px; font-weight:650 }
.aprovada { color:#155332; background:#e5f5ea }
.pendente { color:#644100; background:#fff0c5 }
.cancelada,.recusada { color:#544663; background:var(--wash) }
.item button { margin-top:.5rem }
.hint,.empty,.pending-item { padding:.8rem 0 }
.actions { display:flex; gap:.5rem; flex-wrap:wrap; margin:.6rem 0 }
.login-box { max-width:30rem; margin:3rem auto; padding:clamp(1rem,4vw,2rem); border:2px solid var(--line); border-top:6px solid var(--brand) }
form label { margin-bottom:1rem }
.login-box .primary { width:100%; margin-bottom:.7rem }
#message:not(:empty) { padding:1rem; margin-top:1rem; border-left:5px solid var(--brand); background:var(--wash) }
#message.error:not(:empty) { border-color:#9b2020; background:#fff0ee }
dialog { width:min(34rem,calc(100% - 2rem)); max-height:90vh; padding:1.25rem; border:2px solid var(--brand); color:var(--ink) }
dialog::backdrop { background:#20152ab0 }
.modalhead { display:flex; justify-content:space-between; gap:1rem; align-items:start }
.close { min-width:48px }
footer { border-top:1px solid var(--line); margin-top:2rem; padding:1rem 0 }
@media(max-width:600px) { .filters,.item { grid-template-columns:1fr; gap:.5rem } .list-head { display:none } .item { padding:1rem } .topbar { padding:.8rem 1rem } }
:root{--brand:#153c33;--ink:#1d312a;--muted:#455c50;--wash:#eef1e8;--line:#b9c7b9}
body{background:#faf9f3}
.topbar{border-bottom-color:#d9ad56}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 0 .5rem}
#identity{margin-bottom:.5rem}
.summary{padding-bottom:.7rem}
.approval{margin-bottom:1.5rem;padding:1rem 1.25rem;background:#fff2d6;border-top-color:#946017}
.approval .empty{margin:0;padding:0}
.day-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:.85rem 0}
.filters{padding:.75rem;align-items:end;grid-template-columns:1fr 1fr auto}
#list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.space{border:1px solid var(--line);background:white;padding:1rem;min-width:0}
.space h3{background:var(--brand);color:white;margin:-1rem -1rem .75rem;padding:.65rem 1rem}
.slot{padding:.7rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.slot p{margin:.2rem 0 .4rem}
.space-book{margin-top:.65rem}
#team{border-top:4px solid var(--brand);padding:1.2rem;margin-top:1.2rem;background:white}
#inviteForm{max-width:34rem}
.login-box{background:white;border-top-width:8px}
@media(max-width:650px){#list,.filters{grid-template-columns:1fr}.masthead{align-items:flex-start;flex-direction:column}.day-controls button{flex:1 1 42%}}
