@font-face{font-family:Paperlogy;font-weight:400;font-display:swap;src:url(/static/fonts/Paperlogy-4Regular.woff2) format("woff2")}
@font-face{font-family:Paperlogy;font-weight:500;font-display:swap;src:url(/static/fonts/Paperlogy-5Medium.woff2) format("woff2")}
@font-face{font-family:Paperlogy;font-weight:700;font-display:swap;src:url(/static/fonts/Paperlogy-7Bold.woff2) format("woff2")}
:root{--bg:#fff;--fg:#2a2d33;--ink:#2f333a;--mut:#8f939a;--line:#ebecee;--soft:#f5f6f7;--ac:#2b6cb0;--ac-soft:#eaf1fa;--nav:60px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Paperlogy,-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:var(--fg);background:var(--bg);font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
.wrap{max-width:640px;margin:0 auto;padding:20px 20px calc(var(--nav) + 40px)}
h1{font-size:26px;margin:12px 0 24px;font-weight:700;letter-spacing:-.02em}
h2{font-size:12px;color:var(--mut);margin:40px 0 14px;font-weight:500;letter-spacing:.08em;display:flex;align-items:center;gap:10px}
h2:after{content:"";flex:1;height:1px;background:var(--line)}
/* header */
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}
.top .brand svg{height:22px;width:104px;display:block;color:#111}
.top .me{font-size:13px;color:var(--mut)}
.top .links{display:none;gap:22px;font-size:14px;font-weight:500}
.tabs{position:fixed;left:0;right:0;bottom:0;height:var(--nav);display:flex;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:#aaa;gap:3px;position:relative}
.tabs a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tabs a.on{color:var(--ink);font-weight:700}
.tabs a.on:before{content:"";position:absolute;top:0;width:24px;height:2px;background:var(--ac)}
@media(min-width:768px){.tabs{display:none}.top{padding:20px 28px}.top .links{display:flex}.top .links a{color:var(--mut)}.top .links a.on{color:var(--fg);font-weight:700}.wrap{padding:40px 24px 72px}}
/* cards */
.card{border:0;border-radius:18px;padding:4px 0;margin-bottom:8px;background:var(--bg)}
.card.box{border:1px solid var(--line);padding:20px}
.hero{background:var(--ink);color:#fff;border:0;position:relative;overflow:hidden;padding:28px 24px;margin-bottom:20px}
.hero .mark{position:absolute;right:-6px;top:-10px;width:120px;height:156px;opacity:.12;color:#fff;pointer-events:none}.hero .mark svg{width:120px;height:156px;display:block}
.hero .mut{color:rgba(255,255,255,.55)}
.hero .big{font-size:38px;margin-top:6px}
.hero .btn{background:var(--ac);color:#fff;border-color:var(--ac)}
.hero .btn.sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.hero .btn:disabled{opacity:.25}
.hero .err{border-color:rgba(255,255,255,.4);color:#fff}
.hero .dot{background:#6fa3e6}.hero .dot.off{background:rgba(255,255,255,.3)}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mut{color:var(--mut);font-size:13px}
.big{font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:12px;padding:12px 18px;font-size:15px;font-weight:700;cursor:pointer;min-height:46px;font-family:inherit;transition:transform .08s,opacity .15s}
.btn:active{transform:scale(.98)}
.btn.sec{background:#fff;color:var(--fg)}
.btn.sm{padding:6px 12px;font-size:13px;min-height:34px;border-radius:9px;font-weight:500}
.btn:disabled{opacity:.3;cursor:default}
.btn.full{width:100%}
.clock{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.clock .btn{min-height:66px;font-size:18px;border-radius:14px}
/* lists */
.list{margin:0;padding:0;list-style:none}
.list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}.list li:first-child{padding-top:2px}
.list .t{font-weight:500}.list .s{font-size:13px;color:var(--mut)}
.who{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.av{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:-.02em;font-weight:700;flex:none}
.av.lite{background:var(--ac-soft);color:var(--ac)}
.tag{display:inline-block;font-size:11px;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--mut);white-space:nowrap;font-weight:500}
.tag.approved{border-color:var(--fg);color:var(--fg)}.tag.pending{background:var(--ac);color:#fff;border-color:var(--ac)}.tag.rejected,.tag.canceled{text-decoration:line-through;color:#bbb}
/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 20px}
.stats div{border-radius:16px;padding:18px 8px;text-align:center;background:var(--soft)}
.stats b{display:block;font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.1}.stats span{font-size:11px;color:var(--mut);display:block;margin-top:6px}
.stats div:first-child{background:var(--ac-soft)}.stats div:first-child b{color:var(--ac)}
/* forms */
form label{display:block;font-size:12px;color:var(--mut);margin:14px 0 5px;letter-spacing:.02em}
input,select,textarea{width:100%;font:inherit;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--fg);min-height:46px}
input:focus,select:focus{outline:none;border-color:var(--fg)}
select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.err{border:1px solid var(--fg);border-radius:12px;padding:10px 12px;font-size:13px;margin:12px 0}
.msg{background:var(--ac);color:#fff;border-radius:12px;padding:11px 14px;font-size:14px;margin-bottom:12px}
.msg.error{background:#fff;color:var(--fg);border:1px solid var(--fg)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filters select{width:auto;min-height:36px;padding:6px 32px 6px 12px;font-size:13px;border-radius:9px}
.filters a{font-size:13px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;font-weight:500}.filters a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters{margin-bottom:20px}
/* calendar */
.cal{width:100%;border-collapse:collapse;table-layout:fixed}
.cal th{font-size:11px;color:var(--mut);font-weight:500;padding:6px 0}
.cal th:first-child,.cal td:first-child .d{color:#b5b5b5}
.cal td{vertical-align:top;border-top:1px solid var(--line);padding:6px 2px;height:72px;font-size:11px}
.cal td.out{opacity:.3}.cal td.today .d{background:var(--ac);color:#fff;border-radius:50%}
.cal .d{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;font-size:12px;font-weight:500}
.cal .hol .d{color:#999}
.cal .ev{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--ac-soft);color:var(--ac);border-radius:5px;padding:1px 4px;margin-top:3px;font-weight:500}
.cal .ev.pending{background:none;color:var(--ac);border:1px dashed var(--ac)}
.cal .ev.mut{background:none;color:var(--mut);padding-left:0}
.cal .ev .ty{display:none}@media(min-width:768px){.cal .ev .ty{display:inline}}
.monthnav{display:flex;align-items:center;justify-content:space-between;margin:8px 0 20px}
.monthnav b{font-size:20px;letter-spacing:-.02em}
/* table */
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--mut);font-weight:500;padding:8px 4px;border-bottom:1px solid var(--line);font-size:12px}
.tbl td{padding:11px 4px;border-bottom:1px solid var(--line)}.tbl td.nw{white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.wk td{color:#c0c0c0}.tbl td.r{text-align:right}
/* login */
.login-page{min-height:100vh;display:flex;flex-direction:column;background:var(--ink)}
.login-hero{flex:1;display:flex;align-items:center;justify-content:center;color:#fff;padding:40px 24px}
.login-hero svg{height:30px;width:142px;display:block;margin:0 auto}
.login-hero .sub{font-size:12px;letter-spacing:.3em;color:rgba(255,255,255,.5);margin-top:12px;text-align:center}
.login{background:#fff;border-radius:28px 28px 0 0;padding:32px 28px calc(32px + env(safe-area-inset-bottom))}
@media(min-width:768px){.login-page{justify-content:center;align-items:center}.login-hero{flex:none}.login{width:380px;border-radius:24px;margin-bottom:60px}}
.actions{display:flex;gap:8px;margin-top:16px}
.actions form{flex:1}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ac);margin-right:6px}

.dot.off{background:#ccc}

.sep{display:inline-block;width:1px;height:.75em;background:currentColor;opacity:.25;margin:0 .55em;vertical-align:-.05em}
.hero .sep{opacity:.35}
