:root{
    --bg:#EEF2F5;
    --card:#FFFFFF;
    --text:#1E2A36;
    --muted:#5B6B79;
    --accent:#00569D;
    --accent-600:#004A87;
    --border:#D7E0E7;
    --success:#2E7D5A;
    --danger:#C73A3A;
}

body{
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    margin:0;
    padding:0;
    background:var(--bg);
    color:var(--text);
}

html,
body{
    overflow-x:hidden;
}

.site-container{
    padding-top:16px;
    padding-bottom:16px;
}

.quickcheck-header{
    margin-bottom:14px;
}

.quickcheck-header p{
    margin:6px 0 0;
}

.site-container header{
    margin-bottom:14px !important;
}

.site-container header h1{
    margin:0;
    font-size:1.65rem;
    color:var(--text);
    letter-spacing:-0.01em;
}

.site-container header p{
    color:var(--muted);
    line-height:1.45;
}

.checker-card{
    background:var(--card);
    border-radius:6px;
    padding:18px;
    border:1px solid var(--border);
    box-shadow:0 1px 5px rgba(16, 33, 49, 0.05);
}

.row{
    display:flex;
    gap:18px;
    align-items:flex-start;
}

.wizard-col{
    width:260px;
    padding:0;
    background:transparent;
}

.input-col{
    flex:1;
    padding-left:12px;
}

nav[aria-label="wizard-steps"]{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.step-btn{
    background:#F7F9FB;
    border:1px solid var(--border);
    padding:9px 11px;
    border-radius:4px;
    text-align:left;
    cursor:pointer;
    font-size:0.88rem;
    letter-spacing:0.01em;
    color:var(--text);
    font-weight:600;
}

.step-btn:hover{
    border-color:#BCCBD9;
}

.step-btn.active{
    background:#FFFFFF;
    border-color:var(--accent);
    color:var(--accent);
}

.section-card{
    background:var(--card);
    border-radius:6px;
    padding:14px;
    margin-bottom:10px;
    border:1px solid var(--border);
    box-shadow:none;
}

.section-card h4{
    margin:0 0 8px;
    font-size:1rem;
    color:var(--text);
}

.section-content{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.row-item{
    display:flex;
    gap:10px;
    align-items:center;
    width:100%;
    margin-bottom:8px;
}

.row-item > *{
    box-sizing:border-box;
}

.row-item select,
.row-item input{
    height:38px;
    padding:7px 10px;
    border-radius:4px;
    border:1px solid #C9D5DF;
    background:#FFFFFF;
    outline:none;
    font-size:0.88rem;
    color:var(--text);
}

.row-item select:focus,
.row-item input:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 2px rgba(0, 86, 157, 0.14);
}

.row-item select{
    min-width:140px;
}

#pmat-list .row-item{
    display:flex;
    flex-direction:column;
    gap:10px;
    align-items:flex-start;
    flex-wrap:nowrap;
}

#pmat-list .row-item > select:first-child{
    min-width:140px;
}

#pmat-list .row-item input[type="number"]{
    width:120px;
}

.ucat-container{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100%;
}

.ucat-row{
    display:flex;
    flex-direction:column;
    gap:10px;
    align-items:start;
}

.ucat-field{
    display:flex;
    flex-direction:column;
    gap:5px;
    align-items:flex-start;
}

.ucat-label{
    font-weight:700;
    font-size:0.76rem;
    color:var(--text);
}

.ucat-total-wrap{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    align-self:flex-start;
    margin-top:4px;
}

.ucat-total-input{
    width:120px;
    height:38px;
    background:#F7F9FB;
    border-radius:4px;
    padding:7px 10px;
    border:1px solid var(--border);
    box-sizing:border-box;
    line-height:20px;
    font-size:0.88rem;
}

.sjt-wrap{
    display:flex;
    flex-direction:column;
    gap:5px;
    align-items:flex-start;
}

.row-item > button{
    align-self:start;
}

.wizard-actions{
    margin-top:18px;
    display:flex;
    align-items:center;
    position:relative;
    z-index:2;
    pointer-events:auto;
}

.nav-actions{
    display:flex;
    gap:10px;
    position:relative;
    z-index:2;
}

#run{
    position:relative;
    z-index:3;
    pointer-events:auto;
}

.quickcheck-status{
    margin:10px 0 0;
    font-size:0.84rem;
    color:var(--muted);
}

@media (min-width:720px){
    .ucat-row{
        display:grid;
        grid-template-columns:repeat(4,1fr);
    }
}

@media (max-width:720px){
    .ucat-container{
        display:flex;
        flex-direction:column;
    }
    .ucat-total-wrap{
        align-self:flex-start;
    }
}

.add-row{
    margin-top:8px;
    background:#FFFFFF;
    border:1px dashed #A8BDCF;
    padding:7px 11px;
    border-radius:4px;
    color:var(--accent);
    cursor:pointer;
    font-weight:600;
    font-size:0.86rem;
}

.add-row:hover{
    background:#F8FBFD;
}

.btn-primary,
.btn-secondary,
.btn-tertiary,
.btn-clear{
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:4px;
}

