*{box-sizing:border-box}body{margin:0;background:#f3f6f5;color:#183d33;font:16px Arial,sans-serif}aside{position:fixed;width:230px;inset:0 auto 0 0;background:#103d33;color:white;padding:30px 20px;display:flex;flex-direction:column}aside h2{letter-spacing:5px;font-size:29px;margin:0 0 8px}aside small{color:#b9d9cb;font-size:12px;line-height:1.6}aside p{margin:36px 0 24px;line-height:1.8;font-size:14px}nav{display:grid;gap:8px}button,input,select{font:inherit;border-radius:6px;border:1px solid #d0ded5;padding:10px;color:#214b3a;background:white}button{cursor:pointer}button:hover{background:#e4efe8}nav button{text-align:left;background:transparent;color:#d5e7dd;border:0;padding:15px}nav button.active{background:#2b6050;border-left:3px solid #70d4a1;color:white}.bottom{margin-top:auto;display:grid;gap:10px}.bottom label{font-size:14px}main{margin-left:230px;padding:30px;max-width:1900px}header{display:flex;align-items:center;justify-content:space-between}header small{color:#73867a;letter-spacing:1.4px;font-size:12px}h1{font-size:30px;margin:10px 0 20px}h2{font-size:21px;margin-top:0}.pill{border-radius:20px;padding:8px 12px;background:#e2eee5;color:#3b7254;font-size:12px;white-space:nowrap}.notice{padding:13px 16px;background:#fff6da;border:1px solid #eadcae;border-radius:8px;color:#78632e;font-size:14px;margin-bottom:24px}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 20px}.spacer{flex:1}.primary{background:#19573f;color:white;border-color:#19573f}.primary:hover{background:#2a7757}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.card,.panel{background:white;border:1px solid #dce6de;border-radius:10px;padding:22px}.card small{display:block;color:#6b8073;margin-bottom:16px}.card strong{font-size:25px}.card:last-child{background:#174b39;color:white}.card:last-child small{color:#c9dfd2}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.scroll{overflow:auto;background:white;border:1px solid #dce6de;border-radius:9px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;background:#eaf1ed;color:#5a7563;font-weight:normal;white-space:nowrap;padding:15px 12px}td{padding:12px;border-bottom:1px solid #eaf0ec}.tasks{min-width:1100px}.tasks td{padding:7px}.tasks td:first-child{min-width:290px;border-left:4px solid #3c9b70}.tasks input,.tasks select{width:100%;background:transparent;border-color:transparent;font-size:14px}.tasks input:hover,.tasks select:hover{border-color:#bfd5c7}.tasks input[type=date]{min-width:142px}.taskname{display:flex;align-items:center}.taskname input{font-weight:bold}.sub td:first-child{padding-left:30px;border-left-color:#bfdccc}.sub .taskname input{font-weight:normal}.icon{padding:6px;border:0;background:transparent;font-size:13px;white-space:nowrap}.muted{color:#6a8071;font-size:14px;line-height:1.6}.empty{padding:45px;text-align:center;color:#6a8071}.line{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #edf1ee}.progress{height:8px;background:#e2ece5;border-radius:5px;margin:18px 0;overflow:hidden}.progress span{display:block;height:100%;background:#329569}.s0{background:#edf0f4!important}.s1{background:#fff0cb!important;color:#865e14}.s2{background:#eee5fa!important;color:#735497}.s3{background:#dcf2e5!important;color:#216440}iframe{width:100%;height:calc(100vh - 210px);min-height:650px;border:0;background:white;border-radius:10px}footer{display:flex;gap:12px;align-items:center;margin-top:22px;font-size:13px;color:#67806f}footer span{margin-right:auto}footer button{font-size:13px}dialog{width:500px;max-width:95vw;border:1px solid #d0ded3;border-radius:12px;padding:28px;color:#204c38}dialog::backdrop{background:#10372977}dialog label{display:grid;gap:8px;margin-bottom:16px}dialog small{color:#7a897e;font-size:13px}input:focus,select:focus,button:focus-visible{outline:2px solid #409871;outline-offset:2px}input:disabled,select:disabled{opacity:.8;cursor:default}@media(max-width:1050px){.cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}}@media(max-width:700px){aside{position:static;width:auto;padding:18px}aside p{margin:14px 0}nav{display:flex;flex-wrap:wrap;gap:2px}nav button{padding:10px}.bottom{margin-top:15px}main{margin:0;padding:18px}.cards{gap:10px}.card{padding:15px}.card strong{font-size:20px}header .pill{display:none}h1{font-size:26px}}
