@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,600&display=swap";:root{font-family:DM Sans,sans-serif;color:#102a4c;background:#f4f8f8;font-synthesis:none;--teal:#075e58;--mint:#66d29b;--navy:#102a4c;--coral:#ef705f;--line:#dce5e7;--muted:#68778a;--shadow:0 16px 50px rgba(16,42,76,.1)}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}.primary{background:var(--teal);color:#fff;border:1px solid var(--teal);border-radius:9px;padding:12px 18px;font-weight:700}.text-button{border:0;background:transparent;color:var(--teal);font-weight:700}.error{padding:10px 12px;background:#fff1ef;border:1px solid #ffc7bf;border-radius:8px;color:#a6372b;font-size:13px}.loading{min-height:100vh;display:grid;place-items:center;color:var(--teal)}.field{display:grid;gap:7px;font-size:13px;font-weight:600}.field input,.field textarea{border:1px solid #b9c6cc;border-radius:8px;padding:12px;outline:none;background:#fff}.field input:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #075e581f}.field textarea{min-height:90px;resize:vertical}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.auth-brand{background:var(--teal);color:#fff;padding:10vw;display:flex;flex-direction:column;justify-content:center}.auth-brand .logo{width:70px;height:70px;border-radius:20px;background:var(--mint);display:grid;place-items:center;font-size:28px;font-weight:700}.auth-brand h1{font-size:42px;margin:24px 0 0}.auth-brand strong{font:600 italic 44px Playfair Display,serif;color:var(--mint)}.auth-brand p{max-width:420px;color:#d9efed;font-size:18px}.auth-card{width:min(430px,85%);margin:auto;display:grid;gap:18px}.auth-card>svg{color:var(--teal)}.auth-card h2{font-size:30px;margin:0}.auth-card p{color:var(--muted);margin:0}.auth-card a{text-align:center;color:var(--teal)}.patient-page{min-height:100vh;background:#eef4f4;padding:30px}.patient-brand{max-width:720px;margin:auto auto 25px;color:var(--teal);font-family:serif;font-weight:700;font-size:22px;letter-spacing:1px}.patient-brand em{font:600 italic 30px Playfair Display,serif;margin-left:14px}.patient-page main{max-width:720px;margin:auto;background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:40px}.patient-lookup{display:grid;gap:18px}.patient-lookup>svg{color:var(--teal)}.patient-lookup h1{margin:0}.patient-lookup p{color:var(--muted)}.patient-lookup small{text-align:center;color:var(--muted)}.progress-view{position:relative}.close{border:0;background:transparent;position:absolute;right:0;top:0;color:var(--muted)}.progress-view>p{color:var(--muted)}.progress-numbers{display:grid;grid-template-columns:1fr 190px 1fr;align-items:center;margin:35px 0}.progress-numbers>div{display:grid;gap:8px}.progress-numbers span{color:var(--muted)}.progress-numbers strong{font-size:28px}.progress-ring{width:165px;height:165px;border:14px solid var(--mint);border-left-color:#edf1f1;border-radius:50%;display:grid!important;place-content:center;text-align:center}.progress-ring strong{color:var(--teal)}.simple-chart{height:170px;display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid var(--line);padding:15px 20px}.simple-chart div{flex:1;background:var(--teal);border-radius:5px 5px 0 0;position:relative}.simple-chart span{position:absolute;top:-23px;font-size:11px;color:var(--teal)}.shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{background:var(--teal);color:#fff;padding:28px 15px;display:flex;flex-direction:column}.side-brand{font-size:24px;font-weight:700;line-height:1.05;padding:0 15px 30px}.side-brand span{display:block;color:var(--mint);font-weight:500}.sidebar nav{display:grid;gap:8px}.sidebar nav button{border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:12px;padding:13px;border-radius:9px;text-align:left}.sidebar nav button svg{width:19px}.sidebar nav .active,.sidebar nav button:hover{background:#ffffff21}.side-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.35);padding:20px 10px 0;display:grid;gap:16px;font-size:13px}.side-user>span{line-height:1.4}.side-user button{border:0;background:transparent;color:#fff;padding:0;display:flex;gap:8px}.side-user svg{width:18px}.dashboard{padding:28px;min-width:0}.dashboard>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dashboard h1{margin:0 0 5px}.dashboard header p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:12px}.stat i{grid-row:1/3;width:44px;height:44px;border:1px solid var(--mint);border-radius:50%;display:grid;place-items:center;color:var(--teal)}.stat i svg{width:21px}.stat strong{font-size:25px;color:#249b74}.stat span{font-size:12px;color:var(--muted)}.stat.alert strong,.stat.alert i{color:var(--coral);border-color:var(--coral)}.work{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.patient-list,.detail{background:#fff;border:1px solid var(--line);border-radius:12px}.patient-list{padding:20px;overflow:hidden}.list-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.list-head h2{margin:0 0 4px}.list-head p{margin:0;color:var(--muted);font-size:12px}.search{display:flex;align-items:center;border:1px solid #bdc8ce;border-radius:8px;padding:0 10px;width:300px}.search svg{width:17px;color:var(--muted)}.search input{border:0;outline:0;padding:10px;width:100%}table{width:100%;border-collapse:collapse;margin-top:18px;font-size:12px}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600;background:#f9fbfb}tbody tr{cursor:pointer}tbody tr.selected,tbody tr:hover{background:#ecfaf5}td small{display:block;color:var(--muted);margin-top:3px}td.positive{color:#1e9871;font-weight:700}td button{border:1px solid var(--teal);color:var(--teal);background:#fff;border-radius:6px;padding:6px;white-space:nowrap}.detail{padding:20px}.detail h2{margin:5px 0}.detail>p{color:var(--muted);font-size:12px;line-height:1.5}.detail hr{border:0;border-top:1px solid var(--line);margin:20px 0}.detail>span,.detail>small{color:var(--muted);font-size:12px}.big-percent{display:block;color:#24a077;font-size:30px;margin-top:7px}.detail dl{font-size:12px}.detail dl div{display:flex;justify-content:space-between;padding:8px 0}.detail dt{color:var(--muted)}.detail dd{margin:0;font-weight:600}.detail>.primary{width:100%;margin-top:14px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#102a4c73;display:grid;place-items:center;padding:20px;z-index:10}.modal{position:relative;width:min(620px,100%);background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:25px}.modal .close{right:20px;top:20px}.modal>small{color:var(--teal)}.modal h2{margin:5px 0 18px}.modal>p{color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.wide{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.actions>button:not(.primary){border:1px solid #bdc8ce;background:#fff;border-radius:8px;padding:11px 16px}@media(max-width:1050px){.work{grid-template-columns:1fr}.detail{display:none}.stats{grid-template-columns:1fr 1fr}}@media(max-width:720px){.auth-page{grid-template-columns:1fr}.auth-brand{padding:35px}.auth-brand h1{font-size:30px}.auth-brand strong{font-size:32px}.auth-card{padding:40px 0}.shell{grid-template-columns:64px 1fr}.sidebar{padding:18px 8px}.side-brand{font-size:0;padding:0 0 22px;text-align:center}.side-brand:before{content:"GS";font-size:18px;color:var(--mint)}.sidebar nav button{font-size:0;justify-content:center}.side-user>span{display:none}.side-user button{font-size:0;justify-content:center}.dashboard{padding:17px}.stats{grid-template-columns:1fr 1fr}.list-head{align-items:stretch;flex-direction:column}.search{width:100%}.patient-list{padding:14px;overflow:auto}table{min-width:700px}.dashboard header .primary{font-size:0}.dashboard header .primary:after{content:"＋ Pesakit";font-size:13px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.patient-page{padding:18px}.patient-page main{padding:24px}.progress-numbers{grid-template-columns:1fr 140px}.progress-ring{width:130px;height:130px;border-width:11px}.progress-numbers>div:last-child{grid-column:1/-1;margin-top:20px}}.patient-page.has-result{background:#eef4f4;padding-bottom:50px}.patient-page.has-result>.patient-brand{max-width:860px}.patient-page.has-result main{max-width:860px;padding:0;background:#fff;overflow:hidden}.progress-view{padding:38px 44px 30px}.patient-welcome{display:flex;justify-content:space-between;align-items:flex-start}.patient-welcome h1{font-size:34px;margin:0 0 5px}.patient-welcome p{margin:0;color:var(--muted)}.patient-welcome>svg{color:var(--teal);width:34px;height:34px}.patient-progress{margin-top:35px}.patient-progress h2,.patient-chart-panel h2,.patient-info h2{font-size:21px;margin:0 0 18px}.patient-progress .progress-numbers{grid-template-columns:1fr 210px 1fr}.weight-stack{border-right:1px solid var(--line);gap:6px!important}.weight-stack span:nth-of-type(2){margin-top:18px}.weight-stack strong,.target-block strong{font-size:31px}.weight-stack b,.target-block b,.progress-ring b{font-size:14px;font-weight:500}.patient-progress .progress-ring{width:185px;height:185px;border:0;background:conic-gradient(var(--mint) var(--progress),#edf1f1 0);position:relative}.patient-progress .progress-ring:before{content:"";position:absolute;top:13px;right:13px;bottom:13px;left:13px;background:#fff;border-radius:50%}.patient-progress .progress-ring>div{position:relative;z-index:1;display:grid;gap:1px!important;text-align:center}.patient-progress .progress-ring span{font-size:15px}.patient-progress .progress-ring strong{font-size:40px;color:var(--coral)}.patient-progress .progress-ring em{font-size:21px;color:var(--teal);font-weight:700;font-style:normal}.target-block{border-left:1px solid var(--line);padding-left:28px;align-content:center}.target-block svg{color:var(--mint);margin-top:8px}.patient-chart-panel{border:1px solid var(--line);box-shadow:0 9px 28px #102a4c14;border-radius:15px;margin-top:32px;padding:22px}.patient-chart-panel>div:first-child{display:flex;justify-content:space-between}.patient-chart-panel>div:first-child>span{color:var(--muted)}.patient-chart-panel>p{font-size:12px;color:var(--muted);margin:8px 0 0}.weight-chart svg{display:block;width:100%;height:auto}.chart-grid line{stroke:#dfe6e8;stroke-dasharray:4 6}.weight-chart polyline{fill:none;stroke:var(--teal);stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.weight-chart circle{fill:var(--teal)}.weight-chart text{fill:var(--teal);font-size:12px;font-weight:700}.weight-chart .date-label{fill:var(--muted);font-size:10px;font-weight:500}.chart-empty{padding:45px;text-align:center;color:var(--muted)}.patient-info{margin-top:32px}.info-surface{border:1px solid var(--line);box-shadow:0 9px 28px #102a4c14;border-radius:15px;padding:6px 20px}.info-line,.clinical-line{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.info-surface>div:last-child{border-bottom:0}.info-line span,.clinical-line span{color:var(--muted);font-size:13px}.info-line strong,.clinical-line strong{font-size:14px}.clinical-line em{font-size:11px;font-style:normal;color:var(--muted);border:1px solid #ccd5da;border-radius:6px;padding:4px 7px}.patient-footer{display:flex;align-items:center;gap:10px;margin-top:24px;color:var(--muted)}.patient-footer>svg{color:var(--mint)}.patient-footer p{font-size:11px;margin:0;flex:1}.patient-footer button{border:0;background:transparent;color:var(--teal);font-weight:700}@media(max-width:720px){.patient-page.has-result{padding:0;background:#fff}.patient-page.has-result>.patient-brand{padding:20px 20px 0;margin-bottom:10px}.patient-page.has-result main{border-radius:0;box-shadow:none}.progress-view{padding:25px 20px}.patient-welcome h1{font-size:28px}.patient-progress .progress-numbers{grid-template-columns:1fr 145px}.patient-progress .progress-ring{width:140px;height:140px}.patient-progress .progress-ring:before{top:10px;right:10px;bottom:10px;left:10px}.patient-progress .progress-ring strong{font-size:31px}.patient-progress .progress-ring em{font-size:17px}.weight-stack strong{font-size:25px}.target-block{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);padding:16px 0 0;margin-top:14px;display:grid!important;grid-template-columns:1fr auto auto;align-items:center}.target-block strong{font-size:24px}.patient-chart-panel{padding:17px 12px}.weight-chart .date-label{font-size:9px}.info-surface{padding:4px 14px}.info-line,.clinical-line{grid-template-columns:110px 1fr auto;gap:8px}.clinical-line em{font-size:0;border:0;padding:0}.clinical-line em:after{content:"Dikunci";font-size:10px;color:var(--muted)}.patient-footer{align-items:flex-start}.patient-footer button{margin-left:auto}}.auth-logo{width:min(330px,80%);height:auto;object-fit:contain;object-position:left center;margin-bottom:20px;filter:brightness(0) invert(1)}.field select{border:1px solid #b9c6cc;border-radius:8px;padding:12px;outline:none;background:#fff;color:var(--navy)}.page-table{margin-top:0;min-height:420px}.page-table>p{color:var(--muted);font-size:13px}.empty-state{text-align:center;padding:38px 12px}.page-table td:nth-last-child(1){overflow-wrap:anywhere}:root{--teal:#0878c9;--mint:#45a7e8;--navy:#12365c;--line:#d8e6f1;--muted:#60758b;--shadow:0 16px 50px rgba(15,79,126,.12)}body{background:#f3f8fc}.sidebar{background:#fff;color:var(--navy);border-right:1px solid #dceaf4;box-shadow:8px 0 30px #165c8d0f}.side-brand{padding:0 10px 26px}.side-brand img{width:150px;height:112px;object-fit:contain;object-position:left center}.side-brand span{display:none}.sidebar nav button svg,.side-user svg{color:#0878c9}.sidebar nav .active,.sidebar nav button:hover{background:#e8f4fc;color:#0568ad}.side-user{border-top-color:#dceaf4}.primary{background:#0878c9;border-color:#0878c9}.stat{border-color:#d8e6f1}.stat i{border-color:#70bcec;color:#0878c9;background:#f1f9fe}.stat strong,.big-percent,td.positive{color:#0878c9}tbody tr.selected,tbody tr:hover{background:#edf7fd}td button{border-color:#0878c9;color:#0878c9}.patient-list,.detail{box-shadow:0 8px 28px #1c60910f}@media(max-width:720px){.side-brand img{width:46px;height:46px;object-fit:cover;object-position:top}.sidebar{box-shadow:none}.side-user button{color:var(--navy)}}:root{--teal:#c91d5c;--mint:#42b9df;--navy:#17233b;--coral:#e14b72;--line:#e5dce4;--muted:#6f6672;--shadow:0 16px 50px rgba(141,24,77,.12)}body{background:#fbf7fa}.sidebar{background:#fff;color:var(--navy);border-right:1px solid #f0dce7;box-shadow:8px 0 30px #b21c5b12}.side-brand img{width:160px;height:120px;object-fit:contain;object-position:left center}.sidebar nav button,.side-user button{color:var(--navy)}.sidebar nav button svg,.side-user svg{color:#42aeda}.sidebar nav .active,.sidebar nav button:hover{background:#fce8f1;color:#b81350}.side-user{border-top-color:#f0dce7}.primary{background:#c91d5c;border-color:#c91d5c}.stat i{border-color:#6bc9e7;color:#159bc8;background:#effaff}.stat strong,.big-percent,td.positive{color:#c91d5c}.stat:nth-child(2) strong,.stat:nth-child(2) i{color:#159bc8;border-color:#6bc9e7}tbody tr.selected,tbody tr:hover{background:#fff1f6}td button{border-color:#c91d5c;color:#c91d5c}.patient-list,.detail{box-shadow:0 8px 28px #9723560f}.search:focus-within{border-color:#c91d5c;box-shadow:0 0 0 3px #c91d5c1a}@media(max-width:720px){.side-brand img{width:48px;height:48px;object-fit:cover;object-position:center top}}.side-brand{overflow:hidden}.side-brand img{transform:scale(1.45);transform-origin:left center;margin-left:-4px}@media(max-width:720px){.side-brand img{transform:scale(1.2);margin-left:0}}.side-brand{background:#cf1c5b;border-radius:14px;padding:10px;margin:0 0 24px;overflow:visible;align-items:center}.side-brand img{display:block;width:170px;height:145px;object-fit:contain;object-position:center;transform:none;margin:0}@media(max-width:720px){.side-brand{padding:4px;margin-bottom:18px;border-radius:9px}.side-brand img{width:46px;height:46px;object-fit:contain;transform:none;margin:0}}.side-brand{background:#fff;padding:4px 10px 20px;border-radius:0;margin:0 0 12px}.side-brand img{width:120px;height:120px;object-fit:contain;object-position:center;transform:none;margin:0 auto}@media(max-width:720px){.side-brand{padding:0 0 18px;margin:0}.side-brand img{width:46px;height:46px;object-fit:contain}}.list-tools{display:flex;gap:10px;align-items:center}.list-tools select{border:1px solid #bdc8ce;border-radius:8px;background:#fff;color:var(--navy);padding:10px;max-width:230px}.list-tools select:focus{border-color:#c91d5c;outline:0;box-shadow:0 0 0 3px #c91d5c1a}@media(max-width:900px){.list-tools{align-items:stretch;flex-direction:column}.list-tools select{max-width:none;width:100%}}.field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #075e581f}.overlay{overflow-y:auto}.row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}td .delete-row{display:inline-flex;align-items:center;gap:4px;border-color:#d95c50;color:#b63d33}td .edit-row{display:inline-flex;align-items:center;gap:4px;border-color:#5f7480;color:#405964}td .delete-row svg,td .edit-row svg{width:14px;height:14px}.delete-modal{max-width:470px;text-align:left}.delete-modal .danger-icon{width:42px;height:42px;color:#d95c50;background:#fff0ee;border-radius:50%;padding:10px}.delete-modal h2{margin:16px 0 8px}.delete-modal>p{color:var(--muted);line-height:1.6}.delete-modal .actions>.danger-button{background:#c9473d;color:#fff;border:1px solid #c9473d;border-radius:8px;padding:11px 16px;font-weight:700}.danger-button:disabled{opacity:.6;cursor:not-allowed}.patient-brand{display:flex;align-items:center;gap:14px}.patient-brand img{width:145px;height:54px;object-fit:contain;object-position:left center}.patient-brand em{margin-left:0}.side-brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.side-brand img{width:72px;height:72px;object-fit:contain}.side-brand span{font:600 italic 24px Playfair Display,serif}@media(max-width:720px){.auth-logo{width:230px;margin-bottom:12px}.side-brand{padding:0 0 22px;align-items:center}.side-brand:before{content:none}.side-brand img{width:38px;height:38px}.side-brand span{display:none}.patient-brand img{width:125px;height:45px}.patient-brand em{font-size:25px}}
