:root{--primary: #1565c0;--on-primary: #ffffff;--primary-hover: #0f57ab;--primary-active: #0d4c97;--primary-container: #d7e3ff;--on-primary-container: #001b3c;--secondary-container: #dbe2f9;--on-secondary-container: #131c2b;--error: #ba1a1a;--error-container: #ffdad6;--surface: #f8f9fd;--surface-container-lowest: #ffffff;--surface-container-low: #f1f3f9;--surface-container: #ecedf4;--surface-container-high: #e6e8ee;--on-surface: #1a1c1e;--on-surface-variant: #44474f;--outline: #74777f;--outline-variant: #c4c6d0;--blue: #1565c0;--green: #2e7d32;--orange: #ef6c00;--grey: #607d8b;--elev-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--elev-2: 0 2px 4px rgba(16, 24, 40, .06), 0 4px 14px rgba(16, 24, 40, .1);--elev-3: 0 8px 28px rgba(16, 24, 40, .16);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 28px;--r-full: 999px;font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--on-surface);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--surface)}h1,h2,h3,h4{color:var(--on-surface)}.mi{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.mi.fill{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;letter-spacing:.01em;line-height:1;padding:9px 18px;min-height:40px;border-radius:var(--r-full);border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--primary);transition:background .15s,box-shadow .15s,border-color .15s}button .mi{font-size:18px}button:hover:not(:disabled){background:var(--surface-container);box-shadow:var(--elev-1)}button:active:not(:disabled){background:var(--surface-container-high)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:var(--elev-1)}button.primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--elev-2)}button.primary:active:not(:disabled){background:var(--primary-active)}button.danger{color:var(--error);background:transparent;border-color:#ba1a1a66}button.danger:hover:not(:disabled){background:var(--error-container)}button.link,.link{border:none;background:none;color:var(--primary);padding:8px 12px;min-height:36px;box-shadow:none}button.link:hover:not(:disabled),.link:hover:not(:disabled){background:#1565c014;box-shadow:none}button.link:active:not(:disabled){background:#1565c024}.link.danger{color:var(--error);border:none}.link.danger:hover:not(:disabled){background:var(--error-container)}input:not([type=checkbox]):not([type=radio]),select,textarea{font-family:inherit;font-size:14px;color:var(--on-surface);padding:10px 12px;min-height:40px;border:1px solid var(--outline);border-radius:var(--r-sm);background:var(--surface-container-lowest);transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--on-surface-variant);opacity:.75}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}select{cursor:pointer}code{font-family:ui-monospace,Cascadia Code,monospace;background:var(--surface-container-high);padding:1px 6px;border-radius:4px;font-size:12.5px}.error{color:var(--error);font-size:14px}.hint{color:var(--on-surface-variant);font-size:13px}.login{max-width:420px;margin:14vh auto;text-align:center;background:var(--surface-container-lowest);padding:40px 36px;border-radius:var(--r-xl);box-shadow:var(--elev-2)}.login .logo{display:block;margin:0 auto 20px;border-radius:22px}.login h1{font-size:22px;font-weight:600;margin:0 0 8px}.login p{color:var(--on-surface-variant);margin:0 0 20px}.login>div{display:inline-flex;justify-content:center}.brand{display:inline-flex;align-items:center;gap:10px}.brand strong{font-size:18px;font-weight:600;letter-spacing:.01em}.brand-logo{border-radius:8px}.layout{display:grid;grid-template-columns:360px 1fr;height:100vh}.sidebar{background:var(--surface-container-low);border-right:1px solid var(--outline-variant);display:flex;flex-direction:column;overflow:hidden}.bar{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:var(--surface-container-low);border-bottom:1px solid var(--outline-variant)}.new-exam{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-bottom:1px solid var(--outline-variant)}.new-exam input,.new-exam select{width:100%}.manage-criteria{margin:8px 12px 4px;justify-content:flex-start;align-self:stretch}.icon-btn{min-height:40px;width:40px;padding:0;border-radius:50%;border:1px solid var(--outline-variant);background:var(--surface-container-lowest);color:var(--on-surface-variant);flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-container)}.menu{position:relative;display:inline-flex}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:31;list-style:none;margin:0;padding:6px;min-width:220px;background:var(--surface-container-lowest);border-radius:var(--r-md);box-shadow:var(--elev-3)}.menu-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:14px;color:var(--on-surface);white-space:nowrap}.menu-list li:hover{background:var(--surface-container)}.menu-list li.danger{color:var(--error)}.menu-list li.danger:hover{background:var(--error-container)}.menu-list li .mi{color:inherit}.exam-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.exam-list.inline{overflow:visible;flex:none;padding:4px 0 0}.exam-list li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);cursor:pointer;transition:background .12s}.exam-list li+li{margin-top:2px}.exam-list li:hover{background:#1565c00f}.exam-list li.active{background:var(--secondary-container)}.exam-list .grow{flex:1;min-width:0}.exam-list .name{font-weight:600;font-size:15px;color:var(--on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-list .sub-row{display:flex;align-items:center;gap:8px;margin-top:4px;min-width:0}.exam-list .sub{font-size:12.5px;color:var(--on-surface-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-list .empty{color:var(--on-surface-variant);justify-content:center;cursor:default;padding:22px}.exam-list .empty:hover{background:none}.code{font-size:11.5px;font-weight:600;color:var(--on-secondary-container);background:var(--secondary-container);padding:4px 10px;border-radius:var(--r-full);flex:none;white-space:nowrap}.status-badge{display:inline-flex;align-items:center;gap:6px;flex:none;padding:5px 11px 5px 9px;border-radius:var(--r-full);font-size:13px;font-weight:600;line-height:1;white-space:nowrap;border:1px solid transparent}.status-badge.dense{padding:3px 9px 3px 7px;gap:4px;font-size:12px}.status-badge.blue{color:var(--blue);background:#1565c01f;border-color:#1565c066}.status-badge.green{color:var(--green);background:#2e7d321f;border-color:#2e7d3266}.status-badge.orange{color:var(--orange);background:#ef6c001f;border-color:#ef6c0066}.status-badge.grey{color:var(--grey);background:#607d8b24;border-color:#607d8b6b}.status-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;color:#fff}.status-avatar.blue{background:var(--blue)}.status-avatar.green{background:var(--green)}.status-avatar.orange{background:var(--orange)}.status-avatar.grey{background:var(--grey)}.content{overflow-y:auto;padding:28px;background:var(--surface)}.placeholder{color:var(--on-surface-variant);text-align:center;margin-top:22vh;font-size:15px}.detail{max-width:920px;margin:0 auto}.detail-head{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}.detail-head h2{margin:0;font-size:22px;font-weight:600}.name-input{font-size:18px;font-weight:600;width:280px;flex:none}.spacer{flex:1}.detail-hint{display:flex;align-items:center;gap:6px;color:var(--on-surface-variant);font-size:13.5px;margin:0 0 18px}.detail-hint .mi{color:var(--on-surface-variant)}section{background:var(--surface-container-lowest);border-radius:var(--r-lg);box-shadow:var(--elev-1);padding:20px;margin-bottom:18px}section h3{margin:0 0 14px;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}section h3 .mi{color:var(--primary)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-head h3{margin:0}.count-chip{font-size:12px;font-weight:600;color:var(--on-surface-variant);background:var(--surface-container-high);padding:4px 11px;border-radius:var(--r-full)}.uploaders{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.uploader{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--outline);border-radius:var(--r-md);padding:10px 16px;min-height:44px;color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.uploader:hover{background:#1565c00f;border-color:var(--primary)}.uploader .mi{font-size:20px}.gallery{display:flex;flex-wrap:wrap;gap:12px}.gallery figure{margin:0;width:120px}.gallery img,.img-skeleton{width:120px;height:150px;object-fit:cover;display:block;border-radius:var(--r-md);border:1px solid var(--outline-variant);background:var(--surface-container)}.img-skeleton{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.gallery figcaption{font-size:11px;color:var(--on-surface-variant);text-align:center;margin-top:4px;text-transform:capitalize}.scorecard .srow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--surface-container-high);font-size:14px}.scorecard .srow:last-of-type{border-bottom:none}.scorecard .srow span:first-child{color:var(--on-surface-variant)}.scorecard .srow span:last-child{font-weight:600}.supera{margin-top:12px}.supera-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-full);font-weight:700;font-size:15px}.supera-badge.ok{color:var(--green);background:#2e7d321f}.supera-badge.no{color:var(--error);background:var(--error-container)}.review-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.review-head h3{margin:0}.pending-badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:var(--r-full)}.pending-badge.warn{background:#ef6c0024;color:var(--orange)}.pending-badge.ok{background:#2e7d321f;color:var(--green)}.rgroup{margin:16px 0}.rgroup-title{margin:12px 0 8px;font-size:14px;font-weight:600;color:var(--on-surface-variant);border-bottom:2px solid var(--outline-variant);padding-bottom:6px}.ract{margin:10px 0 16px}.ract-head{font-weight:600;font-size:13px;color:var(--on-surface-variant);margin-bottom:8px}.review-item{border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:12px;margin-bottom:8px;background:var(--surface-container-lowest)}.review-item.flagged{border-color:var(--orange);background:#ef6c000d}.ri-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.ri-head strong{font-size:14px}.ri-head .flag{display:inline-flex;align-items:center;gap:4px;background:var(--orange);color:#fff;border-radius:var(--r-full);padding:2px 9px;font-size:11px;font-weight:600}.ri-head .read{color:var(--on-surface-variant)}.ri-head .changed{color:var(--primary);font-weight:700}.ri-head .conf{margin-left:auto;color:var(--on-surface-variant);font-size:11px}.review-item .note{font-style:italic;color:var(--on-surface-variant);font-size:12.5px;margin:6px 0 0}.note{font-style:italic;color:var(--on-surface-variant);font-size:13px}.read{margin:6px 0}.conf{font-size:12px;color:var(--on-surface-variant)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{min-height:34px;min-width:42px;padding:6px 14px;border-radius:var(--r-sm);border:1px solid var(--outline);background:var(--surface-container-lowest);color:var(--on-surface);font-weight:500;font-size:14px}.chip:hover:not(:disabled){background:var(--surface-container)}.chip.sel{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.chip.sel:hover:not(:disabled){background:var(--primary-hover)}.manuals{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:8px}.manuals label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--on-surface-variant)}.actions{display:flex;gap:12px;margin-top:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface-container-lowest);border-radius:var(--r-xl);padding:24px;width:560px;max-width:100%;box-shadow:var(--elev-3)}.modal.wide{width:860px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{margin:0;font-size:20px;font-weight:600}.modal-foot{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.criteria-actions{display:flex;gap:12px;flex-wrap:wrap}.criteria-list{list-style:none;margin:16px 0 0;padding:0}.criteria-list li{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--surface-container-high)}.criteria-list .grow{flex:1}.criteria-list .sub{font-size:12.5px;color:var(--on-surface-variant);margin-top:2px}.criteria-list .empty{color:var(--on-surface-variant)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:8px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--on-surface-variant)}.editor-sec{border-top:1px solid var(--surface-container-high);padding-top:16px;margin-top:16px}.sec-head{display:flex;justify-content:space-between;align-items:center}.sec-head h3,.editor-sec h3{margin:0 0 8px;font-size:16px;font-weight:600}.row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.row input,.row select{flex:1;min-width:60px}.row .w3{flex:0 0 48px}.row .w4{flex:0 0 64px}.row .w5{flex:0 0 84px}.row .w6{flex:0 0 140px}.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;flex:0 0 auto;white-space:nowrap;color:var(--on-surface-variant)}.activity{border:1px solid var(--outline-variant);border-radius:var(--r-md);padding:12px;margin-bottom:10px;background:var(--surface-container-low)}.items{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-left:4px}.item{display:inline-flex;align-items:center;gap:4px;background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--r-sm);padding:4px 6px}.item .item-id{font-size:11px;color:var(--on-surface-variant);min-width:16px;text-align:center}.item input{width:52px;padding:5px 6px;min-height:32px}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th,.cost-table td{padding:8px 10px;text-align:right;border-bottom:1px solid var(--surface-container-high)}.cost-table th:first-child,.cost-table td:first-child,.cost-table th:nth-child(2),.cost-table td:nth-child(2){text-align:left}.cost-table thead th{color:var(--on-surface-variant);font-weight:600;border-bottom:1px solid var(--outline-variant)}.cost-table tfoot td{border-top:1px solid var(--outline-variant);border-bottom:none}.exam-list::-webkit-scrollbar,.content::-webkit-scrollbar{width:10px}.exam-list::-webkit-scrollbar-thumb,.content::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:10px;border:2px solid transparent;background-clip:content-box}.exam-list::-webkit-scrollbar-thumb:hover,.content::-webkit-scrollbar-thumb:hover{background:var(--outline)}
