:root{--navy:#111833;--gold:#d8a94b;--bg:#f5f7fb;--text:#151b2d;--green:#29a866;--red:#df4b43;--blue:#2d73c5;--orange:#f5a623}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:var(--navy)}.sidebar{position:fixed;right:0;top:0;bottom:0;width:270px;background:linear-gradient(180deg,#0e1833,#102444);color:white;padding:24px;display:flex;flex-direction:column;gap:20px}.brand{text-align:center}.brand img{width:120px;height:120px;object-fit:contain;border-radius:18px;background:white;padding:8px}.brand strong{display:block;font-size:20px;margin-top:10px}.brand small{opacity:.8}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{color:white;padding:14px 16px;border-radius:10px}.sidebar nav a:hover,.sidebar nav a:first-child{background:linear-gradient(90deg,var(--gold),#c99434)}.content{margin-right:270px;padding:24px}.topbar{height:72px;background:white;border-radius:16px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:20px;box-shadow:0 10px 25px #0000000d}.topbar small{display:block;color:#777}.topbar input{width:45%;border:1px solid #e5e8ef;border-radius:12px;padding:14px}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(5,1fr)}.card{background:white;border:1px solid #edf0f5;border-radius:18px;padding:20px;box-shadow:0 10px 25px #0000000a;margin-bottom:18px}.card h3{margin:0 0 16px}.stats .card b{display:block;font-size:34px;color:var(--navy);margin-top:8px}.main-grid{grid-template-columns:1.1fr .9fr}.map{height:340px;border-radius:14px;background:linear-gradient(135deg,#e9eef7,#dce7f5);display:flex;align-items:center;justify-content:center;color:#50617a}.score-ring{width:170px;height:170px;border-radius:50%;margin:auto;border:18px solid var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:44px;font-weight:800}.score-ring small{font-size:14px}.ok{color:var(--green);text-align:center;font-weight:700}table{width:100%;border-collapse:collapse}th,td{padding:13px;border-bottom:1px solid #eef1f5;text-align:right}th{color:#667085;background:#fbfcfe}.badge,.role{display:inline-block;padding:6px 10px;border-radius:8px;background:#eef2ff}.badge.approved{background:#e8f7ee;color:var(--green)}.badge.rejected{background:#fdeceb;color:var(--red)}.badge.under_review{background:#fff5df;color:#b97800}.badge.new{background:#e8f1ff;color:var(--blue)}.title-row{display:flex;justify-content:space-between;align-items:center}.btn,button{background:linear-gradient(90deg,var(--navy),#263c71);color:white;border:0;border-radius:10px;padding:12px 18px;cursor:pointer}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form input,.form select,.form textarea{border:1px solid #e3e7ef;border-radius:10px;padding:13px;font:inherit}.form textarea{grid-column:1/-1;min-height:120px}.form button{grid-column:1/-1}.details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0e1833,#162c52)}.login-card{width:min(420px,92vw);background:white;border-radius:24px;padding:28px;text-align:center}.login-card img{width:150px}.login-card input{width:100%;margin:8px 0;padding:14px;border:1px solid #ddd;border-radius:10px}.login-card button{width:100%;margin-top:10px}.alert{background:#fdeceb;color:#b42318;padding:12px;border-radius:10px}footer{text-align:center;color:#667085;padding:20px}@media(max-width:900px){.sidebar{position:relative;width:auto}.content{margin:0}.stats,.main-grid,.form,.details{grid-template-columns:1fr}.topbar input{width:60%}}


/* MRIS v3 Professional */
.mris-hero{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#101a38,#1d315d);color:#fff;border:0}.mris-eyebrow{display:inline-block;padding:6px 10px;border-radius:999px;background:#ffffff1f;font-size:12px}.mris-score-badge{width:110px;height:110px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--navy);border:9px solid var(--gold)}.mris-score-badge strong{font-size:38px}.mris-score-badge small{font-size:13px}.mris-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mris-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.mris-meter{height:10px;background:#e8edf4;border-radius:999px;overflow:hidden;margin:7px 0 16px}.mris-meter span{display:block;height:100%;background:linear-gradient(90deg,#d8a94b,#29a866);border-radius:999px}.mris-decision{display:inline-block;padding:9px 13px;border-radius:10px;font-weight:800;margin-bottom:8px}.mris-decision.fair,.mris-decision.approve{background:#e8f7ee;color:#147a48}.mris-decision.negotiate{background:#fff4dc;color:#9b6500}.mris-decision.review{background:#eef2ff;color:#334a92}.mris-list{padding-right:20px;line-height:1.9}.mris-list.good li::marker{color:#29a866}.mris-list.warn li::marker{color:#f5a623}.mris-summary{padding:14px;border-radius:12px;background:#f7f9fc;border-right:4px solid var(--gold)}
.mris-section{grid-column:1/-1;background:#f8fafc;border:1px solid #e5eaf1;border-radius:16px;padding:18px}.mris-section h4{margin-top:0}.mris-field-card{border:1px solid #e4e9f1;border-radius:15px;padding:14px;background:#fff}.mris-field-card label{display:flex;justify-content:space-between;font-weight:700;margin-bottom:10px}.mris-range-row{display:grid;grid-template-columns:42px 1fr 42px;gap:9px;align-items:center;direction:ltr}.mris-range-row button{height:42px;padding:0;font-size:22px}.mris-range-row input[type=range]{width:100%}.mris-range-value{padding:6px 10px;background:#eef5f2;color:#173f3a;border-radius:9px;font-weight:800}.type-fields{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(2,1fr);gap:14px}.type-fields[style*="display:none"]{display:none!important}
@media(max-width:900px){.mris-grid-3,.mris-grid-2,.type-fields{grid-template-columns:1fr}.mris-hero{align-items:flex-start}.mris-score-badge{width:82px;height:82px;flex:0 0 auto}.mris-score-badge strong{font-size:28px}}


/* MRIS Mobile Sidebar Fix v3.2 */
@media (max-width: 900px) {
    html, body {
        overflow-x: hidden !important;
    }

    .sidebar {
        position: fixed !important;
        top: 0 !important;
        right: -330px !important;
        left: auto !important;
        bottom: 0 !important;
        width: min(86vw, 320px) !important;
        max-width: 320px !important;
        min-width: 0 !important;
        height: 100dvh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        z-index: 1000 !important;
        transform: none !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        transition: right .22s ease !important;
        -webkit-overflow-scrolling: touch;
    }

    body.sidebar-open .sidebar,
    .sidebar.open,
    .sidebar.active {
        right: 0 !important;
        transform: none !important;
    }

    .sidebar .brand {
        position: sticky !important;
        top: 0 !important;
        z-index: 3 !important;
        background: inherit !important;
        padding-top: 18px !important;
    }

    .sidebar nav {
        width: 100% !important;
        box-sizing: border-box !important;
        padding-bottom: 28px !important;
    }

    .sidebar nav a,
    .sidebar nav .nav-group-title,
    .sidebar .nav-section {
        width: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    .sidebar nav a {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        margin: 4px 10px !important;
        padding: 11px 12px !important;
        border-radius: 10px !important;
    }

    .content,
    main.content {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        transform: none !important;
    }

    .sidebar-overlay {
        position: fixed !important;
        inset: 0 !important;
        z-index: 999 !important;
        background: rgba(0,0,0,.42) !important;
    }

    body:not(.sidebar-open) .sidebar-overlay {
        display: none !important;
    }

    body.sidebar-open .sidebar-overlay {
        display: block !important;
    }
}

@media (max-width: 420px) {
    .sidebar {
        width: 88vw !important;
        max-width: 300px !important;
        right: -310px !important;
    }

    body.sidebar-open .sidebar,
    .sidebar.open,
    .sidebar.active {
        right: 0 !important;
    }

    .sidebar nav a {
        font-size: 15px !important;
        line-height: 1.6 !important;
    }
}
