@font-face{font-family:system;src:local('Inter'),local('Arial')}*{box-sizing:border-box}html{font-size:16px;color:#172e31;background:#f3f6f8;font-family:system,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ce8618;outline-offset:3px}a{color:#125b53}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1440px)/2));background:#fff;border-bottom:1px solid #dce4e8}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#183b39;font-size:1.15rem;font-weight:750}.brand-icon{width:43px;height:43px;border-radius:12px;background:#123d39;color:#f7cf72;display:grid;place-items:center;font-size:1.15rem}.brand small{display:block;font-size:.65rem;letter-spacing:.15em;margin-top:5px;color:#61716f}#account{display:flex;align-items:center;gap:15px;font-size:.88rem}main{max-width:1440px;margin:0 auto;padding:36px 28px 48px}h1{font-size:2.2rem;letter-spacing:-.035em;line-height:1.15;margin:8px 0 14px;font-weight:750}h2{font-size:1.15rem;margin:0 0 16px}h3{font-size:1rem;margin:0 0 8px}p{line-height:1.65}small,.muted{color:#52666d}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:#48666a}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.intro p{margin:0;max-width:720px;color:#52666d}.round-select{max-width:340px}.deadline{white-space:nowrap;background:#e4ecef;color:#263f47;border-radius:8px;padding:10px 14px;font-size:.88rem}.deadline strong{margin-left:5px}.summary{background:#123d39;color:#fff;border-radius:18px;padding:27px 30px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;align-items:center;margin-bottom:26px}.summary .eyebrow{color:#bdcfca}.summary p{margin:4px 0;color:#d5e3df;font-size:.88rem}.summary .number{font-size:2.5rem;line-height:1.1;font-weight:650;letter-spacing:-.05em}.summary .number small{font-size:1rem;color:#cadbd6;letter-spacing:0}.metric{border-left:1px solid #3b605b;padding-left:30px}.metric strong{font-size:1.85rem}.progress{height:7px;background:#42655f;border-radius:8px;overflow:hidden;margin-top:14px}.progress-fill{height:100%;background:#f4c96b;width:0;transition:width .3s}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}.panel{border:1px solid #dce4e8;background:#fff;border-radius:14px;padding:24px}.calendar-panel{padding:0;overflow:hidden}.calendar-tools{padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.calendar-tools h2{margin:0}.calendar-tools .subtitle{font-size:.85rem;color:#5c7076;margin-top:6px}.week-nav{display:flex;align-items:center;gap:7px}.legend{display:flex;gap:18px;flex-wrap:wrap;padding:0 24px 20px;font-size:.8rem;color:#52666d}.legend span:before{content:'';width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:6px;background:#d9e1e5}.legend .free:before{background:#60a292}.legend .reserved:before{background:#dfaa46}.legend .confirmed:before{background:#6191c7}.legend .completed:before{background:#245b48}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #e1e7eb}.day{min-width:0;border-right:1px solid #e1e7eb;padding:15px 10px 18px}.day:last-child{border:0}.day-header{padding:0 6px 13px;font-size:.8rem;color:#5a6d73}.day-header strong{display:block;color:#263d43;font-size:1.45rem;margin-top:5px;font-weight:600}.day.today{background:#f3f8f7}.day.today .day-header strong{color:#116852}.slot{width:100%;min-height:164px;text-align:left;background:#f4f6f8;border:1px solid #e2e8ed;border-radius:10px;padding:13px 10px;color:#6c7a81;margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.slot:last-child{margin-bottom:0}.slot .time{font-size:.78rem;font-weight:650;white-space:nowrap}.slot .name{font-size:.94rem;font-weight:700;overflow-wrap:anywhere;line-height:1.35}.slot .location{font-size:.78rem;line-height:1.4;overflow-wrap:anywhere}.slot .state{font-size:.74rem;margin-top:auto;line-height:1.4}.slot.available{background:#f0f8f5;border:1px dashed #72a696;color:#20614f}.slot.available:hover{background:#e0f0e8;border-style:solid}.slot.reserved{background:#fff7e6;border-color:#efd59f;color:#765019}.slot.confirmed{background:#edf4fc;border-color:#c0d4ef;color:#264f7f}.slot.completed{background:#e8f2ed;border-color:#bdd7c8;color:#27573f}.slot:not(:disabled):hover{box-shadow:0 3px 12px #163a3320;transform:translateY(-1px)}.slot:disabled{opacity:1}.slot.past-empty{color:#7c8990;background:#f7f8f9}.calendar-note{font-size:.85rem;color:#52666d;padding:16px 24px;margin:0;border-top:1px solid #e1e7eb}.sidebar{display:grid;gap:20px}.municipalities{list-style:none;padding:0;margin:0;display:grid;gap:0}.municipalities li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.87rem;padding:10px 0;border-bottom:1px solid #eef1f3}.municipalities li:last-child{border:0}.municipalities small{font-size:.74rem;white-space:nowrap}.municipalities .done{color:#27634c;font-weight:650}.municipalities .booked{color:#396b95}.steps{margin:0;padding-left:20px;color:#52666d;font-size:.9rem;line-height:1.6}.steps li+li{margin-top:12px}.button{border:1px solid #ced9df;background:#fff;color:#304b51;border-radius:7px;padding:10px 14px;font-weight:600;font-size:.88rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:41px}.button:hover{background:#edf3f4}.button.primary{background:#15574d;border-color:#15574d;color:#fff}.button.primary:hover{background:#0f443c}.button.danger{color:#a43c34;border-color:#e2b9b4}.button.small{padding:6px 10px;font-size:.8rem;min-height:34px}.button.icon{width:37px;padding:6px;font-size:1.15rem}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.admin-banner{background:#fff8e8;border:1px solid #ead7af;border-radius:10px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;font-size:.9rem;line-height:1.5}.admin-banner strong{display:block}.admin-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.login{max-width:440px;margin:55px auto 100px;padding:36px}.login h1{font-size:1.85rem;margin-top:15px}.login p{color:#52666d;font-size:.94rem}.login .button.primary{width:100%;margin-top:18px}label{display:block;color:#354e55;font-size:.9rem;font-weight:600;margin:18px 0 7px}input,select{width:100%;padding:11px 12px;background:#fff;border:1px solid #c6d3da;border-radius:7px;color:#263b43;min-width:0}input[type=checkbox]{width:auto}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-error{color:#a12f2f;font-size:.9rem;line-height:1.5;margin:14px 0}.form-error:empty{display:none}.hint{font-size:.84rem;color:#60747c;line-height:1.55}.empty{padding:60px 25px;text-align:center;color:#52666d}.empty h2{color:#173e38}dialog{border:1px solid #d2dfe4;border-radius:16px;padding:30px;width:min(540px,calc(100vw - 28px));max-height:90vh;color:#19363d;box-shadow:0 20px 90px #061d3040}dialog::backdrop{background:#102b38a8;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.modal-heading h2{font-size:1.45rem;margin:0}.modal-heading button{flex-shrink:0}.callout{background:#edf5f2;padding:16px;border-radius:9px;line-height:1.6;margin:20px 0}.callout p{margin:6px 0}.callout a{overflow-wrap:anywhere;font-weight:650}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#163e37;color:white;border-radius:9px;padding:14px 22px;z-index:10;max-width:calc(100vw - 32px);box-shadow:0 5px 25px #123d3930}.toast[hidden]{display:none}footer{max-width:1440px;margin:0 auto;padding:0 28px 24px;font-size:.78rem;color:#667c83;display:flex;justify-content:space-between;gap:16px}.loading{padding:70px;text-align:center}.round-state{font-size:.75rem;padding:4px 8px;border-radius:5px;background:#e9eff1;margin-left:8px}.round-select label{margin:0 0 6px}.success-icon{font-size:2rem;color:#176445}.subline{margin-top:8px;font-size:.8rem}.refresh-line{display:flex;justify-content:space-between;align-items:center;gap:12px}#refresh{font-weight:500}.no-times{padding:35px;color:#60737a}.archived{background:#eaf0f5;border-color:#d4e0e7}
@media(min-width:1600px){h1{font-size:2.6rem}.slot{min-height:180px}}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 245px}.panel{padding:18px}.calendar-panel{padding:0}.day{padding:12px 6px}.slot{padding:10px 7px}.slot .time{font-size:.73rem}.summary{gap:18px}.metric{padding-left:18px}}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr}.summary{grid-template-columns:1.4fr 1fr 1fr 1fr;padding:24px;gap:16px}.intro{align-items:flex-start}.round-select{max-width:260px}.slot{min-height:155px}.brand small{font-size:.65rem}}
@media(max-width:600px){.topbar{height:76px;padding:0 18px}.brand{font-size:1rem}.brand-icon{width:36px;height:36px}.brand small{font-size:.6rem}#account>span{display:none}main{padding:25px 16px 36px}h1{font-size:1.85rem}.intro{display:block}.intro p{font-size:.92rem}.round-select{max-width:none;margin-top:20px}.summary{grid-template-columns:repeat(3,1fr);gap:18px;padding:22px}.summary>div:first-child{grid-column:1/-1}.metric{border-left:0;border-top:1px solid #43645e;padding:16px 0 0}.metric strong{font-size:1.55rem}.metric p{font-size:.75rem}.week-grid{display:block}.day{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-right:0;border-bottom:1px solid #e1e7eb;padding:16px}.day-header{grid-column:1/-1;display:flex;align-items:center;gap:8px;padding:0}.day-header strong{font-size:1rem;margin:0}.slot{margin:0;min-height:130px;padding:13px}.slot .time{font-size:.8rem}.slot .name{font-size:1rem}.slot .state{font-size:.8rem}.calendar-tools{padding:20px 16px}.legend{padding:0 16px 18px;gap:12px;font-size:.75rem}.calendar-note{padding:16px}.sidebar{grid-template-columns:1fr}.municipalities{grid-template-columns:1fr 1fr;gap:0 18px}.municipalities li{display:block;padding:10px 0}.municipalities small{display:block;margin-top:4px}.admin-banner{display:block}.admin-banner .button{margin-top:12px}.login{margin:30px auto 55px;padding:25px}.field-row{grid-template-columns:1fr;gap:0}dialog{padding:24px}footer{display:block;padding:0 18px 24px;line-height:1.6}footer span{display:block;margin-top:7px}}
