:root{font-family:Arial,Helvetica,sans-serif;color:#172b3a;background:#f4f7f7;font-size:18px}*{box-sizing:border-box}body{margin:0}a{color:#086b70;text-decoration:none}a:hover{text-decoration:underline}.topbar{background:#153e49;color:white;display:flex;align-items:center;gap:28px;padding:16px max(24px,calc((100vw - 1180px)/2));flex-wrap:wrap}.topbar a{color:white}.brand{font-size:25px;font-weight:800;white-space:nowrap}.brand span{color:#8fe5d4;margin-left:5px}.topbar nav{display:flex;gap:6px;flex-wrap:wrap;flex:1}.topbar nav a{padding:10px 14px;border-radius:8px;font-size:17px}.topbar nav a.active,.topbar nav a:hover{background:#2b6570;text-decoration:none}.topbar form{margin:0}.logout{color:white;background:transparent;border:1px solid #8ab2b7;border-radius:8px;padding:9px 13px;font:inherit;cursor:pointer}.page{max-width:1180px;margin:auto;padding:30px 24px 70px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{font-size:34px;line-height:1.15;margin:0 0 8px}.page-head p{margin:0;color:#526571;line-height:1.5}.page-head .button{white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:9px;padding:12px 18px;min-height:48px;font-size:17px;font-weight:700;cursor:pointer;text-align:center}.button:hover{text-decoration:none}.primary{background:#087981;color:white}.primary:hover{background:#075f66}.secondary{background:white;border-color:#b9cbd0;color:#234a50}.secondary:hover{background:#eef6f5}.card,.table-wrap{background:white;border:1px solid #dce5e7;border-radius:12px;box-shadow:0 2px 9px #18343a0a}.form{padding:26px}.form.narrow{max-width:520px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.field{display:flex;flex-direction:column;gap:8px;font-weight:700}.field-wide{grid-column:1/-1}.field input,.field select,.field textarea,.filters input{width:100%;min-height:48px;border:1.5px solid #a9bec4;border-radius:8px;padding:10px 12px;font:inherit;background:white;color:#172b3a}.field textarea{min-height:95px;resize:vertical}.field small{font-size:14px;font-weight:400;color:#65757b;min-height:16px}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.filters{padding:16px;display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:22px}.filters label{display:flex;flex-direction:column;gap:7px;font-weight:700;min-width:190px;flex:1}.filters input{font-weight:400}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0 30px}.metric{background:white;border:1px solid #dce5e7;border-radius:12px;padding:20px;min-height:118px}.metric span{display:block;color:#506874;font-size:16px;margin-bottom:14px}.metric strong{font-size:29px;color:#164652}.callout{background:#dff5ee;border-left:5px solid #087981;border-radius:8px;padding:16px 20px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:10px 0 20px}.callout a{font-weight:700}h2{font-size:24px;margin:32px 0 14px}h3{font-size:19px;margin:10px 0 4px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:600px}th,td{padding:15px 16px;text-align:left;border-bottom:1px solid #e6eced;vertical-align:top}th{background:#eaf2f2;color:#38545b;font-size:15px}tr:last-child td{border-bottom:0}td a{font-weight:700}.empty{padding:26px;background:white;border:1px dashed #a8bec2;border-radius:12px;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.muted{color:#687b81;font-size:15px;margin-top:18px}.badge{font-size:13px;display:inline-block;padding:5px 8px;border-radius:50px;margin-left:8px;background:#e6eeee;color:#31525a}.badge-danger{background:#ffe0dc;color:#912f26}.badge-today{background:#fff0c6;color:#785300}.details{padding:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.details div{display:flex;flex-direction:column;gap:6px}.details span{color:#58707a;font-size:15px}.details strong{white-space:pre-wrap;font-weight:600}.details .wide{grid-column:1/-1}.tasks,.task-list{list-style:none;padding:0;margin:0}.task{padding:20px 22px;border-bottom:1px solid #e6eced;display:flex;justify-content:space-between;gap:20px;align-items:center}.task:last-child{border:0}.task p{margin:0;color:#5e7378}.task-list{padding:15px 22px}.task-list li{padding:10px 0;border-bottom:1px solid #edf1f2}.task-list li:last-child{border:0}.archive-form{margin-top:34px}.text-button{background:none;border:0;color:#786d68;text-decoration:underline;cursor:pointer;font:inherit}.error{background:#ffe5e1;color:#812a24;border-radius:8px;padding:13px 16px;margin-bottom:20px}.notice{background:#e4f4e8;padding:14px;border-radius:8px;margin-bottom:15px}:focus-visible{outline:3px solid #e99d24;outline-offset:2px}@media(max-width:800px){.metrics{grid-template-columns:repeat(2,1fr)}.topbar{gap:12px}.topbar nav{order:3;flex-basis:100%}.page{padding:24px 15px 60px}}@media(max-width:600px){.page-head h1{font-size:29px}.form-grid,.details{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.metric{padding:14px;min-height:98px}.metric strong{font-size:23px}.task{align-items:flex-start;flex-direction:column}.form{padding:18px}.button{width:auto}}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0;margin:0 0 24px;list-style:none}.steps li{background:#e7eeee;color:#526b71;border-radius:9px;padding:12px;font-size:15px;font-weight:700;line-height:1.3}.steps li span{display:block;font-size:13px;margin-bottom:4px}.steps li.done{background:#dff3e8;color:#176849}.steps li.current{background:#087981;color:#fff}.visit-list{display:grid;gap:16px}.visit-card{padding:22px}.visit-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.visit-head h3{margin:0}.visit-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 22px;margin:20px 0 0}.visit-card dt{font-size:14px;color:#58707a;font-weight:700;margin-bottom:4px}.visit-card dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:600px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-card dl{grid-template-columns:1fr}}
.upload-form{padding:20px;margin-top:14px;display:flex;align-items:end;gap:20px;flex-wrap:wrap}.upload-form .field{flex:1;min-width:250px}.upload-form input[type=file]{padding:10px;background:#f8fbfb}.file-list{list-style:none;padding:0;margin:0}.file-list li{padding:15px 20px;border-bottom:1px solid #e6eced;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.file-list li:last-child{border-bottom:0}.file-list a{font-weight:700;overflow-wrap:anywhere}.file-list span{font-size:15px;color:#62757a;white-space:nowrap}
.password-fields{grid-template-columns:1fr}
