:root{--green:#154e40;--yellow:#ffd43b;--muted:#60756c}*{box-sizing:border-box}body{margin:0;background:#f5f8f2;color:#193b31;font-family:system-ui,-apple-system,'Noto Sans KR',sans-serif;line-height:1.65}.demo{background:#173e34;color:white;text-align:center;padding:9px 16px;font-size:12px}header{max-width:960px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:24px}header img{width:166px}a{color:var(--green)}main{max-width:800px;margin:15px auto;padding:0 24px 40px}.intro{padding:16px 0 25px}.intro span{font-size:12px;letter-spacing:2px;font-weight:700}.intro h1{font-size:36px;line-height:1.3;margin:12px 0}.intro p{color:var(--muted)}.note{font-size:13px;color:var(--muted)}#steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0;margin:0 0 22px}#steps li{border-top:4px solid #dce5dc;padding-top:10px;font-size:13px}#steps .current{border-color:var(--green);font-weight:700}#steps .done{border-color:#d8b023}#panel,.success{background:white;border:1px solid #dde6dc;border-radius:20px;padding:30px}h2{font-size:24px;margin:0 0 8px}h3{margin:26px 0 12px}label{display:block;font-size:14px;font-weight:600;margin:18px 0 0}input,select,textarea{display:block;width:100%;min-width:0;font:inherit;border:1px solid #ccd8d0;border-radius:9px;background:white;padding:12px;margin-top:7px;color:#193b31}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #e9c131;outline-offset:2px}textarea{min-height:95px;resize:vertical}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.grid>*{min-width:0}button,.button{min-height:46px;font:inherit;padding:11px 22px;border:0;border-radius:10px;cursor:pointer;background:#eaf1e9;color:#193b31;font-weight:700;text-decoration:none;display:inline-block}.actions{display:flex;justify-content:space-between;gap:12px;margin:22px 0}.actions button:last-child{background:var(--yellow)}.check{display:flex;gap:12px;align-items:flex-start;font-weight:400}.check input{width:20px;height:20px;min-height:20px;flex:none;margin:3px 0}.check span{min-width:0}.box{background:#f5f8f2;border-radius:12px;padding:16px;margin-top:18px}.box p{margin:5px 0;font-size:13px}#error{color:#a32c24;font-size:14px}dl{display:grid;grid-template-columns:150px 1fr;margin:0}dt,dd{padding:9px 0;border-bottom:1px solid #eef0eb;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}dt{color:var(--muted)}footer{font-size:12px;color:var(--muted);text-align:center;margin:30px 0}.success{border-top:6px solid var(--yellow)}[hidden]{display:none!important}@media(max-width:540px){header{padding:18px}header img{width:140px}main{padding:0 16px 24px}.intro h1{font-size:29px}#panel,.success{padding:20px 16px}.grid{grid-template-columns:1fr}#steps li{font-size:12px}input,select,textarea{font-size:16px}dl{grid-template-columns:110px 1fr}h2{font-size:22px}.actions button{flex:1;padding:12px 8px}}

textarea::placeholder{color:#9ba69f;opacity:1}

/* Consistent intrinsic sizing for iOS dates and narrow embedded forms. */
main,form,#panel,.grid,label{min-width:0;max-width:100%}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
input,select,textarea{box-sizing:border-box;max-width:100%;min-inline-size:0;inline-size:100%}
input:not([type=checkbox]),select{height:50px;min-height:50px;line-height:1.4}
.date-field{display:block;position:relative;min-width:0;margin-top:7px}
.date-field input{margin-top:0;padding-right:48px;appearance:none;-webkit-appearance:none;position:relative;text-align:left}
.date-field input::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
.date-field input::-webkit-datetime-edit{padding:0;min-width:0}
.date-field input::-webkit-calendar-picker-indicator{position:absolute;right:0;top:0;width:44px;height:100%;padding:0;margin:0;opacity:0;cursor:pointer}
.date-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:22px;height:22px;color:var(--green);pointer-events:none}
.intro p,.box p,.check span,.success p{overflow-wrap:anywhere}
.actions button{min-width:0;white-space:normal}
.success .button,.success button{margin:6px 0;max-width:100%}
@media(max-width:540px){.grid{grid-template-columns:minmax(0,1fr)}#steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}#steps li{overflow-wrap:anywhere}.success .button,.success button{display:block;width:100%;text-align:center}dl{grid-template-columns:minmax(0,90px) minmax(0,1fr)}}
