:root{font-family:Arial,'Noto Sans KR',sans-serif;color:#173c37;background:#f2f5f2;font-size:16px;line-height:1.6}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}header,main{max-width:1000px;margin:auto;padding:28px 24px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #d2dfd6}h1{font-size:clamp(25px,5vw,36px);line-height:1.3;margin:8px 0}h2{font-size:21px;margin:0 0 14px}.eyebrow{font-size:13px;letter-spacing:.06em;margin:0;color:#4a7065}.notice{padding:14px 16px;background:#fff4db;color:#6e531d;border-radius:10px;font-size:14px;margin:0 0 18px}section{background:white;padding:24px;margin:18px 0;border-radius:14px;border:1px solid #dce5dc}nav{display:flex;gap:8px;margin:20px 0}button,input,select,textarea{font:inherit}button{min-height:44px;cursor:pointer;border:1px solid #b2c8bd;border-radius:8px;padding:9px 15px;background:white;color:#173c37}button:hover{background:#e6eee7}button:disabled{opacity:.55;cursor:wait}button[aria-pressed=true],.primary{background:#1d5b4c;color:white;border-color:#1d5b4c}.primary:hover{background:#134438}input,select,textarea{display:block;border:1px solid #a9bcb0;border-radius:7px;padding:10px;width:100%;background:white;color:#173c37;min-width:0}label{display:block;font-size:14px;font-weight:600;margin:12px 0}label>*{margin-top:5px;font-weight:400}.dates{display:grid;grid-template-columns:1fr 1fr;gap:14px}.balance{background:#e0eee1}.balance strong{font-size:48px;line-height:1.1}.balance p{margin:6px 0}.muted,small{color:#547166;font-size:14px}.row{border-top:1px solid #dbe5df;padding:16px 0;overflow-wrap:anywhere}.row:first-child{border-top:0}.row p{margin:4px 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.badge{display:inline-block;padding:2px 9px;background:#e6eee7;border-radius:20px;font-size:13px}#message:not(:empty){padding:12px;background:#e4eee6;border-radius:8px;margin:12px 0}.grant{padding:10px 0;border-top:1px dashed #dbe5df}.grant input{margin:8px 0}#request-form .primary{margin-top:12px;width:100%}:focus-visible{outline:3px solid #d48e2c;outline-offset:2px}@media(max-width:420px){header,main{padding:20px 16px}header{align-items:flex-start}section{padding:18px}.dates{grid-template-columns:1fr;gap:0}h2{font-size:20px}#logout{padding:8px;font-size:13px}.balance strong{font-size:42px}}@media(min-width:850px){#employee{display:grid;grid-template-columns:1fr 1.25fr;gap:0 20px;align-items:start}#employee>section:last-child{grid-column:1/-1}}

header>div{min-width:0}h1{word-break:keep-all}#logout{flex-shrink:0;white-space:nowrap}@media(max-width:350px){h1{font-size:23px}}

#login>button{margin:0 8px 8px 0}

input[type="checkbox"]{width:20px;height:20px;display:inline-block;margin:0 8px 0 0;vertical-align:middle;accent-color:#215f50;}

.cal-view{display:flex;gap:6px;margin-bottom:10px}.cal-view button{flex:1;min-height:40px;padding:6px}
.cal-head{display:flex;gap:8px;align-items:center;margin-bottom:10px}.cal-head button{min-height:40px;padding:6px 10px;white-space:nowrap}.cal-head h3{margin:0;font-size:17px;flex:1;text-align:center;min-width:0}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-grid>*{min-width:0}
.cal-dow{font-size:12px;color:#547166;text-align:center;padding:2px 0}
.cal-cell{border:1px solid #dce5dc;border-radius:8px;min-height:66px;padding:4px;font-size:12px;background:white;cursor:pointer;text-align:left;color:#173c37}
.cal-cell:hover{background:#eef4ef}.cal-cell.other{background:#f4f7f4;color:#9db3a7}.cal-cell.today{border-color:#1d5b4c;border-width:2px}
.cal-chip{display:block;background:#e0eee1;border-radius:5px;padding:1px 5px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.cal-chip.pending{background:#fff4db}
.cal-dayrow{border-top:1px solid #dbe5df;padding:10px 0;font-size:14px}.cal-dayrow:first-of-type{border-top:0}
.cal-holiday{color:#a34d3f;font-size:11px}
/* 아기자기한 일본 거리 테마 */
body{background:#f6f1e7}
header{position:relative;display:flex;border:1px solid #e7dbc6;border-radius:20px;overflow:hidden;background:#efe6d4 url('/ui/hero.jpg') center/cover no-repeat;min-height:170px;align-items:flex-end;padding:20px;margin:28px auto 0;box-shadow:0 6px 18px rgba(90,70,40,.12)}
header::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(246,241,231,0) 30%,rgba(246,241,231,.55) 100%)}
header>div{position:relative;background:rgba(255,252,246,.88);border:1px solid #eadfc8;border-radius:14px;padding:10px 16px;box-shadow:0 2px 8px rgba(90,70,40,.10)}
header #logout{position:relative;background:rgba(255,252,246,.92)}
h2::before{content:'❀ ';color:#d1908f}
section{border:1px solid #eadfc8;border-radius:18px;box-shadow:0 3px 10px rgba(90,70,40,.06)}
.notice{border-radius:14px;border:1px solid #eedfae}
button{border-radius:999px}
input,select,textarea{border-radius:12px;background:#fffdf8}
.cal-cell{border-radius:10px}
.cal-chip{background:#dcecdf}
.cal-chip.pending{background:#fbe3c8}
.badge{border-radius:999px}
@media(max-width:420px){header{min-height:130px}}
footer{text-align:center;padding:8px 0 18px}footer small{font-size:11px;opacity:.75}
