@charset "UTF-8";
:root{--bg:#f5f7fa;--ink:#172b3a;--muted:#71808e;--line:#e5ebf0;--nav:#132b50;--accent:#234d85;--accent-pale:#edf2fa;--radius:12px;--shadow:0 3px 18px #21374305}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 "Segoe UI",Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5f91d4;outline-offset:3px}h1,h2,p{margin-top:0}h1{font-size:31px;letter-spacing:-1px;line-height:1.25;margin-bottom:8px;font-weight:650}h2{font-size:17px;letter-spacing:-.3px;font-weight:650;margin-bottom:12px}p{margin-bottom:16px}.muted{color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--nav);color:#e5edf8;display:flex;flex-direction:column;z-index:10;padding:27px 18px 0}.brand{display:flex;align-items:center;gap:12px;color:inherit;font-size:22px;font-weight:700;line-height:1.25;letter-spacing:.3px}.brand:hover{text-decoration:none}.brand small{display:block;font-size:10px;font-weight:400;color:#a0b5d0;letter-spacing:.4px;margin-top:4px}.brand-mark{background:#cadcf5;color:#18365d;width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-size:33px;font-weight:700;letter-spacing:-4px;padding-right:4px}.sidebar>.brand{margin:0 12px 27px}.sidebar nav{overflow:auto;min-height:0;padding-bottom:20px;scrollbar-width:thin;scrollbar-color:#3a5478 transparent}.nav-caption{font-size:9px;letter-spacing:1.6px;color:#8298b7;font-weight:700;margin:21px 13px 9px}.sidebar>.nav-caption{margin-top:0}.nav-item{display:block;padding:8px 13px;color:#b7c8df;border-radius:7px;font-size:12px;margin:2px 0;transition:background .12s}.nav-item:hover{color:white;background:#203f69;text-decoration:none}.nav-item.active{color:#e1ecff;background:#244773;box-shadow:inset 3px 0 #8ab4ed}.sidebar-footer{display:flex;gap:9px;align-items:center;margin-top:auto;padding:18px 2px;border-top:1px solid #ffffff10;font-size:12px}.sidebar-footer small{display:block;color:#96adcb;font-size:10px}.sidebar-footer form{margin-left:auto}.avatar{width:31px;height:31px;border-radius:50%;background:#36557e;display:grid;place-items:center}.logout{background:none;border:0;color:#b2c7e5;padding:6px;font-size:11px}#main{margin-left:245px}.topbar{height:67px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 40px;font-size:11px;color:#8a98a4}.topbar a{font-size:11px;color:#526979}.crumb{padding-left:10px;color:#495d6b}.content{max-width:1540px;margin:auto;padding:35px 40px 0}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:29px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:#80959e;margin-bottom:12px}.page-heading p{font-size:12px;margin-bottom:0}.semester-select{min-width:160px}.semester-select label{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline select{min-width:100px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border:1px solid transparent;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;line-height:1.5;min-height:36px}.button:hover{text-decoration:none;filter:brightness(.97)}.primary{background:var(--accent);color:#fff}.subtle{color:#536773;background:#fff;border-color:#dce4ea}.light{background:#e8f0fd;color:#204574}.danger{background:#b53743;color:#fff}.full{width:100%}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.metric{color:var(--ink);padding:20px 22px;transition:transform .12s}.metric:hover{text-decoration:none;transform:translateY(-2px)}.metric>span{display:block;color:#70808b;font-size:11px}.metric strong{font-size:34px;font-weight:600;letter-spacing:-1px;display:block;margin:5px 0 12px}.metric small{font-size:10px;color:#80929c;display:flex;justify-content:space-between;border-top:1px solid #f0f3f5;padding-top:10px}.metric small span{color:var(--accent);font-size:13px}.hero-panel{background:#18365d;border-radius:var(--radius);padding:34px 38px;margin-bottom:25px;color:white;display:flex;justify-content:space-between;align-items:center;overflow:hidden;gap:30px}.hero-panel .eyebrow{color:#a6c1e8}.hero-panel h2{font-size:28px;line-height:1.2;letter-spacing:-.7px;margin-bottom:14px}.hero-panel p{color:#b8cbe4;font-size:12px;max-width:450px;margin-bottom:22px}.mini-grid{display:grid;grid-template-columns:repeat(4,54px);gap:8px;transform:rotate(-6deg);margin-right:20px;flex-shrink:0}.mini-grid span{text-align:center;font-size:9px;color:#b8cfed}.mini-grid i{height:40px;border-radius:5px;background:#ffffff0a;border:1px solid #ffffff0b}.mini-grid .filled{background:#8baedc;border-color:transparent}.mini-grid .blue{background:#718eaa;border-color:transparent}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.section-heading h2{margin-bottom:0;font-size:15px}.section-heading a{font-size:10px}.section-heading>.muted{font-size:11px;margin-bottom:0}.badge{display:inline-flex;padding:3px 8px;border-radius:5px;background:#eef4f6;color:#5e7983;font-size:9px;font-weight:600;white-space:nowrap}.badge.warning{background:#fff1db;color:#936323}.action-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-top:1px solid #f0f3f5;color:var(--ink)}.action-row:hover{text-decoration:none}.action-row strong{font-size:12px;font-weight:600;display:block}.action-row small{font-size:10px;color:var(--muted);display:block;margin-top:2px}.action-row b{color:var(--accent);font-size:17px}.activity{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-top:1px solid #f0f3f5}.activity-dot{height:7px;width:7px;flex-shrink:0;border-radius:50%;background:#608ac3;margin-top:6px}.activity strong{font-size:11px;font-weight:600}.activity p{font-size:11px;color:#71818c;margin:3px 0}.activity small{font-size:9px;color:#96a3ad}.page-footer{font-size:9px;letter-spacing:.5px;color:#9baab2;margin-top:45px;padding:18px 0;border-top:1px solid var(--line);display:flex;gap:15px}.page-footer span{letter-spacing:0}.message,.notice{padding:13px 17px;border-radius:8px;margin-bottom:20px;font-size:12px;border:1px solid #dce7ed;background:#eef4f7;color:#496673}.message.success{border-color:#cee5d8;background:#ebf7ef;color:#2f7658}.message.error{border-color:#efd4d5;background:#fff1f2;color:#a5434c}.table-panel{padding:0;overflow:hidden}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 23px}.search-form{display:flex;gap:8px;max-width:550px;flex:1}.search-form input{width:100%}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}th{font-size:9px;letter-spacing:.5px;text-transform:uppercase;color:#7e909d;font-weight:600;background:#f8fafb;padding:14px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #eef2f5;vertical-align:top;overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcfd}.actions{white-space:nowrap;text-align:right}.actions a+a{margin-left:13px}.danger-link{color:#ad6971}.empty{text-align:center;padding:52px 20px;color:#91a0ab;font-size:12px}.empty strong{display:block;font-size:14px;color:#657e8b;font-weight:600}.empty p{font-size:11px;margin-top:7px;margin-bottom:0}.empty.compact{padding:25px 12px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.pagination div{display:flex;gap:8px}input:not([type=checkbox]),select,textarea{display:block;width:100%;border:1px solid #dce4ea;border-radius:6px;background:#fff;color:var(--ink);padding:9px 11px;font-size:12px;min-height:38px}select[multiple]{padding:6px}select[multiple] option{padding:5px 7px}textarea{resize:vertical;min-height:85px}input[type=file]{padding:12px;background:#f8fafb}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.field{margin-bottom:19px;min-width:0}.field>label{display:block;font-size:11px;font-weight:600;color:#47606d;margin-bottom:7px}.help{display:block;font-size:10px;color:#83949f;margin-top:7px;line-height:1.6}.required{color:#b65c66}.form-panel{max-width:900px;padding:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.form-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:22px;margin-top:15px}.back-link{display:inline-block;font-size:11px;color:#7b929c;margin-bottom:23px}.errorlist{font-size:11px;color:#ae3949;background:#fff2f3;padding:10px 13px 10px 27px;border-radius:6px;list-style:disc}.errorlist li{padding:2px 0}.field ul{margin-top:5px}.field div:has(>div>label>input[type=checkbox]){display:grid;grid-template-columns:1fr 1fr;gap:7px}.field div>label:has(input[type=checkbox]){display:flex;align-items:center;gap:7px;font-size:12px}.filters{display:flex;gap:15px;align-items:flex-end;padding:18px 22px;margin-bottom:22px;flex-wrap:wrap}.filters .field{margin-bottom:0;flex:1;min-width:140px}.filters .button{margin-bottom:1px}.schedule-panel{padding:0;overflow:hidden}.schedule{table-layout:fixed}.schedule thead th:first-child{width:100px}.schedule tbody th{white-space:normal;vertical-align:top;background:#fff;font-size:10px;padding:21px 15px;text-transform:none;letter-spacing:0}.schedule td{padding:9px;border-left:1px solid var(--line);background:#fcfdfe}.schedule th,.schedule td{border-bottom:1px solid var(--line)}.lesson{padding:11px 12px;border-radius:6px;background:#eaf1fb;border-left:3px solid #819ec9;margin-bottom:8px}.lesson:last-child{margin-bottom:0}.lesson.kind-P{background:#e9f5ef;border-left-color:#6caa8d}.lesson.kind-EAD{background:#fbf2e5;border-left-color:#d6ae6f}.lesson-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.5px;color:#6c85a0;margin-bottom:5px}.lesson-top a{font-size:14px}.lesson strong{display:block;font-size:10px;line-height:1.5;font-weight:650;color:#385771}.lesson.kind-P strong{color:#376753}.lesson.kind-EAD strong{color:#8a6c40}.lesson small{display:block;font-size:9px;color:#738592;line-height:1.5;margin-top:6px}.lesson-teacher{font-size:9px;color:#718698;border-top:1px solid #00000007;padding-top:6px;margin-top:8px}.empty-slot{display:block;padding:15px;color:#cbd4db;text-align:center}.legend{display:flex;gap:18px;font-size:10px;color:#7b8c97}.legend>span{display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;display:inline-block;border-radius:2px}.theoretical{background:#8aa7ce}.practical{background:#81b79d}.distance{background:#d6b47e}.padded{padding:20px 23px;margin-bottom:0}.cell-secondary{display:block;font-size:9px;color:#8b9da7;margin-top:4px}.standalone #main{margin-left:0}.standalone .content{max-width:1300px}.public-header{background:white;padding:21px 40px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.public-header .brand{font-size:18px}.public-header .brand small{color:#7b919a}.public-header nav{display:flex;gap:25px;font-size:12px}.login-layout{display:grid;grid-template-columns:1fr 1fr;max-width:950px;min-height:500px;margin:55px auto 80px;gap:90px;align-items:center}.login-intro h1{font-size:47px;line-height:1.1;letter-spacing:-2px;color:#1d3d69;margin-bottom:24px}.login-intro p{font-size:14px;max-width:330px;color:#80929b}.login-panel{padding:38px}.login-panel h2{font-size:23px;margin-bottom:6px}.login-panel .muted{font-size:12px;margin-bottom:27px}.login-help{font-size:10px;color:#8a9ba5;text-align:center;margin:20px 0 0}.login-decoration{display:grid;grid-template-columns:repeat(3,70px);gap:10px;transform:rotate(-5deg);margin:40px 0 0 20px}.login-decoration span{height:35px;border-radius:6px;background:#e4ecf8}.login-decoration span:nth-child(2),.login-decoration span:nth-child(4){background:#a1bce0}.login-decoration span:last-child{background:#a8bfd5}
@media(min-width:1600px){.sidebar{width:265px}#main{margin-left:265px}.content{padding:45px 55px 0}.nav-item{font-size:13px;padding:9px 13px}}
@media(max-width:1100px){.content{padding:28px 25px 0}.topbar{padding:0 25px}.metrics{gap:10px}.metric{padding:17px}.hero-panel{padding:28px}.mini-grid{grid-template-columns:repeat(4,40px);margin:0}.two-col{gap:16px}.login-layout{gap:40px}}
@media(max-width:800px){.sidebar{position:relative;width:100%;padding:17px 20px}.sidebar>.brand{margin:0 0 14px}.sidebar>.nav-caption,.sidebar nav .nav-caption,.sidebar-footer{display:none}.sidebar nav{display:flex;gap:5px;overflow:auto;padding:0}.sidebar nav .nav-item{white-space:nowrap;padding:7px 12px;font-size:11px}.sidebar nav .nav-item.active{box-shadow:none}.sidebar .brand small{display:inline;margin-left:8px}.brand-mark{width:33px;height:33px;font-size:27px;border-radius:9px}#main{margin-left:0}.topbar{height:46px;padding:0 20px;font-size:10px}.topbar a{font-size:10px}.content{padding:25px 20px 0}.page-heading{margin-bottom:23px}h1{font-size:26px}.metrics{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.hero-panel{padding:25px}.hero-panel h2{font-size:24px}.mini-grid{grid-template-columns:repeat(4,30px);gap:5px}.mini-grid i{height:30px}.form-grid{grid-template-columns:1fr}.form-panel{padding:23px}.page-footer{margin-top:28px}.public-header{padding:16px 20px}.public-header nav{gap:14px;font-size:11px}.public-header .brand small{display:none}.schedule{min-width:700px}.filters{padding:16px;gap:12px}.login-layout{grid-template-columns:1fr;gap:30px;max-width:450px;margin:20px auto 40px}.login-intro{display:none}.login-panel{padding:28px}.table-toolbar{padding:15px;gap:10px}.search-form .button{display:none}.section-heading .inline{gap:5px}.table-toolbar .button{padding:9px 12px}.semester-select{min-width:130px}.eyebrow{font-size:8px}.table-scroll th,.table-scroll td{padding:12px 14px}}
@media print{.sidebar,.topbar,.page-footer,.filters,.button,.public-header,.semester-select,.back-link,.lesson-top a{display:none!important}#main{margin:0}.content{padding:0;max-width:none}.panel{box-shadow:none}.table-scroll{overflow:visible}.schedule{min-width:0}.lesson{break-inside:avoid}.page-heading{margin-bottom:15px}body{background:#fff;font-size:10px}}

.field .exam-invigilator-choices{display:grid;grid-template-columns:1fr!important;gap:4px;max-height:260px;overflow-y:auto;padding:10px;border:1px solid #dce4ea;border-radius:6px;background:#fff}.exam-invigilator-choices .teacher-option{padding:8px;border-radius:4px;line-height:1.5}.exam-invigilator-choices label:has(input:checked){background:#edf3fc;color:#244773;font-weight:600}.exam-invigilator-choices input{flex-shrink:0}

.teacher-option-name{flex:1;min-width:0}.teacher-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:600;line-height:1.4;background:#edf1f5;color:#526277}.teacher-status.status-livre{background:#d8f3e4;color:#17633e}.teacher-status.status-ocupado{background:#ffe0e3;color:#9d2636}.teacher-status.status-fora{background:#fff0ca;color:#845500}.teacher-status.status-sem_disponibilidade,.teacher-status.status-sem_horario{background:#edf1f5;color:#526277}.teacher-option .teacher-status{margin-left:auto;max-width:52%;flex-shrink:0}.conflict-tabs{display:flex;gap:10px;margin:20px 0;flex-wrap:wrap}.conflict-section{margin-bottom:24px}.conflict-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.conflict-actions .button{font-size:11px;padding:7px 10px}.conflict-actions form{margin:0}
.public-header{flex-wrap:wrap;gap:16px}.public-header nav{flex-wrap:wrap}
.public-header nav{gap:10px;align-items:stretch}.public-nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;border:1px solid #b8cce5;border-radius:8px;background:#edf3fc;color:#244773;font-size:13px;font-weight:650;line-height:1.4;text-align:center;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s}.public-nav-link:hover{background:#dce9fa;border-color:#577ca9;color:#173a68;box-shadow:0 2px 6px #24477315}.public-nav-link:focus-visible{outline:3px solid #6097de;outline-offset:3px}.public-nav-entry{border:2px solid #244773;background:#fff;color:#244773}.public-nav-link[aria-current=page]{background:#244773;border-color:#244773;color:#fff;box-shadow:0 2px 6px #24477326}
@media(max-width:650px){.public-header nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px}.public-nav-link{min-height:48px;padding:11px 12px;font-size:12px}}
