@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-BD2oGHtS.woff2) format("woff2-variations"),url(./plus-jakarta-sans-latin-BD2oGHtS.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:200 800;src:url(./plus-jakarta-sans-latin-ext-Ch-K9LVU.woff2) format("woff2-variations"),url(./plus-jakarta-sans-latin-ext-Ch-K9LVU.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}html{--od-font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--lumo-font-family: var(--od-font);font-family:var(--od-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:var(--od-font)}:root{--od-brand: #002D6A;--od-brand-strong: #001E47;--od-brand-red: #D30018;--od-ink: #2D3436;--od-brand-soft: rgba(0, 45, 106, .08);--od-brand-soft-strong: rgba(0, 45, 106, .14);--lumo-primary-color: var(--od-brand);--lumo-primary-color-50pct: rgba(0, 45, 106, .5);--lumo-primary-color-10pct: rgba(0, 45, 106, .1);--lumo-primary-text-color: var(--od-brand);--lumo-primary-contrast-color: #FFFFFF;--od-page-bg: linear-gradient(160deg, #F6F8FB 0%, #E7EDF5 100%);--od-surface: var(--lumo-base-color);--od-surface-glass: rgba(255, 255, 255, .9);--od-surface-sunken: var(--lumo-contrast-5pct);--od-border: var(--lumo-contrast-10pct);--od-border-subtle: rgba(16, 24, 40, .07);--od-text: var(--lumo-body-text-color);--od-text-strong: var(--od-ink);--od-text-muted: var(--lumo-secondary-text-color);--od-success: #1E7B34;--od-success-soft: #E7F4EA;--od-warning: #A15C00;--od-warning-soft: #FFF4E0;--od-warning-border: #F3C97A;--od-danger: #C62828;--od-danger-soft: #FDECEA;--od-info: #1565C0;--od-info-soft: #E8F0FE;--od-accent: #6D1B7B;--od-accent-soft: #F3E8F5;--od-neutral: #5F6368;--od-neutral-soft: var(--lumo-contrast-5pct);--od-radius-s: 8px;--od-radius-m: 12px;--od-radius-l: 16px;--od-radius-pill: 999px;--od-shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);--od-shadow-s: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--od-shadow-m: 0 6px 16px rgba(16, 24, 40, .08);--od-shadow-l: 0 16px 40px rgba(16, 24, 40, .16);--od-page-padding: clamp(12px, 3vw, 28px);--od-ease: cubic-bezier(.2, .8, .2, 1);--od-duration-fast: .15s;--od-duration: .22s;--od-touch-target: 40px}html[theme~=dark]{--od-brand-soft: rgba(127, 176, 255, .12);--od-brand-soft-strong: rgba(127, 176, 255, .2);--lumo-primary-color: #2F6FD6;--lumo-primary-color-50pct: rgba(47, 111, 214, .5);--lumo-primary-color-10pct: rgba(47, 111, 214, .16);--lumo-primary-text-color: #8AB8FF;--lumo-primary-contrast-color: #FFFFFF;--od-page-bg: linear-gradient(160deg, hsl(214, 32%, 13%) 0%, hsl(214, 34%, 9%) 100%);--od-surface-glass: hsla(214, 33%, 16%, .92);--od-border-subtle: rgba(255, 255, 255, .08);--od-text-strong: var(--lumo-header-text-color);--od-success: #6FCF87;--od-success-soft: rgba(111, 207, 135, .14);--od-warning: #F6B85C;--od-warning-soft: rgba(246, 184, 92, .14);--od-warning-border: rgba(246, 184, 92, .4);--od-danger: #FF8A80;--od-danger-soft: rgba(255, 138, 128, .14);--od-info: #8AB8FF;--od-info-soft: rgba(138, 184, 255, .14);--od-accent: #D7A4E3;--od-accent-soft: rgba(215, 164, 227, .14);--od-neutral: #C3CAD3;--od-shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--od-shadow-s: 0 1px 3px rgba(0, 0, 0, .35);--od-shadow-m: 0 6px 16px rgba(0, 0, 0, .35);--od-shadow-l: 0 16px 40px rgba(0, 0, 0, .5)}vaadin-app-layout{background:var(--od-page-bg)!important}vaadin-button{transition:transform .12s ease,box-shadow var(--od-duration-fast) ease,filter var(--od-duration-fast) ease}vaadin-button:not([disabled]):hover{filter:brightness(1.04)}vaadin-button:not([disabled]):active{transform:scale(.97)}vaadin-button[theme~=primary]:not([disabled]){box-shadow:0 2px 8px var(--lumo-primary-color-50pct)}vaadin-dialog-overlay::part(overlay){border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-l)!important}vaadin-dialog-overlay::part(header-content){font-weight:700}vaadin-notification-card{border-radius:var(--od-radius-m)!important}a:focus-visible,.od-focusable:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px;border-radius:var(--od-radius-s)}.app-header{padding:0 var(--lumo-space-l);min-height:64px;background:var(--od-surface-glass);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid var(--od-border);box-sizing:border-box}.app-header .od-drawer-toggle{color:var(--lumo-primary-text-color)}.od-logo{height:45px;cursor:pointer;display:block}html[theme~=dark] .od-logo{background:#ffffffeb;border-radius:var(--od-radius-s);padding:2px 6px;box-sizing:border-box}.od-icon-btn{width:var(--od-touch-target);height:var(--od-touch-target);min-width:var(--od-touch-target);border-radius:50%;background:var(--od-surface);border:1px solid var(--od-border);box-shadow:var(--od-shadow-xs);color:var(--lumo-primary-text-color);cursor:pointer}.od-icon-btn vaadin-icon{width:20px;height:20px}.user-badge{background:var(--od-surface);padding:4px 12px;border-radius:var(--od-radius-pill);border:1px solid var(--od-border);box-shadow:var(--od-shadow-xs);min-height:36px;box-sizing:border-box;gap:var(--lumo-space-s);color:var(--od-text-muted)}.user-badge .od-user-icon{color:var(--lumo-primary-text-color);width:18px;height:18px}.user-name{font-weight:600;color:var(--od-text-strong)}.od-dropdown-item{align-items:center;gap:10px}.od-dropdown-item vaadin-icon{width:16px;height:16px;color:var(--od-text-muted)}.od-dropdown-item span{font-size:var(--lumo-font-size-s)}.drawer-panel{background:var(--od-surface-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.od-nav-tabs{box-shadow:none;padding:var(--lumo-space-s) var(--lumo-space-s) var(--lumo-space-l)}.od-nav-tabs vaadin-tab{padding:0;min-height:0}.od-nav-link{display:block;width:100%;color:inherit;text-decoration:none}.nav-item{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:var(--od-radius-m);gap:12px;color:var(--od-text);transition:background-color var(--od-duration-fast) ease,color var(--od-duration-fast) ease}.nav-item vaadin-icon{width:20px;height:20px;flex-shrink:0;color:var(--od-text-muted);transition:color var(--od-duration-fast) ease}.nav-item .od-nav-label{font-weight:500;font-size:var(--lumo-font-size-s)}.nav-item:hover{background:var(--od-brand-soft)}.nav-item:hover vaadin-icon{color:var(--lumo-primary-text-color)}vaadin-tab[selected] .nav-item{background:var(--od-brand-soft-strong);color:var(--lumo-primary-text-color);box-shadow:inset 3px 0 0 var(--lumo-primary-color)}vaadin-tab[selected] .nav-item .od-nav-label{font-weight:700}vaadin-tab[selected] .nav-item vaadin-icon{color:var(--lumo-primary-text-color)}vaadin-tab[selected]{color:var(--lumo-primary-text-color)}.od-nav-sub .nav-item{padding-left:28px}.od-nav-sub .nav-item .od-nav-label{font-size:var(--lumo-font-size-xs)}.od-nav-badge{margin-left:auto;min-width:20px;padding:1px 7px;border-radius:var(--od-radius-pill);background:var(--lumo-primary-color);color:var(--lumo-primary-contrast-color);font-size:11px;font-weight:700;line-height:18px;text-align:center;box-sizing:border-box}.od-nav-section{cursor:default;opacity:1;padding:0}.od-nav-section span{display:block;margin:var(--lumo-space-l) 12px var(--lumo-space-xs);color:var(--od-text-muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}@media (max-width: 600px){.app-header{padding:0 var(--lumo-space-s);min-height:56px}.od-logo{height:36px}.user-badge .user-name{display:none}.user-badge{padding:4px 8px}}html.od-app .v-loading-indicator{display:none!important;--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='50' cy='13' r='6.4'/><circle cx='50' cy='5.2' r='3'/><path d='M44.5 24.5 Q50 22.6 55.5 24.5 L53 44 Q50 45.2 47 44 Z'/><path d='M29 47.5 C39 40.5 61 40.5 71 47.5 C63 53 37 53 29 47.5 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M45 25.5 C34 22 33.5 2 46.5 -1' stroke-width='3.2'/><path d='M55 25.5 C66 22 66.5 2 53.5 -1' stroke-width='3.2'/><path d='M49.2 50 L50 111' stroke-width='4.2'/><path d='M50 110 L50.2 115.5' stroke-width='2.4'/><path d='M52.5 50 L64.5 66 L51.5 79' stroke-width='3.8'/></g></svg>");--od-loader-paint: linear-gradient(170deg, #002D6A 0%, #002D6A 44%, #2F6FD6 68%, #D30018 100%);--od-loader-veil: rgba(246, 248, 251, .66);--od-loader-floor: rgba(0, 45, 106, .22);--od-loader-text: #4A5568}html.od-app .v-loading-indicator.first,html.od-app .v-loading-indicator.second,html.od-app .v-loading-indicator.third{display:block!important;position:fixed!important;right:0!important;bottom:0!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;background:radial-gradient(ellipse 38px 7px at 50% calc(50% + 22px),var(--od-loader-floor),transparent 72%),var(--od-loader-veil)!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:2147483647!important;pointer-events:all;border:none!important;box-shadow:none!important;animation:none!important;transition:opacity .15s ease}html.od-app .v-loading-indicator.first:before,html.od-app .v-loading-indicator.second:before,html.od-app .v-loading-indicator.third:before{content:"";position:absolute;width:104px;height:133px;left:calc(50% - 52px);top:calc(50% - 108px);background:var(--od-loader-paint);-webkit-mask:var(--od-loader-dancer) center / contain no-repeat;mask:var(--od-loader-dancer) center / contain no-repeat;transform-origin:50% 96%;will-change:transform;animation:var(--od-loader-anim, cf-pirueta) var(--od-loader-dur, 2.4s) var(--od-loader-ease, ease-in-out) infinite}html.od-app .v-loading-indicator.first:after,html.od-app .v-loading-indicator.second:after,html.od-app .v-loading-indicator.third:after{content:"a carregar…";position:absolute;left:50%;top:50%;transform:translate(-50%,44px);white-space:nowrap;font:600 13px/1 var(--od-font);letter-spacing:2px;color:var(--od-loader-text);border:none!important;animation:cf-compasso var(--od-loader-dur, 2.4s) ease-in-out infinite}html.od-app[theme~=dark] .v-loading-indicator{--od-loader-paint: linear-gradient(170deg, #E3ECFF 0%, #E3ECFF 44%, #8AB8FF 68%, #FF6B7A 100%);--od-loader-veil: rgba(10, 16, 26, .7);--od-loader-floor: rgba(138, 184, 255, .3);--od-loader-text: #AAB4C6}html.od-app[data-od-loader=hiphop] .v-loading-indicator{--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='50' cy='22' r='6.4'/><path d='M43.4 20 C43.4 11.5 56.6 11.5 56.6 20 Z'/><path d='M44 32 Q50 30 56 32 L54 58 Q50 59.2 46 58 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M55 19 L64.5 20.5' stroke-width='2.6'/><path d='M55.5 33 L66 23 L71 9' stroke-width='3.4'/><path d='M44.5 33 L34 45 L43 52' stroke-width='3.4'/><path d='M47.5 58 L35 82 L31 111' stroke-width='3.9'/><path d='M52.5 58 L65 82 L69 111' stroke-width='3.9'/><path d='M31 111.5 L23.5 113' stroke-width='3.2'/><path d='M69 111.5 L76.5 113' stroke-width='3.2'/></g></svg>");--od-loader-anim: cf-groove;--od-loader-dur: 2.4s;--od-loader-ease: ease-in-out}html.od-app[data-od-loader=salao] .v-loading-indicator{--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='37' cy='13' r='6.2'/><path d='M31.5 24 Q37 22.4 42.5 24 L41 55 Q37 56.2 33 55 Z'/><circle cx='63' cy='15' r='5.8'/><circle cx='67.5' cy='10.5' r='2.6'/><path d='M58.5 24.5 Q63 23 67.5 24.5 L65.5 45 Q63 46 60.5 45 Z'/><path d='M60.5 44 C57 62 52 92 49 112 Q63 109 79 112 C76 92 70 62 65.5 44 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M42 25.5 L47 15 L50.5 6' stroke-width='3.2'/><path d='M58.5 26 L54 15 L50.5 6' stroke-width='3.2'/><path d='M32 25.5 L25 38 L26.5 50' stroke-width='3.2'/><path d='M67.5 26 L75 36 L73 46' stroke-width='3'/><path d='M35 55 L33.5 112' stroke-width='4'/><path d='M39 55 L42 112' stroke-width='4'/><path d='M33.5 112 L28 113' stroke-width='3'/><path d='M42 112 L47 113' stroke-width='3'/></g></svg>");--od-loader-anim: cf-valsa;--od-loader-dur: 3s;--od-loader-ease: linear}html.od-app[data-od-loader=yoga] .v-loading-indicator{--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='50' cy='22' r='6.4'/><path d='M44.5 33 Q50 31 55.5 33 L53.5 60 Q50 61.2 46.5 60 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M45 34 L37 19 L49 1' stroke-width='3.2'/><path d='M55 34 L63 19 L51 1' stroke-width='3.2'/><path d='M48.5 60 L49 112' stroke-width='4.2'/><path d='M49 112 L56 113' stroke-width='3'/><path d='M52.5 61 L69 77 L51 86' stroke-width='3.8'/></g></svg>");--od-loader-anim: cf-equilibrio;--od-loader-dur: 3.6s;--od-loader-ease: ease-in-out}html.od-app[data-od-loader=flamenco] .v-loading-indicator{--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='50' cy='14' r='6.2'/><circle cx='55.5' cy='9' r='2.8'/><circle cx='44.5' cy='9.5' r='2.2'/><path d='M45 24.5 Q50 22.6 55 24.5 L53 43 Q50 44 47 43 Z'/><path d='M47 42 C40 58 29 78 21 99 Q28 95.5 34 100.5 Q41 95.5 48 101 Q55 95.5 62 101 Q70 95.5 79 99 C71 78 60 58 53 42 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M55 25.5 C65 17 64.5 2 51.5 -3' stroke-width='3.2'/><path d='M45 25.5 L35.5 33 L46 39' stroke-width='3.2'/><path d='M45.5 100 L44.5 112' stroke-width='3.6'/><path d='M55.5 100 L57.5 112' stroke-width='3.6'/><path d='M44.5 112 L39 113' stroke-width='3'/><path d='M57.5 112 L63 113' stroke-width='3'/></g></svg>");--od-loader-anim: cf-zapateado;--od-loader-dur: 2.4s;--od-loader-ease: ease-in-out}html.od-app[data-od-loader=contemporaneo] .v-loading-indicator{--od-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='54' cy='28' r='6.2'/><path d='M48 39 Q54 37 60 39 L57 61 Q53.5 62 50.5 61 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M59.5 40 L71 31 L83 23' stroke-width='3.2'/><path d='M48.5 40 L37 33 L25 28' stroke-width='3.2'/><path d='M56 61 L74 64 L94 61' stroke-width='3.9'/><path d='M51 61 L33 69 L9 74' stroke-width='3.9'/><path d='M94 61 L98 59.5' stroke-width='2.6'/><path d='M9 74 L4.5 76.5' stroke-width='2.6'/></g></svg>");--od-loader-anim: cf-jete;--od-loader-dur: 1.8s;--od-loader-ease: ease-in-out}@keyframes cf-pirueta{0%{transform:perspective(520px) translateY(0) rotateY(0) scale(1)}12%{transform:perspective(520px) translateY(3px) rotateY(0) scale(1.03,.95)}22%{transform:perspective(520px) translateY(-7px) rotateY(0) scale(.98,1.03)}62%{transform:perspective(520px) translateY(-7px) rotateY(720deg) scale(.98,1.03)}74%{transform:perspective(520px) translateY(2px) rotateY(720deg) scale(1.03,.96)}86%,to{transform:perspective(520px) translateY(0) rotateY(720deg) scale(1)}}@keyframes cf-compasso{0%,to{opacity:.5}22%,62%{opacity:1}}html[data-cf-loader=hiphop] .v-loading-indicator{--cf-loader-dancer: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 -8 100 128'><g fill='black'><circle cx='50' cy='22' r='6.4'/><path d='M43.4 20 C43.4 11.5 56.6 11.5 56.6 20 Z'/><path d='M44 32 Q50 30 56 32 L54 58 Q50 59.2 46 58 Z'/></g><g fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'><path d='M55 19 L64.5 20.5' stroke-width='2.6'/><path d='M55.5 33 L66 23 L71 9' stroke-width='3.4'/><path d='M44.5 33 L34 45 L43 52' stroke-width='3.4'/><path d='M47.5 58 L35 82 L31 111' stroke-width='3.9'/><path d='M52.5 58 L65 82 L69 111' stroke-width='3.9'/><path d='M31 111.5 L23.5 113' stroke-width='3.2'/><path d='M69 111.5 L76.5 113' stroke-width='3.2'/></g></svg>");--cf-loader-anim: cf-groove}@keyframes cf-groove{0%{transform:translateY(0) rotate(0) scale(1)}12.5%{transform:translateY(5px) rotate(-3deg) scale(1.04,.94)}25%{transform:translateY(0) rotate(0) scale(1)}37.5%{transform:translateY(5px) rotate(3deg) scale(1.04,.94)}50%{transform:translateY(0) rotate(0) scale(1)}62.5%{transform:translateY(-9px) rotate(0) scale(.98,1.04)}75%{transform:translateY(4px) rotate(0) scale(1.05,.93)}87.5%,to{transform:translateY(0) rotate(0) scale(1)}}@keyframes cf-valsa{0%{transform:perspective(520px) translateY(2px) rotateY(0)}11%{transform:perspective(520px) translateY(-4px) rotateY(40deg)}22%{transform:perspective(520px) translateY(-3px) rotateY(80deg)}33%{transform:perspective(520px) translateY(2px) rotateY(120deg)}44%{transform:perspective(520px) translateY(-4px) rotateY(160deg)}55%{transform:perspective(520px) translateY(-3px) rotateY(200deg)}66%{transform:perspective(520px) translateY(2px) rotateY(240deg)}77%{transform:perspective(520px) translateY(-4px) rotateY(280deg)}88%{transform:perspective(520px) translateY(-3px) rotateY(320deg)}to{transform:perspective(520px) translateY(2px) rotateY(360deg)}}@keyframes cf-equilibrio{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-1px) rotate(-2deg) scale(1.02)}50%{transform:translateY(-3px) rotate(0) scale(1.04)}75%{transform:translateY(-1px) rotate(2deg) scale(1.02)}}@keyframes cf-zapateado{0%,to{transform:translateY(0) rotate(0) scale(1)}15%{transform:translateY(0) rotate(-7deg) scale(1)}25%{transform:translateY(2px) rotate(-7deg) scale(1.03,.97)}32%{transform:translateY(0) rotate(-5deg) scale(1)}50%{transform:translateY(0) rotate(0) scale(1)}65%{transform:translateY(0) rotate(7deg) scale(1)}75%{transform:translateY(2px) rotate(7deg) scale(1.03,.97)}82%{transform:translateY(0) rotate(5deg) scale(1)}}@keyframes cf-jete{0%,to{transform:translate(-4px,8px) rotate(7deg) scale(.96)}45%{transform:translateY(-16px) rotate(-3deg) scale(1.04)}55%{transform:translate(1px,-16px) rotate(-4deg) scale(1.04)}}@keyframes od-breathe{0%,to{opacity:1}50%{opacity:.55}}.od-page{padding:var(--od-page-padding);box-sizing:border-box}.od-page-title{margin:0;font-size:var(--lumo-font-size-xxl);font-weight:800;letter-spacing:-.01em;color:var(--od-text-strong)}.od-section-title{margin:0;font-size:var(--lumo-font-size-l);font-weight:800;color:var(--od-text-strong)}.od-text-strong{color:var(--od-text-strong)}.od-text-muted{color:var(--od-text-muted)}.od-text-success{color:var(--od-success)}.od-text-warning{color:var(--od-warning)}.od-text-danger{color:var(--od-danger)}.od-text-info{color:var(--od-info)}.od-text-accent{color:var(--od-accent)}.od-text-brand{color:var(--lumo-primary-text-color)}.od-card{background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-s);padding:18px;box-sizing:border-box}.od-card__header{display:flex;align-items:center;gap:var(--lumo-space-s);width:100%;margin:0;padding-bottom:12px;border-bottom:1px solid var(--od-border-subtle)}.od-card__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--od-brand-soft);color:var(--lumo-primary-text-color)}.od-card__icon vaadin-icon{width:18px;height:18px}.od-card__title{font-weight:700;font-size:var(--lumo-font-size-s);color:var(--od-text-strong);line-height:1.3}.od-card__body{overflow-y:auto;flex-grow:1;display:flex;flex-direction:column;justify-content:center}.od-kpi-value{display:block;font-size:2rem;font-weight:800;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.od-kpi-value--xl{font-size:2.25rem}.od-kpi-value--center{text-align:center;margin-top:var(--lumo-space-s)}.od-kpi-label{display:block;margin-top:2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--od-text-muted)}.od-kpi-detail{display:block;font-size:var(--lumo-font-size-xs);line-height:1.5;color:var(--od-text-muted)}.od-nowrap{white-space:nowrap}.stat-card{background:var(--od-surface);padding:20px;border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-s);border:1px solid var(--od-border-subtle);flex:1 1 200px;min-width:200px;box-sizing:border-box}.stat-title{color:var(--od-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.stat-value{font-size:1.6rem;font-weight:800;display:block;margin-top:5px;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.stat-card>vaadin-icon{float:right;opacity:.85}.od-stats-row{flex-wrap:wrap;margin:var(--lumo-space-m) 0}.od-initial-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--od-brand-soft);color:var(--lumo-primary-text-color)}.od-grid-subtext{font-size:var(--lumo-font-size-xxs);color:var(--od-text-muted)}.action-btn{border-radius:10px;padding:8px;min-width:var(--od-touch-target);height:var(--od-touch-target);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-xs);display:inline-flex;align-items:center;justify-content:center;transition:transform var(--od-duration-fast) ease,box-shadow var(--od-duration-fast) ease}.action-btn:hover{transform:translateY(-2px);box-shadow:var(--od-shadow-m)}.btn-edit{background:var(--od-info-soft);color:var(--od-info)}.btn-del{background:var(--od-danger-soft);color:var(--od-danger)}.btn-vendus{background:var(--od-success-soft);color:var(--od-success)}.btn-obs{background:var(--od-brand-soft);color:var(--lumo-primary-text-color)}.btn-doc{background:var(--od-neutral-soft);color:var(--od-neutral)}.status-badge{padding:5px 12px;border-radius:var(--od-radius-pill);font-weight:700;font-size:.75rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--od-border-subtle);transition:transform var(--od-duration-fast) ease,filter var(--od-duration-fast) ease}.status-badge:hover{transform:scale(1.04);filter:brightness(1.04)}.status-pago{background:var(--od-success-soft);color:var(--od-success)}.status-faturado{background:var(--od-info-soft);color:var(--od-info)}.status-divida{background:var(--od-danger-soft);color:var(--od-danger)}.status-pendente{background:var(--od-neutral-soft);color:var(--od-neutral)}.filter-bar{background:var(--od-surface-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:15px;border-radius:var(--od-radius-m);margin:15px 0;border:1px solid var(--od-border)}.chart-card{background:var(--od-surface);border-radius:var(--od-radius-l);padding:20px;box-shadow:var(--od-shadow-s);border:1px solid var(--od-border-subtle);margin-top:20px;box-sizing:border-box}.od-empty{display:flex;flex-direction:column;align-items:center;gap:var(--lumo-space-s);padding:var(--lumo-space-l);color:var(--od-text-muted);text-align:center}.od-empty vaadin-icon{width:32px;height:32px;color:var(--lumo-contrast-30pct)}.od-legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.od-legend-text{font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.dash-page{min-height:100%;padding:var(--od-page-padding);box-sizing:border-box;display:flex;flex-direction:column;gap:var(--lumo-space-l)}.dash-page>*{width:100%;max-width:1440px;margin-left:auto;margin-right:auto;box-sizing:border-box}.dash-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lumo-space-s) var(--lumo-space-m);animation:dashFadeIn var(--od-duration) ease-out both}.dash-hero__text{display:flex;flex-direction:column;min-width:0}.dash-greeting{display:block;margin:0;font-size:clamp(1.4rem,1.1rem + 1.2vw,1.65rem);font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--od-text-strong)}.dash-date{font-size:var(--lumo-font-size-s);font-weight:600;color:var(--od-text-muted)}.dash-refresh{min-height:44px;margin:0}.dash-section{display:flex;flex-direction:column;gap:var(--lumo-space-m);min-width:0;animation:dashFadeIn var(--od-duration) ease-out both}.dash-section__header{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px var(--lumo-space-s)}.dash-section__title{margin:0;font-size:var(--lumo-font-size-l);font-weight:800;line-height:1.3;color:var(--od-text-strong)}.dash-section__hint{font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.dash-section--attention .dash-section__title{padding-left:10px;border-left:3px solid var(--od-warning)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));grid-auto-rows:auto;gap:var(--lumo-space-m);width:100%}@keyframes dashFadeIn{0%{opacity:0}to{opacity:1}}.dash-card{min-height:170px;min-width:0;display:flex;flex-direction:column;gap:12px;transition:box-shadow var(--od-duration-fast) ease,border-color var(--od-duration-fast) ease,background-color var(--od-duration-fast) ease}.dash-card .od-card__title{flex:1 1 auto;min-width:0}.dash-card--clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.dash-card__chevron{flex-shrink:0;width:18px;height:18px;margin-left:auto;color:var(--od-text-muted);transition:color var(--od-duration-fast) ease,transform var(--od-duration-fast) ease}@media (hover: hover){.dash-card--clickable:hover{box-shadow:var(--od-shadow-m);border-color:var(--lumo-primary-color-50pct)}.dash-card--clickable:hover .dash-card__chevron{color:var(--lumo-primary-text-color);transform:translate(2px)}}.dash-card--clickable:focus{outline:none}.dash-card--clickable:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px;border-color:var(--lumo-primary-color-50pct)}.dash-card--clickable:active{box-shadow:var(--od-shadow-xs);background-color:var(--od-surface-sunken)}.dash-card--kpi{min-height:210px}.dash-card--stat{min-height:160px}.dash-card--barchart{min-height:250px}.dash-card--tall,.dash-card--progressbar{grid-column:1 / -1;min-height:0}.dash-card--chart{grid-column:1 / -1;min-height:360px}@media (min-width: 1200px){.dash-card--chart{grid-column:span 2}}.dash-card--info{background:var(--od-info-soft)}.dash-card--accent{background:var(--od-accent-soft)}.dash-stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.dash-stat .od-kpi-value--center{margin-top:0}.dash-stat__hint{max-width:32ch}.dash-assid-bar{width:100%;max-width:220px;margin:6px 0 2px}.dash-progress-row{gap:var(--lumo-space-l)}.dash-total-block{border-top:1px solid var(--od-border-subtle);margin-top:10px;padding-top:6px}.dash-agenda{width:100%}.dash-agenda-row{min-height:44px;align-items:center;border-bottom:1px solid var(--od-border-subtle)}.dash-agenda-row:last-of-type{border-bottom:none}.dash-agenda-row__time{font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}.dash-agenda-row__desc{min-width:0;overflow-wrap:anywhere;color:var(--od-text)}.dash-touch-btn{min-width:44px;min-height:44px}.dash-empty-line{color:var(--od-text-muted);font-size:var(--lumo-font-size-s)}.dash-legend-item{padding:3px 9px;border-radius:var(--od-radius-s);gap:6px}.dash-donut-value{font-size:1.3rem;font-weight:800;line-height:1.15;color:var(--od-text-strong);font-variant-numeric:tabular-nums}.dash-donut-label{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--od-text-muted)}.dash-renov-name{flex:0 1 240px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 780px){.dash-page{gap:var(--lumo-space-m)}.dash-grid{grid-template-columns:1fr;gap:var(--lumo-space-s)}.dash-card{min-height:0}.dash-card--chart{grid-column:1 / -1;min-height:0}.dash-progress-row{flex-direction:column;align-items:stretch!important;gap:var(--lumo-space-s)}.dash-progress-row>*{width:100%!important}.dash-renov-name{flex-basis:40%}}.od-dash{--od-dash-ease: var(--od-duration-fast) var(--od-ease);display:flex;flex-direction:column;gap:var(--lumo-space-m);width:100%;max-width:1440px;margin:0 auto;box-sizing:border-box}.od-dash-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--lumo-space-m);margin-bottom:var(--lumo-space-m)}.od-dash-hello{display:flex;flex-direction:column;min-width:0;flex:1 1 320px}html .od-dash-hello-title{margin:0;font-size:var(--lumo-font-size-xxl);font-weight:800;letter-spacing:-.01em;line-height:1.2;color:var(--od-text-strong)}.od-dash-hello-sub{margin-top:2px;font-size:var(--lumo-font-size-s);color:var(--od-text-muted)}.od-dash-actions{display:flex;flex-wrap:wrap;gap:var(--lumo-space-s)}.od-dash-section{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px var(--lumo-space-m);margin-top:var(--lumo-space-m)}html .od-dash-section-title{margin:0;font-size:var(--lumo-font-size-l);font-weight:800;color:var(--od-text-strong)}.od-dash-section-meta{font-size:var(--lumo-font-size-s);color:var(--od-text-muted)}.od-dash-split{display:grid;gap:var(--lumo-space-m);grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));width:100%}.od-dash-split--top{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.od-dash-split--trio{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.od-dash-panel{display:flex;flex-direction:column;gap:var(--lumo-space-s);min-width:0}html .od-dash-panel-title{flex:1;min-width:0;margin:0;font-size:var(--lumo-font-size-m);font-weight:800;color:var(--od-text-strong)}.od-dash-panel-body{display:flex;flex-direction:column;min-width:0}html vaadin-button.od-dash-more{align-self:flex-start;margin:auto 0 0 calc(var(--lumo-space-s) * -1);color:var(--lumo-primary-text-color)}.od-dash-dialog-body{padding:var(--lumo-space-xs) 0}.od-dash-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--od-radius-pill);font-size:var(--lumo-font-size-xs);font-weight:700;line-height:1.5;white-space:nowrap;background:var(--od-neutral-soft);color:var(--od-neutral)}.od-dash-pill vaadin-icon{width:12px;height:12px;flex:none}.od-dash-pill--success{background:var(--od-success-soft);color:var(--od-success)}.od-dash-pill--warning{background:var(--od-warning-soft);color:var(--od-warning)}.od-dash-pill--danger{background:var(--od-danger-soft);color:var(--od-danger)}.od-dash-pill--info{background:var(--od-info-soft);color:var(--od-info)}.od-dash-pill--accent{background:var(--od-accent-soft);color:var(--od-accent)}.od-dash-link{cursor:pointer}.od-dash-link:focus{outline:none}.od-dash-link:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}.od-dash-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--lumo-space-l) var(--lumo-space-m);text-align:center;border:1px dashed var(--od-border);border-radius:var(--od-radius-m);background:var(--od-surface-sunken)}.od-dash-empty-icon{width:28px;height:28px;margin-bottom:4px;color:var(--od-neutral)}.od-dash-empty--success .od-dash-empty-icon{color:var(--od-success)}.od-dash-empty-title{font-weight:700;color:var(--od-text-strong)}.od-dash-empty-text{font-size:var(--lumo-font-size-s);color:var(--od-text-muted);max-width:36ch}.od-dash-callout{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--od-radius-s);background:var(--od-info-soft);color:var(--od-info);font-size:var(--lumo-font-size-s);font-weight:600}.od-dash-callout vaadin-icon{width:18px;height:18px;flex:none}.od-dash-tasks{display:flex;flex-direction:column;gap:2px;margin:0 calc(var(--lumo-space-s) * -1)}.od-dash-task{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px;box-sizing:border-box;border-radius:var(--od-radius-s);transition:background-color var(--od-dash-ease)}.od-dash-task.od-dash-link:hover{background:var(--od-surface-sunken)}.od-dash-task-icon{width:36px;height:36px;padding:9px;box-sizing:border-box;flex:none;border-radius:var(--od-radius-s);background:var(--od-neutral-soft);color:var(--od-neutral)}.od-dash-task--success .od-dash-task-icon{background:var(--od-success-soft);color:var(--od-success)}.od-dash-task--warning .od-dash-task-icon{background:var(--od-warning-soft);color:var(--od-warning)}.od-dash-task--danger .od-dash-task-icon{background:var(--od-danger-soft);color:var(--od-danger)}.od-dash-task--info .od-dash-task-icon{background:var(--od-info-soft);color:var(--od-info)}.od-dash-task--accent .od-dash-task-icon{background:var(--od-accent-soft);color:var(--od-accent)}.od-dash-task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.od-dash-task-title{font-size:var(--lumo-font-size-s);font-weight:700;line-height:1.35;color:var(--od-text-strong)}.od-dash-task-sub{font-size:var(--lumo-font-size-xs);line-height:1.35;color:var(--od-text-muted);overflow-wrap:anywhere}.od-dash-task-value{flex:none;font-size:var(--lumo-font-size-s);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--od-text-strong)}.od-dash-task--danger .od-dash-task-value{color:var(--od-danger)}.od-dash-chevron{width:16px;height:16px;flex:none;color:var(--od-text-muted);transition:transform var(--od-dash-ease)}.od-dash-link:hover .od-dash-chevron{transform:translate(2px)}.od-dash-today{display:flex;flex-direction:column;gap:var(--lumo-space-s)}.od-dash-aulas{display:flex;flex-direction:column;gap:6px}.od-dash-aula{--od-dash-accent: var(--lumo-primary-color);display:grid;grid-template-columns:3rem 4px minmax(0,1fr) auto;align-items:center;gap:4px 12px;min-height:52px;padding:8px 12px;box-sizing:border-box;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-s);transition:background-color var(--od-dash-ease),border-color var(--od-dash-ease)}.od-dash-aula--marcacao{--od-dash-accent: var(--od-accent)}.od-dash-aula.od-dash-link:hover{background:var(--od-surface-sunken);border-color:var(--od-border)}.od-dash-aula-hora{display:flex;flex-direction:column;line-height:1.25;font-variant-numeric:tabular-nums}.od-dash-aula-ini{font-size:var(--lumo-font-size-s);font-weight:800;color:var(--od-text-strong)}.od-dash-aula-fim{font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.od-dash-aula-bar{align-self:stretch;width:4px;border-radius:2px;background:var(--od-dash-accent)}.od-dash-aula-body{min-width:0;display:flex;flex-direction:column;gap:2px}.od-dash-aula-title{font-size:var(--lumo-font-size-s);font-weight:700;color:var(--od-text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.od-dash-aula-meta{font-size:var(--lumo-font-size-xs);line-height:1.35;color:var(--od-text-muted);overflow-wrap:anywhere}.od-dash-aula--agora{border-color:var(--od-success);background:var(--od-success-soft)}.od-dash-aula--passada .od-dash-aula-ini,.od-dash-aula--passada .od-dash-aula-title{color:var(--od-text-muted);font-weight:600}.od-dash-aula--passada .od-dash-aula-bar{opacity:.45}@media (min-width: 900px){.od-dash-split--top .od-dash-aulas{max-height:28rem;overflow-y:auto;padding-right:2px}}.od-dash-kpis{display:flex;flex-wrap:wrap;gap:var(--lumo-space-m);width:100%}.od-dash-kpi{--od-dash-tom: var(--od-neutral);--od-dash-tom-soft: var(--od-neutral-soft);position:relative;flex:1 1 220px;display:flex;flex-direction:column;min-width:0;box-sizing:border-box;padding:18px;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-s);transition:box-shadow var(--od-dash-ease),border-color var(--od-dash-ease)}.od-dash-kpi--success{--od-dash-tom: var(--od-success);--od-dash-tom-soft: var(--od-success-soft)}.od-dash-kpi--warning{--od-dash-tom: var(--od-warning);--od-dash-tom-soft: var(--od-warning-soft)}.od-dash-kpi--danger{--od-dash-tom: var(--od-danger);--od-dash-tom-soft: var(--od-danger-soft)}.od-dash-kpi--info{--od-dash-tom: var(--od-info);--od-dash-tom-soft: var(--od-info-soft)}.od-dash-kpi--accent{--od-dash-tom: var(--od-accent);--od-dash-tom-soft: var(--od-accent-soft)}.od-dash-kpi.od-dash-link:hover{box-shadow:var(--od-shadow-m);border-color:var(--od-border)}.od-dash-kpi-icon{position:absolute;top:16px;right:16px;width:36px;height:36px;padding:9px;box-sizing:border-box;border-radius:var(--od-radius-s);background:var(--od-dash-tom-soft);color:var(--od-dash-tom)}.od-dash-kpi-title{padding-right:44px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--od-text-muted)}.od-dash-kpi-value{margin-top:6px;font-size:1.75rem;font-weight:800;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.od-dash-kpis--compact>.od-dash-kpi{flex-basis:200px;padding:14px 16px}.od-dash-kpis--compact .od-dash-kpi-value{font-size:1.375rem}.od-dash-kpis--compact .od-dash-kpi-icon{top:12px;right:12px}.od-dash-kpi vaadin-progress-bar{margin:10px 0 0}.od-dash-kpi-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:auto;padding-top:10px;font-size:var(--lumo-font-size-xs);line-height:1.4;color:var(--od-text-muted);font-variant-numeric:tabular-nums}vaadin-progress-bar.od-dash-progress--success{--lumo-primary-color: var(--od-success)}vaadin-progress-bar.od-dash-progress--warning{--lumo-primary-color: var(--od-warning)}vaadin-progress-bar.od-dash-progress--danger{--lumo-primary-color: var(--od-danger)}vaadin-progress-bar.od-dash-progress--info{--lumo-primary-color: var(--od-info)}vaadin-progress-bar.od-dash-progress--neutral{--lumo-primary-color: var(--od-neutral)}.od-dash-chart-wrap{display:flex;flex-direction:column;gap:var(--lumo-space-s)}.od-dash-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.od-dash-legend-item{display:inline-flex;align-items:center;gap:6px}.od-dash-swatch{width:10px;height:10px;border-radius:3px;flex:none}.od-dash-swatch--pago{background:var(--lumo-primary-color)}.od-dash-swatch--previsto{background:var(--lumo-contrast-20pct)}.od-dash-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;height:190px;padding-bottom:6px;border-bottom:1px solid var(--od-border)}.od-dash-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;height:100%}.od-dash-col-val{font-size:var(--lumo-font-size-xxs);font-weight:700;color:var(--od-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.od-dash-col-plot{position:relative;flex:1;width:100%;min-height:0}.od-dash-col-track{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;align-items:flex-end;width:min(100%,40px);height:var(--od-h, 0%);min-height:3px;overflow:hidden;border-radius:6px 6px 2px 2px;background:var(--lumo-contrast-20pct)}.od-dash-col-fill{width:100%;height:var(--od-fill, 0%);background:var(--lumo-primary-color)}.od-dash-col-label{font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.od-dash-col--atual .od-dash-col-label,.od-dash-col--atual .od-dash-col-val{color:var(--od-text-strong);font-weight:800}.od-dash-chart-summary{font-size:var(--lumo-font-size-s);color:var(--od-text-muted)}.od-dash-bars{display:flex;flex-direction:column;gap:12px}.od-dash-bar-row{--od-dash-accent: var(--lumo-primary-color);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px}.od-dash-bar-label{font-size:var(--lumo-font-size-s);color:var(--od-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.od-dash-bar-value{font-size:var(--lumo-font-size-s);font-weight:800;color:var(--od-text-strong);font-variant-numeric:tabular-nums}.od-dash-bar-track{grid-column:1 / -1;height:8px;overflow:hidden;border-radius:var(--od-radius-pill);background:var(--lumo-contrast-10pct)}.od-dash-bar-fill{height:100%;width:var(--od-w, 0%);border-radius:inherit;background:var(--od-dash-accent)}@media (max-width: 600px){.od-dash-hello-title{font-size:var(--lumo-font-size-xl)}.od-dash-actions{width:100%}.od-dash-actions vaadin-button{flex:1 1 auto}.od-dash-split,.od-dash-kpis{gap:var(--lumo-space-s)}.od-dash .od-card{padding:16px}.od-dash-col-val{display:none}.od-dash-chart{height:150px}.od-dash-aula{grid-template-columns:2.75rem 4px minmax(0,1fr);padding:8px 10px;column-gap:10px}.od-dash-aula-hora,.od-dash-aula-bar{grid-row:span 2}.od-dash-aula-estado{grid-column:3;justify-self:start}}@media (prefers-reduced-motion: reduce){.od-dash-link:hover .od-dash-chevron{transform:none}}.od-public-page{background:var(--od-page-bg);min-height:100%}.od-public-card{background:var(--od-surface);padding:min(2.5em,5vw);border-radius:var(--od-radius-l);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-l);box-sizing:border-box}.od-public-header h2{margin:var(--lumo-space-s) 0 var(--lumo-space-xs);text-align:center;color:var(--od-text-strong);letter-spacing:-.01em}.od-public-header>span{text-align:center;color:var(--od-text-muted)}.od-lang-switch{justify-content:flex-end;gap:4px;margin-bottom:.4em}.od-lang-btn{font-size:.8em;min-width:0;padding:2px 10px;font-weight:500;color:var(--od-text-muted);border-radius:var(--od-radius-pill)}.od-lang-btn[aria-pressed=true]{background:var(--od-brand-soft-strong);color:var(--lumo-primary-text-color);font-weight:700}.od-hint{display:block;margin-top:.2em;font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}.od-footnote{display:block;margin-top:.8em;font-size:var(--lumo-font-size-xs);text-align:center;color:var(--od-text-muted)}.od-summary{background:var(--od-surface-sunken);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-m);margin-top:.5em}.od-summary-title{display:block;font-weight:700;font-size:1.1em;color:var(--od-text-strong)}.od-summary-line{display:block;font-size:.88em;color:var(--od-text)}.od-summary-note{display:block;margin-top:.3em;font-size:.78em;font-style:italic;color:var(--od-text-muted)}.od-summary-subtitle{display:block;margin-top:.4em;font-size:.82em;color:var(--od-text-muted)}.od-summary-total{display:block;margin-top:.3em;font-weight:600}.od-value-row{display:flex;flex-wrap:wrap;gap:.7em;margin:.7em 0}.od-value-box{background:var(--od-surface);border-radius:var(--od-radius-s);padding:.5em .9em;flex:1 1 140px;box-shadow:var(--od-shadow-xs);border:1px solid var(--od-border-subtle)}.od-value-box__label{display:block;font-size:.78em;color:var(--od-text-muted)}.od-value-box__value{display:block;font-weight:700;font-size:1.15em;color:var(--od-text-strong);font-variant-numeric:tabular-nums}.od-total-bar{background:var(--od-success);color:#fff;border-radius:var(--od-radius-s);padding:.7em 1em;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3em}html[theme~=dark] .od-total-bar{background:#1e7b34}.od-total-bar__label{font-weight:600}.od-total-bar__value{font-weight:800;font-size:1.3em;font-variant-numeric:tabular-nums}.od-socio-highlight{font-weight:700;font-size:1.05em;background:var(--od-warning-soft);border:2px solid var(--od-warning-border);border-radius:var(--od-radius-s);padding:.7em .9em;margin:.4em 0;width:100%;box-sizing:border-box}.od-avatar-preview{background:var(--od-surface-sunken);width:90px;height:90px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--od-border);flex-shrink:0;color:var(--od-text-muted)}.od-avatar-preview img{width:100%;height:100%;object-fit:cover}.od-photo-row{margin-top:.5em;margin-bottom:1em}.od-turma-row{border:1px solid var(--od-border);border-radius:var(--od-radius-s);margin-bottom:8px;background:var(--od-surface)}.od-turma-row__title{font-weight:600;color:var(--od-text-strong)}.od-turma-row__meta{font-size:.85em;color:var(--od-text-muted)}.od-section-box{border:1px solid var(--od-border);border-radius:var(--od-radius-m);margin-bottom:10px}.od-section-box>h2{margin:0 0 10px;font-size:1.2em}.od-success-state{text-align:center}.od-success-state>vaadin-icon{width:56px;height:56px;color:var(--od-success)}body:has(.od-public-page){background:var(--od-page-bg)}vaadin-grid::part(dia-aula){background-color:#d1f7f1!important;color:#006d75!important;font-weight:700}vaadin-grid::part(fim-de-semana){background-color:var(--lumo-contrast-5pct)!important;color:var(--lumo-disabled-text-color)}vaadin-grid::part(dia-aula-nao-vem){background:repeating-linear-gradient(-45deg,var(--lumo-contrast-5pct) 0 4px,transparent 4px 8px)!important;color:var(--lumo-secondary-text-color)}.pres-dia-tag{margin-left:6px;padding:1px 6px;border-radius:var(--od-radius-pill);background:#d1f7f1;color:#006d75;font-size:var(--lumo-font-size-xxs);font-weight:600;white-space:nowrap}html[theme~=dark] .pres-dia-tag{background:#2dd4bf29;color:#5eead4}.pres-aluno-card.pres-nao-vem:not(.is-present){opacity:.55}.pres-aluno-aviso{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}html[theme~=dark] vaadin-grid::part(dia-aula){background-color:#2dd4bf29!important;color:#5eead4!important}.pres-view .toolbar-responsiva{margin-bottom:var(--lumo-space-l);flex-wrap:wrap}.count-badge{background:var(--od-success);color:#fff;border-radius:var(--od-radius-pill);padding:2px 6px;font-size:.7rem;font-weight:700;margin-top:2px}.pres-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--lumo-space-m);width:100%;margin:6px 0 4px}.pres-stat{margin-top:0;padding:14px 18px}.pres-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:var(--lumo-space-l);width:100%;margin-top:10px}.pres-cards-dia{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--lumo-space-m);width:100%}.pres-counter{display:block;font-weight:700;color:var(--od-success);margin:4px 0 10px}.pres-aluno-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:var(--od-radius-m);border:1px solid var(--od-border);background:var(--od-surface);box-shadow:var(--od-shadow-xs);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--od-duration-fast) ease,border-color var(--od-duration-fast) ease,transform .1s ease}.pres-aluno-card:active{transform:scale(.98)}.pres-aluno-card.is-present{border:2px solid var(--od-success);background:var(--od-success-soft);padding:13px}.pres-aluno-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--od-surface-sunken);color:var(--od-text-muted)}.pres-aluno-avatar vaadin-icon{width:40px;height:40px}.pres-aluno-nome{font-size:.9em;text-align:center;color:var(--od-text-strong)}.pres-aluno-estado{font-size:.8em;font-weight:700;color:var(--od-danger)}.pres-aluno-card.is-present .pres-aluno-estado{color:var(--od-success)}@media (max-width: 800px){#chart-container{display:none!important}.toolbar-responsiva{flex-direction:column;align-items:stretch!important}.pres-cards-dia{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--lumo-space-s)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}.dash-section,.dash-hero{animation:none!important;opacity:1!important}.dash-card__chevron,.action-btn:hover,.status-badge:hover{transform:none!important}vaadin-button:not([disabled]):active{transform:none}html.od-app .v-loading-indicator.first:before,html.od-app .v-loading-indicator.second:before,html.od-app .v-loading-indicator.third:before{animation:od-breathe 1.6s ease-in-out infinite}}.socio-avatar{width:35px;height:35px;border-radius:50%;object-fit:cover;flex-shrink:0}.socio-quota-badge{padding:8px 12px;border-radius:10px;font-size:.85rem;line-height:1.4;display:flex;flex-direction:column;align-items:center;min-width:140px;cursor:pointer;font-variant-numeric:tabular-nums;transition:transform var(--od-duration-fast) ease,filter var(--od-duration-fast) ease}.socio-quota-badge:hover{transform:scale(1.04);filter:brightness(.97)}.socio-quota-badge__paid{font-size:.65rem;font-weight:800}.socio-quota--paid{background:var(--od-success-soft);color:var(--od-success);border:1px solid var(--od-success)}.socio-quota--expired{background:var(--od-danger-soft);color:var(--od-danger);border:1px solid var(--od-danger)}.status-badge.socio-status{cursor:default}.status-badge.socio-status:hover{transform:none;filter:none}.socio-status--ok{background:var(--od-success-soft);color:var(--od-success)}.socio-status--off{background:var(--od-danger-soft);color:var(--od-danger);border-color:var(--od-danger)}.socio-status-filters{padding-left:5px}.socio-dialog-info{font-size:var(--lumo-font-size-s)}vaadin-grid::part(valid-experimental-row){background-color:var(--od-warning-soft);font-weight:500}vaadin-grid::part(valid-renewal-row){background-color:var(--od-accent-soft);font-weight:500}.valid-filtro{margin-bottom:10px}.valid-tipo-badge{gap:5px;width:fit-content;padding:4px 10px;border-radius:var(--od-radius-pill);font-size:12px;font-weight:700;letter-spacing:.02em;border:1px solid currentColor;white-space:nowrap}.valid-tipo-badge vaadin-icon{width:13px;height:13px}.valid-tipo--experimental{background:var(--od-warning-soft);color:var(--od-warning)}.valid-tipo--renovacao{background:var(--od-accent-soft);color:var(--od-accent)}.valid-tipo--inscricao{background:var(--od-info-soft);color:var(--od-info)}.valid-turma-badges{gap:4px;flex-wrap:wrap}.valid-turma-badge{padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.valid-turma-badge--pendente{opacity:.8;border:1px dashed currentColor}.valid-aviso{display:flex;align-items:flex-start;gap:6px;width:100%;box-sizing:border-box;padding:12px;border-radius:var(--od-radius-s);white-space:pre-wrap}.valid-aviso vaadin-icon{flex-shrink:0;width:18px;height:18px}.valid-aviso--warning{background:var(--od-warning-soft);color:var(--od-warning)}.valid-aviso--accent{background:var(--od-accent-soft);color:var(--od-accent)}.valid-aviso--danger{background:var(--od-danger-soft);color:var(--od-danger)}.valid-aviso--success{background:var(--od-success-soft);color:var(--od-success);margin-top:.8em}.valid-resumo-titulo{margin:0 0 8px}.valid-pills{flex-wrap:wrap;gap:.6em}.valid-pill{width:auto;padding:6px 12px;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-s)}.valid-pill__label{font-size:.72em;color:var(--od-text-muted);text-transform:uppercase;letter-spacing:.04em}.valid-pill__value{font-weight:700;font-size:1.05em;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.valid-total{display:block;margin-top:8px;font-weight:700;font-variant-numeric:tabular-nums}.valid-subtitulo{display:block;margin-top:10px;font-weight:600}.fin-header{flex-wrap:wrap;gap:var(--lumo-space-s)}.fin-mes{min-width:150px;text-align:center;font-weight:700;color:var(--od-text-strong)}.horas-page{overflow-y:auto;height:auto!important}.horas-page vaadin-grid{height:auto!important;min-height:400px}.horas-header{flex-wrap:wrap;gap:var(--lumo-space-s)}.horas-header__acoes{flex-wrap:wrap}.horas-btn-novo{min-height:48px}.horas-btn-guardar{min-height:52px}.stat-card.horas-card{flex:1 1 160px;min-width:160px;padding:14px 16px}.horas-cell-title{font-weight:600;font-size:.875rem;color:var(--od-text-strong)}.horas-cell-sub{font-size:.75rem;color:var(--od-text-muted)}.horas-cell-sub.od-text-brand{color:var(--lumo-primary-text-color)}.horas-badge-tipo{margin-left:6px;padding:2px 8px;border-radius:6px;font-size:.65rem;font-weight:700;text-transform:uppercase;background:var(--od-neutral-soft);color:var(--od-neutral)}.horas-stepper{width:100%;margin:10px 0;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--od-surface-sunken);border:1px solid var(--od-border);border-radius:var(--od-radius-l)}.horas-stepper__display{min-width:80px;text-align:center;font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.horas-stepper__btn{width:48px;height:48px;margin:0;background:var(--od-surface);border:1px solid var(--od-border);border-radius:var(--od-radius-m);color:var(--lumo-primary-text-color);cursor:pointer}.horas-chip{padding:6px 16px;border-radius:var(--od-radius-pill);font-size:.85rem;font-weight:700;background:var(--od-info-soft);color:var(--od-info);cursor:pointer}@media (max-width: 800px){.horas-header{flex-direction:column;align-items:stretch!important}.horas-stats{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}.horas-stats .stat-card.horas-card{min-width:0}.horas-stats .stat-card.horas-card:first-child{grid-column:span 2;border-left:4px solid var(--od-info)}}.transf-topbar{flex-wrap:wrap;gap:var(--lumo-space-s);padding:var(--lumo-space-m) 0}.transf-kpis{gap:16px;margin-top:0}.transf-kpi{flex:1 1 200px;display:flex;flex-direction:column;align-items:center;padding:16px;border-radius:var(--od-radius-m);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-xs);transition:transform var(--od-duration) var(--od-ease),box-shadow var(--od-duration) ease}.transf-kpi:hover{transform:translateY(-3px);box-shadow:var(--od-shadow-m)}.transf-kpi__value{font-size:1.8rem;font-weight:800;font-variant-numeric:tabular-nums}.transf-kpi--warning{background:var(--od-warning-soft)}.transf-kpi--warning .transf-kpi__value{color:var(--od-warning)}.transf-kpi--info{background:var(--od-info-soft)}.transf-kpi--info .transf-kpi__value{color:var(--od-info)}.transf-grid{border-radius:var(--od-radius-m);box-shadow:var(--od-shadow-s)}.transf-acoes{flex-wrap:wrap;gap:4px}.transf-estado{padding:4px 8px;border-radius:var(--od-radius-pill);font-size:.7rem;font-weight:700;white-space:nowrap}.transf-estado--pendente{background:var(--od-warning-soft);color:var(--od-warning)}.transf-estado--autorizado{background:var(--od-info-soft);color:var(--od-info)}.transf-estado--pago{background:var(--od-success-soft);color:var(--od-success)}.transf-estado--erro{background:var(--od-danger-soft);color:var(--od-danger)}.transf-link-btn{display:inline-block;width:100%;box-sizing:border-box;padding:10px 16px;border-radius:var(--od-radius-s);background:var(--lumo-primary-color);color:var(--lumo-primary-contrast-color);font-weight:600;text-align:center;text-decoration:none}.transf-link-btn:hover{filter:brightness(1.08)}@media (prefers-reduced-motion: reduce){.transf-kpi:hover{transform:none}}.sala-title{font-size:var(--lumo-font-size-xl)}.sala-topbar{flex-wrap:wrap;gap:12px}.sala-acoes{flex-wrap:wrap}.od-sched-nav{padding:6px 12px;border-radius:var(--od-radius-pill);background:var(--od-surface);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-xs)}.od-sched-semana{margin:0 10px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--od-text-strong)}.od-sched-legenda{gap:16px;flex-wrap:wrap}.od-sched-chip{padding:3px 10px;border-radius:6px;font-size:.75rem;font-weight:600;border:1px solid var(--od-border-subtle)}.od-sched-chip--hoje{background:var(--od-success-soft);color:var(--od-success);border-color:var(--od-success)}.sala-pendentes{margin-bottom:10px;padding:14px 16px;border-radius:var(--od-radius-m);background:var(--od-warning-soft);border:1px solid var(--od-warning-border)}.sala-pendentes__cabecalho{flex-wrap:wrap;gap:6px}.sala-pendentes__icon{width:18px;height:18px;color:var(--od-warning)}.sala-pendentes__titulo{margin:0 0 0 8px;font-size:.95rem;color:var(--od-warning)}.sala-pendentes__badge{margin-left:8px;padding:2px 8px;border-radius:var(--od-radius-pill);background:var(--od-warning);color:var(--lumo-base-color);font-size:.75rem;font-weight:700}.sala-pendentes__hint{font-size:.78rem;color:var(--od-text-muted)}.sala-pendente{flex-wrap:wrap;gap:8px;margin-top:8px;padding:10px 14px;border-radius:var(--od-radius-s);background:var(--od-surface);border-left:4px solid var(--od-warning);box-shadow:var(--od-shadow-xs)}.sala-pendente__info{flex:1;min-width:min(200px,100%)}.sala-pendente__l1{font-weight:600;font-size:.88rem;color:var(--od-text-strong)}.sala-pendente__l2{font-size:.8rem;color:var(--od-text-muted)}.od-sched-grelha{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--od-radius-m);background:var(--od-surface);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-s)}.od-sched-head-dias{display:grid;position:sticky;top:0;z-index:100;text-align:center;background:var(--od-ink);color:#fff}html[theme~=dark] .od-sched-head-dias{background:#0e141b}.od-sched-head-dia{padding:8px 0;text-align:center;border-left:1px solid rgba(255,255,255,.12)}.od-sched-head-dia--hoje{background:#1e7b34}.od-sched-head-dia__nome{font-size:.7rem;font-weight:700;letter-spacing:.05em}.od-sched-head-dia__data{display:block;font-size:.65rem;opacity:.85}.od-sched-head-salas{display:grid;position:sticky;top:37px;z-index:90;text-align:center;background-color:var(--lumo-base-color);background-image:linear-gradient(var(--lumo-contrast-5pct),var(--lumo-contrast-5pct));border-bottom:1px solid var(--od-border)}.od-sched-head-hora{font-size:.65rem;font-weight:600;color:var(--od-text-muted)}.od-sched-head-sala{padding:6px 0;border-left:1px solid var(--od-border)}.od-sched-head-sala__nome{font-size:.7rem;font-weight:600;color:var(--od-text-strong)}.od-sched-col-horas{position:relative;border-right:1px solid var(--lumo-contrast-20pct);background:var(--od-surface-sunken)}.od-sched-hora-label{position:absolute;left:8px;font-size:.7rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--od-text-muted)}.od-sched-coluna{position:relative;height:100%;border-left:1px solid var(--od-border-subtle)}.od-sched-coluna--hoje{background:var(--od-success-soft)}.od-sched-slot{position:absolute;width:100%;z-index:0;cursor:pointer;border-top:1px solid var(--od-border-subtle);transition:background-color var(--od-duration-fast) ease}.od-sched-slot:hover{background-color:var(--od-brand-soft);z-index:1}.schedule-card{transition:transform var(--od-duration) var(--od-ease),box-shadow var(--od-duration) ease}.schedule-card:hover{transform:translateY(-2px);box-shadow:var(--od-shadow-m)!important;z-index:50!important}.sala-plano-sub{font-size:.85rem;font-weight:600;color:var(--od-text-muted)}.sala-plano-bloco{padding:10px 12px;border-radius:10px;background:var(--od-surface-sunken);border:1px solid var(--od-border)}.sala-plano-bloco__titulo{display:block;margin-bottom:4px;font-weight:700;font-size:.8rem;color:var(--od-text-strong)}.sala-plano-bloco__corpo{white-space:pre-wrap;font-size:.9rem;line-height:1.4;color:var(--od-text)}@media (prefers-reduced-motion: reduce){.schedule-card:hover{transform:none}}.pl-aviso{margin-top:12px;padding:16px;border-radius:var(--od-radius-m);background:var(--od-warning-soft);border:1px solid var(--od-warning-border);color:var(--od-warning)}.pl-subtitulo{font-size:var(--lumo-font-size-s)}.pl-btn-mapa{margin:8px 0 4px}.pl-titulo-mes{margin:24px 0 4px;font-size:var(--lumo-font-size-m)}.pl-stats{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px}.pl-stat{min-width:120px;padding:10px 16px;text-align:center;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-m);box-shadow:var(--od-shadow-xs)}.pl-stat__valor{display:block;font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.pl-progresso{width:220px;max-width:100%;align-self:center;--lumo-primary-color: var(--od-success)}.pl-grelha{min-height:420px}.pl-linha-hora{position:absolute;width:100%;z-index:0;border-top:1px solid var(--od-border-subtle)}.pl-badge{padding:3px 10px;border-radius:var(--od-radius-pill);font-size:.75rem;font-weight:600;white-space:nowrap}.pl-estado--por-planear{background:var(--od-neutral-soft);color:var(--od-neutral)}.pl-estado--planeada{background:var(--od-info-soft);color:var(--od-info)}.pl-estado--enviada{background:var(--od-success-soft);color:var(--od-success)}.pl-tipo--regular{background:var(--od-accent-soft);color:var(--od-accent)}.pl-tipo--pontual{background:var(--od-warning-soft);color:var(--od-warning)}.pl-info-linha{display:block;margin-bottom:10px;font-size:.85rem;color:var(--od-text-muted)}.pl-enviado{font-weight:600;font-size:.8rem;color:var(--od-success)}.schedule-card-pl{cursor:pointer;transition:transform var(--od-duration) var(--od-ease),box-shadow var(--od-duration) ease}.schedule-card-pl:hover{transform:translateY(-2px) scale(1.01);box-shadow:var(--od-shadow-m)!important;z-index:50!important}@media (prefers-reduced-motion: reduce){.schedule-card-pl:hover{transform:none}}.cal-title{padding:var(--od-page-padding) var(--od-page-padding) var(--lumo-space-s)}.cal-nav{flex-wrap:wrap;padding:10px 16px;background:var(--od-surface);border-bottom:1px solid var(--od-border)}.cal-mes{min-width:200px;text-align:center;font-weight:700;font-size:1.1rem;color:var(--lumo-primary-text-color)}.cal-spacer{flex:1}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:8px 16px}.cal-grid--cabecalho{padding-top:8px;padding-bottom:0}.cal-grid--corpo{padding-top:4px;align-content:start}.cal-header-day{padding:6px 0;text-align:center;font-weight:700;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--od-text-muted)}.cal-day{min-height:90px;padding:6px;overflow:hidden;background:var(--od-surface);border:1px solid var(--od-border);border-radius:10px}.cal-day--today{border:2px solid var(--lumo-primary-color);background:var(--od-brand-soft);padding:5px}.cal-day--out{background:var(--od-surface-sunken);opacity:.55}.cal-day-number{display:block;margin-bottom:3px;font-weight:700;font-size:.88rem;color:var(--od-text-strong)}.cal-day--today .cal-day-number{color:var(--lumo-primary-text-color)}.cal-chip{display:block;max-width:100%;margin-bottom:2px;padding:2px 5px;border-radius:5px;font-size:.68rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid transparent}.cal-chip--legenda{display:inline-block;margin-left:6px}.cal-chip--aula{background:var(--od-success-soft);color:var(--od-success);border-color:var(--od-success-soft)}.cal-chip--marcacao{background:var(--od-warning-soft);color:var(--od-warning);border-color:var(--od-warning-border)}.cal-chip--ensaio{background:var(--od-accent-soft);color:var(--od-accent)}@media (max-width: 600px){.cal-grid{gap:2px;padding:6px 4px}.cal-day{min-height:64px;padding:3px;border-radius:6px}.cal-day--today{padding:2px}.cal-chip{font-size:.6rem;padding:1px 3px}.cal-mes{min-width:0;flex:1}.cal-spacer{display:none}}.notif-header{flex-wrap:wrap;gap:var(--lumo-space-s)}.notif-lista{display:flex;flex-direction:column;gap:16px;width:100%;margin-top:20px}.notif-resumo{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:var(--od-radius-l);border:1px solid transparent}.notif-resumo--ok{background:var(--od-success-soft);border-color:var(--od-success);color:var(--od-success)}.notif-resumo--alerta{background:var(--od-warning-soft);border-color:var(--od-warning-border);color:var(--od-warning)}.notif-resumo__icon{width:28px;height:28px;flex-shrink:0}.notif-resumo__texto{font-weight:600;font-size:1rem}.notif-card{overflow:hidden;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-s)}.notif-card-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--od-border-subtle)}.notif-card__icon{width:20px;height:20px;flex-shrink:0;color:var(--notif-cor, var(--od-text-muted))}.notif-card__titulo{flex:1;min-width:0;margin:0;font-size:.95rem;color:var(--od-text-strong)}.notif-badge{padding:3px 10px;border-radius:var(--od-radius-pill);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;background:var(--notif-cor, var(--od-neutral));color:var(--lumo-base-color)}.notif-badge--ok{background:var(--od-success)}.notif-row{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--od-border-subtle)}.notif-row:last-child{border-bottom:none}.notif-row:hover{background:var(--lumo-contrast-5pct)}.notif-row__dot{width:10px;height:10px;flex-shrink:0;opacity:.75;color:var(--notif-cor, var(--od-text-muted))}.notif-row__texto{font-size:.88rem;color:var(--od-text)}.notif-row__mais{font-size:.82rem;font-style:italic;color:var(--od-text-muted)}.notif-empty{padding:16px 20px;font-style:italic;color:var(--od-text-muted)}.ta-header{flex-wrap:wrap}.ta-main{flex-wrap:wrap;overflow:auto}.ta-section{flex:1 1 320px;min-width:0;min-height:360px;padding:15px;box-sizing:border-box;background:var(--od-surface-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--od-border);border-radius:var(--od-radius-l)}.ta-section__header{flex-wrap:wrap}.ta-grid{background:transparent!important;border:none!important}.ta-aluno-card{width:100%;gap:12px;padding:10px 15px;box-sizing:border-box;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-m);box-shadow:var(--od-shadow-xs);transition:border-color var(--od-duration-fast) ease,background-color var(--od-duration-fast) ease}.ta-aluno-card:hover{border-color:var(--lumo-primary-color-50pct);background:var(--od-brand-soft)}.ta-aluno-nome{font-weight:600;color:var(--od-text-strong)}.ta-remover{margin-left:auto}.od-mobile-only{display:none}@media (max-width: 800px){.od-desktop-only{display:none}.od-mobile-only{display:block}}.ap-foto{width:40px;height:40px;object-fit:cover;border-radius:50%;cursor:pointer}.ap-foto-vazia{width:28px;height:28px;color:var(--lumo-contrast-30pct)}.ap-foto-grande{width:260px;height:260px;max-width:100%;object-fit:cover;border-radius:var(--od-radius-m)}.login-page{position:relative;overflow:hidden;padding:var(--lumo-space-l) var(--lumo-space-m);box-sizing:border-box;background:radial-gradient(1200px 600px at 85% -10%,rgba(211,0,24,.26),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(47,111,214,.28),transparent 60%),linear-gradient(160deg,#002d6a,#001e47 55%,#00122b)}body:has(.login-page) .v-loading-indicator{top:0!important;left:0!important;height:4px!important;background:#8ab8ff!important;box-shadow:0 0 10px #8ab8ff;z-index:99999}.login-card{--lumo-base-color: #FFFFFF;--lumo-body-text-color: #1E293B;--lumo-header-text-color: #0F172A;--lumo-secondary-text-color: #4B5873;--lumo-contrast-10pct: hsla(222, 45%, 25%, .09);--lumo-primary-color: #002D6A;--lumo-primary-text-color: #002D6A;--vaadin-input-field-background: #F3F6FA;--vaadin-input-field-border-color: #CBD3DF;box-sizing:border-box;width:420px;max-width:100%;padding:var(--lumo-space-xl) var(--lumo-space-l) var(--lumo-space-l);display:flex;flex-direction:column;align-items:center;background:#fff;color:#1e293b;border-radius:20px;box-shadow:0 30px 60px -20px #000a1e99,0 0 0 1px #ffffff0f;animation:od-login-reveal .6s cubic-bezier(.16,1,.3,1);transition:transform .3s ease,opacity .3s ease}.login-card--saindo{opacity:0;transform:scale(.97) translateY(-8px)}@keyframes od-login-reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.login-logo{width:96px;height:auto;margin-bottom:var(--lumo-space-s)}html .login-title{margin:0;font-size:26px;font-weight:800;letter-spacing:-.01em;line-height:1.2;color:#0f172a}.login-subtitle{margin:4px 0 var(--lumo-space-s);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;text-align:center;color:#64718a}.login-footer{margin-top:var(--lumo-space-l);padding:0 16px;font-size:11px;letter-spacing:.02em;text-align:center;color:#fff9}.login-page vaadin-text-field::part(input-field),.login-page vaadin-password-field::part(input-field){background:#f3f6fa;border:1px solid #CBD3DF;border-radius:var(--od-radius-s);color:#0f172a}.login-page vaadin-text-field[focused]::part(input-field),.login-page vaadin-password-field[focused]::part(input-field){border-color:#002d6a;background:#fff}.login-page vaadin-text-field::part(label),.login-page vaadin-password-field::part(label){color:#334155;font-weight:600}.login-page vaadin-login-form{width:100%}.login-page vaadin-login-form-wrapper{background:transparent;padding:0;width:100%;max-width:none}.login-page vaadin-login-form-wrapper::part(form){padding:0}.login-page vaadin-login-form-wrapper::part(form-title){display:none}.login-page vaadin-login-form vaadin-button[theme~=primary],.login-page vaadin-login-form-wrapper vaadin-button[theme~=primary]{margin-top:var(--lumo-space-l);height:48px;border-radius:var(--od-radius-s);background:linear-gradient(120deg,#002d6a,#1565c0);color:#fff;font-weight:700;letter-spacing:.02em;box-shadow:0 8px 20px -6px #002d6a8c}@media (max-width: 600px){.login-card{padding:var(--lumo-space-l) var(--lumo-space-m);border-radius:16px}}@media (prefers-reduced-motion: reduce){.login-card{animation:none;transition:none}}.apl-filtros{width:100%;padding:14px 16px;box-sizing:border-box;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-m);box-shadow:var(--od-shadow-xs)}.apl-filtros__linha{flex-wrap:wrap;gap:12px}.apl-stats{gap:12px;margin:4px 0 0}.apl-progresso{width:220px;max-width:100%;--lumo-primary-color: var(--od-info)}.apl-progresso__wrap{display:flex;flex-direction:column;justify-content:center;gap:2px}.apl-progresso__pct{font-size:.8rem;color:var(--od-text-muted)}.apl-resumo-details{padding:6px 12px;background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-m);box-shadow:var(--od-shadow-xs)}.apl-resumo{display:flex;flex-wrap:wrap;gap:10px;padding-top:6px}.apl-prof{display:flex;flex-direction:column;gap:4px;padding:10px 12px;cursor:pointer;background:var(--od-surface-sunken);border:1px solid var(--od-border);border-left:4px solid var(--od-neutral);border-radius:10px}.apl-prof:hover{background:var(--od-brand-soft)}.apl-prof vaadin-progress-bar{width:150px;max-width:100%}.apl-prof__nome{font-weight:700;font-size:.85rem;color:var(--od-text-strong)}.apl-prof__numeros{font-size:.75rem;color:var(--od-text-muted);font-variant-numeric:tabular-nums}.mens-subtitle{color:var(--od-text-muted);font-size:var(--lumo-font-size-s);font-weight:600}.mens-refresh{min-height:var(--od-touch-target)}.mens-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--lumo-space-m);width:100%;margin:var(--lumo-space-m) 0 0}.mens-stat{min-width:0;cursor:pointer;position:relative;padding:16px 18px;transition:box-shadow var(--od-duration-fast) ease,border-color var(--od-duration-fast) ease}.mens-stat .stat-value{font-size:1.45rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mens-stat__hint{display:block;margin-top:2px;font-size:var(--lumo-font-size-xs);color:var(--od-text-muted)}@media (hover: hover){.mens-stat:hover{box-shadow:var(--od-shadow-m);border-color:var(--od-border)}}.mens-stat:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}.mens-stat.is-active{border-color:var(--lumo-primary-color);box-shadow:inset 0 0 0 1px var(--lumo-primary-color)}.mens-meter{height:6px;margin-top:10px;border-radius:var(--od-radius-pill);background:var(--lumo-contrast-10pct);overflow:hidden}.mens-meter__fill{height:100%;width:0;border-radius:inherit;background:var(--od-success);transition:width .3s ease}.mens-filters{display:flex;flex-direction:column;gap:var(--lumo-space-s);box-sizing:border-box;width:100%}.mens-filters__fields{display:grid;grid-template-columns:minmax(200px,2fr) minmax(160px,1.6fr) repeat(4,minmax(120px,1fr));gap:0 var(--lumo-space-m);align-items:end}.mens-filters__actions{justify-content:flex-end;flex-wrap:wrap;gap:var(--lumo-space-s)}.mens-grid{background:var(--od-surface);border:1px solid var(--od-border-subtle);border-radius:var(--od-radius-l);box-shadow:var(--od-shadow-s);overflow:hidden;min-height:320px;flex:1 1 auto}vaadin-select.mens-desc::part(input-field){font-weight:600;border-radius:var(--lumo-border-radius-m)}vaadin-select.mens-desc--none::part(input-field){background:var(--od-neutral-soft);color:var(--od-text-muted);font-weight:400}vaadin-select.mens-desc--fam::part(input-field){background:var(--od-info-soft);color:var(--od-info)}vaadin-select.mens-desc--mod::part(input-field){background:var(--od-warning-soft);color:var(--od-warning)}vaadin-select.mens-desc--dir::part(input-field){background:var(--od-success-soft);color:var(--od-success)}vaadin-select.mens-desc--65::part(input-field){background:var(--od-accent-soft);color:var(--od-accent)}@media (max-width: 1100px){.mens-filters__fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.mens-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lumo-space-s)}}@media (max-width: 600px){.mens-stat{padding:12px 14px}.mens-stat .stat-value{font-size:1.2rem}.mens-stat>vaadin-icon{display:none}.mens-filters__fields{grid-template-columns:repeat(2,minmax(0,1fr))}.mens-filters__fields>:first-child{grid-column:1 / -1}.mens-filters__actions{justify-content:stretch}.mens-filters__actions>vaadin-button{flex:1 1 auto;min-height:var(--od-touch-target)}.mens-refresh{padding:0 8px}}@media (prefers-reduced-motion: reduce){.mens-meter__fill{transition:none}}.com-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--lumo-space-s) var(--lumo-space-m)}.com-toolbar>vaadin-combo-box:first-child{flex:1 1 260px}.com-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--lumo-space-m);width:100%;padding-bottom:var(--lumo-space-l)}@media (max-width: 600px){.com-toolbar>*{flex:1 1 100%}.com-toolbar>vaadin-button{min-height:var(--od-touch-target)}.com-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--lumo-space-s)}}.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:var(--lumo-space-l);width:100%;margin-top:var(--lumo-space-m)}.relatorio-card{background:var(--od-surface);color:var(--od-text);padding:20px;border-radius:var(--od-radius-l);border:1px solid var(--od-border-subtle);box-shadow:var(--od-shadow-s);box-sizing:border-box;transition:box-shadow var(--od-duration-fast) ease,border-color var(--od-duration-fast) ease}@media (hover: hover){.relatorio-card:hover{box-shadow:var(--od-shadow-m);border-color:var(--od-border)}}.relatorio-card__title{margin:4px 0 0;color:var(--od-text-strong)}.relatorio-card__desc{color:var(--od-text-muted);flex:1 1 auto}.relatorio-card vaadin-button{min-height:var(--od-touch-target);margin-top:auto}@media (max-width: 600px){.rel-grid{gap:var(--lumo-space-m)}.relatorio-card{padding:16px}.relatorio-card vaadin-button{width:100%}}.od-exp-header{flex-wrap:wrap;gap:var(--lumo-space-s)}.od-exp-header h2{margin:0}.od-exp-sub{color:var(--od-text-muted);font-size:var(--lumo-font-size-s)}.od-exp-aviso{color:var(--od-warning);font-size:var(--lumo-font-size-s)}.od-exp-stats{display:flex;flex-wrap:wrap;gap:var(--lumo-space-m);margin:var(--lumo-space-s) 0}.od-exp-stats .stat-card{flex:1 1 160px;min-width:150px}.od-exp-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--od-radius-pill);font-size:.75rem;font-weight:700;border:1px solid var(--od-border-subtle);white-space:nowrap}.od-exp-pill--info{background:var(--od-info-soft);color:var(--od-info)}.od-exp-pill--success{background:var(--od-success-soft);color:var(--od-success)}.od-exp-pill--warning{background:var(--od-warning-soft);color:var(--od-warning)}.od-exp-pill--violet{background:var(--od-accent-soft);color:var(--od-accent)}.od-exp-pill--neutral{background:var(--od-neutral-soft);color:var(--od-text-muted)}.od-exp-publica{min-height:100%;box-sizing:border-box;gap:var(--lumo-space-m);background:var(--od-page-bg)}.od-exp-publica-sub{color:var(--od-text-muted);text-align:center;font-size:var(--lumo-font-size-s)}.od-exp-publica-card{background:var(--od-surface);border:1px solid var(--od-border);border-radius:16px;padding:var(--lumo-space-l);box-sizing:border-box;box-shadow:var(--od-shadow-m, 0 4px 24px rgba(0,0,0,.08));gap:var(--lumo-space-s)}.od-exp-publica-card vaadin-radio-group{width:100%}.od-exp-publica-card vaadin-radio-button{border:1px solid var(--od-border);border-radius:10px;padding:6px 10px;margin:2px 0}.od-exp-publica-card vaadin-radio-button[checked]{border-color:var(--lumo-primary-color);background:var(--od-brand-soft)}.od-exp-join{width:100%;gap:6px;padding:var(--lumo-space-s) 0;border-bottom:1px solid var(--od-border);margin-bottom:var(--lumo-space-s)}@media (max-width: 600px){.od-exp-publica{padding:var(--lumo-space-s)}.od-exp-publica-card{padding:var(--lumo-space-m);border-radius:12px}}.od-exp-semana{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:var(--lumo-space-s);width:100%}.od-exp-semana-dia{border:1px solid var(--od-border);border-radius:12px;padding:var(--lumo-space-s) var(--lumo-space-m);background:var(--od-surface);display:flex;flex-direction:column;gap:6px;min-width:0}.od-exp-semana-dia--hoje{border-color:var(--lumo-primary-color);background:var(--od-brand-soft)}.od-exp-semana-dia--passado{opacity:.72}.od-exp-semana-cab{display:flex;align-items:center;justify-content:space-between;gap:8px}.od-exp-semana-linha{display:flex;align-items:flex-start;gap:10px;min-width:0}.od-exp-semana-hora{font-variant-numeric:tabular-nums;font-weight:700;color:var(--od-accent);min-width:3.2em}.od-exp-semana-txt{display:flex;flex-direction:column;min-width:0;flex:1}.od-exp-semana-txt>span{overflow:hidden;text-overflow:ellipsis}.od-exp-strong{font-weight:700;color:var(--od-text-strong)}
