:root{--forest:#174e42;--forest-dark:#103e35;--green:#2f7862;--mint:#eaf3ee;--ink:#202d2a;--muted:#75817c;--line:#e3e9e4;--paper:#f5f7f4;--amber:#b47b22;--red:#aa5149;--shadow:0 8px 30px #203d2c09;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:14px;background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}a{color:var(--forest)}button:disabled{opacity:.5;cursor:not-allowed}button{border:0}svg{vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-1px;font-weight:650;margin-bottom:8px}h2{font-size:17px;letter-spacing:-.3px}h3{font-size:15px}p{line-height:1.65}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:var(--green);margin-bottom:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;z-index:10;display:flex;flex-direction:column}.brand{padding:30px 25px 26px;display:flex;gap:12px;align-items:center}.brand-icon{display:grid;place-items:center;background:var(--forest);color:white;width:40px;height:42px;border-radius:11px}.brand strong{font-size:22px;letter-spacing:1px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1.4px;margin-top:3px}.sidebar nav{padding:0 15px;overflow:auto;flex:1}.nav-label{color:#89918d;font-size:10px;letter-spacing:1.5px;margin:24px 13px 9px}.nav-item{display:flex;gap:12px;align-items:center;width:100%;padding:11px 13px;margin:3px 0;text-align:left;border-radius:7px;background:none;color:#64726c;font-size:13px;font-weight:500;text-decoration:none}.nav-item svg{width:18px;height:18px}.nav-item.active{color:var(--forest);background:var(--mint);font-weight:650}.nav-item:hover{background:#f1f5f1}.sidebar-bottom{padding:19px 25px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.7}.sidebar-bottom strong{color:var(--forest);display:block}.workspace{margin-left:240px;min-width:0;flex:1}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:#ffffffb8;gap:20px}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb strong{color:var(--ink);font-weight:500}.top-right{display:flex;align-items:center;gap:16px}.year-pill{background:#f0f4ee;border:1px solid var(--line);border-radius:7px;padding:8px 12px;font-size:12px;color:var(--forest)}.avatar{border-radius:50%;background:#e4ece5;color:var(--forest);width:35px;height:35px;display:grid;place-items:center;font-size:12px;font-weight:650;flex-shrink:0}.account{display:flex;align-items:center;gap:10px;background:none;text-align:left}.account small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.content{max-width:1580px;margin:auto;padding:32px 36px 50px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-head p{color:var(--muted);margin:0;font-size:13px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:7px;padding:10px 14px;background:white;color:var(--ink);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}.btn:hover{background:#eef3ee}.btn.primary{background:var(--forest);border-color:var(--forest);color:white}.btn.primary:hover{background:var(--forest-dark)}.btn.danger{color:var(--red)}.btn.small{padding:6px 10px;font-size:11px}.btn svg{width:15px;height:15px}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:20px 0 24px;padding:15px 18px;border:1px solid var(--line);border-radius:9px;background:white}.filters label{font-size:10px;color:var(--muted);min-width:120px;flex:1}.filters label.wide{flex:1.7;min-width:190px}.filters select{margin-top:6px;width:100%;font-size:12px;padding:8px 26px 8px 9px;background:#fafcf9}.filter-extra{display:contents}.grid{display:grid;gap:18px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:white;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:22px}.metric-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#63736b}.metric-icon{background:#edf4ed;color:var(--green);width:31px;height:31px;border-radius:8px;display:grid;place-items:center}.metric-icon svg{width:16px;height:16px}.metric-value{font-size:33px;font-weight:620;letter-spacing:-1px;margin:13px 0 8px;line-height:1}.metric-foot{font-size:11px;color:var(--muted)}.metric-foot strong{font-weight:600;color:var(--green)}.hero-note{border:1px solid #d8e6da;border-radius:8px;background:#edf5ed;display:flex;gap:12px;align-items:center;padding:13px 17px;font-size:12px;color:#466b53;margin-bottom:22px}.hero-note svg{flex-shrink:0}.charts{grid-template-columns:1.55fr 1fr;margin-bottom:22px}.card-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.card-head h2{margin-bottom:6px}.chart-tag{font-size:10px;color:var(--muted);border:1px solid var(--line);padding:5px 8px;border-radius:5px;white-space:nowrap}.distribution{height:145px;display:flex;align-items:end;justify-content:space-around;gap:20px;padding:15px 18px 0;border-bottom:1px solid var(--line);margin-top:10px}.bar-group{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1;max-width:84px}.bar-count{font-size:11px;color:var(--muted);margin-bottom:7px}.bar{width:100%;border-radius:5px 5px 0 0;min-height:3px}.bar-labels{display:flex;justify-content:space-around;gap:20px;padding:10px 18px;font-size:11px;text-align:center}.bar-labels>div{flex:1;max-width:84px}.legend-note{border-top:1px solid var(--line);margin-top:10px;padding-top:13px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.ring-wrap{display:flex;align-items:center;gap:26px;padding:20px 0 5px}.ring{position:relative;width:145px;height:145px;flex-shrink:0}.ring svg{transform:rotate(-90deg);width:100%;height:100%}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:28px;font-weight:600;letter-spacing:-1px}.ring-center small{font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:6px}.dot{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:6px}.progress-stats{flex:1;font-size:12px}.progress-stats>div{display:flex;align-items:center;justify-content:space-between;margin:14px 0;gap:12px}.progress-stats strong{font-size:17px}.progress{height:5px;border-radius:9px;background:#e8eee8;overflow:hidden;min-width:80px}.progress>span{height:100%;display:block;background:var(--green);border-radius:9px}.table-card{padding:0;overflow:hidden}.table-card .card-head{padding:22px 23px 16px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f8faf6;color:#849087;font-size:10px;letter-spacing:.7px;font-weight:600;text-transform:uppercase;padding:13px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #edf0eb;vertical-align:middle}tr:last-child td{border-bottom:0}td strong{font-size:12px;font-weight:600}td small{display:block;color:var(--muted);font-size:10px;margin-top:5px}tbody tr:hover{background:#fafcf9}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:550;padding:5px 8px;border-radius:5px;background:#eef1ec;color:#6e7e73;white-space:nowrap}.badge.green{color:#437451;background:#edf4e9}.badge.amber{color:#a0742c;background:#fbf3e3}.badge.red{color:#a35249;background:#f9eeeb}.badge.blue{color:#4a708a;background:#eef3f7}.badge::before{content:'';height:5px;width:5px;border-radius:50%;background:currentColor}.table-footer{padding:14px 22px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.summary-strip{display:flex;gap:18px;flex-wrap:wrap;padding:0 2px 20px;font-size:11px;color:var(--muted)}.summary-strip b{color:var(--ink);font-weight:600}.search{max-width:250px}.empty{padding:45px 24px;text-align:center;color:var(--muted);line-height:1.8}.empty strong{display:block;font-size:16px;color:var(--ink);margin-bottom:8px}.loading{padding:60px;text-align:center;color:var(--muted)}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.module-card{cursor:pointer;text-align:left;transition:transform .15s}.module-card:hover{transform:translateY(-2px);border-color:#afc9b8}.module-card h2{margin-top:16px}.module-card p{font-size:12px;color:var(--muted);margin-bottom:12px}.module-card .source{font-size:10px;color:#96a197}.demo-label{background:#fff7e7;color:#8a722f;text-align:center;padding:7px;font-size:10px;letter-spacing:.3px}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{background:var(--forest-dark);color:#fff;padding:55px 12%;display:flex;flex-direction:column;justify-content:space-between}.login-story .brand{padding:0}.login-story .brand-icon{background:#ffffff15}.login-story .brand small{color:#afc5ba}.login-story h1{font-size:46px;letter-spacing:-1.9px;line-height:1.16;max-width:500px;margin:40px 0 22px}.login-story p{color:#b3cbbd;max-width:380px;font-size:14px;line-height:1.9}.login-story .eyebrow{color:#b4cca7}.login-art{padding:28px 0}.login-structure{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid #ffffff24;padding-top:25px;margin-top:35px}.login-structure b{display:block;font-size:13px;font-weight:500;margin-bottom:9px}.login-structure span{font-size:11px;color:#99b9a7}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px;background:#fafbf8}.login-form{width:100%;max-width:355px}.login-form h2{font-size:26px;letter-spacing:-.8px;margin-bottom:10px}.login-form>p{color:var(--muted);font-size:13px;margin-bottom:30px}.login-form .btn{width:100%;padding:13px;margin-top:9px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;font-size:12px;font-weight:500}.field input,.field select,.field textarea,input,select,textarea{border:1px solid #dce4dc;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink);min-width:0}.field textarea{min-height:85px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #4d8a6840;border-color:var(--green)}.field-hint{font-size:10px;color:var(--muted);font-weight:400}.required{color:var(--red)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.full{grid-column:1/-1}.error{background:#f9eeeb;border:1px solid #efd3ce;color:var(--red);padding:12px;border-radius:6px;line-height:1.5;font-size:12px;margin-bottom:16px}.notice{background:#eef4ed;border:1px solid #dce7d9;color:#55714f;padding:12px 15px;border-radius:6px;font-size:12px;line-height:1.6;margin-bottom:20px}dialog{border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 100px #10271940;padding:0;width:min(710px,95vw);max-height:92vh;color:var(--ink)}dialog::backdrop{background:#0e271e65;backdrop-filter:blur(2px)}dialog.wide-dialog{width:min(1250px,96vw)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px 26px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:2}.dialog-head h2{font-size:19px;margin:0}.dialog-body{padding:24px 26px}.dialog-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:16px 26px;display:flex;justify-content:end;gap:10px}.icon-btn{border:1px solid var(--line);background:#fff;width:30px;height:30px;border-radius:6px;font-size:19px;color:var(--muted)}.register-table{min-width:790px}.register-table th{white-space:normal;text-transform:none;letter-spacing:0;font-size:11px;min-width:155px;max-width:220px;line-height:1.5}.register-table td{padding:10px 13px}.register-table td:first-child{min-width:185px}.register-table select{font-size:13px;width:100%;padding:8px}.register-table textarea{width:100%;font-size:11px;margin-top:5px;min-height:58px}.register-table details{margin-top:5px;font-size:10px;color:var(--muted)}.register-table summary{cursor:pointer}.competency-details{margin:15px 0;border:1px solid var(--line);border-radius:6px;padding:12px}.competency-details summary{font-size:12px;cursor:pointer;font-weight:600}.competency-details .form-grid{margin-top:16px}.metadata{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:12px 0 20px}.metadata b{color:var(--ink);font-weight:500}.audit-json{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f9f5;padding:14px;border-radius:6px}.mobile-menu{display:none}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.instrument-item{padding:15px 0;border-bottom:1px solid var(--line)}.instrument-item label{font-size:12px;line-height:1.6;display:block;margin-bottom:8px}.instrument-item textarea{width:100%;min-height:55px}.pill-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 20px}.pill-tabs button{border-radius:6px;background:#fff;border:1px solid var(--line);padding:8px 13px;font-size:12px;color:var(--muted)}.pill-tabs button.active{background:var(--forest);color:#fff;border-color:var(--forest)}@media(min-width:1500px){.content{padding-left:46px;padding-right:46px}}@media(max-width:1150px){.sidebar{width:208px}.workspace{margin-left:208px}.content{padding:25px}.topbar{padding:0 25px}.charts{grid-template-columns:1fr 1fr}.ring-wrap{gap:14px}.ring{width:120px;height:120px}.module-grid{grid-template-columns:repeat(2,1fr)}.kpis{gap:12px}.card{padding:17px}.table-card{padding:0}}@media(max-width:900px){.charts{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.top-right .account-text{display:none}.page-head{align-items:start}.page-head h1{font-size:25px}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:0 0 0 100vw #17382a55}.workspace{margin-left:0}.topbar{height:65px;padding:0 18px}.content{padding:22px 16px}.mobile-menu{display:block;background:none;color:var(--forest);font-size:20px}.page-head{flex-direction:column;gap:15px;margin-bottom:16px}.page-head p{font-size:12px}.breadcrumb{display:none}.top-right{gap:10px;margin-left:auto}.kpis{gap:10px}.metric-value{font-size:28px}.metric-top{font-size:11px}.metric-icon{width:27px;height:27px}.metric-foot{font-size:10px;line-height:1.6}.filters{padding:12px;gap:10px}.filters label,.filters label.wide{min-width:42%;flex:1}.module-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.dialog-body{padding:18px}.dialog-head{padding:18px}.dialog-footer{padding:14px 18px;flex-wrap:wrap}.login{grid-template-columns:1fr}.login-story{padding:28px;min-height:320px}.login-story h1{font-size:31px;margin-top:30px}.login-story p{font-size:12px;margin:0}.login-art,.login-structure,.login-story>small{display:none}.login-form-wrap{padding:32px 26px}.summary-strip{gap:10px}.card-head{flex-wrap:wrap}.ring-wrap{justify-content:center;padding:10px 0}.ring{width:145px;height:145px}.filters .btn{width:100%}}@media print{.sidebar,.topbar,.actions,.filters,.demo-label,.btn{display:none!important}.workspace{margin:0}.content{padding:0}.card{break-inside:avoid;box-shadow:none}.charts{grid-template-columns:1fr 1fr}body{background:white}}
[hidden]{display:none!important}
/* Workbook provenance and source consultation. */
.source-summary { margin-bottom: 22px; }
.source-summary .summary-strip { flex-wrap: wrap; }
.source-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; margin-bottom: 20px; }
.source-controls .field { flex: 1 1 180px; margin: 0; }
.source-value { white-space: pre-wrap; overflow-wrap: anywhere; min-width: 200px; max-width: 560px; }
.source-hash { overflow-wrap: anywhere; }
.source-notes { padding-left: 22px; line-height: 1.7; font-size: 13px; margin: 14px 0; }

