:root{font-family:Tahoma,Arial,sans-serif;color:#193b45;background:#eef3f4;font-synthesis:none;line-height:1.7}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #d6e2e4;border-radius:9px;padding:9px 15px;background:#fff;color:#193b45;transition:background .15s}button:hover:not(:disabled){background:#e8f2f0}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #c09241;outline-offset:3px}input[type=checkbox]{accent-color:#16796c;width:18px;height:18px}input:not([type=checkbox]){width:100%;border:1px solid #cbd8dc;border-radius:8px;padding:12px;background:#fcfdfd}.primary{background:#156c61;color:#fff;border-color:#156c61;font-weight:700}.primary:hover:not(:disabled){background:#10564d}.portal-shell{height:100dvh;display:flex;flex-direction:column;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 3vw;background:#fff;border-bottom:1px solid #dce6e8;gap:18px}.institute-brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px}.institute-brand span{display:block;font-size:12px;font-weight:400;color:#5d747c}.institute-logo{width:55px;height:55px;object-fit:contain;border-radius:50%}.institute-logo-large{width:80px;height:80px}.top-actions{display:flex;align-items:center;gap:18px}.secure-mark{font:12px Arial;color:#6b858c}.portal-content{flex:1;min-height:0;overflow:auto;padding:22px 3vw}.app-copyright{text-align:center;font-size:11px;padding:7px;color:#657e85;background:#fff}.eyebrow{font-size:12px;color:#6d8588;display:block}.semester-strip{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.semester-strip strong{font-size:18px}.workspace{display:grid;grid-template-columns:265px minmax(0,1fr);gap:22px;align-items:start}.student-panel{border:1px solid #dce7e8;border-radius:16px;background:#fff;padding:22px 19px}.student-identity{text-align:center}.avatar{display:grid;place-items:center;margin:auto;width:68px;height:68px;border-radius:24px;background:#e6f2ee;font-size:29px;color:#167767}.student-identity h2{font-size:19px;margin:12px 0 0}.student-code{display:block;font:14px Arial;color:#6a828a;margin:8px}.status-pill{display:inline-block;border-radius:20px;font-size:11px;background:#edf6ef;color:#39815d;padding:3px 16px}.student-panel dl{margin:22px 0}.student-panel dl div{padding:10px 0;border-bottom:1px solid #edf2f3}.student-panel dt{font-size:11px;color:#71878b}.student-panel dd{margin:2px 0;font-size:13px;font-weight:700}.student-panel small{display:block;font-size:10px;color:#788b90;margin-top:16px}.sidebar-actions{display:grid;gap:8px}.sidebar-actions button{font-size:12px}.study-panel{min-width:0}.greeting{padding:23px 28px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#174b55,#123b43);position:relative;overflow:hidden}.greeting:after{content:"";position:absolute;left:-40px;top:-100px;width:270px;height:270px;border:40px solid #ffffff08;border-radius:50%;pointer-events:none}.greeting .eyebrow{color:#b6d1cc}.greeting h2{font-size:25px;margin:7px 0}.greeting p{font-size:12px;color:#c1d9d8;margin:6px 0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:17px 0}.metrics article{background:#fff;border:1px solid #dce7e8;border-radius:12px;padding:15px 17px}.metrics span{display:block;font-size:11px;color:#71858b}.metrics strong{display:block;margin-top:6px;font-size:21px;overflow-wrap:anywhere}.tabs{display:flex;border-bottom:1px solid #d4e1e3;gap:12px;margin-top:22px}.tabs button{border:0;background:none;border-radius:0;padding:12px 10px;font-size:13px;color:#70858b}.tabs .active{color:#176b60;border-bottom:3px solid #176b60;font-weight:700}.tab-content{background:#fff;border:1px solid #dce7e8;border-top:0;border-radius:0 0 15px 15px;padding:22px;margin-bottom:15px}.heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.heading h1{font-size:19px;margin:0}.heading p{font-size:11px;color:#7b8c91;margin:3px 0}.header-actions{display:flex;gap:6px}.header-actions button{font-size:11px;padding:6px 10px}.progress-steps{list-style:none;display:flex;padding:15px 0;margin:8px 0;counter-reset:stage;gap:16px}.progress-steps li{flex:1;font-size:11px;color:#8b9b9e;border-bottom:3px solid #e9eff0;padding-bottom:9px}.progress-steps li:before{counter-increment:stage;content:counter(stage);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#edf2f3;margin-left:7px}.progress-steps .done{border-color:#4c9d8c;color:#277562}.request-state{display:flex;gap:12px;padding:13px 16px;background:#f5f8ed;border:1px solid #e3ebce;border-radius:10px;margin-bottom:16px}.request-state strong{font-size:12px}.request-state p{font-size:11px;color:#6f7f66;margin:2px 0}.state-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#9aaf58;margin-top:9px}.confirmed{background:#edf8f3}.subjects-scroll{overflow:auto;max-height:390px;border:1px solid #e4ecee;border-radius:10px}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{text-align:right;background:#f4f7f8;color:#71858a;font-size:10px;font-weight:400;position:sticky;top:0;z-index:1}th,td{padding:13px 10px;border-bottom:1px solid #edf2f3}td:nth-child(3){font-weight:700;white-space:normal;min-width:180px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfc}.submit-area{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}.submit-area strong{font-size:12px}.submit-area p{font-size:10px;color:#788e94;margin:3px 0;max-width:470px}.submit-area button{font-size:12px;white-space:nowrap}.submit-area button span{margin-right:15px}.notes-list{display:grid;gap:12px}.notes-list article{border:1px solid #e1e9eb;border-radius:10px;padding:15px 18px}.notes-list h3{font-size:14px;margin:0 0 7px}.notes-list p{font-size:13px;white-space:pre-line;margin:0}.notes-list small{font-size:10px;color:#7b8d91}.message{margin:8px 3vw 0;border-radius:9px;padding:10px 15px;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}.error{background:#fff0ee;color:#9b3d36}.success{background:#e5f5ed;color:#256d53}.demo-banner{text-align:center;background:#fff3d8;color:#825c22;font-size:11px;padding:4px}.empty{text-align:center;padding:24px;color:#7b8c91;font-size:13px}dialog{border:1px solid #d1dfe1;border-radius:16px;padding:27px;max-width:600px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;color:#24424a}dialog::backdrop{background:#142c38a6}.confirm-dialog h2{font-size:22px}.confirm-dialog p{font-size:13px}.agreement{display:flex;align-items:center;gap:10px;padding:15px;background:#f2f7f5;border-radius:8px;font-size:13px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.export-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}.export-columns label{display:flex;align-items:center;gap:8px}.export-column-actions{display:flex;align-items:center;gap:10px;margin-top:15px}.export-dialog fieldset{border:1px solid #d7e1e3;border-radius:8px;margin:12px 0}.export-dialog fieldset label{display:block;font-size:12px}.export-dialog p{font-size:12px}.login-layout{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:8vw;max-width:1100px;margin:auto;padding:30px}.welcome h1{font-size:48px;line-height:1.5;margin:15px 0}.welcome p{max-width:420px;color:#71858b}.welcome-lines{display:flex;gap:20px;margin-top:40px;font-size:12px;color:#176b60}.login-card{background:#fff;border:1px solid #dce6e8;border-radius:20px;padding:30px;text-align:center;box-shadow:0 15px 50px #123c4708}.login-card h2{font-size:21px}.login-card p,.login-card small{color:#7b8d92;font-size:12px}.login-card label{display:block;text-align:right;font-size:12px;margin:18px 0 7px}.login-card button{width:100%;margin:15px 0}.login-card small{display:block}.login-card input{margin-top:7px}@media(min-width:1600px){.portal-content{padding-left:max(3vw,calc((100vw - 1500px)/2));padding-right:max(3vw,calc((100vw - 1500px)/2))}}@media(max-width:1050px){.workspace{grid-template-columns:220px minmax(0,1fr);gap:15px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.greeting h2{font-size:21px}.heading{align-items:flex-start;flex-direction:column}.login-layout{gap:25px}.welcome h1{font-size:35px}.submit-area{align-items:stretch;flex-direction:column}}@media(max-width:700px){.topbar{padding:10px 15px}.institute-brand{font-size:13px;gap:8px}.institute-logo{width:43px;height:43px}.institute-brand span{font-size:10px}.secure-mark{display:none}.top-actions button{font-size:10px;padding:7px}.portal-content{padding:15px}.semester-strip strong{font-size:14px}.semester-strip button{font-size:10px}.workspace{display:flex;flex-direction:column}.student-panel{width:100%;padding:16px}.student-identity{text-align:right;display:grid;grid-template-columns:46px 1fr auto;column-gap:10px;align-items:center}.avatar{grid-row:1/3;width:43px;height:43px;border-radius:14px;font-size:20px}.student-identity h2{font-size:16px;margin:0}.student-code{grid-column:2;font-size:12px;margin:0;text-align:right}.status-pill{grid-column:3;grid-row:1}.student-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:0 15px;margin:10px 0}.student-panel dl div:last-child{grid-column:1/-1}.sidebar-actions{grid-template-columns:1fr 1fr}.student-panel small{margin-top:9px}.study-panel{width:100%}.greeting{padding:20px}.greeting h2{font-size:19px}.metrics{gap:8px}.metrics article{padding:12px}.metrics strong{font-size:19px}.tabs{gap:3px}.tabs button{font-size:11px;padding:12px 7px}.tab-content{padding:15px}.progress-steps{gap:8px}.progress-steps li{font-size:10px}.progress-steps li:before{width:18px;height:18px;margin-left:4px}.header-actions{width:100%}.header-actions button{flex:1}.login-layout{display:flex;flex-direction:column;padding:10px;gap:20px}.welcome h1{font-size:30px}.welcome p{font-size:13px}.welcome-lines{margin-top:15px;gap:12px}.login-card{width:100%;padding:22px}.message{flex-shrink:0;max-height:120px;overflow:auto}.export-columns{grid-template-columns:1fr}.export-column-actions{flex-wrap:wrap}}.card-auth-code{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:16px 20px;border:1px solid #cbdccf;border-radius:12px;background:#f0f7ef}.card-auth-code span{font-size:13px;font-weight:700;color:#365d42}.card-auth-code strong{font:700 24px Arial,sans-serif;letter-spacing:.12em;color:#174b55}.card-auth-code p{flex-basis:100%;margin:0;font-size:12px;color:#71858b}
