:root{--ink:#18211e;--muted:#727c77;--line:#e2e7e3;--paper:#f5f7f4;--green:#204f40;--dark:#13231d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}aside{position:sticky;top:0;height:100vh;background:var(--dark);color:#fff;padding:28px 17px 20px;display:flex;flex-direction:column}.logo,.authbrand{display:flex;gap:11px;align-items:center;color:#fff;text-decoration:none;letter-spacing:2px;font-size:14px}.logo{padding:0 10px 26px}.logo>b,.authbrand>b{display:grid;place-items:center;width:36px;height:36px;border:1px solid #789085;border-radius:9px;font-family:serif;font-size:19px}.logo small,.authbrand small{display:block;color:#9ab0a6;font-size:8px;letter-spacing:2.3px;margin-top:3px}nav{overflow:auto;display:grid;gap:3px}nav a{color:#a8bbb2;padding:9px 12px;border-radius:8px;text-decoration:none;font-size:13px}nav a:hover,nav a.on{background:#293d35;color:#fff}nav i{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid #52675e;border-radius:6px;margin-right:11px;font-style:normal;font-size:10px}.user{margin-top:auto;border-top:1px solid #30443c;padding:18px 7px 0;display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center}.user>span{width:34px;height:34px;border-radius:50%;background:#dce8e2;color:#275144;display:grid;place-items:center;font-size:11px;font-weight:bold}.user b,.user small{display:block}.user b{font-size:11px}.user small{font-size:9px;color:#8da098;margin-top:3px}.user button{background:none;border:0;color:#9fb0a9}.content{padding:35px 42px 60px;min-width:0}.content>header{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.content header small,.cap{font-size:9px;letter-spacing:1.7px;color:#78847e;font-weight:bold}.content h1{font-size:27px;margin:5px 0 0}.primary,.secondary{border:1px solid var(--line);background:#fff;border-radius:8px;padding:11px 15px;font-weight:bold;cursor:pointer}.primary{background:var(--green);color:#fff;border-color:var(--green)}.hero,.modulehero{background:#e7eeea;border-radius:15px;padding:29px 31px}.hero{display:flex;justify-content:space-between;align-items:end}.hero h2,.modulehero h2{font-size:23px;margin:8px 0}.hero p,.modulehero p,.cardhead p{color:var(--muted);font-size:12px;margin:0}.hero a,.cardhead a{color:#285a49;text-decoration:none;font-weight:bold;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:15px 0}.stats article,.card,.featuregrid article{background:#fff;border:1px solid var(--line);border-radius:12px}.stats article{padding:19px}.stats small,.stats b,.stats em{display:block}.stats small{font-size:10px;color:var(--muted)}.stats b{font-size:18px;margin:7px 0}.stats em{font-style:normal;font-size:9px;color:#638071}.twocol{display:grid;grid-template-columns:1.7fr .8fr;gap:15px}.card{padding:21px}.cardhead{display:flex;justify-content:space-between}.cardhead h3{font-size:15px;margin:0 0 4px}.project{display:grid;grid-template-columns:1.5fr auto 1fr .9fr;gap:12px;align-items:center;border-top:1px solid #edf0ed;padding:15px 0;font-size:10px}.project b,.project small{display:block}.project small{color:#89928d;margin-top:4px}.project>span{background:#e5f0eb;color:#326752;padding:4px 7px;border-radius:10px}.project>strong{text-align:right}.bar{height:6px;background:#edf1ee;border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;background:#39725e}.attention{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;padding:13px 0;border-top:1px solid #edf0ed;text-decoration:none;color:var(--ink)}.attention i{width:27px;height:27px;display:grid;place-items:center;background:#edf2ef;border-radius:7px;font-style:normal}.attention b,.attention small{display:block;font-size:10px}.attention small{font-size:8px;color:var(--muted);margin-top:3px}.success,.error{padding:11px 15px;border-radius:8px;margin-bottom:14px;font-size:12px}.success{background:#dfeee7;color:#245b48}.error{background:#f8e8e4;color:#8c3d2e}.featuregrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:15px}.featuregrid article{padding:24px}.featuregrid span{font-size:10px;color:#547466}.featuregrid h3{font-size:15px;margin:17px 0 8px}.featuregrid p{font-size:11px;color:var(--muted)}.featuregrid button{margin-top:18px;border:0;background:none;color:#285a49;font-weight:bold}.pageadd{margin:15px 0 0}.datacard{margin-top:15px}.toolbar{display:flex;gap:8px;margin-bottom:15px}.toolbar input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px}.toolbar button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px}.table{overflow:auto}.tr{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;padding:13px 5px;border-top:1px solid #edf0ed;font-size:10px}.tr.head{color:#8a938f;text-transform:uppercase;font-size:8px}.empty{padding:30px;text-align:center;color:var(--muted);font-size:12px}.shade{display:none;position:fixed;inset:0;background:#14231eaa;place-items:center;z-index:10;padding:15px}.shade.show{display:grid}.modal{background:#fff;border-radius:15px;width:min(590px,100%);max-height:92vh;overflow:auto;padding:27px;position:relative}.close{position:absolute;right:18px;top:15px;border:0;border-radius:50%;width:31px;height:31px;font-size:20px}.modal h2{font-size:22px;margin:7px 0 18px}.modal label{display:block;font-size:10px;font-weight:bold;margin:12px 0}.modal input,.modal select,.modal textarea{display:block;width:100%;border:1px solid #dce2de;border-radius:8px;padding:10px;margin-top:6px;background:#fff}.modal textarea{min-height:70px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.cancel{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 15px}.auth{min-height:100vh;background:#12231d;display:grid;place-items:center;padding:20px}.authbox{background:#fff;width:min(430px,100%);border-radius:16px;padding:34px}.authbrand{color:#18372d;margin-bottom:31px}.authbrand small{color:#70837a}.authbox h1{font-size:25px;margin:7px 0}.authbox>p{color:var(--muted);font-size:12px}.authbox label{display:block;font-size:10px;font-weight:bold;margin:16px 0}.authbox input{display:block;width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:6px}.authbox form button{width:100%;background:var(--green);color:#fff;border:0;border-radius:8px;padding:12px;font-weight:bold}.authbox>small{display:block;text-align:center;color:#8a938f;margin-top:20px;font-size:9px}@media(max-width:950px){.stats{grid-template-columns:repeat(2,1fr)}.twocol{grid-template-columns:1fr}.project{grid-template-columns:1.5fr auto}.project .bar,.project>strong{display:none}}@media(max-width:720px){.shell{display:block}aside{position:static;height:auto}.logo{padding-bottom:15px}nav{display:flex;overflow:auto}nav a{white-space:nowrap}.user{display:none}.content{padding:23px 15px}.content>header{align-items:center}.secondary{display:none}.hero{display:block}.hero a{display:block;margin-top:15px}.stats{grid-template-columns:1fr 1fr}.featuregrid{grid-template-columns:1fr}.two{grid-template-columns:1fr}}@media print{aside,.content>header,.toolbar,.pageadd{display:none}.shell{display:block}.content{padding:0}.card{border:0}.tr{font-size:9px}}
