:root{--bg:#f5f7fa;--panel:#fff;--ink:#10233f;--muted:#68778d;--line:#dfe5ed;--green:#075ba8;--mint:#ffd900;--soft:#eaf3fb;--red:#e51b23;--shadow:0 18px 50px rgba(16,42,50,.09);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#071b25}.login-brand{padding:9vw;display:flex;flex-direction:column;justify-content:center;color:white;background:radial-gradient(circle at 20% 15%,#1c6c68 0,transparent 32%),linear-gradient(145deg,#071b25,#0b3037)}.brand-mark{width:76px;height:76px;border-radius:24px;background:var(--mint);color:#08352f;display:grid;place-items:center;font-weight:900;font-size:42px;box-shadow:0 18px 45px #0004}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:24px;box-shadow:none}.login-brand h1{font-size:clamp(48px,6vw,86px);line-height:.92;margin:28px 0 22px;letter-spacing:-.06em}.login-brand>p:last-child{max-width:450px;color:#c8dadb;font-size:18px;line-height:1.6}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:#3fae9d;margin:0 0 10px}.login-card{align-self:center;margin:auto;width:min(430px,84%);background:white;border-radius:28px;padding:42px;box-shadow:var(--shadow)}.login-card h2{font-size:34px;margin:0 0 8px}.login-card>p:not(.eyebrow){color:var(--muted);line-height:1.5;margin-bottom:28px}label{display:grid;gap:8px;font-size:13px;font-weight:700;margin:14px 0}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;color:var(--ink);background:#fbfdfc;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #136a6220}.primary,.secondary{border:0;border-radius:12px;min-height:46px;padding:0 18px;font-weight:800;cursor:pointer}.primary{background:var(--green);color:white;box-shadow:0 8px 20px #136a6230}.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.login-card .primary{width:100%;margin-top:12px}.text-btn{display:block;margin:16px auto 0;border:0;background:none;color:var(--green);font-weight:700;cursor:pointer}.message{display:block;color:var(--red);text-align:center;margin-top:12px;min-height:16px}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#09242d;color:white;padding:28px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;margin-bottom:42px}.brand b,.brand small{display:block}.brand small{color:#9ab6b8;margin-top:2px}.sidebar nav{display:grid;gap:8px}.nav{border:0;background:transparent;color:#a8c0c2;padding:13px 14px;border-radius:12px;display:flex;gap:12px;align-items:center;font-weight:700;cursor:pointer;text-align:left}.nav.active,.nav:hover{background:#ffffff10;color:white}.privacy{margin-top:auto;border:1px solid #ffffff17;background:#ffffff09;padding:16px;border-radius:14px}.privacy b,.privacy small{display:block}.privacy small{color:#9ab6b8;line-height:1.4;margin-top:6px}.sidebar>#logout{margin-top:12px}.bottom-nav{display:none}main{min-width:0;padding:0 42px 50px}header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:34px}header h1{margin:0;font-size:25px}.user{display:flex;gap:11px;align-items:center}.user>span{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--green);font-weight:900}.user b,.user small{display:block}.user small{color:var(--muted);margin-top:3px}.view{max-width:1240px;margin:auto}.intro{display:flex;justify-content:space-between;gap:20px;align-items:end}.intro h2{font-size:34px;letter-spacing:-.035em;margin:0 0 8px}.intro p{color:var(--muted);margin:0;max-width:650px;line-height:1.5}.legend{display:flex;gap:20px;margin:28px 0 14px;color:var(--muted);font-size:13px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}.dot.free{background:#25a17f}.dot.busy{background:#c6cfcd}.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:14px}.day{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 4px 14px #102a3208}.date{display:flex;align-items:center;gap:13px;margin-bottom:17px}.date strong{font-size:28px}.date span{display:block;font-weight:800;text-transform:capitalize}.date small{display:block;color:var(--muted);margin-top:2px}.period{border-top:1px solid var(--line);padding:14px 0 0;margin-top:10px}.period-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:99px;background:var(--soft);color:var(--green)}.badge.busy{background:#f1f3f3;color:#83908f}.times{display:flex;gap:7px;flex-wrap:wrap}.time{border:1px solid #b9ddd3;background:#f4fbf8;color:var(--green);border-radius:9px;padding:8px 10px;font-weight:800;cursor:pointer}.time:disabled{border-color:var(--line);background:#f5f6f6;color:#a6b0ae;cursor:not-allowed}.tracking{display:grid;gap:12px;margin-top:28px}.track-card{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;grid-template-columns:1fr auto;gap:16px}.track-card h3{margin:0 0 5px}.track-card p{margin:3px 0;color:var(--muted)}.track-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.status{font-size:12px;font-weight:800;border-radius:99px;padding:6px 10px;background:#e8f0ff;color:#285ca8}.status.Ministrado{background:var(--soft);color:var(--green)}.status.Cancelado{background:#fff0f0;color:var(--red)}.status.Reagendado{background:#fff6e5;color:#9a6a12}dialog{border:0;padding:0;border-radius:24px;width:min(720px,calc(100% - 28px));box-shadow:0 35px 100px #06171d66}dialog::backdrop{background:#06171dcc;backdrop-filter:blur(5px)}.modal{padding:28px;margin:0}.modal-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.modal h2{margin:0;font-size:25px}.icon{border:0;background:#eef4f2;width:38px;height:38px;border-radius:12px;font-size:24px;cursor:pointer}.slot-summary{background:#0c3c42;color:white;padding:18px;border-radius:14px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.review-data{display:grid;gap:0}.review-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.review-row span{color:var(--muted)}.notice{background:#f1f8f6;border-radius:12px;padding:13px;color:#49645f;font-size:13px}.toast{position:fixed;right:24px;bottom:24px;background:#082a31;color:white;padding:14px 18px;border-radius:12px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.25s;z-index:10}.toast.show{transform:none;opacity:1}.skeleton{min-height:240px;background:linear-gradient(90deg,#fff0,#fff8,#fff0);background-size:200% 100%;animation:load 1.2s infinite}@keyframes load{to{background-position:-200% 0}}
@media(max-width:760px){.login-shell{display:block;background:white}.login-brand{min-height:290px;padding:46px 28px;border-radius:0 0 34px 34px}.login-brand h1{font-size:50px;margin:20px 0 12px}.login-brand>p:last-child{font-size:15px;margin:0}.brand-mark{width:58px;height:58px;font-size:32px;border-radius:18px}.login-card{box-shadow:none;margin:0;width:100%;padding:30px 24px 50px}.app{display:block;padding-bottom:76px}.sidebar{display:none}main{padding:0 16px 30px}header{height:78px;margin-bottom:24px}header .eyebrow{display:none}header h1{font-size:20px}.user div{display:none}.bottom-nav{position:fixed;z-index:5;display:flex;bottom:0;left:0;right:0;height:68px;background:white;border-top:1px solid var(--line);padding:6px max(12px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom));justify-content:space-around}.bottom-nav .nav{display:grid;gap:2px;place-items:center;color:var(--muted);font-size:20px}.bottom-nav .nav span{font-size:11px}.bottom-nav .nav.active{color:var(--green);background:transparent}.intro{align-items:start}.intro h2{font-size:27px}.intro .secondary{padding:0 12px;font-size:0}.intro .secondary:first-letter{font-size:18px}.days{display:block}.day{margin-bottom:12px;padding:17px}.date{margin-bottom:12px}.period{display:grid;grid-template-columns:94px 1fr;gap:8px;align-items:start}.period-head{display:block}.period-head .badge{display:block;width:max-content;margin-top:5px}.track-card{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.modal{padding:22px 18px}.modal-actions>*{flex:1}.toast{left:14px;right:14px;bottom:84px;text-align:center}}

/* Identidade comercial Bono + assinatura Datalog */
.login-shell{background:#eef2f7}.login-brand{position:relative;color:var(--ink);background:linear-gradient(145deg,#fff 0%,#f1f5fa 100%);border-right:1px solid var(--line);padding:8vw}.login-brand::before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:linear-gradient(var(--red) 0 62%,#ffd900 62%)}.login-brand h1{font-size:clamp(42px,5vw,70px);line-height:1;margin:14px 0 16px;letter-spacing:-.05em}.login-brand>p{color:var(--muted);font-size:17px}.logo-box{background-repeat:no-repeat;background-position:center;background-color:white}.bono-logo{width:min(440px,90%);height:150px;background-image:url('assets/bono-logo.png');background-size:150%;background-position:center 62%;border-radius:18px}.powered{display:flex;align-items:center;gap:12px;margin-top:54px;color:var(--muted);font-size:12px}.powered>span{max-width:190px;line-height:1.35}.datalog-logo{width:130px;height:44px;background:white url('assets/datalog-logo.png') center/125% no-repeat;border-radius:10px}.datalog-logo.mini{width:120px;height:38px;margin-top:8px}.login-card{border:1px solid var(--line);box-shadow:0 24px 70px #0c27451a}.eyebrow{color:var(--red)}.primary{background:var(--green);box-shadow:0 8px 20px #075ba830}.sidebar{position:sticky;background:#0b2442}.sidebar::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#ffd900}.sidebar-bono{flex:0 0 62px;width:62px;height:44px;border-radius:9px;background:white url('assets/bono-logo.png') center/100% no-repeat}.sidebar-footer{margin-top:auto;border-top:1px solid #ffffff16;padding:18px 10px 8px;color:#9fb0c4;font-size:11px;line-height:1.35}.sidebar>#logout{margin-top:8px}.privacy{display:none}.dot.free{background:#18a06f}.badge{background:#e7f7f1;color:#087351}.time{border-color:#b8d4eb;background:#f3f8fc;color:#075ba8}.slot-summary{background:#0b2442}.day{transition:transform .16s,box-shadow .16s}.day:hover{transform:translateY(-2px);box-shadow:0 12px 28px #10233f12}
@media(max-width:760px){.login-brand{min-height:245px;padding:34px 28px 28px;border-radius:0;border-right:0;border-bottom:1px solid var(--line)}.login-brand::before{inset:auto 0 0 0;width:auto;height:5px;background:linear-gradient(90deg,var(--red) 0 72%,#ffd900 72%)}.bono-logo{width:260px;height:94px;background-size:155%}.login-brand h1{font-size:34px;margin:8px 0}.login-brand>p{font-size:14px}.powered{margin-top:20px}.datalog-logo{width:104px;height:34px}.login-card{border:0;padding-top:28px}.day:hover{transform:none}}

.bono-logo{height:180px;background-size:100%;background-position:center 50%}@media(max-width:760px){.bono-logo{width:300px;max-width:100%;height:120px;background-size:100%;background-position:center 50%}}

/* Marcas completas, mantendo a proporção original dos arquivos enviados. */
.sidebar-bono{flex-basis:76px;width:76px;height:46px;background-size:92%;background-position:center}
.datalog-logo{background-size:100%;background-position:center}
.sidebar-footer{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:10px;padding:16px 0 12px}
.sidebar-footer .datalog-logo.mini{width:96px;height:32px;margin:0;background-size:100%}

.badge.booked{background:#fff4c5;color:#735600}.period.has-booking{background:#fffdf3;border:1px solid #f0df8c;border-radius:12px;padding:12px;margin-top:12px}.period.has-booking+.period{margin-top:10px}.period-booked{display:grid;gap:2px;margin:-2px 0 10px;padding:9px 10px;border-radius:9px;background:#fff4c5;color:#614a00;font-size:12px}.period-booked span{color:#786b3e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.period-booked.occupied{display:block;background:#f2f4f6;color:#6f7b8a}.time.booked-time:disabled{border-color:#e0bd27;background:#ffe87a;color:#544000;opacity:1}
@media(max-width:760px){.period.has-booking{grid-template-columns:94px 1fr}.period.has-booking .period-booked{grid-column:2}.period-booked{margin-top:-2px}.period-booked+ .times{grid-column:2}}
.cancel-action{color:#b4232c;border-color:#efc9cc}.primary.danger{background:#c8323b;box-shadow:0 8px 20px #c8323b30}.cancel-notice{background:#fff4f4;color:#7f3338}
.period-booked span b{color:#614a00}.period-booked span+span{margin-top:1px}
.month-tabs{display:flex;gap:8px;margin:26px 0 14px;border-bottom:1px solid var(--line)}.month-tab{border:0;background:transparent;color:var(--muted);padding:12px 18px;border-bottom:3px solid transparent;font-weight:800;cursor:pointer;text-transform:capitalize}.month-tab.active{color:var(--green);border-bottom-color:var(--green)}.agenda-filters{display:grid;grid-template-columns:220px minmax(260px,1fr) auto;gap:12px;align-items:end;background:white;border:1px solid var(--line);border-radius:16px;padding:14px 16px}.agenda-filters label{margin:0}.agenda-filters .secondary{margin-bottom:0}.empty-search{grid-column:1/-1;display:grid;gap:5px;text-align:center;padding:50px 20px;background:white;border:1px solid var(--line);border-radius:18px;color:var(--muted)}.empty-search b{color:var(--ink)}.track-actions{display:flex;gap:8px;align-items:center}.edit-action{color:var(--green);border-color:#b8d4eb}
@media(max-width:760px){.month-tabs{overflow-x:auto;margin-top:18px}.month-tab{white-space:nowrap;flex:1;padding:11px 12px}.agenda-filters{grid-template-columns:1fr;padding:13px}.agenda-filters .secondary{width:100%}.legend{margin-top:20px}.track-actions{width:100%}.track-actions button{flex:1}}