.btn-primary{
    background:var(--accent);
    color:#FFFFFF;
    padding:0 16px;
    border:1px solid transparent;
    font-weight:700;
    cursor:pointer;
}

.btn-primary:hover{
    background:var(--accent-600);
}

.btn-secondary{
    background:#FFFFFF;
    border:1px solid var(--border);
    padding:0 14px;
    color:var(--text);
    cursor:pointer;
    font-weight:700;
}

.btn-secondary:hover{
    background:#F7F9FB;
}

.btn-tertiary{
    background:#FFFFFF;
    border:1px solid var(--border);
    padding:0 13px;
    color:var(--text);
    cursor:pointer;
    font-weight:600;
}

.btn-tertiary:hover{
    background:#F7F9FB;
}

.btn-clear{
    background:transparent;
    border:1px solid var(--border);
    padding:0 12px;
    color:var(--muted);
    cursor:pointer;
    font-weight:600;
}

.btn-clear:hover{
    background:#F4F7FA;
}

.row-item > button{
    background:#FFFFFF;
    border:1px solid rgba(199, 58, 58, 0.35);
    color:var(--danger);
    padding:5px 9px;
    border-radius:4px;
    cursor:pointer;
    height:34px;
}

.row-item > button:hover{
    background:#FFF7F7;
}

.controls{
    display:flex;
    gap:8px;
    align-items:center;
}

@media (max-width:1100px){
    .row{
        flex-direction:column;
    }
    .wizard-col{
        width:100%;
        order:1;
        max-width:100%;
    }
    .input-col{
        order:2;
        width:100%;
        max-width:100%;
        padding-left:0;
    }
    nav[aria-label="wizard-steps"]{
        width:100%;
    }
    .step-btn{
        max-width:100%;
    }
    .row-item,
    .row-item select,
    .row-item input{
        max-width:100%;
    }
}

@media (max-width:700px){
    .site-container{
        padding-top:12px;
        padding-bottom:12px;
    }
    .checker-card{
        padding:14px;
    }
    .checker-card,
    .checker-card *,
    .row-item *{
        box-sizing:border-box;
    }
    .wizard-actions{
        flex-wrap:wrap;
        gap:8px;
    }
    .nav-actions{
        flex-wrap:wrap;
        width:100%;
    }
    .nav-actions button,
    .nav-clear button{
        width:100%;
    }
    #pmat-list .row-item > select:first-child{
        width:100%;
        max-width:100%;
    }
    .ucat-container{
        width:100%;
        max-width:100%;
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px;
    }
    .ucat-row{
        display:contents;
    }
    .ucat-field,
    .ucat-total-wrap,
    .sjt-wrap{
        width:100%;
        max-width:100%;
        gap:4px;
    }
    .ucat-total-input,
    .sjt-wrap select{
        width:100%;
        max-width:100%;
    }
}

@media (max-width:420px){
    .row-item{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        width:100%;
        align-items:stretch;
    }
    .row-item select,
    .row-item input,
    .row-item button{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }
    .row-item > button,
    .row-item button[type="button"]{
        width:100%;
        justify-self:stretch;
        align-self:stretch;
    }
    #unis-list .row-item,
    #gcse-list .row-item,
    #alevel-list .row-item,
    #pmat-list .row-item{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
    }
    #unis-list .row-item select,
    #gcse-list .row-item select,
    #gcse-list .row-item input,
    #alevel-list .row-item select,
    #pmat-list .row-item select,
    #pmat-list .row-item input,
    #unis-list .row-item button,
    #gcse-list .row-item button,
    #alevel-list .row-item button,
    #pmat-list .row-item button{
        width:100%;
        max-width:100%;
        min-width:0;
    }
    #pmat-list .row-item > select:first-child{
        min-width:0;
    }
    #pmat-list .row-item input[type="number"]{
        width:100%;
        max-width:100%;
    }
    .ucat-container{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px;
    }
    .ucat-field,
    .ucat-total-wrap,
    .sjt-wrap{
        min-width:0;
        width:100%;
    }
    .ucat-field input,
    .ucat-total-wrap input,
    .sjt-wrap select{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
        height:44px;
        font-size:0.95rem;
    }
}

@media (max-width:360px){
    .ucat-container{
        grid-template-columns:1fr;
    }
}

@media (max-width:480px){
    .site-container{
        padding-top:10px;
        padding-bottom:10px;
    }
    .checker-card{
        padding:12px;
    }
    .row-item{
        width:100%;
        max-width:100%;
    }
    .row-item select,
    .row-item input,
    .row-item button{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }
    #unis-list .row-item{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        width:100%;
    }
    #unis-list .row-item select,
    #unis-list .row-item input,
    #unis-list .row-item button{
        width:100%;
        max-width:100%;
        min-width:0;
    }
}

@media (max-width:420px){
    .site-container{
        padding-top:8px;
        padding-bottom:8px;
    }
    .checker-card{
        padding:10px;
    }
    #gcse-list .row-item,
    #alevel-list .row-item{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
        width:100%;
    }
    #gcse-list .row-item select,
    #gcse-list .row-item input,
    #gcse-list .row-item button,
    #alevel-list .row-item select,
    #alevel-list .row-item input,
    #alevel-list .row-item button{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }
}

