:root{color:#172b2b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f4f7f5;min-width:320px;min-height:100svh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}input,select,textarea{color:#172b2b}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #ef8354}.shell{min-height:100svh}.app-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7faf9f5;border-bottom:1px solid #d7e3df;position:sticky;top:0}.header-inner{align-items:center;gap:14px;width:min(1180px,100%);min-height:66px;margin:0 auto;padding:10px 24px;display:flex}.brand{color:#172b2b;text-align:left;background:0 0;border:0;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.brand strong{letter-spacing:0;font-size:15px;display:block}.brand small{text-overflow:ellipsis;white-space:nowrap;color:#687978;max-width:310px;margin-top:1px;font-size:12px;display:block;overflow:hidden}.brand-mark{background:#0f766e;border-radius:5px;grid-template-rows:repeat(2,8px);grid-template-columns:repeat(2,8px);gap:3px;padding:4px;display:grid}.brand-mark span{background:#f7faf9;display:block}.connection{color:#49605d;white-space:nowrap;margin-left:auto;font-size:12px}.connection:before{content:"";background:#4a9d77;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.connection.is-offline:before{background:#df7a4e}.back-button,.text-button{color:#0f766e;background:0 0;border:0;padding:10px 4px;font-weight:700}.back-button:before{content:"< "}.back-button.inverted{color:#fff}.main-content{width:min(1180px,100%);margin:0 auto;padding:42px 24px 64px}.toast{z-index:30;color:#fff;background:#172b2b;border-radius:6px;max-width:min(480px,100% - 32px);padding:12px 16px;font-size:14px;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #172b2b38}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:#172b2b;letter-spacing:0}h1{margin-bottom:9px;font-size:clamp(28px,5vw,42px);line-height:1.08}h2{margin-bottom:8px;font-size:21px;line-height:1.18}h3{margin-bottom:0;font-size:17px}p{color:#596c69;line-height:1.52}.eyebrow{color:#0f766e;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.lead{max-width:650px;font-size:17px}.optional{color:#748785;font-size:12px;font-weight:500}.home-intro{max-width:720px;margin:26px 0 30px}.primary-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.action-card{color:#172b2b;text-align:left;background:#fff;border:1px solid #cfded9;border-radius:8px;align-items:center;gap:15px;min-height:120px;padding:18px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.action-card:hover{border-color:#0f766e;transform:translateY(-1px);box-shadow:0 8px 18px #172b2b14}.action-card.primary{color:#fff;background:#0f766e;border-color:#0f766e}.action-card strong,.action-card small{display:block}.action-card small{color:#69807c;margin-top:4px;font-size:13px;line-height:1.35}.action-card.primary small{color:#cde7df}.action-icon{color:#0f766e;background:#e3f0ec;border-radius:6px;flex:none;place-items:center;width:39px;height:39px;font-size:24px;font-weight:500;display:grid}.primary .action-icon{color:#0f766e;background:#fff}.import-card{cursor:pointer;position:relative}.import-card input,.import-choice input{opacity:0;cursor:pointer;position:absolute;inset:0}.saved-projects{margin-top:48px}.section-heading,.table-title{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:15px;display:flex}.section-heading h2,.table-title h2{margin:0}.count-pill{color:#395551;background:#e4eeeb;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:800;display:grid}.project-list{gap:12px;display:grid}.project-card{background:#fff;border:1px solid #cfded9;border-radius:8px;padding:18px}.project-card-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-meta{color:#6a7e7a;margin-bottom:4px;font-size:12px;font-weight:700}.template-chip{color:#40605b;white-space:nowrap;background:#f7faf9;border:1px solid #dce8e4;padding:4px 7px;font:11px ui-monospace,Consolas,monospace}.project-stats{color:#60726f;flex-wrap:wrap;gap:8px 18px;margin:20px 0 11px;font-size:13px;display:flex}.project-stats strong{color:#172b2b}.warning-stat{color:#b9502a}.project-card-actions{align-items:center;gap:13px;margin-top:18px;display:flex}.button{border:1px solid #0000;border-radius:6px;min-height:43px;padding:9px 15px;font-size:14px;font-weight:800;transition:background .15s,border-color .15s}.button.primary{color:#fff;background:#0f766e;border-color:#0f766e}.button.primary:hover{background:#0b655e}.button.secondary{color:#0f766e;background:#fff;border-color:#9ebdb6}.button.secondary:hover{background:#edf6f3;border-color:#0f766e}.button.light{color:#172b2b;background:#fff;border-color:#fff}.button.compact{min-height:36px;padding:7px 10px;font-size:12px}.icon-button{color:#0f766e;background:#fff;border:1px solid #9ebdb6;border-radius:6px;width:43px;height:43px;font-size:22px;line-height:1}.dashboard-top{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.project-subtitle{margin-bottom:0}.top-actions,.export-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.metrics{border-top:1px solid #cfded9;border-bottom:1px solid #cfded9;grid-template-columns:repeat(4,1fr);margin:32px 0 0;display:grid}.metrics>div{border-right:1px solid #cfded9;padding:16px 12px 17px}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border-right:0}.metrics strong,.metrics span{display:block}.metrics strong{font-size:24px;line-height:1}.metrics span{color:#647775;margin-top:5px;font-size:12px}.metric-warning strong,.metric-warning span{color:#c35a31}.progress-section{padding:18px 0 26px}.progress-label{color:#61736f;justify-content:space-between;margin-bottom:8px;font-size:13px;display:flex}.progress-label strong{color:#172b2b}.progress-track{background:#dfe9e6;border-radius:999px;height:7px;overflow:hidden}.progress-track span{border-radius:inherit;background:#0f766e;height:100%;display:block}.progress-track.large{height:9px}.dashboard-tools{border-top:1px solid #d7e3df;justify-content:space-between;align-items:flex-end;gap:14px;padding:15px 0;display:flex}.filter-tabs{gap:4px;padding-bottom:1px;display:flex;overflow-x:auto}.filter-button{color:#54706b;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;min-height:36px;padding:6px 10px;font-size:13px;font-weight:750}.filter-button.active{color:#0f766e;background:#dff0eb;border-color:#bfe0d7}.search-field{color:#60736f;gap:4px;font-size:12px;font-weight:700;display:grid}.search-field input{background:#fff;border:1px solid #bcd0ca;border-radius:5px;min-width:195px;height:36px;padding:6px 9px}.table-section{padding-top:13px}.table-title{align-items:center}.table-title p{margin:0;font-size:13px}.table-scroll{overscroll-behavior-inline:contain;background:#fff;border:1px solid #cfded9;border-radius:6px;width:100%;overflow-x:auto}table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px}th,td{white-space:nowrap;text-align:left;border-bottom:1px solid #e1eae7;height:42px;padding:8px 10px}th{z-index:1;color:#4d625e;text-transform:uppercase;letter-spacing:.04em;background:#edf4f1;font-size:11px;position:sticky;top:0}tbody tr{cursor:pointer}tbody tr:hover{background:#f5faf8}tbody tr:last-child td{border-bottom:0}.cell-number{color:#60736f;font-weight:800}.cell-name{min-width:220px;font-weight:700}.status-badge{color:#36524d;background:#e4eeeb;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:800;display:inline-block}.status-badge.capturado{color:#17653d;background:#dbf0e6}.status-badge.pendiente{color:#687471;background:#edf0ee}.status-badge.revision{color:#a84623;background:#fce7dc}.answer-issue{color:#bd4c27;font-weight:800}.empty-row{text-align:center;color:#6b7d7a;cursor:default;padding:30px}.template-note{color:#6a7c79;margin:14px 0 0;font-size:12px}.form-page,.roster-view,.review-view,.calibration-view{max-width:870px;margin:0 auto}.form-intro{max-width:620px;margin:14px 0 27px}.form-card{background:#fff;border:1px solid #cfded9;border-radius:8px;gap:18px;padding:24px;display:grid}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-card label,.calibration-controls>label{color:#314945;gap:7px;font-size:13px;font-weight:800;display:grid}.form-card input,.form-card select,.calibration-controls input{background:#fff;border:1px solid #afc6c0;border-radius:5px;width:100%;height:43px;padding:8px 10px}.form-card small{color:#687a77;font-size:12px;font-weight:500}.form-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:25px;display:flex}.form-card .form-actions{margin-top:0}.roster-imports{grid-template-columns:1fr 1.35fr;gap:12px;display:grid}.import-choice{color:#204842;cursor:pointer;background:#edf7f4;border:1px dashed #76a89b;border-radius:7px;flex-direction:column;justify-content:center;min-height:135px;padding:19px;display:flex;position:relative}.import-choice:hover{background:#e0f1ec}.import-choice strong,.import-choice small{display:block}.import-choice small,.paste-choice small{color:#64817b;margin-top:5px;font-size:12px;line-height:1.4}.paste-choice{background:#fff;border:1px solid #cfded9;border-radius:7px;grid-template-columns:1fr auto;gap:8px 12px;padding:16px;display:grid}.paste-choice label{grid-column:1/-1}.paste-choice strong,.paste-choice small{display:block}.paste-choice textarea{resize:vertical;border:1px solid #afc6c0;border-radius:5px;grid-column:1/-1;width:100%;padding:9px;line-height:1.42}.paste-choice .button{grid-column:2}.warning-box{color:#8a3c20;background:#fff1e9;border-left:4px solid #e0794e;border-radius:0 5px 5px 0;margin:16px 0;padding:13px 15px}.warning-box strong{display:block}.warning-box p{color:#8a3c20;margin:6px 0 0;font-size:13px}.warning-box ul{margin:8px 0 0;padding-left:20px;font-size:13px}.roster-table-panel{margin-top:24px}.table-input{background:#fff;border:1px solid #c8d8d3;border-radius:4px;width:100%;min-width:210px;height:32px;padding:5px 7px}.number-input{width:78px;min-width:70px}.row-remove{color:#af4827;background:0 0;border:0;border-radius:4px;width:30px;height:30px;font-size:21px;line-height:1}.row-remove:hover{background:#fce5da}.capture-view{max-width:610px;margin:0 auto}.capture-progress{color:#54716b;border-bottom:1px solid #ceddd8;justify-content:space-between;padding-bottom:15px;font-size:13px;display:flex}.capture-progress strong{color:#172b2b}.capture-center{text-align:center;padding-top:42px}.large-number-field{align-items:center;width:min(100%,360px);margin:10px auto 20px;display:inline-flex;position:relative}.large-number-field input{color:#172b2b;text-align:center;background:#fff;border:2px solid #82aca2;border-radius:8px;width:100%;height:102px;padding:10px 72px 10px 18px;font-size:48px;font-weight:800}.large-number-field span{color:#58716c;font-size:13px;font-weight:800;position:absolute;right:18px}.capture-hint,.student-match,.inline-error{text-align:left;border-radius:7px;max-width:480px;margin:0 auto 18px;padding:15px}.capture-hint{color:#58706c;background:#e7f0ed}.student-match{background:#eff9f5;border:1px solid #91c6b9}.student-match.already-captured{background:#fff2eb;border-color:#edb398}.student-match h2{margin-bottom:5px;font-size:19px}.student-match p:last-child{margin-bottom:0;font-size:13px}.inline-error{color:#9b3e21;background:#fff0e9;border:1px solid #f0c1ae}.scan-button{width:min(100%,360px);height:52px;font-size:16px}.center-button{margin:16px auto;display:block}.scanner-view{color:#fff;background:#0c1717;width:100%;min-height:calc(100svh - 66px);margin:-42px -24px -64px}.scanner-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:min(1100px,100%);min-height:70px;margin:0 auto;padding:12px 24px;font-size:13px;font-weight:800;display:grid}.scanner-header>:last-child{color:#b8d4cc;justify-self:end;font-weight:600}.camera-frame{aspect-ratio:3/4;background:#172727;width:min(900px,100%);max-height:calc(100svh - 185px);margin:0 auto;position:relative;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%}.scan-guide{border:2px solid #ffffffb8;position:absolute;inset:8%}.scan-guide i{border-style:solid;border-color:#fff;width:28px;height:28px;position:absolute}.scan-guide i:first-child{border-width:4px 0 0 4px;top:-4px;left:-4px}.scan-guide i:nth-child(2){border-width:4px 4px 0 0;top:-4px;right:-4px}.scan-guide i:nth-child(3){border-width:0 4px 4px 0;bottom:-4px;right:-4px}.scan-guide i:nth-child(4){border-width:0 0 4px 4px;bottom:-4px;left:-4px}.scan-guide span{text-align:center;color:#fff;background:#0c1717b8;width:86%;padding:8px;font-size:12px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.scanner-actions{justify-content:space-between;align-items:center;gap:16px;width:min(900px,100%);margin:0 auto;padding:14px 24px 26px;display:flex}.scanner-actions p{color:#b8d4cc;margin:0;font-size:13px}.review-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin:14px 0 25px;display:flex}.review-heading p:last-child{margin-bottom:0}.response-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.response-cell{color:#596d69;background:#fff;border:1px solid #cfded9;border-radius:5px;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding:7px;font-size:12px;font-weight:800;display:grid}.response-cell select{color:#172b2b;background:#fff;border:1px solid #c4d6d0;border-radius:4px;width:100%;height:31px;padding:3px 4px;font-size:13px;font-weight:800}.response-cell.has-problem{color:#ad4824;background:#fff4ee;border-color:#efad90}.sticky-actions{padding:16px 0 calc(16px + env(safe-area-inset-bottom));background:linear-gradient(#f4f7f500,#f4f7f5 25%);position:sticky;bottom:0}.calibration-controls{grid-template-columns:minmax(260px,1.4fr) repeat(2,minmax(140px,1fr));align-items:stretch;gap:12px;display:grid}.calibration-controls .import-choice{min-height:110px}.calibration-result{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;margin-top:24px;display:grid}.calibration-result img{background:#fff;border:1px solid #b8ccc6;max-width:100%;max-height:580px;display:block}.empty-state{text-align:center;background:#f8fcfa;border:1px dashed #a5c2ba;border-radius:8px;padding:46px 24px}.empty-state.compact{margin-top:24px}.empty-state h2{margin-top:11px}.empty-state p{max-width:430px;margin:0 auto}.empty-icon{color:#0f766e;background:#dcefe9;border-radius:6px;place-items:center;width:48px;height:48px;margin:0 auto;font-size:12px;font-weight:900;display:grid}@media (width<=760px){.header-inner{min-height:60px;padding:9px 16px}.back-button{width:32px;height:32px;padding:0;font-size:0}.back-button:before{content:"<";font-size:24px}.brand small{max-width:155px}.connection{font-size:0}.connection:before{width:9px;height:9px;margin:0}.main-content{padding:28px 16px 48px}.home-intro{margin-top:10px}.primary-actions{grid-template-columns:1fr}.action-card{min-height:82px;padding:14px}.dashboard-top{flex-direction:column;align-items:flex-start}.top-actions{justify-content:flex-start;width:100%}.metrics{grid-template-columns:repeat(2,1fr);margin-top:24px}.metrics>div{border-bottom:1px solid #cfded9;border-right:0;padding-left:0}.metrics>div:nth-last-child(-n+2){border-bottom:0}.dashboard-tools{flex-direction:column;align-items:stretch}.search-field input{width:100%;min-width:0}.table-title{flex-direction:column;align-items:flex-start}.export-actions{justify-content:flex-start}.field-grid,.roster-imports,.calibration-controls,.calibration-result{grid-template-columns:1fr}.form-card{padding:18px}.form-actions{padding:13px 0 calc(13px + env(safe-area-inset-bottom));background:linear-gradient(#f4f7f500,#f4f7f5 26%);position:sticky;bottom:0}.form-actions .button{flex:1}.roster-view .form-actions{margin-top:14px}.capture-center{padding-top:28px}.scanner-view{min-height:calc(100svh - 60px);margin:-28px -16px -48px}.scanner-header{grid-template-columns:auto 1fr;min-height:58px;padding:8px 16px}.scanner-header>:last-child{display:none}.camera-frame{width:100%;max-height:calc(100svh - 160px)}.scanner-actions{padding:13px 16px 22px}.scanner-actions p{display:none}.scanner-actions .button{width:100%}.review-heading{flex-direction:column;align-items:stretch}.response-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.response-cell{grid-template-columns:1fr;gap:3px}.response-cell select{font-size:12px}}@media (width<=390px){.brand small{max-width:125px}.top-actions .button{padding-left:10px;padding-right:10px}.response-grid{gap:5px}}
