.permissions-page{min-width:0}.permissions-filters{gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.permissions-filters .field{flex:240px}.permissions-table-scroll{border:1px solid var(--color-slate-200);border-radius:var(--radius-md);background:var(--color-surface);max-width:100%;overflow-x:auto}.permissions-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.permissions-table th,.permissions-table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--color-slate-200);vertical-align:middle}.permissions-table th{color:var(--color-navy-900);font-weight:600}.permissions-table thead{background:var(--color-slate-50)}.permissions-table td{overflow-wrap:anywhere}.permissions-table:not(.permission-matrix){min-width:760px}.permissions-table .btn{white-space:nowrap}.permissions-secondary{color:var(--color-slate-700);font-size:var(--text-xs);margin-top:var(--space-1);display:block}.permissions-pagination{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.permissions-group{margin:var(--space-5) 0 0;border:0;min-width:0;padding:0}.permissions-group legend{padding:0 0 var(--space-2);font-weight:700}.permission-row{gap:var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--color-slate-200);justify-content:space-between;align-items:center;display:flex}.permission-row label{flex:1}.permission-row select{width:270px;max-width:100%;min-height:44px;padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);color:var(--color-slate-700);background:var(--color-surface);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm)}.permission-row select:focus-visible{outline:2px solid var(--color-cobalt-600);outline-offset:2px}.permissions-role-select{width:170px;max-width:100%;min-height:40px;padding:var(--space-1) var(--space-2);font:inherit;font-size:var(--text-sm);color:var(--color-slate-700);background:var(--color-surface);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm)}.permissions-role-select:disabled{color:var(--color-slate-400);background:var(--color-slate-50);cursor:not-allowed}.permissions-role-select:focus-visible{outline:2px solid var(--color-cobalt-600);outline-offset:2px}.permission-inherited{align-items:center;gap:var(--space-1);display:flex}.permission-row .permission-granted{color:var(--color-success-700);border-color:var(--color-success-700)}.permission-row .permission-denied{color:var(--color-error-700);border-color:var(--color-error-700)}.permission-group-heading{background:var(--color-slate-100)}.permission-matrix{min-width:590px}.permission-toggle{align-items:center;gap:var(--space-2);cursor:pointer;min-height:44px;display:inline-flex}.permission-toggle input{width:20px;height:20px;accent-color:var(--color-success-700)}.permission-override{width:-moz-fit-content;width:fit-content;color:var(--color-cobalt-700);background:var(--color-cobalt-100);border-radius:var(--radius-sm);padding:2px var(--space-2);font-size:var(--text-xs);display:block}.permission-role-actions{gap:var(--space-6);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.permission-role-actions>div{flex:250px}.permission-role-actions h2{font-size:var(--text-base);margin-bottom:var(--space-3)}.permissions-success{color:var(--color-success-700)}@media (max-width:600px){.permission-row{align-items:stretch;gap:var(--space-2);flex-direction:column}.permission-row select{width:100%}.permissions-pagination span{font-size:var(--text-xs)}}.view-as-banner{z-index:45;justify-content:center;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-warning-100);color:var(--color-warning-700);border-bottom:1px solid var(--color-warning-600);font-size:var(--text-sm);overflow-wrap:anywhere;flex-wrap:wrap;display:flex;position:fixed;top:0;bottom:auto;left:0;right:0}.view-as-banner>span{min-width:0}.view-as-banner .btn{color:inherit;border-color:currentColor;min-height:44px}.view-as-banner .btn:hover{background:var(--color-surface)}.view-as-countdown{font-variant-numeric:tabular-nums;white-space:nowrap}.shell.has-view-as{padding-top:var(--view-as-height,64px)}.shell.has-view-as .app-topbar{top:var(--view-as-height,64px)}.shell.has-view-as .desktop-sidebar{top:var(--view-as-height,64px);height:calc(100dvh - var(--view-as-height,64px))}.view-as-ended{gap:var(--space-4);flex-direction:column;display:flex}@media print{.view-as-banner{position:static}.view-as-banner .btn{display:none}.shell.has-view-as{padding-top:0}}.stu-cal{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.stu-cal-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.stu-cal-head h2{font-size:var(--text-lg);color:var(--color-ink-900);margin:0}.stu-cal-nav{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-ink-700);display:flex}.stu-cal-nav .btn{width:40px;font-size:var(--text-lg);padding:0}.stu-cal-empty{margin:0}.stu-cal-days{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stu-cal-day{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.stu-cal-day.today{border-color:var(--color-cyan-500);box-shadow:0 0 0 1px var(--color-cyan-500) inset}.stu-cal-day.free{padding-block:var(--space-2);background:0 0}.stu-cal-date{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.stu-cal-date strong{font-size:var(--text-sm);color:var(--color-ink-900)}.stu-cal-date span{font-size:var(--text-xs);color:var(--color-ink-500);font-variant-numeric:tabular-nums}.stu-cal-free{font-size:var(--text-xs);color:var(--color-ink-300);margin:0}.stu-cal-entry{padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-cyan-500);background:var(--color-cyan-50);border-radius:var(--radius-sm);flex-direction:column;gap:4px;display:flex}.stu-cal-entry.open{border-left-color:var(--color-success-600,var(--color-cyan-600))}.stu-cal-entry.canceled{opacity:.6;border-left-color:var(--color-ink-300);background:var(--color-ink-100)}.stu-cal-entry-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.stu-cal-shift{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-700);font-weight:700}.stu-cal-teacher{font-size:var(--text-sm);color:var(--color-ink-900);margin:0;font-weight:600}.stu-cal-teacher span{color:var(--color-ink-500);font-weight:400}.stu-cal-line{font-size:var(--text-xs);color:var(--color-ink-700);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.stu-cal-line svg{color:var(--color-ink-500);flex:none}.stu-cal-line a{color:var(--color-ink-900);font-weight:600}.stu-cal-entry .btn{align-self:flex-start;margin-top:4px;text-decoration:none}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact}}.coord-shell .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.coord-shell{box-shadow:none}.coord-shell .app-topbar .brand{color:var(--color-ink-900);text-decoration:none}.coord-home-button,.coord-system-menu .coord-topmenu-trigger{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-ink-900);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.coord-home-button:hover,.coord-topmenu-trigger:hover,.coord-topmenu-trigger[aria-expanded=true]{background:var(--color-ink-100)}.coord-shell .app-topbar .coord-home-button+.coord-system-menu{margin-left:calc(var(--space-3) * -1 + var(--space-1))}.coord-topmenu{flex:none;position:relative}.coord-user-menu{margin-left:auto}.coord-user-menu .coord-topmenu-trigger{align-items:center;gap:var(--space-2);padding:4px var(--space-2);border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:right;cursor:pointer;background:0 0;border:0;line-height:1.2;display:flex}.coord-user-menu .shell-user-copy{flex-direction:column;display:flex}.coord-user-menu .shell-user-copy b{font-size:var(--text-sm);font-weight:600;display:block}.coord-user-menu .shell-user-copy span{font-family:var(--font-mono);color:var(--color-ink-500);font-size:11px}.coord-topmenu-trigger:focus-visible{outline:3px solid var(--color-cobalt-600);outline-offset:2px}.coord-topmenu-item:focus-visible{outline:3px solid var(--color-cobalt-600);outline-offset:2px}.coord-topmenu-panel{z-index:70;min-width:220px;padding:var(--space-1);background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;display:flex;position:absolute;top:calc(100% + 6px)}.coord-topmenu-panel.align-left{left:0}.coord-topmenu-panel.align-right{right:0}.coord-topmenu-item{align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:6px var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-700);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;font-weight:600;display:flex}.coord-topmenu-item:hover,.coord-topmenu-item:focus{background:var(--color-ink-100);color:var(--color-ink-900)}.coord-topmenu-item.active{background:var(--color-cyan-50);color:var(--color-ink-900)}.coord-topmenu-item.separated{margin-top:var(--space-1);border-top:1px solid var(--color-ink-100);border-radius:0 0 var(--radius-sm) var(--radius-sm)}.coord-topmenu-icon{color:var(--color-ink-500);flex:none;display:inline-flex}@media (min-width:900px){.shell.wide.coord-shell{--coord-topbar-h:64px;flex-direction:column}.shell.wide.coord-shell .app-topbar{height:var(--coord-topbar-h);padding-top:0;padding-bottom:0;display:flex}}.coord-home{gap:var(--space-6);flex-direction:column;display:flex}.coord-primary-actions{gap:var(--space-4);width:100%;max-width:880px;margin:var(--space-4) auto var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.coord-primary-actions .btn{height:auto;min-height:72px;padding:var(--space-4)}.coord-primary-actions .btn,.coord-registration-links .btn,.coord-schedule{text-decoration:none}.coord-started{border-top:1px solid var(--color-slate-300);padding-top:var(--space-5);gap:var(--space-5);flex-direction:column;display:flex}.coord-started h2{font-size:var(--text-xl);line-height:var(--lh-xl)}.coord-schedules{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:0;padding:0;list-style:none;display:grid}.coord-schedule{gap:var(--space-2);padding:var(--space-5);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);background:var(--color-surface);height:100%;color:var(--color-navy-900);overflow-wrap:anywhere;flex-direction:column;display:flex}.coord-schedule:hover{background:var(--color-cyan-50);border-color:var(--color-cyan-600)}.coord-schedule strong{font-size:var(--text-lg)}.coord-schedule span{font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums}.coord-empty{gap:var(--space-2);padding:var(--space-5) 0;flex-direction:column;display:flex}.coord-success{color:var(--color-success-700);font-size:var(--text-sm)}.coord-heading{border-bottom:1px solid var(--color-slate-300);padding-bottom:var(--space-4);margin-bottom:var(--space-5)}.coord-new-form{max-width:480px;margin:var(--space-7) auto;gap:var(--space-5);flex-direction:column;display:flex}.coord-new-form fieldset{gap:var(--space-5);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.coord-new-form input,.coord-new-form select{min-width:0}.coord-form-actions{gap:var(--space-3);margin-top:var(--space-3);display:flex}.coord-registration-links{gap:var(--space-4);max-width:720px;margin:var(--space-7) auto;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.coord-registration-links .btn{height:auto;min-height:80px;padding:var(--space-4);white-space:normal;text-align:center}@media (max-width:540px){.coord-user-menu .shell-user-copy{display:none}.coord-primary-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.coord-primary-actions .btn{font-size:var(--text-sm);padding:var(--space-3) var(--space-2)}.coord-new-form,.coord-registration-links{margin-top:var(--space-6)}.coord-registration-links{grid-template-columns:1fr}}.coord-inline-error{color:var(--color-error-700);font-size:var(--text-sm);margin:0}.coord-workplaces{gap:var(--space-4);flex-direction:column;display:flex}.coord-workplace-locations{gap:var(--space-2);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.coord-workplace-locations legend{font-size:var(--text-sm);color:var(--color-ink-700);margin-bottom:var(--space-2);font-weight:600}.coord-workplace{border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.coord-workplace.selected{border-color:var(--color-cyan-600);background:var(--color-cyan-50)}.coord-check{align-items:center;gap:var(--space-2);cursor:pointer;min-height:36px;font-size:var(--text-sm);display:flex}.coord-check input{flex:none;width:18px;height:18px}.coord-workplace-sectors{gap:var(--space-1);padding:var(--space-1) 0 var(--space-2) var(--space-6);flex-direction:column;display:flex}.coord-sector-add{gap:var(--space-2);margin-top:var(--space-2);align-items:center;display:flex}.coord-sector-add input{min-width:0;height:40px;padding:0 var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);background:var(--color-surface);flex:1}.coord-sectors{gap:var(--space-3);border-top:1px solid var(--color-slate-300);padding-top:var(--space-4);flex-direction:column;display:flex}.coord-sectors h3{font-size:var(--text-base);margin:0}.coord-sector-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.coord-sector-list li{align-items:center;gap:var(--space-2);display:flex}.coord-sector-list li>span{min-width:0;font-size:var(--text-sm);flex:1}.coord-sector-list li>input{min-width:0;height:40px;padding:0 var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);flex:1}.coord-notice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-slate-100);font-size:var(--text-sm);flex-direction:column;margin:0;display:flex}.coord-notice p{margin:0}.coord-notice .btn{text-decoration:none}.coord-schedule em.coord-schedule-status{font-style:normal;font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-slate-100);color:var(--color-slate-700);align-self:flex-start;font-weight:600}.coord-schedule em.coord-schedule-status.published{color:var(--color-success-700);background:var(--color-cyan-50)}.coord-class-card .coord-class-card-schedules{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.coord-class-card .coord-class-card-schedules em.coord-schedule-status{align-self:center}.coord-class-bar{align-items:center;gap:var(--space-5);margin:var(--space-4) 0 var(--space-5);grid-template-columns:minmax(180px,auto) minmax(0,1fr);display:grid}.coord-class-bar .coord-primary-actions{max-width:none;margin:0}.coord-class-badge{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.coord-class-badge-label{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-slate-500);font-weight:600}.coord-class-badge-name{font-size:var(--text-xl);line-height:var(--lh-xl);color:var(--color-navy-900);overflow-wrap:anywhere;margin:0;font-weight:700}.coord-class-badge-name a{color:inherit;text-decoration:none}.coord-class-badge-name a:hover{text-decoration:underline}.coord-class-badge-switch{font-size:var(--text-sm)}.coord-class-strip{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--color-slate-300);border-left:4px solid var(--color-cyan-600);border-radius:var(--radius-md);background:var(--color-surface);display:flex}.coord-class-strip .coord-class-badge{align-items:baseline;column-gap:var(--space-3);flex-flow:wrap}.coord-class-strip .coord-class-badge-name{font-size:var(--text-lg);line-height:var(--lh-lg)}.coord-empty .coord-empty-cta{align-self:flex-start;text-decoration:none}@media (max-width:760px){.coord-class-bar{gap:var(--space-3);grid-template-columns:1fr;margin-top:0}.coord-class-badge{align-items:baseline;column-gap:var(--space-3);flex-flow:wrap}}.coord-class-filter{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.coord-class-filter p{font-size:var(--text-sm);margin:0}.coord-primary-actions.in-class{grid-template-columns:repeat(3,minmax(0,1fr))}.coord-new-period{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.coord-new-period>.coord-new-period-label,.coord-new-period>.hint,.coord-new-period>.field-error-msg{grid-column:1/-1}.coord-new-period-label{font-size:var(--text-sm);color:var(--color-ink-700);font-weight:600}.coord-new-period .hint{font-size:var(--text-xs);color:var(--color-ink-500)}.coord-new-period .field-error-msg{font-size:var(--text-xs);color:var(--color-error-600);font-weight:600}.coord-schedule.coord-rotation{padding-left:calc(var(--space-5) + 2px);position:relative}.coord-rotation-mark{left:0;top:var(--space-4);bottom:var(--space-4);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-slate-300);width:4px;position:absolute}.coord-schedule strong.coord-rotation-legacy{color:var(--color-slate-500);font-style:italic;font-weight:600}@media (max-width:540px){.coord-new-period{grid-template-columns:1fr}}.calendar-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-ink-100);box-shadow:var(--shadow-md);flex-direction:column;display:flex;overflow:hidden}.calendar-header-bar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-ink-100);background:var(--color-paper);flex-wrap:wrap;display:flex}.calendar-nav-group{align-items:center;gap:var(--space-3);display:flex}.calendar-btn-today{border-radius:var(--radius-md);font-size:var(--text-sm);border:1.5px solid var(--color-ink-300);background:var(--color-surface);color:var(--color-ink-900);cursor:pointer;padding:6px 14px;font-weight:600;transition:all .12s}.calendar-btn-today:hover{background:var(--color-ink-100);border-color:var(--color-ink-700)}.calendar-nav-arrows{align-items:center;gap:2px;display:inline-flex}.calendar-btn-nav{border:1.5px solid var(--color-ink-300);background:var(--color-surface);width:34px;height:34px;color:var(--color-ink-900);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .12s;display:flex}.calendar-btn-nav:hover{background:var(--color-ink-100);border-color:var(--color-ink-700)}.calendar-period-title{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-ink-900);letter-spacing:-.01em;margin-left:var(--space-2);font-weight:700}.calendar-view-toggle{background:var(--color-ink-100);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.calendar-view-toggle button{border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-ink-500);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-weight:600;transition:all .12s}.calendar-view-toggle button.active{background:var(--color-surface);color:var(--color-ink-900);box-shadow:var(--shadow-sm)}.calendar-filters-bar{padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-ink-100);gap:var(--space-3);flex-direction:column;display:flex}.calendar-filter-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.calendar-search-input{flex:1.5;min-width:220px;position:relative}.calendar-search-input input{height:38px;font-size:var(--text-sm);padding-left:36px}.calendar-search-input span.icon{color:var(--color-ink-300);pointer-events:none;position:absolute;top:10px;left:10px}.calendar-select{height:38px;font-size:var(--text-sm);padding:0 var(--space-3);border-radius:var(--radius-md);border:1.5px solid var(--color-ink-300);background:var(--color-surface);color:var(--color-ink-900);flex:1;min-width:170px}.calendar-specialty-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.calendar-specialty-chip{border-radius:var(--radius-full);cursor:pointer;background:var(--color-ink-100);color:var(--color-ink-700);border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .12s;display:inline-flex}.calendar-specialty-chip:hover{transform:translateY(-1px)}.calendar-specialty-chip.active{border-color:var(--color-ink-900);box-shadow:0 1px 3px #0000001a}.calendar-specialty-chip .chip-dot{border-radius:50%;width:8px;height:8px}.calendar-month-grid{background:var(--color-ink-100);border-bottom:1px solid var(--color-ink-100);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.calendar-day-header{background:var(--color-paper);text-align:center;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-500);border-bottom:1px solid var(--color-ink-100);padding:10px 8px;font-size:11px;font-weight:700}.calendar-day-header.weekend{color:var(--color-ouro-700)}.calendar-day-cell{background:var(--color-surface);flex-direction:column;gap:4px;min-height:130px;padding:6px;transition:background .1s;display:flex}.calendar-day-cell:hover{background:#fdfdfd}.calendar-day-cell.other-month{opacity:.55;background:#fbfbfb}.calendar-day-cell.today{background:#fbf9f4}.calendar-day-top{justify-content:space-between;align-items:center;margin-bottom:2px;padding:2px 4px;display:flex}.calendar-day-num{font-family:var(--font-sans);color:var(--color-ink-700);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:flex}.calendar-day-num.today{background:var(--color-ink-900);color:var(--color-paper);box-shadow:var(--shadow-sm);font-weight:700}.calendar-day-events-count{font-family:var(--font-mono);color:var(--color-ink-300);font-size:10px;font-weight:600}.calendar-events-list{flex-direction:column;flex:1;gap:4px;display:flex}.cal-event-card{border-radius:var(--radius-sm);border:1px solid var(--color-ink-100);cursor:pointer;text-align:left;flex-direction:column;gap:3px;padding:6px 8px;transition:transform .1s,box-shadow .1s;display:flex;position:relative}.cal-event-card:hover{box-shadow:var(--shadow-sm);z-index:2;transform:translateY(-1px)}.cal-event-time-row{font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:4px;font-size:10px;font-weight:600;display:flex}.cal-event-title{white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:700;line-height:1.25;overflow:hidden}.cal-event-sub{opacity:.85;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-size:10px;display:flex;overflow:hidden}.cal-event-students-chips{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.cal-student-avatar-chip{width:18px;height:18px;color:inherit;background:#0000001a;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex}.cal-more-events-btn{color:var(--color-ink-500);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;padding:3px 6px;font-size:11px;font-weight:600;transition:all .1s}.cal-more-events-btn:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.calendar-week-grid{background:var(--color-ink-100);grid-template-columns:repeat(7,1fr);gap:1px;min-height:520px;display:grid}.calendar-week-column{background:var(--color-surface);flex-direction:column;display:flex}.calendar-week-column.today{background:#fbf9f4}.calendar-week-col-header{text-align:center;border-bottom:1px solid var(--color-ink-100);background:var(--color-paper);padding:12px 8px}.calendar-week-col-dayname{font-family:var(--font-mono);text-transform:uppercase;color:var(--color-ink-500);font-size:11px;font-weight:700}.calendar-week-col-daynum{font-size:var(--text-lg);color:var(--color-ink-900);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;font-weight:700;display:inline-flex}.calendar-week-col-daynum.today{background:var(--color-ink-900);color:var(--color-paper)}.calendar-week-col-body{padding:var(--space-3);gap:var(--space-3);flex-direction:column;flex:1;display:flex}.cal-week-card{padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-ink-100);cursor:pointer;flex-direction:column;gap:6px;transition:transform .12s,box-shadow .12s;display:flex}.cal-week-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.cal-week-card-header{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.cal-week-card-title{font-size:var(--text-sm);font-weight:700;line-height:1.3}.cal-week-card-time{font-family:var(--font-mono);font-size:11px;font-weight:600}.cal-week-card-info{opacity:.9;flex-direction:column;gap:3px;font-size:12px;display:flex}.cal-week-students-list{border-top:1px dashed #0000001f;flex-direction:column;gap:3px;margin-top:4px;padding-top:6px;display:flex}.cal-week-student-item{align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.cal-event-modal-head{padding:var(--space-4) var(--space-5);justify-content:space-between;align-items:flex-start;gap:var(--space-3);border-bottom:1px solid var(--color-ink-100);display:flex}.cal-event-progress-bar{border-radius:var(--radius-full);background:var(--color-ink-100);height:8px;margin-top:4px;overflow:hidden}.cal-event-progress-fill{border-radius:var(--radius-full);height:100%}@media (max-width:768px){.calendar-month-grid{grid-template-columns:repeat(7,minmax(42px,1fr));overflow-x:auto}.calendar-week-grid{grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto}.cal-event-sub{display:none}}.coord-calendar{margin-top:var(--space-2)}.coord-calendar-actions{align-items:center;gap:var(--space-3);display:flex}.coord-calendar-actions .btn{gap:6px;height:34px}.coord-calendar-label{color:var(--color-ink-500);margin-right:4px;font-size:11px;font-weight:700}.coord-calendar-loading,.coord-calendar-error{padding:var(--space-3) var(--space-4);margin:0}.coord-cal-card{text-align:left;width:100%;font:inherit;cursor:pointer;flex-direction:column;align-items:stretch;display:flex}.coord-cal-card.draft{border-style:dashed}.coord-cal-status{text-transform:uppercase;letter-spacing:.03em;background:#ffffffb3;border-radius:4px;padding:0 4px;font-size:9px;font-weight:700}.coord-cal-status.draft{color:var(--color-warning-700)}.coord-cal-status.published{color:var(--color-success-700)}.coord-cal-meta{opacity:.85;font-variant-numeric:tabular-nums;justify-content:space-between;gap:4px;font-size:10px;font-weight:600;display:flex}.coord-cal-meta .full{color:var(--color-error-700)}.coord-cal-students{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;opacity:.9;font-size:10px}.coord-calendar-shift{flex-direction:column;gap:6px;display:flex}.coord-calendar-shift+.coord-calendar-shift{margin-top:var(--space-2)}.coord-calendar-shift-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-500);font-size:10px;font-weight:700}.coord-calendar-empty{padding:var(--space-4) var(--space-2);text-align:center;color:var(--color-ink-300);font-size:var(--text-xs);margin:0;font-style:italic}.coord-calendar-day-list{gap:var(--space-2);flex-direction:column;display:flex}.coord-calendar-students{gap:var(--space-1);margin-top:var(--space-3);font-size:var(--text-sm);flex-direction:column;display:flex}.coord-calendar-students ol{font-variant-numeric:tabular-nums;gap:2px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:760px){.calendar-header-bar{gap:var(--space-3);flex-wrap:wrap}.calendar-filter-row{flex-wrap:wrap}.calendar-filter-row>*{flex:100%}.calendar-month-grid{overflow-x:auto}}.coord-flow{gap:var(--space-5);flex-direction:column;display:flex}.coord-flow-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);border-bottom:1px solid var(--color-slate-300);padding-bottom:var(--space-3);display:flex}.coord-flow-header h1{font-size:var(--text-2xl);color:var(--color-navy-900);margin:0;line-height:1.2}.coord-flow-dates{align-items:center;gap:var(--space-2) var(--space-3);margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.coord-status{padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-slate-100);color:var(--color-slate-700);font-weight:600}.coord-status.published{background:var(--color-success-100,var(--color-cyan-50));color:var(--color-success-700)}.coord-link-button{color:var(--color-cobalt-600);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.coord-dates-form{align-items:flex-end;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.coord-dates-form label{font-size:var(--text-xs);color:var(--color-slate-700);flex-direction:column;gap:2px;display:flex}.coord-dates-form input{height:40px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);font:inherit}.coord-steps ol{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.coord-steps a{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--color-slate-500);border:1px solid #0000;border-radius:999px;text-decoration:none;display:inline-flex}.coord-steps a span{background:var(--color-slate-100);width:22px;height:22px;font-size:var(--text-xs);border-radius:50%;place-items:center;font-weight:600;display:inline-grid}.coord-steps a.active{color:var(--color-navy-900);border-color:var(--color-cyan-600);background:var(--color-cyan-50);font-weight:600}.coord-steps a.active span{background:var(--color-cyan-500);color:var(--color-navy-900)}.coord-lines{gap:var(--space-2);flex-direction:column;display:flex}.coord-line{gap:var(--space-2);grid-template-columns:32px minmax(160px,2fr) minmax(240px,2.6fr) 80px minmax(224px,auto) 76px minmax(150px,auto);align-items:center;display:grid}.coord-line-head{font-size:var(--text-sm);color:var(--color-navy-900);text-align:center;padding-bottom:var(--space-1);border-bottom:1px solid var(--color-slate-300);font-weight:600}.coord-head-filter{-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm);cursor:pointer;max-width:100%;min-height:32px;color:inherit;font:inherit;text-align:center;text-overflow:ellipsis;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2364748b' stroke-width='1.6'/%3E%3C/svg%3E") right 7px center no-repeat;border:1px solid #0000;padding:4px 22px 4px 8px;font-weight:600}.coord-head-filter:hover{border-color:var(--color-slate-300);background-color:var(--color-surface)}.coord-head-filter:focus-visible{outline:3px solid var(--color-cobalt-600);outline-offset:1px}.coord-head-filter.active{border-color:var(--color-cyan-600);background-color:var(--color-cyan-50);color:var(--color-navy-900)}.coord-filter-bar{display:none}.coord-col-filter{max-width:100%;display:inline-block;position:relative}.coord-col-filter-panel{z-index:40;min-width:220px;max-width:min(320px,90vw);max-height:320px;padding:var(--space-2);gap:var(--space-2);text-align:left;background:var(--color-surface);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;font-weight:400;display:flex;position:absolute;top:calc(100% + 4px);left:50%;overflow-y:auto;transform:translate(-50%)}.coord-col-filter-panel ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.coord-col-filter-panel li.indent{padding-left:var(--space-5)}.coord-col-filter-panel label{align-items:center;gap:var(--space-2);min-height:32px;padding:2px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--color-navy-900);display:flex}.coord-col-filter-panel label:hover{background:var(--color-slate-100,#f1f5f9)}.coord-col-filter-panel input{width:16px;height:16px;accent-color:var(--color-cyan-600);flex:none}.coord-col-filter-panel .coord-link-button{font-size:var(--text-sm);padding:0 var(--space-2);align-self:flex-start}.coord-filter-status{font-size:var(--text-sm);color:var(--color-slate-700);margin:0}.coord-line-no{font-weight:700;font-size:var(--text-sm);color:var(--color-navy-900);text-align:right;font-variant-numeric:tabular-nums}.coord-line select{width:100%;min-width:0;height:40px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--text-sm);color:var(--color-navy-900)}.coord-line select:disabled{background:var(--color-slate-100);color:var(--color-slate-500)}.coord-line.saved>span[role=cell]:not(.coord-line-no):not(.coord-line-actions){min-height:40px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-slate-100);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;align-items:center;display:flex;overflow:hidden}.coord-line-actions{gap:var(--space-2);align-items:center;display:flex}.coord-line-save{border:1.5px solid var(--color-cyan-600);background:var(--color-surface);width:40px;height:40px;color:var(--color-navy-900);font-size:var(--text-lg);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:inline-grid}.coord-line-save:hover:not(:disabled){background:var(--color-cyan-500)}.coord-line-save:disabled{border-color:var(--color-slate-300);color:var(--color-slate-300);cursor:not-allowed}.coord-line-wrap>p{margin:var(--space-1) 0 0 40px}.coord-line-note{font-size:var(--text-xs);color:var(--color-slate-500)}.coord-line-add{border-radius:var(--radius-sm);border:1.5px solid var(--color-slate-300);background:var(--color-surface);width:36px;height:36px;font-size:var(--text-xl);color:var(--color-navy-900);cursor:pointer;align-self:flex-start;margin-left:4px;line-height:1}.coord-line-add:hover{background:var(--color-cyan-50);border-color:var(--color-cyan-600)}.coord-line.saved>span.coord-loc-cell{gap:var(--space-2)}.coord-loc-sector{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.coord-loc-shared{color:var(--color-warning-600,#b7791f);opacity:.8;cursor:help;flex:none;margin-left:auto;display:inline-flex}.coord-loc-edit{gap:var(--space-2);min-width:0;display:flex}.coord-line .coord-loc-select{flex:0 0 110px;width:110px}.coord-line .coord-loc-select[style]{border-left:4px solid var(--loc-color);background:color-mix(in srgb, var(--loc-color) 8%, #fff);color:color-mix(in srgb, var(--loc-color) 72%, #000);font-weight:700}.coord-loc-edit>select:last-child{flex:auto}.coord-shared-warning{align-items:center;gap:var(--space-2);margin:var(--space-1) 0 0 40px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-warning-300,#f6d58e);border-radius:var(--radius-sm);background:var(--color-warning-50,#fff8e6);color:var(--color-warning-800,#7a4b00);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.coord-shared-warning>svg{color:var(--color-warning-600,#b7791f);flex:none}.coord-shared-warning>span{flex:260px}.coord-line.saved>span.coord-time-cell{gap:var(--space-2);font-variant-numeric:tabular-nums;justify-content:space-between}.coord-time-edit{flex-direction:column;gap:4px;min-width:0;display:flex}.coord-time-inputs{color:var(--color-slate-500);align-items:center;gap:4px;display:flex}.coord-time-inputs input{min-width:0;height:40px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--text-sm);color:var(--color-navy-900);font-variant-numeric:tabular-nums;flex:1 1 0}.coord-time-inputs input:disabled{background:var(--color-slate-100);color:var(--color-slate-500)}.coord-time-chips{flex-wrap:wrap;gap:4px;display:flex}.coord-time-chip{padding:2px var(--space-2);border:1px solid var(--color-slate-300);background:var(--color-surface);font:inherit;font-size:var(--text-xs);color:var(--color-slate-700);cursor:pointer;border-radius:999px}.coord-time-chip:hover:not(:disabled){border-color:var(--color-cyan-600);background:var(--color-cyan-50)}.coord-time-chip.active{border-color:var(--color-cyan-600);background:var(--color-cyan-50);color:var(--color-navy-900);font-weight:600}.coord-time-chip:disabled{cursor:not-allowed;opacity:.6}.coord-time-hours{font-size:var(--text-xs);color:var(--color-slate-500);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.coord-summary{border-top:1px solid var(--color-slate-300);padding-top:var(--space-4)}.coord-summary h2{font-size:var(--text-lg);margin:0 0 var(--space-1);color:var(--color-navy-900)}.coord-summary p{font-size:var(--text-sm);color:var(--color-slate-700);font-variant-numeric:tabular-nums;margin:0}.coord-flow-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.coord-flow-footer .coord-inline-error{flex:260px}@media (max-width:900px){.coord-line-head{display:none}.coord-filter-bar{gap:var(--space-2);flex-wrap:wrap;display:flex}.coord-filter-bar .coord-col-filter{flex:140px}.coord-filter-bar .coord-col-filter-panel{left:0;transform:none}.coord-filter-bar .coord-head-filter{text-align:left;border-color:var(--color-slate-300);background-color:var(--color-surface);width:100%}.coord-filter-bar .coord-head-filter.active{border-color:var(--color-cyan-600);background-color:var(--color-cyan-50)}.coord-line{padding:var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);grid-template-columns:repeat(2,minmax(0,1fr))}.coord-line-no{text-align:left;grid-column:1/-1}.coord-line>.coord-time-edit{grid-column:1/-1}.coord-line>span[data-label]:before{content:attr(data-label);font-size:var(--text-xs);color:var(--color-slate-500);margin-bottom:2px;display:block}.coord-line.saved>span[data-label]{flex-direction:column;justify-content:center;align-items:flex-start!important}.coord-line.saved>span[data-label]:before{margin-bottom:0}.coord-line>span[data-label=Preceptor],.coord-line>span[data-label="Local / Setor"]{grid-column:1/-1}.coord-shared-warning{margin-left:0}.coord-line-actions{grid-column:1/-1;justify-content:flex-end}.coord-line-wrap>p{margin-left:0}}.coord-students-top{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.coord-summary-top{border-top:0;padding-top:0}.coord-summary-top b{color:var(--color-navy-900)}.coord-autofill{align-items:flex-end;gap:var(--space-1);flex-direction:column;max-width:100%;display:flex}.coord-autofill .btn{align-items:center;gap:var(--space-2);display:inline-flex}.coord-autofill-confirm{justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-cyan-600);border-radius:var(--radius-sm);background:var(--color-cyan-50);font-size:var(--text-sm);color:var(--color-navy-900);flex-wrap:wrap;display:flex}.coord-autofill-result{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-sm);color:var(--color-navy-900);border-left-width:4px;margin:0;display:flex}.coord-autofill-result.ok{border-color:var(--color-cyan-600);background:var(--color-cyan-50)}.coord-autofill-result.error{border-color:var(--color-error-600);color:var(--color-error-600)}.coord-students-layout{gap:var(--space-5);grid-template-columns:260px minmax(0,1fr);align-items:start;display:grid}.coord-modules{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}.coord-module-group{gap:var(--space-3);flex-direction:column;display:flex}.coord-module-group h2{font-size:var(--text-lg);color:var(--color-navy-900);border-bottom:1px solid var(--color-slate-300);padding-bottom:var(--space-1);margin:0}.coord-module{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;transition:border-color .12s,background-color .12s;display:flex}.coord-module.drop-target{border-color:var(--color-cyan-600);background:var(--color-cyan-50);border-style:dashed}.coord-module.saving{opacity:.85}.coord-module h3{font-size:var(--text-sm);color:var(--color-navy-900);overflow-wrap:anywhere;margin:0;font-weight:600}.coord-module-slots{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.coord-slot{min-width:0;position:relative}.coord-slot.filled{align-items:center;gap:var(--space-2);height:40px;padding:0 4px 0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-slate-100);font-size:var(--text-sm);color:var(--color-navy-900);display:flex}.coord-slot.filled[draggable=true]{cursor:grab}.coord-slot-no{font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.coord-slot-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.coord-slot-remove{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-slate-500);font-size:var(--text-lg);cursor:pointer;background:0 0;border:0;flex:none;line-height:1}.coord-slot-remove:hover:not(:disabled){background:var(--color-surface);color:var(--color-error-600)}.coord-slot-remove:focus-visible{background:var(--color-surface);color:var(--color-error-600)}.coord-slot-remove:disabled{cursor:not-allowed;opacity:.5}.coord-slot.vacant input{width:100%;min-width:0;height:40px;padding:0 var(--space-2);border:1px dashed var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--text-sm);color:var(--color-navy-900)}.coord-slot.vacant input:focus{border-style:solid;border-color:var(--color-cyan-600);outline:2px solid var(--color-cyan-50)}.coord-slot.vacant input:disabled{background:var(--color-slate-100)}.coord-slot ul[role=listbox]{z-index:20;border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);max-height:240px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0f172a1f}.coord-slot li[role=option]{align-items:center;gap:var(--space-2);padding:6px var(--space-2);font-size:var(--text-sm);color:var(--color-navy-900);cursor:pointer;display:flex}.coord-slot .coord-slot-alert{margin-left:0}.coord-student-alert{margin:0}.coord-slot li[role=option].active{background:var(--color-cyan-50)}.coord-slot li.no-match{padding:6px var(--space-2);font-size:var(--text-xs);color:var(--color-slate-500)}.coord-module-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.coord-module-footer .coord-inline-error,.coord-module-footer .coord-line-note{flex:260px;order:-1;margin:0}.coord-module-state{font-size:var(--text-xs);color:var(--color-slate-500);font-variant-numeric:tabular-nums}.coord-student-bar{top:calc(var(--coord-topbar-h,64px) + var(--space-4));max-height:calc(100vh - var(--coord-topbar-h,64px) - var(--space-4) * 2);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-3);position:sticky;overflow-y:auto}.coord-student-bar h2{font-size:var(--text-sm);margin:0 0 var(--space-2);color:var(--color-navy-900)}.coord-student-search{width:100%;height:36px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm)}.coord-student-hint{margin:var(--space-1) 0 var(--space-2);font-size:var(--text-xs);color:var(--color-slate-500)}@media (pointer:coarse){.coord-student-hint{display:none}}.coord-student-bar ol{margin:var(--space-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.coord-student-bar li{gap:var(--space-2);font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-bottom:1px solid var(--color-slate-100);border-radius:var(--radius-sm);grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;padding:4px 2px;display:grid}.coord-student-bar li[draggable=true]{cursor:grab}.coord-student-bar li[draggable=true]:hover{background:var(--color-cyan-50)}.coord-student-bar li.no-match{color:var(--color-slate-500);display:block}.coord-student-bar .no{color:var(--color-slate-500)}.coord-student-bar .name{white-space:nowrap;text-overflow:ellipsis;color:var(--color-navy-900);overflow:hidden}.coord-student-bar .hours{color:var(--color-slate-500)}.coord-student-bar .count{text-align:center;background:var(--color-slate-100);border-radius:999px;min-width:22px;padding:1px 6px;font-weight:600}.coord-student-bar li.zero .count{background:var(--color-error-600);color:#fff}@media (max-width:900px){.coord-students-layout{grid-template-columns:1fr}.coord-student-bar{max-height:320px;position:static}.coord-student-bar ol{column-gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.coord-autofill{align-items:stretch;width:100%}}.coord-pdf,.coord-publish{gap:var(--space-3);flex-direction:column;display:flex}.coord-pdf h2,.coord-publish h2{font-size:var(--text-lg);color:var(--color-navy-900);margin:0}.coord-publish{border-top:1px solid var(--color-slate-300);padding-top:var(--space-4)}.coord-publish>.btn{align-self:flex-start}.coord-pdf-modes{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.coord-pdf-mode{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;flex-direction:column;display:flex}.coord-pdf-mode input{opacity:0;pointer-events:none;position:absolute}.coord-pdf-mode strong{font-size:var(--text-base);color:var(--color-navy-900)}.coord-pdf-mode span{font-size:var(--text-xs);color:var(--color-slate-500)}.coord-pdf-mode.active{border-color:var(--color-cyan-600);background:var(--color-cyan-50)}.coord-pdf-mode:focus-within{outline:3px solid var(--color-cobalt-600);outline-offset:2px}.coord-pdf-filter{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.coord-pdf-filter .field{min-width:240px;font-size:var(--text-sm);color:var(--color-ink-700);font-weight:600}.coord-pdf-filter select{height:40px}.coord-validation{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-sm);flex-direction:column;display:flex}.coord-validation ul{padding-left:var(--space-5);margin:0}@media (max-width:700px){.coord-pdf-modes{grid-template-columns:repeat(2,minmax(0,1fr))}.coord-pdf-filter .field{flex:100%;min-width:0}}.coord-line-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.coord-import-notice{font-size:var(--text-xs);color:var(--color-cyan-700,var(--color-navy-900))}.coord-import-sources{gap:var(--space-2);flex-direction:column;max-height:50vh;display:flex;overflow-y:auto}.coord-import-source{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-slate-300);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);align-items:flex-start;display:flex}.coord-import-source.selected{border-color:var(--color-cyan-600);background:var(--color-cyan-50)}.coord-import-source input{margin-top:3px}.coord-import-skipped ul{margin:var(--space-2) 0 0;padding-left:var(--space-5);font-size:var(--text-sm);max-height:40vh;overflow-y:auto}.coord-flow-header h1 .coord-flow-sep{color:var(--color-slate-500);font-weight:400}.coord-flow-header h1 .coord-flow-legacy{color:var(--color-slate-500);font-style:italic;font-weight:600}.coord-flow-specialty{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;font-size:var(--text-sm);flex-wrap:wrap;display:flex}.coord-flow-specialty label{color:var(--color-warning-700,var(--color-ink-700));font-weight:600}.coord-flow-specialty select{min-width:220px;max-width:100%;height:36px;padding:0 var(--space-2);border:1px solid var(--color-slate-300);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit}.coord-specialty-toggle{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.coord-specialty-toggle input:disabled+span{color:var(--color-slate-500)}.coord-teacher-specialty{font-size:var(--text-xs);color:var(--color-slate-500)}.print-page{max-width:1120px;padding:var(--space-5) var(--space-4);color:#111;background:#fff;min-height:100vh;margin:0 auto;font-size:12px}.print-toolbar{justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.print-header{border-bottom:1px solid #999;margin-bottom:12px;padding-bottom:6px}.print-header h1{margin:0;font-size:20px}.print-header h1 span{font-weight:400}.print-header p{color:#444;font-variant-numeric:tabular-nums;margin:2px 0 0}.print-section{break-inside:avoid-page;margin-bottom:14px}.print-section h2{margin:10px 0 4px;font-size:15px}.print-section h3{color:#333;margin:6px 0 2px;font-size:13px}.print-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.print-table th,.print-table td{text-align:left;vertical-align:top;border:1px solid #999;padding:4px 6px}.print-table thead th{background:#eee;font-weight:600}.print-table tr{break-inside:avoid}.print-table .col-alunos{width:40%}.print-table .col-horario{white-space:nowrap;font-variant-numeric:tabular-nums}.print-grid{table-layout:fixed}.print-grid thead th:first-child{width:70px}.print-grid thead th:nth-child(2){width:56px}.print-grid-location{background:#fafafa;font-weight:700}.print-grid-shift{font-weight:600}.print-grid-module{overflow-wrap:anywhere;flex-direction:column;padding:2px 0;line-height:1.25;display:flex}.print-grid-module+.print-grid-module{border-top:1px dashed #bbb;margin-top:3px;padding-top:4px}.print-grid-module strong{font-weight:600}.print-footer{color:#666;margin-top:12px;font-size:10px}@page{size:A4 landscape;margin:10mm}@media print{.print-toolbar{display:none!important}.print-page{max-width:none;min-height:0;padding:0}body{background:#fff!important}}@media (max-width:700px){.print-page{overflow-x:auto}.print-grid{min-width:760px}}.platform-tenant-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.platform-tenant-actions .btn{white-space:nowrap}.view-as-people{border:0;flex:none;min-width:0;max-height:280px;margin:0;padding:0;overflow-y:auto}.view-as-people .view-as-person{align-items:center;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--color-slate-200);cursor:pointer;display:flex}.view-as-person:has(input:checked){background:var(--color-slate-100)}.view-as-person:has(input:disabled){cursor:not-allowed}.view-as-people .view-as-person input[type=radio]{width:20px;height:20px;accent-color:var(--color-ink-900);flex:none;margin:0;padding:0}.view-as-person-copy{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.view-as-person-copy>span{font-size:var(--text-sm)}.view-as-people .sr-only,.tenant-detail .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:640px){.platform-tenant-actions{flex-direction:column}.view-as-people .view-as-person{flex-wrap:wrap}}.tenant-detail{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.tenant-detail-back{align-self:flex-start}.tenant-detail-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.tenant-detail-identity{gap:var(--space-2);flex-direction:column;flex:320px;min-width:0;display:flex}.tenant-detail-identity .page-title{overflow-wrap:anywhere;outline-offset:4px;margin:0}.tenant-detail-pills{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.tenant-detail-slug{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-700);background:var(--color-ink-100);border-radius:var(--radius-sm);padding:3px 8px}.tenant-detail-contact{overflow-wrap:anywhere;margin:0}.tenant-detail-contact a{color:inherit}.tenant-detail-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.tenant-detail-actions .btn{white-space:nowrap}.tenant-detail-actions .actions-trigger{height:40px;padding:0 var(--space-3);gap:6px}.tenant-detail-notice{align-items:center}.tenant-detail-notice .btn{margin-left:auto}.tenant-tabs{gap:var(--space-1);border-bottom:1px solid var(--color-ink-100);overscroll-behavior-inline:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto}.tenant-tab{padding:12px var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-500);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;font-weight:600;transition:color .18s,border-color .18s}.tenant-tab:hover{color:var(--color-ink-900)}.tenant-tab.active{color:var(--color-ink-900);border-bottom-color:var(--color-ink-900)}.tenant-tab:focus-visible{outline:2px solid var(--color-ink-900);outline-offset:-2px;border-radius:var(--radius-sm)}.tenant-panel{outline:none;min-width:0}.tenant-panel:focus-visible{outline:2px solid var(--color-ink-300);outline-offset:4px;border-radius:var(--radius-md)}.tenant-overview{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tenant-overview .card{margin:0}.tenant-overview-usage{grid-column:1/-1}.tenant-overview .card-head{align-items:center}.tenant-overview .card-head h3,.tenant-license .card-head h3,.tenant-detail .card-head h3{font-size:var(--text-lg);line-height:var(--lh-lg);margin:0}.kv-grid{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);grid-template-columns:minmax(120px,max-content) minmax(0,1fr);margin:0;display:grid}.kv-grid dt{color:var(--color-ink-500)}.kv-grid dd{color:var(--color-ink-900);overflow-wrap:anywhere;margin:0}.kv-grid dd code{font-family:var(--font-mono);font-size:13px}.tenant-detail .empty-state{color:var(--color-ink-500);gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.tenant-detail .empty-state p{margin:0}.tenant-license{gap:var(--space-4);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);display:grid}.tenant-license .card{margin:0}.tenant-license-actions{gap:var(--space-2);flex-direction:column;display:flex}.tenant-license-rules{padding-left:var(--space-4);color:var(--color-ink-500);font-size:var(--text-xs);flex-direction:column;gap:4px;margin:0;display:flex}.tenant-users-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.tenant-users-filters{gap:var(--space-3);flex-wrap:wrap;display:flex}.tenant-users-filters .field{min-width:160px}.tenant-users-filters .field.grow{flex:220px}.tenant-settings,.tenant-settings-form{gap:var(--space-4);flex-direction:column;display:flex}.tenant-settings-group{min-width:0;margin:0}.tenant-settings-group legend{font-weight:700;font-size:var(--text-lg);margin-bottom:var(--space-2);padding:0}.tenant-settings-group:disabled{opacity:.7}.tenant-settings-fields{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}@media (max-width:900px){.tenant-overview,.tenant-license{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.tenant-detail-head{flex-direction:column}.tenant-detail-identity{flex:none;width:100%}.tenant-detail-actions{width:100%}.tenant-detail-actions>*{flex:1}.tenant-detail-actions .btn,.tenant-detail-actions .actions-trigger{justify-content:center;width:100%}.tenant-users-actions{justify-content:flex-start}.tenant-users-filters .field{flex:100%;min-width:0}.kv-grid{gap:2px var(--space-4);grid-template-columns:minmax(0,1fr)}.kv-grid dt{margin-top:var(--space-2)}.tenant-detail-notice{flex-wrap:wrap}.tenant-detail-notice .btn{margin-left:0}}:root{--color-navy-950:#060b18;--color-navy-900:#0a1128;--color-navy-800:#111e3e;--color-navy-700:#1c2e5c;--color-navy-600:#2a4382;--color-cyan-600:#00a887;--color-cyan-500:#00c49f;--color-cyan-400:#2ee6c2;--color-cyan-100:#e0f8f3;--color-cyan-50:#f0fdfa;--color-cobalt-700:#1d4ed8;--color-cobalt-600:#2563eb;--color-cobalt-100:#eff6ff;--color-slate-900:#0f172a;--color-slate-700:#334155;--color-slate-500:#64748b;--color-slate-400:#94a3b8;--color-slate-300:#cbd5e1;--color-slate-200:#e2e8f0;--color-slate-100:#f1f5f9;--color-slate-50:#f8fafc;--color-surface:#fff;--color-success-700:#047857;--color-success-600:#059669;--color-success-100:#dcfce7;--color-error-700:#b91c1c;--color-error-600:#dc2626;--color-error-100:#fee2e2;--color-warning-700:#b45309;--color-warning-600:#d97706;--color-warning-100:#fef3c7;--font-display:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "IBM Plex Mono", "SF Mono", monospace;--text-xs:12px;--lh-xs:16px;--text-sm:14px;--lh-sm:20px;--text-base:16px;--lh-base:24px;--text-lg:18px;--lh-lg:26px;--text-xl:20px;--lh-xl:28px;--text-2xl:26px;--lh-2xl:32px;--text-3xl:32px;--lh-3xl:38px;--text-4xl:44px;--lh-4xl:48px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-sm:0 1px 3px #0a11280f;--shadow-md:0 4px 16px #0a112814;--shadow-lg:0 12px 32px #0a11281f;--shadow-glow-cyan:0 0 20px #00c49f40;--shadow-glow-cobalt:0 0 20px #2563eb40;--color-ink-900:var(--color-navy-900);--color-ink-800:var(--color-navy-800);--color-ink-700:var(--color-navy-700);--color-ink-600:var(--color-navy-600);--color-ink-500:var(--color-slate-500);--color-ink-400:var(--color-slate-400);--color-ink-300:var(--color-slate-300);--color-ink-200:var(--color-slate-200);--color-ink-100:var(--color-slate-100);--color-ink-50:var(--color-slate-50);--color-paper:var(--color-slate-50);--color-ouro-900:var(--color-cyan-600);--color-ouro-700:var(--color-cyan-600);--color-ouro-600:var(--color-cyan-500);--color-ouro-300:var(--color-cyan-100);--color-ouro-100:var(--color-cyan-100);--color-ouro-50:var(--color-cyan-50);--color-green-600:var(--color-success-600);--color-primary-300:var(--color-slate-300);--color-primary-600:var(--color-navy-700);--color-primary-700:var(--color-navy-900);--color-success-500:var(--color-success-600);--color-warning-500:var(--color-warning-600);--color-error-300:var(--color-error-100);--color-border:var(--color-slate-300);--color-border-subtle:var(--color-slate-200);--color-surface-hover:var(--color-slate-100);--color-surface-sunken:var(--color-slate-50);--shadow-xl:var(--shadow-lg);--color-dark-bg:var(--color-navy-950);--color-dark-surface:var(--color-navy-800);--color-dark-border:var(--color-navy-700);--color-dark-text:var(--color-slate-50)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth}body{background:var(--color-slate-50);color:var(--color-slate-900);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;text-rendering:optimizelegibility;line-height:1.5}h1,h2,h3{font-family:var(--font-display);color:var(--color-ink-900);letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}button{font-family:inherit}a{color:var(--color-ink-700)}::selection{background:var(--color-cyan-100);color:var(--color-navy-900)}input,textarea{caret-color:var(--color-cyan-600)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-ink-900);outline-offset:2px}.skip-link{top:var(--space-2);left:var(--space-2);z-index:1000;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-ink-900);color:var(--color-paper);font-size:var(--text-sm);font-weight:700;text-decoration:none;position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.muted{color:var(--color-ink-500)}.mono{font-family:var(--font-mono)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ouro-700);font-weight:600}.section-label{margin-bottom:var(--space-2);color:var(--color-ink-700);font-size:var(--text-sm);font-weight:700;line-height:var(--lh-sm);align-items:center;gap:6px;display:flex}.shell{background:var(--color-paper);max-width:520px;min-height:100%;box-shadow:var(--shadow-md);flex-direction:column;margin:0 auto;display:flex}.shell.wide{max-width:1180px}.app-topbar{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-ink-100);background:var(--color-surface);z-index:20;display:flex;position:sticky;top:0}.app-topbar .brand{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);align-items:center;gap:8px;display:flex}.app-topbar .brand .mark{flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.app-topbar .brand .mark img{object-fit:contain;width:32px;height:32px;display:block}.app-topbar .who{text-align:right;margin-left:auto;line-height:1.2}.app-topbar .who b{font-size:var(--text-sm);font-weight:600;display:block}.app-topbar .who span{font-family:var(--font-mono);color:var(--color-ink-500);font-size:11px}.app-topbar .exit{cursor:pointer;color:var(--color-ink-500);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:flex}.app-topbar .exit:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.page{min-width:0;padding:var(--space-4);gap:var(--space-5);flex-direction:column;flex:1;display:flex}.page-title{font-size:var(--text-2xl);line-height:var(--lh-2xl);text-wrap:balance}.page-sub{max-width:75ch;color:var(--color-ink-500);font-size:var(--text-sm);line-height:var(--lh-sm)}.tabbar{background:var(--color-surface);border-top:1px solid var(--color-ink-100);z-index:20;padding-bottom:env(safe-area-inset-bottom);scrollbar-width:none;display:flex;position:sticky;bottom:0;overflow-x:auto}.tabbar::-webkit-scrollbar{display:none}.tabbar a{min-width:60px;padding:var(--space-3) var(--space-2);color:var(--color-ink-500);white-space:nowrap;flex-direction:column;flex:1 0 auto;align-items:center;gap:3px;font-size:11px;font-weight:600;text-decoration:none;transition:color .18s,background-color .18s;display:flex}.tabbar a:hover{background:var(--color-paper);color:var(--color-ink-900)}.tabbar a.active{color:var(--color-ink-900)}.tabbar a.active svg{color:var(--color-ouro-600)}.card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-ink-100);padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.card.tight{padding:var(--space-3) var(--space-4)}.card-head{align-items:flex-start;gap:var(--space-3);display:flex}.card-head h3{font-size:var(--text-xl);line-height:var(--lh-xl);flex:1}.card-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-500)}.divider{background:var(--color-ink-100);height:1px;margin:var(--space-1) 0}.kv{justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);display:flex}.kv dt{color:var(--color-ink-500)}.kv dd{font-family:var(--font-mono);color:var(--color-ink-700);text-align:right;margin:0;font-size:13px}.status-badge{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);align-items:center;gap:10px;display:flex}.status-badge.ok{background:var(--color-success-100);color:var(--color-success-700);border:1px solid #1e8a5f40}.status-badge.bad{background:var(--color-error-100);color:var(--color-error-700);border:1px solid #c6433c40}.status-badge.warn{background:var(--color-warning-100);color:var(--color-warning-700);border:1px solid #d97f1d40}.status-badge.neutral{background:var(--color-ink-100);color:var(--color-ink-700);border:1px solid var(--color-ink-300)}.status-badge .dot{border-radius:50%;flex:none;width:10px;height:10px}.status-badge.ok .dot{background:var(--color-success-600);box-shadow:0 0 0 4px var(--color-success-100)}.status-badge.bad .dot{background:var(--color-error-600);box-shadow:0 0 0 4px var(--color-error-100)}.status-badge.warn .dot{background:var(--color-warning-600);box-shadow:0 0 0 4px var(--color-warning-100)}.status-badge.neutral .dot{background:var(--color-ink-300)}.status-badge .meta{font-family:var(--font-mono);font-size:var(--text-xs);opacity:.85;margin-left:auto;font-weight:500}.status-badge .dot.pulse{animation:1.6s ease-in-out infinite pulse}[role=status].status-badge{max-width:min(420px, calc(100vw - var(--space-5) * 2))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.btn{border-radius:var(--radius-md);cursor:pointer;height:56px;font-family:var(--font-sans);font-weight:600;font-size:var(--text-lg);border:none;justify-content:center;align-items:center;gap:10px;width:100%;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .1s;display:flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--color-cyan-500);color:var(--color-navy-900);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-cyan-600);box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){background:var(--color-cyan-600);box-shadow:none}.btn-secondary{color:var(--color-ink-900);border:1.5px solid var(--color-ink-300);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-ink-100)}.btn-danger{background:var(--color-error-600);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-error-700)}.btn:disabled{background:var(--color-ink-100);color:var(--color-ink-300);cursor:not-allowed;box-shadow:none;border-color:var(--color-ink-100)}.btn small{font-weight:400;font-size:var(--text-xs);opacity:.75;display:block}.btn.sm{height:40px;font-size:var(--text-sm);border-radius:var(--radius-sm);padding:0 var(--space-3);width:auto}.btn-stack{gap:var(--space-3);flex-direction:column;display:flex}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);color:var(--color-ink-700);font-weight:600}.field input,.field select,.field textarea{border-radius:var(--radius-md);border:1.5px solid var(--color-ink-300);height:52px;padding:0 var(--space-4);font-family:var(--font-sans);font-size:var(--text-base);background:var(--color-surface);color:var(--color-ink-900);width:100%}.field input:hover:not(:disabled),.field select:hover:not(:disabled),.field textarea:hover:not(:disabled){border-color:var(--color-ink-500)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--color-ink-100);color:var(--color-ink-500);cursor:not-allowed}.field textarea{height:auto;min-height:96px;padding:var(--space-3) var(--space-4);line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-ink-900);box-shadow:0 0 0 3px var(--color-ink-100);outline:none}.field input::placeholder{color:var(--color-ink-300)}.field .hint{font-size:var(--text-xs);color:var(--color-ink-500)}.pill{border-radius:var(--radius-full);font-size:var(--text-xs);flex:none;align-items:center;gap:5px;padding:4px 10px;font-weight:600;line-height:1.3;display:inline-flex}.pill.validado{background:var(--color-ouro-100);color:var(--color-ouro-700)}.pill.pendente{background:var(--color-ink-100);color:var(--color-ink-500)}.pill.fora{background:var(--color-error-100);color:var(--color-error-700)}.pill.ok{background:var(--color-success-100);color:var(--color-success-700)}.pill.aviso{background:var(--color-warning-100);color:var(--color-warning-700)}.error-panel{background:var(--color-error-100);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);border:1px solid #c6433c4d;flex-direction:column;display:flex}.error-panel.soft{background:var(--color-warning-100);border-color:#d97f1d4d}.error-panel .msg{color:var(--color-error-700);font-weight:600;font-size:var(--text-sm);line-height:1.45}.error-panel.soft .msg{color:var(--color-warning-700)}.error-panel .code{font-family:var(--font-mono);color:var(--color-ink-500);font-size:11px}.error-panel .details{font-family:var(--font-mono);color:var(--color-ink-500);font-size:11px;line-height:1.6}.confirm{justify-content:center;align-items:center;gap:var(--space-4);text-align:center;padding:var(--space-6) 0;flex-direction:column;flex:1;display:flex}.stamp{border:3px solid var(--color-success-600);width:132px;height:132px;color:var(--color-success-700);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;animation:.32s cubic-bezier(.16,1,.3,1) stamp-in;display:flex;position:relative;transform:rotate(-9deg)}.stamp.gold{border-color:var(--color-ouro-600);color:var(--color-ouro-700)}.stamp:before{content:"";opacity:.55;border:1px dashed;border-radius:50%;position:absolute;top:8px;bottom:8px;left:8px;right:8px}.stamp svg{width:38px;height:38px}.stamp .stamp-word{font-family:var(--font-display);letter-spacing:.08em;margin-top:4px;font-size:12px;font-weight:700}@keyframes stamp-in{0%{opacity:0;transform:rotate(-30deg)scale(.4)}to{opacity:1;transform:rotate(-9deg)scale(1)}}.confirm h2{font-size:var(--text-2xl)}.confirm .ts{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-ink-500)}.qr-card{background:var(--color-ink-900);border-radius:var(--radius-lg);padding:var(--space-5);align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.qr-card .qr-label{color:var(--color-ouro-100);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase}.qr-frame{background:var(--color-surface);border-radius:var(--radius-md);border:3px solid var(--color-ouro-600);padding:10px;line-height:0}.qr-frame canvas{width:232px;height:232px;image-rendering:pixelated;display:block}.qr-ring-wrap{justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative}.qr-ring-wrap svg{width:96px;height:96px;transform:rotate(-90deg)}.qr-ring-wrap .count{font-family:var(--font-mono);font-weight:600;font-size:var(--text-2xl);color:var(--color-paper);position:absolute}.qr-ring-wrap.urgent .count{color:var(--color-warning-600)}.qr-sub{color:var(--color-ink-300);font-size:var(--text-xs);text-align:center}.qr-seq{color:var(--color-ouro-100);font-family:var(--font-mono);font-size:var(--text-xs)}.scanner{border-radius:var(--radius-lg);background:var(--color-ink-900);aspect-ratio:3/4;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner .reticle{border:3px solid var(--color-ouro-600);border-radius:var(--radius-md);position:absolute;top:18%;bottom:18%;left:12%;right:12%;box-shadow:0 0 0 100vmax #101b3373}.scanner .hint{left:0;right:0;bottom:var(--space-4);text-align:center;color:var(--color-paper);font-size:var(--text-sm);text-shadow:0 1px 4px #0009;font-weight:600;position:absolute}.list-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-ink-100);box-shadow:var(--shadow-sm);overflow:hidden}.list-card .list-head{padding:var(--space-4);border-bottom:1px solid var(--color-ink-100);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.list-card .list-head h3{font-size:var(--text-lg)}.list-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-ink-100);display:flex}.list-item:last-child{border-bottom:none}.list-item .body{flex:1;min-width:0}.avatar{background:var(--color-ink-100);width:36px;height:36px;color:var(--color-ink-700);font-weight:600;font-size:var(--text-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.avatar.flag{background:var(--color-warning-100);color:var(--color-warning-700)}.avatar.bad{background:var(--color-error-100);color:var(--color-error-700)}.list-item .name{font-weight:600;font-size:var(--text-sm);color:var(--color-ink-900)}.list-item .time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-500)}.list-item .spacer{margin-left:auto}.stat-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.stat{border-radius:var(--radius-full);align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.stat.ok{background:var(--color-success-100);color:var(--color-success-700)}.stat.geo{background:var(--color-ink-100);color:var(--color-ink-700)}.stat.warn{background:var(--color-warning-100);color:var(--color-warning-700)}.stat.bad{background:var(--color-error-100);color:var(--color-error-700)}.stat.gold{background:var(--color-ouro-100);color:var(--color-ouro-700)}.trial-banner{align-items:center;gap:var(--space-4);background:var(--color-ouro-100);border-radius:var(--radius-md);padding:var(--space-4);border:1px solid #b8791e59;display:flex}.trial-banner.danger{background:var(--color-error-100);border-color:#c6433c59}.trial-banner .icon{background:var(--color-ouro-600);width:40px;height:40px;color:var(--color-surface);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.trial-banner.danger .icon{background:var(--color-error-600)}.trial-banner .txt{flex:1;min-width:0}.trial-banner .txt b{color:var(--color-ouro-700);font-size:var(--text-sm);display:block}.trial-banner.danger .txt b{color:var(--color-error-700)}.trial-banner .txt span{font-size:var(--text-xs);color:var(--color-ink-500)}.trial-bar{background:#b8791e33;border-radius:99px;flex:1;max-width:220px;height:6px;overflow:hidden}.trial-bar i{background:var(--color-ouro-600);height:100%;display:block}.report-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-ink-100);position:relative;overflow:hidden}.report-head{padding:var(--space-5);border-bottom:2px solid var(--color-ink-900);justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.report-head h3{font-size:var(--text-xl)}.report-head .meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-500);text-align:right}.watermark{font-family:var(--font-display);color:var(--color-ink-900);opacity:.03;pointer-events:none;white-space:nowrap;letter-spacing:.05em;font-size:96px;font-weight:900;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)rotate(-18deg)}.report-scroll{z-index:1;overscroll-behavior-inline:contain;scrollbar-color:var(--color-ink-300) var(--color-paper);scrollbar-width:thin;position:relative;overflow-x:auto}.report-scroll:focus-visible{outline-offset:-3px}table.report{border-collapse:collapse;width:100%;min-width:980px}table.report thead th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-500);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-ink-100);background:var(--color-paper);white-space:nowrap;font-size:11px}table.report td{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:var(--lh-sm);border-bottom:1px solid var(--color-ink-100);vertical-align:middle}table.report tbody tr:nth-child(2n){background:#101b3304}table.report tbody tr{transition:background-color .16s}table.report tbody tr:hover{background:var(--color-paper)}table.report :-webkit-any(.mono,time,[data-numeric]){font-variant-numeric:tabular-nums}table.report :is(.mono,time,[data-numeric]){font-variant-numeric:tabular-nums}table.report td.mono{font-family:var(--font-mono);color:var(--color-ink-700);white-space:nowrap;font-size:13px}table.report td .aluno{color:var(--color-ink-900);font-weight:600}table.report td .geo{color:var(--color-ink-500);font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}table.report .empty:has(.spinner){color:#0000;min-height:132px;overflow:hidden}table.report .empty:has(.spinner) .spinner{display:none}table.report .empty:has(.spinner):before{content:"";border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-ink-100) 25%, var(--color-paper) 50%, var(--color-ink-100) 75%);background-size:200% 100%;width:min(680px,92%);height:14px;animation:1.35s ease-in-out infinite shimmer;display:block}table.report .empty:has(.spinner):after{content:"";border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-ink-100) 25%, var(--color-paper) 50%, var(--color-ink-100) 75%);background-size:200% 100%;width:min(680px,92%);height:14px;animation:1.35s ease-in-out infinite shimmer;display:block}table.report .empty:has(.spinner):after{width:min(520px,70%)}.report-foot{padding:var(--space-3) var(--space-4);font-family:var(--font-mono);color:var(--color-ink-300);border-top:1px solid var(--color-ink-100);justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;font-size:11px;display:flex}.filters{gap:var(--space-3);flex-flow:wrap;align-items:flex-end;display:flex}.filters .field{text-align:left;flex:180px;min-width:0}.filters .field>label{font-size:var(--text-xs);color:var(--color-ink-700);font-weight:600}.filters .field input,.filters .field select{width:100%;height:44px;font-size:var(--text-sm)}.filters .filter-search{flex:2 280px}.filters .filter-search input{background:var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center;padding-left:38px}.skeleton{background:linear-gradient(90deg, var(--color-ink-100) 25%, var(--color-paper) 50%, var(--color-ink-100) 75%);border-radius:var(--radius-md);background-size:200% 100%;height:92px;animation:1.35s ease-in-out infinite shimmer}.empty{text-align:center;padding:var(--space-7) var(--space-5);color:var(--color-ink-500);gap:var(--space-2);flex-direction:column;align-items:center;display:flex}.empty h3{font-size:var(--text-xl);color:var(--color-ink-700)}.empty p{max-width:52ch;line-height:var(--lh-sm)}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.row{gap:var(--space-3);align-items:center;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1}.teacher-open-session-actions{gap:var(--space-2);display:flex}.teacher-open-session-actions .btn{min-width:0;min-height:44px}.teacher-open-session-actions .grow{flex:auto}.center{text-align:center}@media (max-width:480px){.teacher-open-session-actions{flex-direction:column;align-items:stretch}.teacher-open-session-actions .btn{width:100%}}.login-wrap{min-height:100%;padding:var(--space-6) var(--space-4);justify-content:center;gap:var(--space-5);flex-direction:column;max-width:440px;margin:0 auto;display:flex}.login-brand{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}.login-brand .login-logo{object-fit:contain;filter:drop-shadow(0 10px 18px #0a112829);width:min(100%,300px);height:auto;max-height:250px}.login-brand .activation-logo,.login-brand img[src="/logo-mark.png"]{object-fit:contain;width:clamp(64px,12vw,80px);height:auto;max-height:80px}.login-brand h1{font-size:var(--text-3xl);line-height:var(--lh-3xl)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;padding:var(--space-4);background:#101b3373;justify-content:center;align-items:center;animation:.18s ease-out modal-fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-ink-100);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:620px;max-height:85vh;animation:.2s cubic-bezier(.16,1,.3,1) modal-slide;display:flex;overflow:hidden}@keyframes modal-slide{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-card form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-ink-100);justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-paper);flex:none;display:flex}.modal-head h3{font-size:var(--text-xl);line-height:1.2}.modal-close{cursor:pointer;color:var(--color-ink-500);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;display:flex}.modal-close:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.modal-close:active{transform:scale(.94)}.modal-body{padding:var(--space-5);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.modal-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-ink-100);background:var(--color-paper);justify-content:flex-end;align-items:center;gap:var(--space-3);flex:none;display:flex}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--color-error-600);box-shadow:0 0 0 3px var(--color-error-100)}.field .field-error-msg{font-size:var(--text-xs);color:var(--color-error-600);margin-top:2px;font-weight:600}.form-grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:600px){.form-grid-2{grid-template-columns:1fr}}.form-grid-3{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.modal-content{width:100%;max-height:min(88vh,760px);padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg);animation:.2s cubic-bezier(.16,1,.3,1) modal-slide;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin:calc(var(--space-5) * -1) calc(var(--space-5) * -1) var(--space-5);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-ink-100);background:var(--color-paper);top:calc(var(--space-5) * -1);z-index:2;display:flex;position:sticky}.modal-header h3{font-size:var(--text-xl);line-height:var(--lh-xl)}.btn-close{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-ink-500);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-close:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.modal-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);display:flex}.modal-actions .btn{width:auto;min-width:132px}.grid-2{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.callout-box{background:var(--color-ouro-100);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--color-ouro-700);border:1px solid #b8791e4d;line-height:1.45}.callout-box.info{background:var(--color-ink-100);border-color:var(--color-ink-300);color:var(--color-ink-700)}.callout-box.success{background:var(--color-success-100);color:var(--color-success-700);border-color:#1e8a5f4d}.check-label{align-items:flex-start;gap:var(--space-3);cursor:pointer;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-ink-300);border-radius:var(--radius-md);background:var(--color-surface);transition:all .12s;display:flex}.check-label:hover{border-color:var(--color-ink-700)}.check-label input[type=checkbox],.check-label input[type=radio]{width:18px;height:18px;accent-color:var(--color-ink-900);flex:none;margin-top:2px}.check-label .check-text{font-size:var(--text-sm);color:var(--color-ink-900);font-weight:600}.check-label .check-sub{font-size:var(--text-xs);color:var(--color-ink-500);margin-top:2px;font-weight:400}.quick-chips{gap:var(--space-2);flex-wrap:wrap;margin-top:4px;display:flex}.quick-chip{background:var(--color-paper);border:1px solid var(--color-ink-300);border-radius:var(--radius-full);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-ink-700);cursor:pointer;padding:3px 10px;font-weight:600;transition:all .1s}.quick-chip:hover{background:var(--color-ink-100);border-color:var(--color-ink-700);color:var(--color-ink-900)}.quick-chip.selected{background:var(--color-ink-900);border-color:var(--color-ink-900);color:var(--color-paper)}@media (min-width:900px){.shell.wide{background:var(--color-paper);max-width:100%;min-height:100vh;box-shadow:none;flex-direction:row}.shell.wide .app-topbar,.shell.wide .tabbar{display:none}.shell.wide .desktop-sidebar{background:var(--color-surface);border-right:1px solid var(--color-ink-100);width:250px;height:100vh;padding:var(--space-5) var(--space-4);box-shadow:var(--shadow-sm);z-index:10;flex-direction:column;flex:none;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-ink-100);margin-bottom:var(--space-4);display:flex}.sidebar-brand .sidebar-full-logo{object-fit:contain;filter:drop-shadow(0 8px 14px #0a112824);width:132px;height:auto;max-height:112px;display:block}.sidebar-brand .sidebar-brand-copy{text-align:center}.sidebar-brand .brand-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-ink-900);line-height:1.1;display:block}.sidebar-brand .brand-sub{font-size:var(--text-xs);color:var(--color-ouro-700);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-weight:600;display:block}.sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.nav-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-300);margin-bottom:var(--space-2);padding-left:var(--space-3);font-size:11px}.sidebar-nav .nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-ink-700);font-weight:600;font-size:var(--text-sm);text-decoration:none;transition:all .12s;display:flex}.sidebar-nav .nav-item:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.sidebar-nav .nav-item.active{background:var(--color-ink-900);color:var(--color-paper);box-shadow:var(--shadow-sm)}.sidebar-nav .nav-item.active svg{color:var(--color-ouro-600)}.sidebar-footer{padding-top:var(--space-4);border-top:1px solid var(--color-ink-100);gap:var(--space-3);flex-direction:column;display:flex}.sidebar-user{align-items:center;gap:var(--space-3);display:flex}.sidebar-user .user-avatar{background:var(--color-ouro-100);width:36px;height:36px;color:var(--color-ouro-700);font-weight:700;font-size:var(--text-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.sidebar-user .user-info{flex-direction:column;min-width:0;display:flex}.sidebar-user .user-name{font-size:var(--text-sm);color:var(--color-ink-900);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sidebar-user .user-tenant{font-size:var(--text-xs);color:var(--color-ink-500);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-logout{justify-content:center;width:100%}.shell.wide .shell-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow-x:clip}.desktop-header{padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-ink-100);z-index:9;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.desktop-header-left{align-items:center;gap:var(--space-3);display:flex}.tenant-badge{font-family:var(--font-display);font-weight:700;font-size:var(--text-base);color:var(--color-ink-900)}.desktop-header-right{align-items:center;gap:var(--space-4);display:flex}.user-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-500)}.shell.wide .page{padding:var(--space-6);width:100%;max-width:1440px;margin:0 auto}.shell.wide .report-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.shell.wide .report-head{padding:var(--space-4) var(--space-6)}.shell.wide table.report{min-width:100%}.shell.wide table.report thead th{padding:var(--space-3) var(--space-4);font-size:11px}.shell.wide table.report td{padding:var(--space-3) var(--space-4)}}@media (max-width:899px){.desktop-sidebar,.desktop-header{display:none!important}.shell.wide{max-width:100%;box-shadow:none}.shell.wide .page{padding-bottom:var(--space-6)}.shell.wide .tabbar{overflow-x:visible}.shell.wide .tabbar a{min-width:0;min-height:58px;padding:var(--space-2) 2px;white-space:normal;text-align:center;flex:1 1 0;font-size:9px;line-height:1.15}.shell.wide .tabbar a svg{width:18px;height:18px}.btn.sm{min-height:44px}.report-head{padding:var(--space-4);align-items:flex-start}.report-head .meta{text-align:left}.modal-backdrop{padding:var(--space-2);align-items:flex-end}.modal-card,.modal-content{max-height:calc(100dvh - var(--space-4));border-radius:var(--radius-md) var(--radius-md) 0 0}.modal-head,.modal-body,.modal-foot{padding-left:var(--space-4);padding-right:var(--space-4)}.modal-content{padding:var(--space-4)}.modal-header{margin:calc(var(--space-4) * -1) calc(var(--space-4) * -1) var(--space-4);padding:var(--space-4);top:calc(var(--space-4) * -1)}.modal-foot,.modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-foot .btn,.modal-actions .btn{width:100%;min-width:0}.grid-2{grid-template-columns:1fr}}.view-switcher{background:var(--color-ink-100);border-radius:var(--radius-md);border:1px solid var(--color-ink-200);gap:4px;padding:4px;display:inline-flex}.view-switcher-btn{border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-ink-500);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-weight:600;transition:all .15s;display:flex}.view-switcher-btn:hover:not(.active){color:var(--color-ink-900);background:#fff9}.view-switcher-btn.active{background:var(--color-surface);color:var(--color-ink-900);box-shadow:var(--shadow-sm)}.view-switcher-btn .chip-count{background:var(--color-cyan-600);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.report-mode-tabs{background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);margin-bottom:var(--space-3);gap:4px;padding:4px;display:flex}.report-mode-btn{padding:10px var(--space-4);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-ink-500);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background-color .18s,color .18s,box-shadow .18s;display:flex}.report-mode-btn:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.report-mode-btn.active{background:var(--color-ink-900);color:var(--color-paper);box-shadow:var(--shadow-sm)}.analytics-page{gap:var(--space-4);flex-direction:column;display:flex}.analytics-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.analytics-actions{align-items:center;gap:var(--space-3);display:flex}.live-pill{font-family:var(--font-mono);color:var(--color-ink-500);background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-full);align-items:center;gap:6px;padding:6px 12px;font-size:11px;display:inline-flex}.live-dot{background:var(--color-success-600);border-radius:50%;width:7px;height:7px}.kpi-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.kpi-card{background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);padding:var(--space-4);justify-content:space-between;gap:var(--space-2);flex-direction:column;min-width:0;transition:border-color .18s,background-color .18s;display:flex}.kpi-card:hover{border-color:var(--color-ink-300)}.kpi-card.highlight-warn{background:color-mix(in srgb, var(--color-warning-100) 32%, var(--color-surface));border-color:#d97f1d66}.kpi-card.highlight-bad{background:color-mix(in srgb, var(--color-error-100) 32%, var(--color-surface));border-color:#c6433c66}.kpi-top{justify-content:space-between;align-items:center;display:flex}.kpi-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-500);font-weight:600}.kpi-icon-wrap{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.kpi-icon-wrap.blue{background:var(--color-ink-100);color:var(--color-ink-700)}.kpi-icon-wrap.green{background:var(--color-success-100);color:var(--color-success-700)}.kpi-icon-wrap.warn{background:var(--color-warning-100);color:var(--color-warning-700)}.kpi-icon-wrap.bad{background:var(--color-error-100);color:var(--color-error-700)}.kpi-icon-wrap.purple{background:var(--color-ouro-100);color:var(--color-ouro-700)}.kpi-icon-wrap.ok{background:var(--color-success-100);color:var(--color-success-700)}.kpi-body{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.kpi-value{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-ink-900);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.kpi-status-badge{border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.kpi-status-badge.ok{background:var(--color-success-100);color:var(--color-success-700)}.kpi-status-badge.warn{background:var(--color-warning-100);color:var(--color-warning-700)}.kpi-status-badge.bad{background:var(--color-error-100);color:var(--color-error-700)}.kpi-footer{border-top:1px solid var(--color-ink-100);justify-content:space-between;align-items:center;min-height:24px;padding-top:4px;display:flex}.kpi-link-btn{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-ink-700);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;min-height:32px;padding:0;font-weight:600;transition:color .18s;display:flex}.kpi-link-btn:hover{color:var(--color-ouro-700)}.kpi-progress-bar{border-radius:var(--radius-full);background:var(--color-ink-100);width:100%;height:6px;overflow:hidden}.kpi-progress-fill{border-radius:var(--radius-full);background:var(--color-success-600);height:100%}.analytics-filter-card{padding:var(--space-3) var(--space-4)}.filter-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.filter-title{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-700);align-items:center;gap:6px;font-weight:700;display:flex}.filter-fields{align-items:center;gap:var(--space-3);flex-wrap:wrap;flex:1;display:flex}.filter-field{flex-direction:column;flex:1;gap:2px;min-width:160px;display:flex}.filter-field label{color:var(--color-ink-500);font-size:11px;font-weight:600}.filter-field select{border-radius:var(--radius-sm);border:1px solid var(--color-ink-300);height:38px;padding:0 var(--space-3);font-size:var(--text-sm);background:var(--color-surface);color:var(--color-ink-900)}.filter-field select:focus-visible{border-color:var(--color-ink-900)}.filter-clear-btn{height:38px;margin-top:15px}.analytics-charts-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.analytics-charts-grid>*{min-width:0}.chart-card{gap:var(--space-4);padding:var(--space-4) var(--space-5);flex-direction:column;display:flex}.chart-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);border-bottom:1px solid var(--color-ink-100);padding-bottom:var(--space-3);display:flex}.chart-head h3{font-size:var(--text-lg);line-height:1.3}.chart-badge-tag{border-radius:var(--radius-full);font-family:var(--font-mono);flex:none;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.chart-badge-tag.blue{background:var(--color-ink-100);color:var(--color-ink-700)}.chart-badge-tag.green{background:var(--color-success-100);color:var(--color-success-700)}.donut-layout{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.donut-svg-wrap{flex:none;width:150px;height:150px;margin:0 auto;position:relative}.donut-svg{width:100%;height:100%;transform:rotate(0)}.donut-segment{transition:stroke-dasharray .4s,stroke-dashoffset .4s}.donut-center-info{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.donut-center-val{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink-900);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.donut-center-lbl{font-family:var(--font-mono);color:var(--color-ink-500);text-transform:uppercase;margin-top:2px;font-size:10px}.donut-breakdown-list{gap:var(--space-3);flex-direction:column;flex:1;min-width:240px;display:flex}.spec-item{flex-direction:column;gap:3px;display:flex}.spec-row{font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.spec-name-wrap{align-items:center;gap:6px;display:flex}.spec-dot{border-radius:50%;flex:none;width:8px;height:8px}.spec-name{color:var(--color-ink-900);font-weight:600}.spec-code-tag{font-family:var(--font-mono);background:var(--color-ink-100);color:var(--color-ink-700);border-radius:4px;padding:1px 5px;font-size:10px}.spec-hours{font-family:var(--font-mono);font-size:12px}.spec-meter-bg{border-radius:var(--radius-full);background:var(--color-ink-100);height:6px;overflow:hidden}.spec-meter-fill{border-radius:var(--radius-full);height:100%}.spec-sub{color:var(--color-ink-500);justify-content:space-between;font-size:11px;display:flex}.risk-badges-summary{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.risk-pill{border-radius:var(--radius-full);align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.risk-pill:before{content:"";background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.risk-pill.bad{background:var(--color-error-100);color:var(--color-error-700)}.risk-pill.warn{background:var(--color-warning-100);color:var(--color-warning-700)}.risk-pill.ok{background:var(--color-success-100);color:var(--color-success-700)}.empty-risk-state{padding:var(--space-6) var(--space-4);text-align:center;justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.empty-risk-state svg{color:var(--color-success-600)}.risk-table-scroll{overflow-x:auto}.risk-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.risk-table th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-500);border-bottom:1px solid var(--color-ink-100);padding:8px 12px;font-size:11px}.risk-table td{border-bottom:1px solid var(--color-ink-100);vertical-align:middle;padding:10px 12px}.risk-table tr:last-child td{border-bottom:none}.student-name{color:var(--color-ink-900);align-items:center;gap:6px;font-weight:600;display:flex}.student-email{color:var(--color-ink-500);margin-left:21px;font-size:11px}.rot-name{font-weight:600}.cg-code{font-size:11px}.absence-count{font-family:var(--font-mono);font-size:12px}.absence-bar-wrap{flex-direction:column;gap:4px;display:flex}.absence-badge{font-family:var(--font-mono);border-radius:4px;width:-moz-fit-content;width:fit-content;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.absence-badge.bad{background:var(--color-error-100);color:var(--color-error-700)}.absence-badge.warn{background:var(--color-warning-100);color:var(--color-warning-700)}.mini-meter{border-radius:var(--radius-full);background:var(--color-ink-100);width:90px;height:4px;overflow:hidden}.mini-fill{border-radius:var(--radius-full);height:100%}.mini-fill.bad{background:var(--color-error-600)}.mini-fill.warn{background:var(--color-warning-600)}.risk-badge-tag{border-radius:var(--radius-full);padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.risk-badge-tag.critical{background:var(--color-error-600);color:#fff}.risk-badge-tag.warning{background:var(--color-warning-600);color:#fff}.hospital-bars-list{gap:var(--space-4);flex-direction:column;display:flex}.hosp-bar-item{background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);flex-direction:column;gap:8px;display:flex}.hosp-top{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.hosp-name{font-weight:700;font-size:var(--text-base);color:var(--color-ink-900)}.hosp-addr{font-size:11px}.hosp-stats{align-items:center;gap:var(--space-3);display:flex}.hosp-numbers{font-family:var(--font-mono);font-size:12px}.hosp-status-tag{border-radius:var(--radius-full);padding:3px 8px;font-size:11px;font-weight:700}.hosp-status-tag.normal{background:var(--color-success-100);color:var(--color-success-700)}.hosp-status-tag.alert{background:var(--color-warning-100);color:var(--color-warning-700)}.hosp-status-tag.critical{background:var(--color-error-100);color:var(--color-error-700)}.hosp-meter-container{position:relative}.hosp-meter-bg{border-radius:var(--radius-full);background:var(--color-ink-100);height:10px;position:relative;overflow:hidden}.hosp-meter-fill{border-radius:var(--radius-full);height:100%}.hosp-meter-fill.normal{background:var(--color-success-600)}.hosp-meter-fill.alert{background:var(--color-warning-600)}.hosp-meter-fill.critical{background:var(--color-error-600)}.capacity-limit-marker{background:var(--color-ink-900);width:2px;position:absolute;top:0;bottom:0;right:0}.hosp-sub-info{color:var(--color-ink-500);justify-content:space-between;font-size:11px;display:flex}.capacity-note{font-family:var(--font-mono)}.trend-legend{align-items:center;gap:var(--space-3);font-size:12px;font-weight:500;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.legend-box{border-radius:2px;width:10px;height:10px}.legend-box.green{background:var(--color-success-600)}.legend-box.amber{background:var(--color-warning-600)}.legend-box.red{background:var(--color-error-600)}.trend-chart-layout{gap:var(--space-3);flex-direction:column;display:flex}.trend-bars-wrapper{height:170px;padding:var(--space-3) 0;border-bottom:1px solid var(--color-ink-100);justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.trend-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.trend-stacked-bar{background:var(--color-ink-100);border-radius:6px 6px 0 0;flex-direction:column-reverse;justify-content:flex-start;width:100%;max-width:38px;height:100%;display:flex;overflow:hidden}.bar-slice{width:100%}.bar-slice.green{background:var(--color-success-600)}.bar-slice.amber{background:var(--color-warning-600)}.bar-slice.red{background:var(--color-error-600)}.trend-col-label{flex-direction:column;align-items:center;line-height:1.1;display:flex}.day-name{color:var(--color-ink-900);font-size:11px;font-weight:700}.day-date{color:var(--color-ink-500);font-size:10px}.trend-col-total{color:var(--color-ink-700);font-size:11px;font-weight:700}.trend-footer-summary{background:var(--color-ink-100);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);justify-content:space-around;display:flex}.trend-summary-item{align-items:center;gap:6px;display:flex}.skeleton-box{background:linear-gradient(90deg, var(--color-ink-100) 25%, var(--color-paper) 50%, var(--color-ink-100) 75%);border-radius:var(--radius-lg);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width:960px){.analytics-charts-grid{grid-template-columns:1fr}}@media (max-width:600px){.analytics-header,.analytics-actions{width:100%}.analytics-actions{flex-wrap:wrap;align-items:stretch}.live-pill{white-space:normal;flex:1;min-height:40px}.analytics-actions .btn{min-height:40px}.kpi-grid{gap:var(--space-3);grid-template-columns:1fr}.kpi-card{padding:var(--space-4)}.filter-row,.filter-fields{flex-direction:column;align-items:stretch}.filter-title{padding-bottom:var(--space-2);border-bottom:1px solid var(--color-ink-100)}.filter-field{width:100%;min-width:0}.filter-clear-btn{margin-top:0}.chart-card{padding:var(--space-4)}.chart-head{flex-direction:column}.chart-badge-tag,.risk-badges-summary,.trend-legend{align-self:flex-start}.donut-layout{flex-direction:column;align-items:stretch}.donut-breakdown-list{width:100%;min-width:0}.spec-row{gap:var(--space-2)}.spec-name-wrap{min-width:0}.spec-name{overflow-wrap:anywhere}.spec-hours{flex:none}.hosp-top,.hosp-stats,.hosp-sub-info{flex-direction:column;align-items:flex-start}.hosp-stats{gap:var(--space-2)}.trend-legend{flex-wrap:wrap}.trend-footer-summary{align-items:stretch;gap:var(--space-2);flex-direction:column}.trend-summary-item{justify-content:space-between}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.dossier-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000!important;background:#0f172abf!important}.dossier-modal-card{border:1px solid var(--color-ink-300);box-shadow:0 25px 50px -12px #00000040!important}.dossier-paper{font-family:var(--font-sans);border-radius:4px;max-width:860px;margin:0 auto;padding:40px 48px;line-height:1.4;position:relative;box-shadow:0 4px 25px #00000014;color:#0f172a!important;background:#fff!important}.dossier-watermark{color:#0f172a09;pointer-events:none;white-space:nowrap;-webkit-user-select:none;user-select:none;z-index:0;letter-spacing:.1em;font-size:52px;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-30deg)}.dossier-header{z-index:1;margin-bottom:20px;position:relative}.dossier-rep-badge{border-bottom:2px solid #0f172a;justify-content:center;align-items:center;gap:16px;margin-bottom:14px;padding-bottom:12px;display:flex}.dossier-coat-of-arms{flex-shrink:0}.dossier-rep-text{text-align:left}.dossier-rep-country{letter-spacing:.12em;color:#0f172a;font-size:13px;font-weight:800;font-family:var(--font-display);display:block}.dossier-rep-ministry{color:#475569;letter-spacing:.04em;font-size:11px;font-weight:700;display:block}.dossier-rep-system{color:#b45309;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px;font-weight:600;display:block}.dossier-inst-block{text-align:center;margin:10px 0 14px}.dossier-inst-name{color:#0f172a;font-size:20px;font-weight:800;font-family:var(--font-display);letter-spacing:-.01em;margin:0}.dossier-inst-details{color:#475569;justify-content:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.dossier-title-banner{color:#fff;text-align:center;background:#0f172a;border-radius:4px;margin-top:14px;padding:12px 18px}.dossier-main-title{letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:13.5px;font-weight:800;color:#fff!important}.dossier-legal-base{color:#cbd5e1;margin:4px 0 0;font-size:10px;line-height:1.3}.dossier-section{z-index:1;margin-bottom:20px;position:relative}.dossier-section-title{color:#0f172a;letter-spacing:.06em;text-transform:uppercase;border-bottom:1.5px solid #0f172a;margin-bottom:10px;padding-bottom:4px;font-size:11.5px;font-weight:800}.dossier-grid-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;grid-template-columns:2fr 1fr 1fr;gap:10px 14px;padding:12px 16px;display:grid}.dossier-info-cell{flex-direction:column;gap:2px;display:flex}.dossier-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px;font-weight:700}.dossier-val-lg{color:#0f172a;font-size:14px;font-weight:800}.dossier-val-mono{font-family:var(--font-mono);color:#0f172a;font-size:12px;font-weight:700}.dossier-val{color:#1e293b;font-size:12px;font-weight:600}.dossier-status-pill.ok{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0;border-radius:9999px;align-items:center;gap:4px;width:-moz-fit-content;width:fit-content;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.dossier-table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:11px}.dossier-table th{color:#0f172a;text-transform:uppercase;letter-spacing:.04em;background:#f1f5f9;border:1px solid #cbd5e1;padding:8px 10px;font-size:10px;font-weight:800}.dossier-table td{color:#1e293b;vertical-align:middle;border:1px solid #e2e8f0;padding:7px 10px}.dossier-table tbody tr:nth-child(2n){background:#f8fafc}.dossier-code-sub{color:#64748b;font-size:9.5px;font-family:var(--font-mono);display:block}.dossier-table-badge{white-space:nowrap;border-radius:9999px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.dossier-table-badge.badge-ok{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.dossier-table-badge.badge-warn{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.dossier-table-badge.badge-apto{color:#fff;letter-spacing:.04em;background:#047857;padding:4px 10px;font-weight:800}.dossier-tfoot-row td{font-size:11.5px;background:#f1f5f9!important;border-top:2px solid #0f172a!important;border-bottom:2px solid #0f172a!important}.dossier-table.compact{font-size:10px}.dossier-table.compact th{padding:6px 8px;font-size:9.5px}.dossier-table.compact td{padding:5px 8px}.dossier-shift-area{color:#64748b;font-size:9px;font-weight:500;display:block}.dossier-method-tag{color:#334155;white-space:nowrap;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:600;display:inline-block}.dossier-preceptor-name{color:#0f172a;font-weight:600}.dossier-preceptor-crm{color:#64748b;font-size:9px;font-family:var(--font-mono)}.dossier-seal-box{z-index:1;background:#fffdf7;border:2px solid #c29b38;border-radius:6px;gap:18px;margin-top:22px;padding:14px 18px;display:flex;position:relative}.dossier-seal-qr{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.dossier-qr-caption{color:#64748b;text-align:center;max-width:110px;font-size:8.5px;font-weight:500;line-height:1.1}.dossier-seal-content{flex-direction:column;flex:1;gap:8px;display:flex}.dossier-seal-badge-header{color:#854d0e;letter-spacing:.04em;align-items:center;gap:6px;font-size:11.5px;font-weight:800;display:flex}.dossier-seal-icon{font-size:14px}.dossier-seal-hash-grid{background:#fff;border:1px solid #fde68a;border-radius:4px;flex-direction:column;gap:5px;padding:8px 12px;display:flex}.dossier-seal-label{color:#78350f;letter-spacing:.04em;font-size:8.5px;font-weight:700;display:block}.dossier-seal-code{font-family:var(--font-mono);color:#0f172a;letter-spacing:.08em;font-size:13px;font-weight:800}.dossier-seal-hash{color:#334155;word-break:break-all;font-size:9.5px;line-height:1.2}.dossier-seal-url{color:#0369a1;word-break:break-all;font-size:10px;font-weight:600;text-decoration:none}.dossier-seal-disclaimer{color:#64748b;margin:0;font-size:9.5px;font-style:italic;line-height:1.35}.dossier-signatures{z-index:1;justify-content:space-around;gap:40px;margin-top:36px;padding-top:10px;display:flex;position:relative}.dossier-sign-col{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.dossier-sign-line{background:#0f172a;width:220px;height:1px;margin-bottom:6px}.dossier-sign-title{color:#0f172a;font-size:11px;font-weight:700}.dossier-sign-sub{color:#64748b;font-size:9.5px}@media print{@page{size:A4 portrait;margin:10mm 12mm 12mm}body{font-size:10pt;color:#000!important;-webkit-print-color-adjust:exact!important;-moz-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important}.shell,.app-topbar,.tabbar,.dossier-screen-only,.dossier-modal-overlay{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important}body:has(#dossier-official-document) *{visibility:hidden}#dossier-official-document,#dossier-official-document *{visibility:visible}#dossier-official-document{position:absolute;top:0;left:0;width:100%!important;max-width:100%!important;box-shadow:none!important;border-radius:0!important;margin:0!important;padding:0!important}.dossier-modal-card{box-shadow:none!important;border:none!important;width:100%!important;max-width:100%!important;max-height:none!important;padding:0!important}.dossier-modal-scroll{background:#fff!important;padding:0!important;overflow:visible!important}.dossier-table,.dossier-table tr,.dossier-table td,.dossier-table th,.dossier-seal-box,.dossier-signatures{page-break-inside:avoid!important}}.loc-stats-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.loc-stat-card{background:var(--color-surface);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);padding:var(--space-4);flex-direction:column;gap:4px;display:flex}.loc-stat-card .label{font-size:var(--text-xs);color:var(--color-ink-500);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.loc-stat-card .value{font-size:var(--text-2xl);font-family:var(--font-display);color:var(--color-ink-900);font-weight:700;line-height:1.1}.loc-stat-card .sub{color:var(--color-ink-500);margin-top:2px;font-size:11px}.loc-view-tabs{background:var(--color-paper);border-radius:var(--radius-sm);border:1px solid var(--color-ink-100);gap:4px;padding:4px;display:flex}.loc-view-tab{font-size:var(--text-xs);color:var(--color-ink-500);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-weight:600;transition:all .15s;display:inline-flex}.loc-view-tab.active{background:var(--color-surface);color:var(--color-ink-900);box-shadow:var(--shadow-sm)}.loc-modal-wide{width:95vw!important;max-width:1140px!important}.loc-modal-columns{gap:var(--space-4);grid-template-columns:minmax(320px,1fr) minmax(400px,1.25fr);align-items:start;display:grid}@media (max-width:920px){.loc-modal-columns{gap:var(--space-3);grid-template-columns:1fr}}.loc-candidate-dropdown{z-index:100;background:var(--color-surface);border:1.5px solid var(--color-ink-300);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-height:240px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.loc-candidate-option{cursor:pointer;border-bottom:1px solid var(--color-ink-100);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;transition:background .15s;display:flex}.loc-candidate-option:last-child{border-bottom:none}.loc-candidate-option:hover{background:var(--color-paper)}.loc-range-slider{width:100%;accent-color:var(--color-ouro-600);cursor:pointer}.loc-poi-search-card{z-index:60;background:var(--color-paper);border:1.5px solid var(--color-ink-200);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);position:relative;box-shadow:0 2px 8px #101b330a}.loc-poi-search-bar{align-items:center;gap:var(--space-2);display:flex;position:relative}.loc-poi-input-wrap{flex:1;position:relative}.loc-poi-input{width:100%;height:44px;font-size:var(--text-sm);border-radius:var(--radius-sm);border:1.5px solid var(--color-ink-300);background:var(--color-surface);color:var(--color-ink-900);box-shadow:var(--shadow-sm);padding:0 40px 0 38px;font-weight:500;transition:all .2s}.loc-poi-input:focus{border-color:var(--color-ouro-600);outline:none;box-shadow:0 0 0 3px #b8791e26}.loc-poi-icon-left{pointer-events:none;color:var(--color-ink-500);font-size:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.loc-poi-clear-btn{color:var(--color-ink-400);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:4px;font-size:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.loc-poi-clear-btn:hover{color:var(--color-ink-900);background:var(--color-ink-100)}.loc-poi-dropdown{z-index:1200;background:var(--color-surface);border:1.5px solid var(--color-ouro-500);border-radius:var(--radius-md);max-height:320px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #101b332e}.loc-poi-dropdown-header{background:var(--color-paper);border-bottom:1px solid var(--color-ink-100);color:var(--color-ink-700);justify-content:space-between;align-items:center;padding:8px 14px;font-size:11px;font-weight:700;display:flex}.loc-poi-item{cursor:pointer;border-bottom:1px solid var(--color-ink-100);align-items:flex-start;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.loc-poi-item:last-child{border-bottom:none}.loc-poi-item:hover{background:#fbf9f4}.loc-poi-item-icon{flex-shrink:0;margin-top:2px;font-size:20px}.loc-poi-item-content{flex:1;min-width:0}.loc-poi-item-name{font-size:var(--text-sm);color:var(--color-ink-900);font-weight:700;line-height:1.3}.loc-poi-item-address{color:var(--color-ink-500);margin-top:2px;font-size:12px;line-height:1.3}.loc-poi-item-meta{align-items:center;gap:6px;margin-top:4px;font-size:11px;display:flex}.loc-reverse-callout{border-radius:var(--radius-sm);background:#fdfbf7;border:1px solid #f2e3c6;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:12px;display:flex}.leaflet-div-icon{box-shadow:none!important;background:0 0!important;border:none!important}.custom-google-pin,.custom-hospital-marker,.custom-gps-user-marker{box-shadow:none!important;background:0 0!important;border:none!important;overflow:visible!important}.custom-google-pin svg{filter:drop-shadow(0 4px 8px #00000073);overflow:visible}.photo-upload{gap:var(--space-5);flex-wrap:wrap;align-items:flex-start;display:flex}.photo-frame{border-radius:var(--radius-lg);background:var(--color-ink-100);border:1.5px solid var(--color-border);flex:none;justify-content:center;align-items:center;width:132px;height:132px;display:flex;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%}.photo-initial{font-size:var(--text-4xl);color:var(--color-ink-400);font-weight:700}.photo-actions{gap:var(--space-3);flex-direction:column;flex:260px;min-width:260px;display:flex}.photo-actions .btn{width:auto}.callout-box.photo-warning{align-items:center;gap:var(--space-2);background:var(--color-warning-100);color:var(--color-warning-700);border-color:#d977064d;display:flex}a.sidebar-user,a.who{color:inherit;text-decoration:none}a.sidebar-user:hover .user-name,a.who:hover b{text-decoration:underline}.vitrine-avatar{border:1px solid var(--color-slate-200)}.modal-card.modal-sm{max-width:560px}.modal-card.modal-md{max-width:780px}.modal-card.modal-lg{max-width:1040px}.modal-card.modal-xl{max-width:1280px}.modal-card.modal-sm,.modal-card.modal-md,.modal-card.modal-lg,.modal-card.modal-xl{max-height:min(88vh,940px)}.modal-head-title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.modal-head-title h3{overflow-wrap:anywhere;min-width:0}.modal-head-title h3.tone-danger{color:var(--color-error-700)}.modal-head-title h3.tone-warn{color:var(--color-warning-700)}.modal-head-icon{border-radius:var(--radius-sm);background:var(--color-ink-100);width:36px;height:36px;color:var(--color-ink-700);flex:none;justify-content:center;align-items:center;display:inline-flex}.modal-head-icon.tone-danger{background:var(--color-error-100);color:var(--color-error-700)}.modal-head-icon.tone-warn{background:var(--color-warning-100);color:var(--color-warning-700)}.modal-close:disabled{opacity:.4;cursor:not-allowed}.modal-body-cols{gap:var(--space-4) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.modal-body-cols>.modal-span-2{grid-column:1/-1}@media (max-width:860px){.modal-body-cols{grid-template-columns:1fr}}.modal-panel{background:var(--color-paper);border:1px solid var(--color-ink-100);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.modal-panel-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.modal-panel-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-500);font-size:11px}.modal-foot .modal-foot-spacer{margin-right:auto}.actions-trigger{min-width:34px;height:34px;padding:0 var(--space-2);border:1px solid var(--color-ink-200);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink-700);cursor:pointer;font-size:var(--text-xs);justify-content:center;align-items:center;gap:6px;font-weight:600;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.actions-trigger:hover:not(:disabled){background:var(--color-ink-100);border-color:var(--color-ink-300);color:var(--color-ink-900)}.actions-trigger.is-open{background:var(--color-ink-900);border-color:var(--color-ink-900);color:var(--color-surface)}.actions-trigger:disabled{opacity:.45;cursor:not-allowed}.actions-menu{z-index:60;width:248px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-ink-200);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;animation:.12s ease-out modal-fade;display:flex;position:fixed}.actions-menu.drop-up{transform:translateY(-100%)}.actions-menu:focus{outline:none}.actions-menu-item{align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-800);cursor:pointer;text-align:left;font-size:var(--text-sm);font-weight:600;line-height:var(--lh-sm);background:0 0;border:none;display:flex}.actions-menu-item.separated{margin-top:var(--space-2);border-top:1px solid var(--color-ink-100);padding-top:var(--space-3)}.actions-menu-item:hover:not(:disabled),.actions-menu-item.is-active:not(:disabled){background:var(--color-ink-100)}.actions-menu-item:disabled{opacity:.4;cursor:not-allowed}.actions-menu-item.tone-danger{color:var(--color-error-700)}.actions-menu-item.tone-danger:hover:not(:disabled),.actions-menu-item.tone-danger.is-active:not(:disabled){background:var(--color-error-100)}.actions-menu-item.tone-warn{color:var(--color-warning-700)}.actions-menu-item.tone-warn:hover:not(:disabled),.actions-menu-item.tone-warn.is-active:not(:disabled){background:var(--color-warning-100)}.actions-menu-item.tone-primary{color:var(--color-cyan-600)}.actions-menu-icon{flex:none;margin-top:1px;display:inline-flex}.actions-menu-text{flex-direction:column;gap:1px;min-width:0;display:flex}.actions-menu-hint{font-size:var(--text-xs);color:var(--color-ink-500);font-weight:400;line-height:var(--lh-xs)}table.report{min-width:860px}table.report th.col-actions,table.report td.col-actions{white-space:nowrap;text-align:right;width:1%}table.report td.col-actions>.actions-cell{justify-content:flex-end;gap:var(--space-2);display:flex}table.report th.col-tight,table.report td.col-tight{white-space:nowrap;width:1%}table.report thead th{white-space:normal}table.report th:first-child,table.report td:first-child:not([colspan]){z-index:1;background:var(--color-surface);box-shadow:inset -1px 0 0 var(--color-ink-100);position:sticky;left:0}table.report thead th:first-child{background:var(--color-paper)}table.report tbody tr:nth-child(2n) td:first-child:not([colspan]){background:color-mix(in srgb, var(--color-ink-900) 1.5%, var(--color-surface))}table.report tbody tr:hover td:first-child:not([colspan]){background:var(--color-paper)}table.report .cell-email{overflow-wrap:anywhere}table.report td .cell-strong{color:var(--color-ink-900);font-weight:600}table.report td .cell-sub{font-size:var(--text-xs);color:var(--color-ink-500);line-height:var(--lh-xs);display:block}@media (min-width:900px){.shell.wide .page{max-width:1600px}.shell.wide table.report th{padding:var(--space-2) var(--space-3)}.shell.wide table.report td{padding:var(--space-3)}.shell.wide table.report td:first-child,.shell.wide table.report th:first-child{padding-left:var(--space-4)}.shell.wide table.report td:last-child,.shell.wide table.report th:last-child{padding-right:var(--space-4)}}.modal-backdrop.is-stacked{z-index:110}.modal-body.loc-qr-body{text-align:center;align-items:center}.modal-head-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.modal-head-badges{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-head-sub{font-size:var(--text-xs);color:var(--color-ink-500);line-height:var(--lh-xs)}.modal-foot:has(.modal-foot-actions){justify-content:space-between}.modal-foot-actions{gap:var(--space-2);display:flex}.modal-head-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.modal-body.dossier-modal-scroll{padding:var(--space-5) var(--space-4);background:var(--color-slate-200)}.table-responsive,.table-wrap{overscroll-behavior-inline:contain;overflow-x:auto}.table-wrap>table,table.data-table{border-collapse:collapse;width:100%}.table-wrap>table thead th,table.data-table thead th{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-500);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-ink-100);background:var(--color-paper);white-space:nowrap;font-size:11px}.table-wrap>table td,table.data-table td{padding:var(--space-3);font-size:var(--text-sm);line-height:var(--lh-sm);border-bottom:1px solid var(--color-ink-100);vertical-align:middle}.table-wrap>table tbody tr:hover,table.data-table tbody tr:hover{background:var(--color-paper)}table.data-table td.empty-state{text-align:center;padding:var(--space-6);color:var(--color-ink-500)}th.col-actions,td.col-actions{white-space:nowrap;text-align:right;width:1%}.social-login{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.social-login-divider{align-items:center;gap:var(--space-3);color:var(--color-ink-500);font-size:var(--text-sm);display:flex}.social-login-divider:before,.social-login-divider:after{content:"";background:var(--color-ink-200,var(--color-ink-300));flex:1;height:1px}.social-btn-slot{flex-direction:column;display:flex}.social-btn-slot>div>div{margin:0 auto}.btn-social-apple{color:#fff;background:#000;border:none}.btn-social-apple:hover:not(:disabled){background:#1a1a1a}.social-login-note{font-size:var(--text-xs);color:var(--color-ink-500);text-align:center}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.page-head .page-title{margin-bottom:var(--space-1)}.admin-overview-grid{gap:var(--space-4);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);display:grid}.admin-overview-grid .card{margin-bottom:0}.admin-next-action{justify-content:space-between;align-items:center;gap:var(--space-5);margin-top:var(--space-4);display:flex}.admin-next-action h2{font-size:var(--text-lg);margin-bottom:var(--space-1)}.admin-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--color-ink-100);display:flex}.admin-search{align-items:center;gap:var(--space-2);width:min(520px,100%);color:var(--color-ink-500);background:var(--color-paper);border:1px solid var(--color-ink-200);border-radius:var(--radius-sm);padding-inline:var(--space-3);display:flex}.admin-search:focus-within{border-color:var(--color-cyan-500);box-shadow:var(--focus-ring)}.admin-search input{width:100%;box-shadow:none;background:0 0;border:0;padding-inline-start:0;padding-inline-end:0}.admin-search input:focus{box-shadow:none;outline:0}.admin-settings-list{flex-direction:column;display:flex}.admin-setting-toggle{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid var(--color-ink-100);cursor:pointer;display:flex}.admin-setting-toggle:first-child{padding-top:0}.admin-setting-toggle:last-child{border-bottom:0;padding-bottom:0}.admin-setting-toggle>span{flex-direction:column;gap:3px;display:flex}.admin-setting-toggle strong{color:var(--color-ink-900);font-size:var(--text-sm)}.admin-setting-toggle small{color:var(--color-ink-500);font-size:var(--text-xs);line-height:var(--lh-xs)}.admin-setting-toggle input{-webkit-appearance:none;appearance:none;border:1px solid var(--color-ink-300);background:var(--color-ink-200);cursor:pointer;border-radius:999px;flex:none;width:42px;height:24px;margin:0;padding:2px;transition:background .16s ease-out,border-color .16s ease-out}.admin-setting-toggle input:before{content:"";background:var(--color-surface);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .16s ease-out;display:block}.admin-setting-toggle input:checked{background:var(--color-cyan-500);border-color:var(--color-cyan-600)}.admin-setting-toggle input:checked:before{transform:translate(18px)}.admin-setting-toggle input:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-setting-toggle input:disabled{opacity:.55;cursor:wait}.platform-mfa-toggle{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-xs);color:var(--color-ink-600);white-space:nowrap;display:inline-flex}.platform-mfa-toggle input{-webkit-appearance:none;appearance:none;border:1px solid var(--color-ink-300);background:var(--color-ink-200);cursor:pointer;border-radius:999px;flex:none;width:36px;height:20px;margin:0;padding:2px;transition:background .16s ease-out,border-color .16s ease-out}.platform-mfa-toggle input:before{content:"";background:var(--color-surface);width:14px;height:14px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .16s ease-out;display:block}.platform-mfa-toggle input:checked{background:var(--color-cyan-500);border-color:var(--color-cyan-600)}.platform-mfa-toggle input:checked:before{transform:translate(16px)}.platform-mfa-toggle input:focus-visible{box-shadow:var(--focus-ring);outline:none}.platform-mfa-toggle input:disabled{opacity:.55;cursor:wait}.admin-settings-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.input-with-suffix{align-items:center;display:flex}.input-with-suffix input{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.input-with-suffix span{padding:0 var(--space-3);border:1px solid var(--color-ink-200);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-paper);color:var(--color-ink-500);font-size:var(--text-sm);border-left:0;align-self:stretch;align-items:center;display:flex}.admin-form-actions{margin-top:var(--space-4);justify-content:flex-end;display:flex}@media (max-width:899px){.page-head,.admin-next-action,.admin-toolbar{flex-direction:column;align-items:stretch}.page-head .btn,.admin-next-action .btn{justify-content:center;width:100%}.admin-overview-grid,.admin-settings-grid{grid-template-columns:1fr}}@media print{body{background:#fff}.app-topbar,.desktop-sidebar,.tabbar,.card-header,.print-hide{display:none!important}.shell,.page,.card,.card-body{box-shadow:none!important;background:0 0!important;border:none!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}.print-page-break{page-break-before:always;break-before:page}}.modal-danger-action{margin-right:auto}.student-import-box{border:1px solid var(--color-ink-100);border-radius:var(--radius-lg);background:var(--color-cyan-50);gap:12px;margin-top:4px;padding:16px;display:grid}.student-import-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.student-import-head>div:first-child{gap:3px;display:grid}.student-import-head strong{color:var(--color-ink-900);font-size:var(--text-sm)}.student-import-head span{color:var(--color-ink-500);font-size:12px}.student-import-models{align-items:center;gap:7px;display:flex}.student-import-drop{border:1px dashed var(--color-ink-300);border-radius:var(--radius-md);width:100%;min-height:76px;color:var(--color-ink-700);background:var(--color-surface);text-align:left;cursor:pointer;justify-content:center;align-items:center;gap:12px;padding:14px;transition:border-color .16s,background .16s,transform .16s;display:flex}.student-import-drop:hover:not(:disabled){border-color:var(--color-cyan-500);background:var(--color-cyan-50)}.student-import-drop:focus-visible{border-color:var(--color-cyan-500);background:var(--color-cyan-50)}.student-import-drop:active:not(:disabled){transform:translateY(1px)}.student-import-drop.has-file{border-style:solid;border-color:var(--color-cyan-400)}.student-import-drop>span:last-child{gap:3px;display:grid}.student-import-drop small{color:var(--color-ink-500);font-size:12px;font-weight:400}.student-import-icon{background:var(--color-cyan-100);width:34px;height:34px;color:var(--color-cyan-600);border-radius:50%;flex:0 0 34px;place-items:center;font-size:21px;font-weight:700;display:grid}.student-import-inline-error{color:var(--color-error-700);align-items:center;gap:6px;font-size:12px;display:flex}.student-import-result{border-top:1px solid var(--color-ink-100);gap:12px;padding-top:12px;display:grid}.student-import-summary{color:var(--color-success-700);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-import-errors{gap:8px;display:grid}.student-import-errors>strong{color:var(--color-ink-700);font-size:12px}.student-import-errors ul{gap:6px;max-height:150px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.student-import-errors li{border-radius:var(--radius-sm);background:var(--color-error-100);color:var(--color-error-700);grid-template-columns:76px 1fr;gap:8px;padding:8px 10px;font-size:12px;display:grid}@media (max-width:720px){.student-import-head{flex-direction:column;align-items:stretch}.student-import-models{flex-wrap:wrap}}.public-site{min-height:100vh;color:var(--color-navy-900);background:var(--color-surface)}.public-site a{color:inherit}.public-header{z-index:10;border-bottom:1px solid var(--color-slate-100);justify-content:space-between;align-items:center;width:min(1180px,100% - 48px);min-height:76px;margin:0 auto;display:flex;position:relative}.public-brand{align-items:center;display:inline-flex}.public-brand img{width:172px;height:auto;display:block}.public-nav{font-size:var(--text-sm);align-items:center;gap:30px;font-weight:650;display:flex}.public-nav>a:not(.public-login-link){color:var(--color-slate-500);text-decoration:none}.public-nav>a:not(.public-login-link):hover{color:var(--color-navy-900)}.public-login-link{border-radius:var(--radius-md);background:var(--color-navy-900);justify-content:center;align-items:center;min-height:42px;padding:0 19px;text-decoration:none;transition:background .16s ease-out,transform .16s ease-out;display:inline-flex;color:var(--color-surface)!important}.public-login-link:hover{background:var(--color-cyan-600);transform:translateY(-1px)}.public-hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(420px,.82fr);align-items:center;gap:clamp(48px,7vw,96px);width:min(1180px,100% - 48px);min-height:610px;margin:0 auto;padding:72px 0 82px;display:grid;position:relative}.public-hero:before{z-index:-1;background:radial-gradient(circle, color-mix(in srgb, var(--color-cyan-400) 18%, transparent) 0, transparent 68%);content:"";pointer-events:none;border-radius:50%;width:440px;height:440px;position:absolute;top:16%;right:-8%}.public-hero-copy h1{max-width:720px;color:var(--color-navy-900);letter-spacing:-.055em;margin:0;font-size:clamp(44px,5.2vw,72px);font-weight:760;line-height:.98}.public-hero-copy>p:first-of-type{max-width:660px;color:var(--color-slate-500);margin:28px 0 0;font-size:clamp(18px,1.8vw,21px);line-height:1.62}.public-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.public-primary-action,.public-secondary-action{border-radius:var(--radius-md);min-height:50px;font-size:var(--text-sm);justify-content:center;align-items:center;padding:0 22px;font-weight:700;text-decoration:none;transition:border-color .16s ease-out,background .16s ease-out,color .16s ease-out,transform .16s ease-out;display:inline-flex}.public-primary-action{background:var(--color-cyan-600);color:var(--color-surface)!important}.public-primary-action:hover{background:var(--color-navy-900);transform:translateY(-1px)}.public-secondary-action{border:1px solid var(--color-slate-300);color:var(--color-navy-900);background:var(--color-surface)}.public-secondary-action:hover{border-color:var(--color-cyan-500);color:var(--color-cyan-600)}.public-invite-note{color:var(--color-slate-500)!important;font-size:var(--text-xs)!important;margin:15px 0 0!important}.public-signal{border:1px solid color-mix(in srgb, var(--color-cyan-400) 22%, transparent);color:var(--color-surface);background:linear-gradient(150deg, var(--color-navy-900), #0d3648 72%, #0b5265);border-radius:28px;overflow:hidden;box-shadow:0 28px 70px #0425343d}.public-radar{background:linear-gradient(90deg,#0000 49.8%,#ffffff14 50%,#0000 50.2%),linear-gradient(#0000 49.8%,#ffffff14 50%,#0000 50.2%);place-items:center;min-height:278px;display:grid;position:relative;overflow:hidden}.public-radar:before,.public-radar:after,.public-radar>span{content:"";border:1px solid #66e1e72e;border-radius:50%;position:absolute}.public-radar:before{width:310px;height:310px}.public-radar:after{width:214px;height:214px}.public-radar>span:first-child{width:118px;height:118px}.public-radar>span:nth-child(2){background:var(--color-cyan-400);width:12px;height:12px;transform:translate(120px,-46px);box-shadow:0 0 0 8px #66e1e71a}.public-radar>span:nth-child(3){background:#ffffffb3;width:8px;height:8px;transform:translate(-98px,68px)}.public-radar img{z-index:2;filter:brightness(0)invert();width:58px;height:58px;position:relative}.public-signal-copy{background:#031e2a61;border-top:1px solid #ffffff1a;padding:25px 28px 28px}.public-signal-copy>span{color:var(--color-cyan-100);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:750}.public-signal-copy>strong{font-size:var(--text-xl);margin-top:6px;display:block}.public-signal-copy dl{grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0 0;display:grid}.public-signal-copy dl div{border-left:1px solid #ffffff24;min-width:0;padding-left:12px}.public-signal-copy dt{color:#fff9;font-size:11px}.public-signal-copy dd{color:#ffffffeb;margin:5px 0 0;font-size:12px;font-weight:650;line-height:1.35}.public-signal-copy small{color:#ffffff7a;margin-top:18px;font-size:11px;display:block}.public-trust-line{border-block:1px solid var(--color-slate-200);grid-template-columns:repeat(3,1fr);width:min(1180px,100% - 48px);margin:0 auto;display:grid}.public-trust-line span{color:var(--color-slate-500);font-size:var(--text-sm);text-align:center;padding:24px;font-weight:680}.public-trust-line span+span{border-left:1px solid var(--color-slate-200)}.public-mechanism{width:min(1180px,100% - 48px);margin:0 auto;padding:112px 0}.public-section-heading{grid-template-columns:1.15fr .75fr;align-items:end;gap:64px;display:grid}.public-section-heading h2{max-width:760px;color:var(--color-navy-900);letter-spacing:-.04em;margin:0;font-size:clamp(34px,4vw,52px);line-height:1.08}.public-section-heading p{color:var(--color-slate-500);font-size:var(--text-base);margin:0;line-height:1.65}.public-mechanism-flow{border-top:1px solid var(--color-slate-200);grid-template-columns:repeat(3,1fr);margin-top:64px;display:grid}.public-mechanism-flow article{min-width:0;padding:30px 34px 0 0}.public-mechanism-flow article+article{border-left:1px solid var(--color-slate-200);padding-left:34px}.public-mechanism-flow span{color:var(--color-cyan-600);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:750}.public-mechanism-flow h3{color:var(--color-navy-900);font-size:var(--text-xl);letter-spacing:-.02em;margin:12px 0 0}.public-mechanism-flow p{color:var(--color-slate-500);margin:12px 0 0;line-height:1.65}.public-google-data{background:var(--color-cyan-50);border-radius:30px;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(48px,8vw,110px);width:min(1180px,100% - 48px);margin:0 auto;padding:clamp(54px,7vw,88px);display:grid}.public-google-data h2{color:var(--color-navy-900);letter-spacing:-.04em;margin:0;font-size:clamp(30px,3.5vw,46px);line-height:1.1}.public-google-data p{max-width:680px;color:var(--color-slate-500);font-size:var(--text-base);margin:20px 0 0;line-height:1.7}.public-google-data a{color:var(--color-cyan-600);font-size:var(--text-sm);margin-top:24px;font-weight:750;display:inline-block}.public-google-data dl{border-top:1px solid var(--color-cyan-100);margin:0}.public-google-data dl div{border-bottom:1px solid var(--color-cyan-100);grid-template-columns:138px 1fr;gap:18px;padding:20px 0;display:grid}.public-google-data dt{color:var(--color-slate-500);font-size:var(--text-xs);font-weight:650}.public-google-data dd{color:var(--color-navy-900);font-size:var(--text-sm);margin:0;font-weight:650;line-height:1.45}.public-close{text-align:center;width:min(760px,100% - 48px);margin:0 auto;padding:126px 0}.public-close img{width:54px;height:54px}.public-close h2{color:var(--color-navy-900);letter-spacing:-.04em;margin:22px 0 0;font-size:clamp(34px,4.5vw,52px);line-height:1.08}.public-close p{color:var(--color-slate-500);font-size:var(--text-base);margin:20px auto 28px;line-height:1.6}.public-footer{border-top:1px solid var(--color-slate-200);grid-template-columns:1fr auto;align-items:center;gap:32px;width:min(1180px,100% - 48px);margin:0 auto;padding:42px 0;display:grid}.public-footer>div{align-items:center;gap:12px;display:flex}.public-footer>div img{width:36px;height:36px}.public-footer>div div{gap:2px;display:grid}.public-footer strong{color:var(--color-navy-900);font-size:var(--text-sm)}.public-footer span,.public-footer p{color:var(--color-slate-500);font-size:var(--text-xs)}.public-footer nav{color:var(--color-slate-500);font-size:var(--text-xs);flex-wrap:wrap;justify-content:flex-end;gap:24px;font-weight:650;display:flex}.public-footer nav a:hover{color:var(--color-cyan-600)}.public-footer p{grid-column:1/-1;margin:-14px 0 0}.legal-page{width:min(1000px,100% - 48px);margin:0 auto;padding:72px 0 112px}.legal-heading{border-bottom:1px solid var(--color-slate-200);max-width:760px;padding-bottom:50px}.legal-heading>a{color:var(--color-cyan-600);font-size:var(--text-sm);margin-bottom:32px;font-weight:700;display:inline-flex}.legal-heading h1{color:var(--color-navy-900);letter-spacing:-.05em;margin:0;font-size:clamp(42px,6vw,66px);line-height:1}.legal-heading p{color:var(--color-slate-500);font-size:var(--text-lg);margin:24px 0 0;line-height:1.6}.legal-heading span{color:var(--color-slate-500);font-size:var(--text-xs);margin-top:22px;display:block}.legal-content{max-width:760px;padding-top:28px}.legal-content section{border-bottom:1px solid var(--color-slate-100);padding:30px 0}.legal-content h2{color:var(--color-navy-900);font-size:var(--text-xl);letter-spacing:-.02em;margin:0}.legal-content p,.legal-content li{color:var(--color-slate-500);font-size:var(--text-base);line-height:1.75}.legal-content p{margin:16px 0 0}.legal-content ul{gap:10px;margin:16px 0 0;padding-left:22px;display:grid}.legal-content a{color:var(--color-cyan-600);font-weight:650}.login-legal-links{color:var(--color-slate-500);flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:14px;font-size:11px;display:flex}.login-legal-links a{color:inherit}.login-legal-links a:hover{color:var(--color-cyan-600)}@media (max-width:900px){.public-hero{grid-template-columns:1fr;gap:48px;padding-top:60px}.public-hero-copy{max-width:760px}.public-signal{width:min(620px,100%)}.public-section-heading{grid-template-columns:1fr;gap:22px}.public-section-heading p{max-width:640px}.public-google-data{grid-template-columns:1fr}}@media (max-width:680px){.public-header{width:min(100% - 32px,1180px);min-height:66px}.public-brand img{width:140px}.public-nav{gap:14px}.public-nav>a:first-child{display:none}.public-nav{font-size:12px}.public-login-link{min-height:38px;padding:0 14px}.public-hero,.public-trust-line,.public-mechanism,.public-google-data,.public-close,.public-footer,.legal-page{width:min(100% - 32px,1180px)}.public-hero{min-height:0;padding:54px 0 60px}.public-hero-copy h1{font-size:clamp(40px,13vw,58px)}.public-actions{flex-direction:column;align-items:stretch}.public-actions>*{width:100%}.public-radar{min-height:220px}.public-signal-copy{padding:22px 20px 24px}.public-signal-copy dl{grid-template-columns:1fr}.public-signal-copy dl div{border-top:1px solid #ffffff1f;border-left:0;padding:10px 0 0}.public-trust-line{grid-template-columns:1fr}.public-trust-line span{text-align:left;padding:16px}.public-trust-line span+span{border-top:1px solid var(--color-slate-200);border-left:0}.public-mechanism{padding:80px 0}.public-mechanism-flow{grid-template-columns:1fr;margin-top:42px}.public-mechanism-flow article{padding:25px 0 30px}.public-mechanism-flow article+article{border-top:1px solid var(--color-slate-200);border-left:0;padding-left:0}.public-google-data{border-radius:22px;padding:38px 24px}.public-google-data dl div{grid-template-columns:1fr;gap:5px}.public-close{padding:90px 0}.public-footer{grid-template-columns:1fr}.public-footer nav{justify-content:flex-start;gap:14px 20px}.public-footer p{grid-column:auto;margin:0}.legal-page{padding:52px 0 80px}.legal-heading{padding-bottom:36px}.legal-heading h1{font-size:clamp(40px,13vw,54px)}.legal-heading p{font-size:var(--text-base)}}@media (prefers-reduced-motion:reduce){.public-site *,.public-site :before,.public-site :after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.search-select{position:relative}.search-select input{padding-right:var(--space-8,36px)}.search-select-clear{top:50%;right:var(--space-2);width:28px;height:28px;color:var(--color-ink-500);font-size:var(--text-lg);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;line-height:1;position:absolute;transform:translateY(-50%)}.search-select-clear:hover{background:var(--color-ink-100);color:var(--color-ink-900)}.search-select-list{z-index:200;background:var(--color-surface);border:1.5px solid var(--color-ink-300);border-radius:var(--radius-md);padding:var(--space-1);max-height:260px;margin:0;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.search-select-option{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-base);color:var(--color-ink-900);align-items:baseline;gap:var(--space-2);display:flex}.search-select-option.is-active{background:var(--color-ink-100)}.search-select-option.is-selected{font-weight:600}.search-select-option-hint{font-size:var(--text-xs);color:var(--color-ink-500)}.search-select-empty{padding:var(--space-2) var(--space-3);color:var(--color-ink-500);font-size:var(--text-sm)}.loc-badge{max-width:100%;font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;background:color-mix(in srgb, var(--loc-color,#1e88e5) 13%, #fff);color:color-mix(in srgb, var(--loc-color,#1e88e5) 72%, #000);border:1px solid color-mix(in srgb, var(--loc-color,#1e88e5) 38%, #fff);border-radius:999px;flex:none;align-items:center;gap:4px;padding:2px 8px;font-weight:700;line-height:1.5;display:inline-flex;overflow:hidden}.loc-color-picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.loc-color-swatch{cursor:pointer;background:var(--loc-color);width:24px;height:24px;box-shadow:0 0 0 1px var(--color-ink-100,#e7e9f1);border:2px solid #fff;border-radius:50%;padding:0}.loc-color-swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--color-ink-900,#101b33)}.loc-color-swatch.auto{background:repeating-conic-gradient(#e5e7eb 0 25%, #fff 0 50%) 0 0 / 8px 8px}.loc-color-swatch:focus-visible{outline:2px solid var(--color-cobalt-600,#2563eb);outline-offset:2px}
