:root{--navy:#102f5e;--blue:#1268d2;--cyan:#16b8c8;--ink:#17243a;--muted:#66758b;--line:#dce5ef;--bg:#f4f7fb;--white:#fff;--danger:#b42318}
*{box-sizing:border-box}html{font-family:"Malgun Gothic","Noto Sans KR",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100vh}a{text-decoration:none;color:inherit}
.site-header{height:72px;padding:0 max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.brand{display:flex;gap:12px;align-items:center}.brand-logo{width:108px;height:42px;object-fit:contain;object-position:left center}.brand strong,.brand small{display:block}.brand strong{font-size:18px}.brand small{color:var(--muted);font-size:11px;margin-top:2px}.header-nav{display:flex;align-items:center;gap:22px}.header-link{color:var(--navy);font-weight:700}.approval-link{color:var(--blue)}
main{min-height:calc(100vh - 130px)}footer{text-align:center;padding:28px;color:#8793a5;font-size:12px}.hero{min-height:430px;background:linear-gradient(120deg,#0d2f61 0%,#155da4 63%,#18aebc 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:64px max(24px,calc((100% - 1080px)/2));overflow:hidden}.hero h1{font-size:52px;line-height:1.18;margin:13px 0}.hero p{font-size:18px;color:#dcecff}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:800;color:var(--cyan)}.hero .eyebrow{color:#8be9ef}.hero-art{width:260px;height:260px;border:1px solid #ffffff42;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 50px #ffffff0b,0 0 0 100px #ffffff08}.hero-art span{font-size:88px}
.home-actions{max-width:980px;margin:-56px auto 50px;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 20px}.action-card{min-height:142px;padding:28px;border-radius:20px;background:#fff;box-shadow:0 18px 45px #0a2d5b22;display:flex;align-items:center;gap:20px;border:1px solid #e4ebf4}.action-card.primary{background:linear-gradient(135deg,#173b7f,#135eb6);color:#fff;border:0}.action-card strong,.action-card small{display:block}.action-card strong{font-size:22px}.action-card small{margin-top:9px;color:#7b899d}.action-card.primary small{color:#d9e7f8}.action-card b{margin-left:auto;font-size:24px}.action-icon{font-size:34px}.guide{max-width:980px;margin:0 auto;padding:20px}.guide h2{text-align:center}.guide-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.guide-steps div{text-align:center;padding:20px 8px}.guide-steps i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#e4f2ff;color:var(--blue);font-style:normal;font-weight:800}.guide-steps strong,.guide-steps small{display:block}.guide-steps small{color:var(--muted);margin-top:6px}
.page-head{max-width:1080px;margin:0 auto;padding:48px 20px 22px}.page-head h1{font-size:34px;margin:8px 0}.page-head p{color:var(--muted)}em{color:#e5484d;font-style:normal}.visit-form{max-width:1080px;margin:0 auto;padding:0 20px}.visit-form fieldset{border:1px solid var(--line);border-radius:16px;background:#fff;padding:26px;margin:0 0 18px}.visit-form legend{font-size:18px;font-weight:800;padding:0 8px}.visit-form legend span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--blue);color:#fff;margin-right:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.form-grid label,.lookup-card label{font-size:13px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.lookup-card input{display:block;width:100%;margin-top:8px;border:1px solid #cbd6e3;border-radius:8px;padding:11px 12px;font:inherit;background:#fff}.form-grid input,.form-grid select{height:44px}.form-grid textarea{resize:vertical}.wide{grid-column:1/-1}.muted{color:var(--muted);font-size:13px}.agreement{border:1px solid var(--line);border-radius:10px;margin-top:12px;overflow:hidden}.agreement summary{padding:14px 16px;font-weight:700;cursor:pointer;background:#f7f9fc}.agreement-text{padding:16px;max-height:190px;overflow:auto;line-height:1.65;color:#49576b;font-size:13px}.check{display:flex;align-items:center;gap:8px;padding:13px 16px;border-top:1px solid var(--line);font-size:13px;font-weight:700}.check input{width:18px;height:18px}.form-actions{display:flex;justify-content:center;gap:12px;padding:12px 0 28px}.button{height:46px;min-width:132px;padding:0 24px;border:0;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;cursor:pointer}.button.primary{background:var(--blue);color:#fff}.button.secondary{background:#e9eef5;color:#34445a}
.alert{max-width:1080px;margin:0 auto 16px;padding:14px 18px;border-radius:10px}.alert.error{background:#fff0ef;color:var(--danger);border:1px solid #ffd1cc}.alert.success{background:#e8f8ef;color:#087443;border:1px solid #bce8cf}.lookup-card{max-width:760px;margin:0 auto 24px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end}.status-card,.complete-card{max-width:760px;margin:22px auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px}.status-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}.status-top small,.status-top strong{display:block}.status-top strong{font-size:22px;margin-top:5px}.status-badge{padding:7px 13px;border-radius:20px;background:#e5f8ee;color:#13804d;font-weight:800}.status-badge.pending{background:#fff3d8;color:#976300}.status-card dl div{display:grid;grid-template-columns:100px 1fr;padding:12px 0;border-bottom:1px dashed var(--line)}dt{color:var(--muted)}dd{margin:0;font-weight:700}.progress-track{display:grid;grid-template-columns:repeat(3,1fr);margin-top:26px}.progress-track div{text-align:center;color:#9aa5b3;position:relative}.progress-track div:before{content:"";position:absolute;top:16px;left:-50%;width:100%;height:3px;background:#dfe6ee}.progress-track div:first-child:before{display:none}.progress-track i{position:relative;z-index:1;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e7edf4;margin:0 auto 8px;font-style:normal}.progress-track .done,.progress-track .active{color:var(--blue);font-weight:700}.progress-track .done i,.progress-track .active i{background:var(--blue);color:#fff}.progress-track .done:before{background:var(--blue)}.complete-card{text-align:center;margin-top:80px}.complete-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#ddf7ea;color:#13804d;font-size:36px;font-weight:800;margin:0 auto 20px}.request-number{display:block;font-size:25px;letter-spacing:.04em;background:#f2f6fb;padding:18px;border-radius:10px;margin:24px 0}.error-page .complete-icon{background:#fff0ef;color:var(--danger)}.inline-error{color:var(--danger)}
.approval-login{max-width:470px;margin:70px auto;padding:38px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 48px #173a6b16}.approval-login h1{margin:10px 0}.approval-login>p{color:var(--muted);margin-bottom:28px}.approval-login form{display:grid;gap:18px}.approval-login label{font-size:13px;font-weight:700}.approval-login input,.approval-search input,.decision-panel textarea{display:block;width:100%;margin-top:8px;border:1px solid #cbd6e3;border-radius:9px;padding:12px;font:inherit}.approval-login input{height:46px}.approval-login .button{width:100%;margin-top:4px}
.approval-page{max-width:1080px;margin:0 auto;padding:46px 20px}.approval-page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.approval-page-head h1{font-size:34px;margin:8px 0}.approval-page-head p{margin:0;color:var(--muted)}.button.compact{height:40px;min-width:92px;padding:0 18px}.approval-search{display:flex;gap:10px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:13px}.approval-search input{margin:0;height:40px}.approval-summary{padding:22px 2px 12px;color:var(--muted)}.approval-summary strong{color:var(--blue);font-size:20px}.approval-list{display:grid;gap:14px}.approval-card{display:block;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:16px;transition:.2s}.approval-card:hover{border-color:#8bb7e7;transform:translateY(-1px);box-shadow:0 12px 30px #173a6b12}.approval-card-top{display:flex;align-items:center;justify-content:space-between}.approval-card-top small,.approval-card-top strong{display:block}.approval-card-top small{color:var(--muted);margin-bottom:6px}.approval-card-top strong{font-size:19px}.approval-card dl{display:grid;grid-template-columns:1fr 1fr;gap:9px 24px;margin:18px 0}.approval-card dl div{display:grid;grid-template-columns:82px 1fr}.approval-card dt,.approval-card dd{font-size:13px}.detail-link{display:block;text-align:right;color:var(--blue);font-weight:800}.empty-state{text-align:center;padding:70px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--muted)}
.back-link{display:inline-block;margin-bottom:18px;color:var(--blue);font-weight:700}.approval-detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.detail-panel,.decision-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.detail-panel h2{font-size:18px;margin:0 0 18px}.detail-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0}.detail-panel dl div{display:grid;grid-template-columns:90px 1fr;padding:12px 0;border-bottom:1px dashed var(--line)}.detail-panel .wide-row{grid-column:1/-1}.approval-lines{list-style:none;margin:0;padding:0;display:grid;gap:12px}.approval-lines li{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;background:#f5f7fa}.approval-lines li.active{background:#eaf4ff;color:var(--blue)}.approval-lines i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;font-style:normal;font-weight:800}.approval-lines strong,.approval-lines small{display:block}.approval-lines small{margin-top:3px;color:var(--muted)}.decision-panel{margin-top:18px}.decision-panel label{font-weight:700}.decision-panel textarea{resize:vertical;min-height:100px}.decision-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.button.approve{background:#15804f;color:#fff}.button.reject{background:#c43b32;color:#fff}
@media(max-width:720px){.site-header{height:62px;padding:0 16px}.header-nav{gap:10px}.header-link{font-size:12px}.hero{min-height:350px;padding:48px 24px}.hero h1{font-size:37px}.hero-art{display:none}.home-actions{grid-template-columns:1fr;margin-top:-38px}.guide-steps{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.visit-form fieldset{padding:20px 16px}.lookup-card{margin:0 16px;grid-template-columns:1fr}.status-card,.complete-card{margin:20px 16px}.page-head{padding-top:34px}.progress-track span{font-size:12px}.approval-login{margin:28px 16px;padding:26px 20px}.approval-page{padding:30px 16px}.approval-page-head{align-items:flex-start}.approval-page-head h1{font-size:28px}.approval-card dl,.approval-detail-grid,.detail-panel dl{grid-template-columns:1fr}.approval-card dl div{grid-template-columns:78px 1fr}.detail-panel .wide-row{grid-column:auto}.approval-search{align-items:stretch}.approval-search .button{min-width:76px}.decision-actions .button{flex:1}.brand small{display:none}}
.progress-track{grid-template-columns:repeat(5,1fr)}
.arrival-action,.visit-state-note{margin-top:24px;padding:18px;border-radius:12px;background:#eef6ff;border:1px solid #cfe2f8;text-align:center}.arrival-action p{margin:0 0 14px}.visit-state-note.complete{background:#e8f8ef;border-color:#bce8cf;color:#087443}
.host-visit-search{display:grid;grid-template-columns:180px 180px 1fr auto;gap:12px;align-items:end;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.host-visit-search label{font-size:13px;font-weight:700}.host-visit-search input,.host-visit-search select,.host-visit-action input{display:block;width:100%;height:42px;margin-top:7px;border:1px solid #cbd6e3;border-radius:9px;padding:9px 11px;font:inherit;background:#fff}.host-visit-list{display:grid;gap:15px}.host-visit-card{padding:24px;background:#fff;border:1px solid var(--line);border-radius:16px}.host-visit-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px;margin:18px 0}.host-visit-card dl div{display:grid;grid-template-columns:82px 1fr;align-items:start}.host-visit-card dd{line-height:1.45}.host-visit-action{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:15px}.host-visit-action input{margin:0}.host-visit-action .button{width:112px;min-width:112px;white-space:nowrap;word-break:keep-all}.status-badge{white-space:nowrap;word-break:keep-all}.status-badge.arrived{background:#e8f1ff;color:#1559a8}.status-badge.completed{background:#edf1f5;color:#566477}
@media(max-width:720px){.site-header{height:auto;min-height:62px;padding:8px 16px}.header-nav{flex-wrap:wrap;justify-content:flex-end}.progress-track span{font-size:10px}.host-visit-search,.host-visit-card dl,.host-visit-action{grid-template-columns:1fr}.host-visit-action{align-items:stretch}.host-visit-action .button{width:100%;min-width:100%}}

