:root{--blue:#1a73e8;--blue2:#4285f4;--green:#0f9d58;--yellow:#f9ab00;--red:#d93025;--ink:#202124;--muted:#5f6368;--line:#dadce0;--surface:#fff;--soft:#f8fafd;--shadow:0 2px 10px rgba(60,64,67,.16)}
*{box-sizing:border-box}body{margin:0;font:14px/1.35 Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;overflow:hidden}button,input{font:inherit}.topbar{height:64px;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-size:20px;color:#3c4043;min-width:210px}.brand-mark{width:34px;height:34px;background:linear-gradient(#4285f4 0 28%,#fff 28%);border:2px solid #4285f4;border-radius:4px;display:grid;place-items:center;padding-top:8px;color:#1967d2;font-weight:700;font-size:16px}.today-btn,.view-btn{height:36px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:0 16px;font-weight:600;color:#3c4043}.today-btn:hover,.view-btn:hover,.icon-btn:hover{background:#f1f3f4}.icon-btn{border:0;background:transparent;border-radius:50%;width:36px;height:36px;font-size:23px;color:#5f6368;cursor:pointer}.nav-buttons{display:flex;margin-left:2px}.topbar h1{font-size:20px;font-weight:400;margin:0;flex:1;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:8px;position:relative}.avatar{width:34px;height:34px;border-radius:50%;border:0;background:#7b1fa2;color:#fff;font-weight:700}.view-menu{display:none;position:absolute;right:45px;top:44px;width:150px;background:#fff;border-radius:6px;box-shadow:var(--shadow);padding:6px;z-index:30}.view-menu.open{display:block}.view-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:10px 12px;border-radius:4px}.view-menu button:hover{background:#f1f3f4}.app-shell{display:grid;grid-template-columns:256px 1fr;height:calc(100vh - 64px)}.sidebar{padding:18px 14px 25px;overflow:auto;background:#fff;border-right:1px solid #f1f3f4}.create-btn{height:48px;border:0;background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:0 16px 0 10px;font-weight:600;color:#3c4043;display:flex;align-items:center;gap:8px;cursor:pointer}.plus{font-size:30px;font-weight:300;color:#4285f4}.mini-calendar{margin:22px 5px 20px}.mini-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mini-head button{border:0;background:transparent;font-size:20px;color:#5f6368}.mini-week,.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.mini-week b{font-size:10px;color:#70757a;padding:4px}.mini-grid button{border:0;background:transparent;width:28px;height:28px;margin:auto;border-radius:50%;font-size:11px}.mini-grid button:hover{background:#f1f3f4}.mini-grid .outside{color:#aaa}.mini-grid .today{background:var(--blue);color:#fff}.mini-grid .selected:not(.today){background:#d2e3fc;color:#174ea6}.sidebar-section{padding:12px 5px}.search-label{font-size:12px;color:#5f6368;display:block;margin-bottom:6px}.search-box{height:38px;background:#f1f3f4;border-radius:20px;display:flex;align-items:center;padding:0 12px;gap:7px}.search-box input{border:0;outline:0;background:transparent;width:100%}.section-title{font-weight:700;margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}.section-title button{border:0;background:transparent;color:var(--blue);font-size:12px}.contract-filters label{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:pointer}.contract-filters input{accent-color:var(--blue)}.contract-swatch{width:12px;height:12px;border-radius:3px}.legend div:not(.section-title){display:flex;align-items:center;gap:9px;padding:5px 0}.dot{width:11px;height:11px;border-radius:50%;display:inline-block}.done{background:#1bb76e}.pending{background:#4f86c6}.partial{background:#fbbc04}.late{background:#ea4335}.diamond{display:inline-block;width:10px;height:10px;background:#e53935;transform:rotate(45deg);margin:0 1px}.emergency-key{margin-top:4px;padding-top:9px!important;border-top:1px solid #eee}.main-content{padding:16px 18px 24px;background:var(--soft);overflow:auto;position:relative}.summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin-bottom:14px}.metric{background:#fff;border:1px solid #e7e9ee;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px}.metric .metric-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e8f0fe;color:#1967d2;font-weight:700}.metric strong{font-size:20px;display:block}.metric small{color:#70757a}.calendar-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;min-width:790px}.month-head{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.month-head div{text-align:center;padding:9px 4px;font-size:11px;font-weight:700;color:#70757a;text-transform:uppercase}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(115px,1fr));height:calc(100vh - 206px);min-height:690px}.day-cell{min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 4px;position:relative;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{background:#fafafa;color:#9aa0a6}.day-number{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;margin:0 auto 2px;font-size:12px}.day-cell.today .day-number{background:var(--blue);color:#fff}.day-cell.selected .day-number{background:#d2e3fc;color:#174ea6}.event{display:flex;align-items:flex-start;gap:5px;margin:2px 0;border-radius:4px;padding:3px 5px;font-size:11px;cursor:pointer;min-width:0;color:#174ea6;background:#d2e3fc;border-left:3px solid #4f86c6}.event:hover{filter:brightness(.97);box-shadow:0 1px 2px rgba(0,0,0,.12)}.event .event-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-top:3px;background:#4f86c6}.event .event-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.event.status-realizada{background:#ceead6;color:#0d652d;border-left-color:#1bb76e}.event.status-realizada .event-dot{background:#1bb76e}.event.status-parcial{background:#fef7e0;color:#7a4d00;border-left-color:#fbbc04}.event.status-parcial .event-dot{background:#fbbc04}.event.status-atrasada{background:#fce8e6;color:#a50e0e;border-left-color:#ea4335}.event.status-atrasada .event-dot{background:#ea4335}.event.unplanned{background:#fce8e6!important;color:#a50e0e!important;border-left:4px solid #d93025!important;box-shadow:inset 0 0 0 1px rgba(217,48,37,.22)}.event.unplanned:before{content:"◆";font-size:9px;color:#d93025;margin-top:1px;flex:0 0 auto}.event.unplanned .event-dot{background:#d93025}.more-btn{border:0;background:transparent;color:#5f6368;font-size:11px;padding:2px 5px;font-weight:600}.week-view{display:grid;grid-template-columns:70px repeat(7,1fr);height:calc(100vh - 206px);min-height:650px;overflow:auto}.week-corner,.week-day{position:sticky;top:0;background:#fff;z-index:3;border-bottom:1px solid var(--line);padding:8px;text-align:center}.week-day strong{display:block;font-size:11px;color:#70757a;text-transform:uppercase}.week-day span{font-size:20px}.week-day.today span{background:var(--blue);color:#fff;border-radius:50%;display:inline-grid;place-items:center;width:34px;height:34px}.time-col,.week-col{border-right:1px solid var(--line);position:relative;height:1080px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 44px,#eef0f2 45px)}.time-col div{height:45px;text-align:right;padding:0 7px;color:#70757a;font-size:10px;transform:translateY(-6px)}.week-col .event{margin:4px 4px}.agenda-view{padding:20px;min-height:600px}.agenda-day{display:grid;grid-template-columns:95px 1fr;border-bottom:1px solid var(--line);padding:13px 0}.agenda-date strong{display:block;font-size:28px;font-weight:400}.agenda-date span{color:#70757a;font-size:12px}.agenda-events .event{font-size:13px;padding:8px 10px;margin:5px 0}.loading{display:none;position:fixed;inset:64px 0 0 256px;background:rgba(255,255,255,.7);z-index:40;place-items:center;align-content:center;gap:10px;font-weight:600}.loading.show{display:grid}.loading span{width:30px;height:30px;border:3px solid #d2e3fc;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(80px);background:#323232;color:#fff;border-radius:4px;padding:11px 18px;transition:.25s;z-index:70}.toast.show{transform:translateX(-50%) translateY(0)}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(32,33,36,.45);z-index:90;align-items:center;justify-content:center}.modal-backdrop.open{display:flex}.modal{width:min(540px,calc(100vw - 32px));background:#fff;border-radius:16px;padding:28px;box-shadow:0 18px 48px rgba(0,0,0,.28);position:relative}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:26px}.sheet-icon{width:46px;height:46px;border-radius:12px;background:#e6f4ea;color:#137333;display:grid;place-items:center;font-size:26px}.modal h2{margin:14px 0 6px;font-size:23px}.modal p{color:#5f6368}.modal label{display:block;font-size:12px;font-weight:700;margin:15px 0 5px}.modal input{width:100%;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 11px;outline:0}.modal input:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.required-fields{margin:16px 0;background:#f8fafd;border-radius:9px;padding:12px;display:flex;gap:7px;flex-wrap:wrap}.required-fields strong{width:100%;font-size:12px}.required-fields span{background:#e8f0fe;color:#174ea6;border-radius:12px;padding:3px 8px;font-size:11px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.primary,.secondary{height:38px;border-radius:6px;padding:0 15px;font-weight:700}.primary{border:0;background:var(--blue);color:#fff}.secondary{border:1px solid var(--line);background:#fff;color:#1967d2}.privacy-note{font-size:11px;margin-bottom:0}.event-popover{display:none;position:fixed;width:340px;max-width:calc(100vw - 24px);background:#fff;border-radius:10px;box-shadow:0 8px 30px rgba(60,64,67,.3);padding:24px 24px 20px 34px;z-index:80}.event-popover.open{display:block}.event-popover button{position:absolute;right:10px;top:7px;border:0;background:transparent;font-size:22px}.popover-accent{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--blue);border-radius:10px 0 0 10px}.event-popover.unplanned .popover-accent{background:var(--red)}.event-popover h3{margin:0 22px 16px 0;font-size:19px}.event-popover dl{display:grid;grid-template-columns:90px 1fr;gap:8px;margin:0}.event-popover dt{color:#70757a}.event-popover dd{margin:0;font-weight:600}.mobile-only{display:none}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;top:64px;bottom:0;left:0;width:270px;transform:translateX(-100%);transition:.2s;box-shadow:var(--shadow)}.sidebar.open{transform:none}.brand{min-width:auto}.brand span:last-child{display:none}.mobile-only{display:inline-block}.topbar{gap:6px;padding:0 8px}.topbar h1{font-size:17px}.summary{grid-template-columns:repeat(2,1fr)}.loading{inset:64px 0 0 0}.main-content{padding:10px}.view-btn{padding:0 9px}.avatar{display:none}}
.filter-section{border-top:1px solid var(--line)}.filter-section .contract-filters{display:block!important;padding:0!important}.filter-section .contract-filters label{display:flex!important;align-items:center;gap:8px;padding:5px 0;white-space:nowrap}.filter-section .contract-filters input{margin:0;flex:0 0 auto}.planned-dot{background:#9aa0a6}
