:root{--green-950:#073f31;--green-900:#084c3b;--green-800:#0c6049;--gold:#d8a52f;--gold-soft:#fff7df;--ink:#17332d;--muted:#64756f;--line:#dbe4df;--bg:#f4f7f5;--white:#fff;--danger:#9e423c;--shadow:0 12px 34px rgba(6,61,47,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 "Century Gothic",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--green-800);text-underline-offset:3px}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at top right,#12654d 0,#074a39 34%,#043529 100%)}.auth-card{width:min(520px,100%);background:#fff;border-radius:22px;padding:38px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.auth-card>img{display:block;width:220px;max-width:70%;margin:0 auto 24px}.auth-card h1{font:700 32px/1.12 Georgia,serif;color:var(--green-950);margin:8px 0 12px}.auth-card h2{font:700 23px Georgia,serif;color:var(--green-950)}.auth-card label{display:grid;gap:6px;margin:14px 0;font-weight:800}.auth-card input{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;background:#fff}.auth-card .primary,.auth-card .secondary{width:100%;margin-top:4px}.admin-access{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.admin-access summary{cursor:pointer;color:var(--green-800);font-weight:800}.user-chip{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-columns:320px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--green-950);color:#dcebe5;padding:24px 16px;overflow:auto}.brand{display:block;padding:0 8px 20px;border-bottom:1px solid rgba(255,255,255,.12)}.brand img{display:block;width:100%;max-width:270px}.nav-label{margin:26px 18px 10px;color:#8fac9f;font-size:12px;letter-spacing:.17em;text-transform:uppercase}.nav-item{width:100%;display:flex;align-items:center;gap:14px;border:0;background:transparent;color:#c7dbd2;padding:13px 16px;border-radius:11px;text-align:left;font-size:15px;margin:3px 0}.nav-item span{color:#efbd45;font-size:21px;width:24px}.nav-item:hover,.nav-item.active{background:#195744;color:#fff}.nav-item.active{border-left:4px solid var(--gold);padding-left:12px}.admin-link{margin-top:16px;border-top:1px solid rgba(255,255,255,.1);border-radius:0;padding-top:20px}.side-note{margin-top:24px;border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:14px;background:rgba(255,255,255,.035)}.side-note strong,.side-note span{display:block}.side-note strong{color:#f0c762}.side-note span{margin-top:5px;font-size:12px;color:#a9c2b7}.content{min-width:0;padding:0 3.5vw 60px}.topbar{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.eyebrow{font-size:11px;color:#8b6216;letter-spacing:.16em;font-weight:800;text-transform:uppercase}.topbar h1{font:700 clamp(29px,3vw,42px)/1.05 Georgia,serif;margin:8px 0;color:var(--green-950)}.top-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.badge,.date-chip{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 14px;font-size:12px;font-weight:800}.badge{border-color:var(--gold);background:#fffaf0;color:#76510f;letter-spacing:.08em}.page{display:none;padding-top:38px}.page.active{display:block}.hero{background:linear-gradient(115deg,#074d3b,#0b6248);color:#fff;border-radius:24px;display:grid;grid-template-columns:1fr 290px;overflow:hidden;min-height:470px}.hero-copy{padding:60px 7%}.hero-kicker{color:#ffd058;font-size:11px;font-weight:800;letter-spacing:.14em}.hero h2{font:400 clamp(42px,5vw,67px)/1.02 Georgia,serif;margin:30px 0}.hero h2 em{font-style:normal;color:#efb942}.hero p{max-width:720px;font-size:17px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.primary,.secondary,.text-button,.button-link{border-radius:10px;padding:12px 18px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{border:1px solid var(--gold);background:var(--gold);color:#083e31}.secondary{border:1px solid var(--gold);background:transparent;color:var(--green-950)}.hero .secondary{color:#fff}.text-button{padding:8px 0;border:0;background:transparent;color:var(--green-800)}.hero-metrics{background:rgba(0,0,0,.06);padding:50px 42px;display:flex;flex-direction:column;justify-content:center}.hero-metrics img{width:95px;margin-bottom:22px}.hero-metrics strong{font:700 37px Georgia,serif;color:#f4c55b}.hero-metrics span{font-size:12px;color:#cce0d8}.hero-metrics hr{border:0;border-top:1px solid rgba(255,255,255,.18);width:100%;margin:26px 0}.status-card{margin-top:20px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:16px;padding:28px;display:grid;grid-template-columns:1fr 420px;gap:26px}.status-card h3{font:700 24px Georgia,serif;margin:8px 0 4px}.status-card p{margin:0;color:var(--muted)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}.status-grid span{background:#edf4f0;border-radius:9px;padding:9px;color:#0b523f;font-size:12px;font-weight:800}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h2{font:700 34px Georgia,serif;margin:7px 0 2px;color:var(--green-950)}.page-heading p{margin:0;color:var(--muted)}.page-heading select,.search{min-width:250px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 13px}.module-grid,.material-grid,.case-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.module-card{grid-column:span 6;background:#fff;border:1px solid var(--line);border-radius:15px;padding:24px;display:grid;grid-template-columns:58px 1fr;gap:17px;box-shadow:var(--shadow)}.module-card.open{border-top:4px solid var(--gold)}.module-card.locked{opacity:.62}.module-number{font:700 31px Georgia,serif;color:#c49123}.tag{display:inline-block;background:#e9f3ee;color:#0c654d;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.module-card h3{font:700 22px Georgia,serif;margin:9px 0}.module-card p{color:var(--muted)}.module-detail{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:28px}.module-detail h3{font:700 26px Georgia,serif}.lesson-list{counter-reset:lesson;display:grid;gap:10px;padding:0}.lesson-list li{list-style:none;counter-increment:lesson;background:#f4f8f6;border-radius:10px;padding:13px 16px}.lesson-list li:before{content:counter(lesson) ".";font-weight:900;color:#b67f13;margin-right:9px}.material-card{grid-column:span 6;background:#fff;border:1px solid var(--line);border-radius:14px;padding:21px;display:grid;grid-template-columns:54px 1fr;gap:15px;box-shadow:var(--shadow)}.file-badge{width:52px;height:52px;border-radius:12px;background:#e8f2ed;color:#0a6249;display:grid;place-items:center;font-weight:900;font-size:12px}.material-card h3{margin:0 0 5px;font:700 19px Georgia,serif}.material-card p{margin:0 0 8px;color:var(--muted)}.legal-note,.security-note{margin-top:20px;background:var(--gold-soft);border:1px solid #efd793;border-radius:12px;padding:15px}.checklist{display:grid;gap:11px}.check-row{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;grid-template-columns:34px 1fr 160px;gap:12px;align-items:start}.check-row input{width:20px;height:20px;accent-color:var(--green-800)}.check-row strong{display:block}.check-row p{margin:5px 0;color:var(--muted)}.check-row small{font-weight:800;color:#8c6519}.dropzone{min-height:230px;background:#fff;border:2px dashed #8da99d;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;transition:.2s}.dropzone.drag{border-color:var(--gold);background:#fffaf0}.dropzone input{position:absolute;opacity:0;pointer-events:none}.dropzone strong{font:700 23px Georgia,serif}.dropzone span{max-width:640px;color:var(--muted);margin-top:8px}.upload-toolbar{display:flex;justify-content:space-between;gap:12px;margin:16px 0}.upload-toolbar select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px}.file-list{display:grid;gap:9px}.file-row{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 15px;display:grid;grid-template-columns:1fr 120px 160px;gap:10px}.file-row span{color:var(--muted);font-size:12px}.empty-state{color:var(--muted);font-style:italic}.case-card{grid-column:span 4;background:#fff;border:1px solid var(--line);border-radius:14px;padding:23px;box-shadow:var(--shadow)}.case-card.public{border-top:4px solid var(--gold)}.case-card h3{font:700 21px Georgia,serif}.case-card p,.case-card li{color:var(--muted)}.audit-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel,.admin-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow)}.panel label,.admin-card label{display:grid;gap:6px;margin:0 0 15px;font-weight:800}.panel select,.panel textarea,.panel input,.admin-card input,.admin-card select{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px;background:#fff;color:var(--ink)}textarea{resize:vertical}.results h3{margin-top:0;font:700 22px Georgia,serif}.progress{height:7px;background:#e8efec;border-radius:99px;overflow:hidden}.progress span{display:block;width:0;height:100%;background:var(--gold);transition:.4s}.result-stream{display:grid;gap:10px;margin-top:16px}.result-item{border-left:4px solid var(--green-800);background:#f2f7f4;border-radius:8px;padding:12px}.result-item.warn{border-color:#c58e1f;background:#fff8e8}.result-item strong,.result-item span{display:block}.result-item span{color:var(--muted);font-size:12px;margin-top:3px}.report-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:28px;display:grid;grid-template-columns:65px 1fr;gap:18px}.report-card h3{font:700 24px Georgia,serif;margin:0}.workflow{margin-top:20px;background:#eaf3ef;border-radius:12px;padding:18px;display:flex;justify-content:center;align-items:center;gap:13px;flex-wrap:wrap}.workflow span{font-weight:800}.admin-card{max-width:620px}.admin-grid{display:grid;grid-template-columns:430px 1fr;gap:18px}.admin-grid fieldset{border:1px solid var(--line);border-radius:9px;margin:0 0 15px}.admin-grid .check{display:flex;align-items:center;gap:8px;font-weight:400}.admin-grid .check input{width:auto}.form-note{background:#eef5f2;border-radius:8px;padding:10px;margin-bottom:15px}.form-message{font-weight:800;color:var(--danger)}.student-list{display:grid;gap:9px}.student-row{border:1px solid var(--line);border-radius:9px;padding:12px}.student-row strong,.student-row span{display:block}.student-row span{font-size:12px;color:var(--muted)}
.normative-trail{margin-top:30px}.trail-heading{margin-bottom:15px}.trail-heading h3{font:700 28px Georgia,serif;margin:6px 0 4px;color:var(--green-950)}.trail-heading p{margin:0;color:var(--muted)}.trail-list{display:grid;gap:9px}.trail-item{display:grid;grid-template-columns:40px 1fr 28px;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;color:var(--ink);text-decoration:none;transition:.18s}.trail-item:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-1px)}.trail-item.featured{border-left:4px solid var(--gold);background:#fffdf7}.trail-number{width:31px;height:31px;border-radius:8px;background:#edf5f1;display:grid;place-items:center;color:var(--green-950);font-weight:900}.trail-item.featured .trail-number{background:#fff0c5;color:#79520d}.trail-item strong,.trail-item small{display:block}.trail-item small{margin-top:4px;color:var(--muted)}.trail-item b{color:#bd8517;font-size:18px;text-align:center}.trail-rule{margin-top:18px;border-radius:12px;background:#e8f2ed;padding:18px}.trail-rule strong,.trail-rule span{display:block}.trail-rule span{margin-top:7px;font-size:13px}
@media(max-width:1100px){.app-shell{grid-template-columns:260px 1fr}.hero{grid-template-columns:1fr 220px}.status-card{grid-template-columns:1fr}.module-card,.material-card{grid-column:span 12}.case-card{grid-column:span 6}.admin-grid{grid-template-columns:1fr}.audit-layout{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.content{padding:0 17px 45px}.topbar{min-height:125px;align-items:flex-start;padding-top:24px}.top-actions{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:40px 24px}.hero-metrics{display:none}.case-card{grid-column:span 12}.page-heading{display:block}.page-heading select,.search{width:100%;margin-top:15px}.check-row{grid-template-columns:30px 1fr}.check-row small{grid-column:2}.file-row{grid-template-columns:1fr}.workflow b{display:none}}
.brand{padding:14px 18px;margin:0 0 20px;background:#fff;border-radius:14px;border-bottom:3px solid var(--gold)}.brand img{width:100%;max-width:235px;margin:auto}.hero-metrics img{width:170px;max-width:100%;margin-bottom:28px;padding:10px;background:#fff;border-radius:12px}
.case-card.controlled{border-top:4px solid var(--green-800)}.case-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.case-actions a{border:1px solid var(--gold);border-radius:8px;padding:7px 10px;text-decoration:none;font-size:12px;font-weight:800}
@media(max-width:760px){.auth-card{padding:28px 22px}.topbar{flex-wrap:wrap;padding-bottom:20px}.top-actions{display:flex;width:100%;justify-content:flex-start}.top-actions .badge,.top-actions .date-chip{display:none}.user-chip{max-width:65vw}}
.access-help{font-size:13px;color:var(--muted);background:#eef5f2;border-radius:9px;padding:10px 12px}
[hidden]{display:none!important}