/* APP UGEL: commands and institutional identity from the workbook's home menu. */
.nav-item[data-nav="app-ugel"] { font-weight: 700; }
.nav-item[data-nav="app-ugel"].active { color: #234d82; background: #eaf0fa; }
.ugel-home { --ugel-blue: #2f5296; --ugel-navy: #233e6b; background: #fff; border: 1px solid #dae2ee; border-radius: 12px; padding: clamp(18px, 3vw, 36px); box-shadow: 0 5px 24px #233e6b08; }
.ugel-home-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.ugel-app-label { color: var(--ugel-blue); font-size: 12px; font-weight: 750; letter-spacing: 1.7px; white-space: nowrap; }
.ugel-home-top label { max-width: 370px; flex: 1; color: #657792; font-size: 11px; }
.ugel-home-top select { display: block; width: 100%; margin-top: 6px; font-size: 12px; border-color: #d4ddec; }
.ugel-title { border: 2px solid var(--ugel-blue); border-radius: 9px; box-shadow: inset 0 0 0 2px #dce5f3; padding: 32px 22px; margin-bottom: 24px; text-align: center; }
.ugel-title h1 { color: #215180; text-transform: uppercase; font-size: clamp(22px, 2.7vw, 38px); letter-spacing: .4px; font-weight: 800; line-height: 1.25; margin: 0; }
.ugel-commands { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 24px; margin-bottom: 34px; }
.ugel-command { min-height: 79px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 17px; text-align: left; border: 2px solid #365cba; border-radius: 9px; background: linear-gradient(180deg, #2d497b, #203a63); box-shadow: inset 0 0 0 1px #ffffff24, 0 3px 5px #1c315f30; color: #fff; transition: background .15s, transform .15s; }
.ugel-command span { font-size: 12px; font-weight: 700; line-height: 1.45; text-transform: uppercase; }
.ugel-command svg { flex-shrink: 0; }
.ugel-command:last-child { grid-column: 2; }
.ugel-command:hover { background: #345990; transform: translateY(-2px); }
.ugel-command:focus-visible { outline: 3px solid #9fbeee; outline-offset: 4px; }
.ugel-institution { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 24px; margin: 0; }
.ugel-institution > div { min-width: 0; }
.ugel-institution dt { background: var(--ugel-blue); color: #fff; text-align: center; padding: 6px 10px; font-size: 11px; font-weight: 700; letter-spacing: .4px; }
.ugel-institution dd { margin: 5px 0 0; padding: 9px 10px; min-height: 38px; border: 1px solid #a3b9df; font-size: 12px; line-height: 1.5; color: #1e375b; overflow-wrap: anywhere; }
.ugel-context-note { color: #62718a; font-size: 12px; line-height: 1.6; margin-bottom: 22px; }
.ugel-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; font-size: 11px; color: #70809a; border-top: 1px solid #e1e7ef; margin-top: 24px; padding-top: 16px; }
@media (max-width: 1100px) and (min-width: 701px) {
 .ugel-command { gap: 9px; padding: 12px 10px; }
 .ugel-command span { font-size: 10px; }
 .ugel-command svg { width: 27px; height: 27px; }
 .ugel-commands { gap: 14px; }
 .ugel-institution { gap: 12px 14px; }
}
@media (max-width: 700px) {
 .ugel-home-top { flex-direction: column; align-items: stretch; gap: 16px; }
 .ugel-home-top label { max-width: none; }
 .ugel-title { padding: 25px 16px; }
 .ugel-commands { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
 .ugel-command { min-height: 86px; padding: 12px; gap: 10px; }
 .ugel-command span { font-size: 11px; }
 .ugel-command svg { width: 27px; height: 27px; }
 .ugel-command:last-child { grid-column: 1 / -1; }
 .ugel-institution { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 420px) {
 .ugel-commands, .ugel-institution { grid-template-columns: minmax(0, 1fr); }
 .ugel-command { min-height: 65px; }
}
