@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans KR',system-ui,sans-serif;color:#483a25;background:#fffbf2;font-synthesis:none;--primary:#97630d;--line:#f4f1e9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #efeae0;background:white;color:inherit;border-radius:10px;padding:10px 16px;min-height:44px;font-size:13px;font-weight:600}button:hover{background:#fdf9f0}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #ffdf93;outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:27px;letter-spacing:-1px}h2{font-size:22px;letter-spacing:-.7px}h3{font-size:15px}p{color:#897853;line-height:1.8}small,.muted{color:#8c7d5f}img{display:block}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:800;letter-spacing:-1px}.brand img{width:36px;height:36px}.brand span{font-size:10px;letter-spacing:3px;margin-left:8px;color:#bcb197}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#aca187;display:block;margin-bottom:8px}.primary{background:var(--primary);color:white;border-color:var(--primary)}.primary:hover{background:#e8b62f}.wide{width:100%}.icon{font-size:22px;padding:4px 12px}.notice{padding:15px;border-radius:12px;background:#fff4d9;color:#886321;font-size:13px;margin:14px 0;line-height:1.8}.fine{font-size:12px;margin-top:25px}label{font-size:13px;font-weight:600;display:block;margin:18px 0}input,select{display:block;width:100%;border:1px solid #efeadf;border-radius:10px;padding:12px;color:#483a25;background:white;margin-top:8px;min-height:46px}input[type=checkbox]{display:inline;width:18px;min-height:18px;margin:0 8px 0 0;vertical-align:middle}input[type=color]{padding:4px}.auth{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.intro{padding:55px 12%;background:#fff0c4;display:flex;flex-direction:column;justify-content:space-between;gap:40px}.intro h1{font-size:49px;line-height:1.4;letter-spacing:-2px;color:#61441d;margin:18px 0}.intro p{font-size:15px}.intro>small{font-size:11px}.mini{margin-top:32px;background:white;border:1px solid #f0dfb1;box-shadow:0 15px 50px #ac935912;border-radius:18px;padding:20px;max-width:370px;transform:rotate(-2deg)}.mini>span{font-size:12px;color:#a69a7f}.mini b{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:12px 0;border-bottom:1px solid #f8f6f1}.mini em{font-style:normal;font-size:12px;border-radius:7px;background:#fff0c4;color:#97630d;padding:8px}.mini small{font-size:10px;display:block;margin-top:12px}.authcard{align-self:center;width:100%;max-width:430px;padding:35px;justify-self:center}.authcard h2{margin:15px 0 8px}.authcard>p{font-size:13px}.authcard form{margin-top:30px}.authlinks{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:16px}.authlinks button{border:0;font-size:11px;padding:6px;color:#a09477}.authcard .primary{margin-top:12px}aside{width:212px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column;z-index:10}.aside-label{font-size:9px;letter-spacing:2px;color:#bab2a0;margin:48px 14px 14px}aside nav{display:grid;gap:7px}aside nav button{border:0;text-align:left;background:transparent;display:flex;gap:13px;padding:14px;font-size:17px;color:#b1a996}aside nav button span{font-size:13px}aside nav button.active{color:var(--primary);background:#fff0bf}.aside-bottom{margin-top:auto;padding:15px 12px;border-top:1px solid var(--line)}.aside-bottom b,.aside-bottom small{display:block;font-size:12px;margin-bottom:8px}.aside-bottom button{border:0;font-size:11px;padding:5px 0;color:#aaa08a}main{margin-left:212px;max-width:1800px;padding:32px 38px}header{display:flex;justify-content:space-between;align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:30px}.header-right{display:flex;align-items:center;gap:10px}.connection{font-size:11px;color:#a2977c}.connection.live{color:#269977}.connection.live:before{content:'●';font-size:8px;margin-right:6px}.sectiontop{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 25px}.sectiontop p{font-size:12px;margin-top:7px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.stat{border:1px solid var(--line);background:white;border-radius:16px;padding:20px 23px}.stat small{font-size:12px}.stat strong{display:block;font-size:27px;font-weight:700;margin-top:10px;letter-spacing:-1px}.stat strong em{font-size:12px;font-weight:500;font-style:normal;margin-left:5px;color:#b4aa92}.stat:first-child{background:#fff3ce;border-color:#f5e4af}.stat:first-child strong{color:#97630d}.panel{border:1px solid var(--line);border-radius:16px;background:white;overflow:hidden}.toolbar{display:flex;justify-content:space-between;gap:16px;padding:20px;align-items:center;flex-wrap:wrap}.period{display:flex;gap:8px;align-items:center}.period strong{font-size:17px;margin:0 10px;white-space:nowrap}.switch{display:flex;background:#f8f6f1;padding:4px;border-radius:10px}.switch button{border:0;background:transparent;min-height:34px;padding:6px 15px;color:#aaa18c}.switch button.active{background:white;box-shadow:0 2px 5px #5546220a;color:#5d5136}.actions{display:flex;gap:8px;align-items:center}.scroll{overflow:auto;max-height:70vh}.schedule{border-collapse:separate;border-spacing:0;width:100%;min-width:940px;table-layout:fixed}.schedule th,.schedule td{border-top:1px solid var(--line);border-right:1px solid var(--line);padding:10px;vertical-align:top}.schedule th{font-weight:500;text-align:center;font-size:11px;color:#b5ad9a;background:#fdfcfa;height:66px;position:sticky;top:0;z-index:2}.schedule th b{display:block;font-size:17px;color:#766b51;margin-top:4px}.schedule th.today b{background:var(--primary);color:white;border-radius:50%;width:29px;height:29px;line-height:29px;margin:4px auto 0}.schedule th:first-child,.schedule td:first-child{position:sticky;left:0;background:white;width:150px;z-index:1;box-shadow:3px 0 5px #55462203}.schedule th:first-child{z-index:3;background:#fdfcfa}.schedule td{height:105px}.employee{display:flex;align-items:center;gap:9px;margin-top:14px}.avatar{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:12px;width:34px;height:34px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--c) 12%,white);color:var(--c)}.employee strong{font-size:12px;display:block}.employee small{font-size:10px;display:block;margin-top:4px}.shift{width:100%;text-align:left;border:0;border-left:3px solid var(--c);border-radius:6px;background:color-mix(in srgb,var(--c) 10%,white);padding:9px 7px;margin:3px 0;color:var(--c);min-height:48px;display:block}.shift b{font-size:11px;letter-spacing:-.3px;display:block;white-space:nowrap}.shift small{display:block;font-size:10px;margin-top:5px;color:inherit;opacity:.7}.addcell{border:1px dashed #f2ede1;color:#d1c9b5;width:100%;background:transparent;padding:4px;min-height:30px;margin-top:4px;opacity:.4}.addcell:hover{opacity:1}.legend{padding:16px 20px;font-size:11px;color:#b4ac98;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calhead{padding:12px;text-align:center;font-size:11px;background:#fdfcfa;color:#afa48c}.calday{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:125px;padding:9px;cursor:pointer}.calday:hover{background:#fffdf9}.calday.dim{opacity:.35}.calday.today .daynum{background:var(--primary);color:white}.daynum{font-size:12px;display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:50%;margin-bottom:5px}.calshift{font-size:10px;background:color-mix(in srgb,var(--c) 10%,white);color:var(--c);padding:4px;border-radius:4px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.staffcard{padding:23px}.staffcard .employee{margin:0 0 20px}.staffcard .employee strong{font-size:15px}.staffcard p{font-size:12px}.staffcard button{margin-top:20px;width:100%}.empty{text-align:center;padding:65px 20px;color:#b5ab95;font-size:13px;line-height:1.8}.paytable{border-collapse:collapse;width:100%;min-width:650px;font-size:13px}.paytable th,.paytable td{text-align:left;border-bottom:1px solid var(--line);padding:17px 20px}.paytable th{font-size:11px;color:#aaa08a;background:#fdfcfa}.paytable td:last-child{font-weight:700;color:var(--primary)}.historyitem{padding:20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center}.historyitem p{font-size:12px;color:#9c9177}.historyitem small{display:block;font-size:10px;margin-top:6px}.settings{padding:25px;max-width:650px}.settings button{margin-top:10px}footer{display:flex;justify-content:space-between;font-size:10px;color:#bcb4a0;margin:25px 0}dialog{border:0;border-radius:20px;padding:26px;width:440px;max-width:calc(100% - 24px);box-shadow:0 20px 90px #52442430;max-height:90dvh;overflow:auto}dialog::backdrop{background:#3b301866;backdrop-filter:blur(3px)}.dialoghead,.dialogfoot{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialoghead h2{font-size:19px}.dialoghead button{border:0}.dialogfoot{margin-top:24px}.dialogfoot .primary{margin-left:auto;min-width:135px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:15px}.error{color:#d65365;font-size:12px;line-height:1.7;margin-top:10px}.danger{color:#ce586c;border-color:#f3d5dc}.daylist{margin:14px 0}.daylist button{margin:7px 0}.mobile-nav{display:none}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#4b4025;color:white;padding:14px 23px;border-radius:12px;z-index:100;font-size:13px;box-shadow:0 8px 35px #45381a2a;display:none;max-width:90vw} [hidden]{display:none!important}
@media(min-width:1500px){main{padding:40px 60px}.schedule td{height:120px}}
@media(max-width:1000px){aside{width:175px;padding:28px 14px}main{margin-left:175px;padding:25px 22px}.toolbar{padding:15px}.period strong{font-size:15px;margin:0 3px}.auth .intro{padding:45px 9%}.intro h1{font-size:38px}}
@media(max-width:700px){aside{display:none}main{margin-left:0;padding:22px 16px 85px}header{padding-bottom:20px;margin-bottom:24px}header h1{font-size:23px}.eyebrow{font-size:8px;letter-spacing:1.6px}.header-right{gap:6px}.connection{font-size:10px}#install{display:inline-flex;font-size:11px;padding:8px 10px}h2{font-size:21px}.sectiontop{margin-bottom:20px;align-items:flex-start}.sectiontop p{font-size:11px;max-width:210px}.sectiontop>.primary{font-size:12px;white-space:nowrap;padding:10px 13px}.stats{gap:8px;margin-bottom:20px}.stat{padding:14px 11px;border-radius:13px}.stat small{font-size:10px}.stat strong{font-size:23px}.stat strong em{font-size:9px;margin-left:3px}.panel{border-radius:13px}.toolbar{padding:12px;gap:12px}.toolbar .period{width:100%;justify-content:space-between}.period strong{font-size:15px;flex:1;text-align:center}.period button{padding:5px 12px}.toolbar>.actions{width:100%;justify-content:space-between}.toolbar>.switch{margin-left:auto}.actions button{font-size:11px}.schedule{min-width:805px}.schedule th:first-child,.schedule td:first-child{width:108px}.schedule td{padding:7px;height:100px}.employee{gap:6px}.avatar{width:27px;height:30px;font-size:11px;border-radius:9px}.employee strong{font-size:11px}.employee small{font-size:9px}.shift b{font-size:10px}.legend{font-size:9px;padding:13px;display:block}.legend span{display:block;margin-top:5px}.mobile-nav{display:flex;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:7px 8px max(7px,env(safe-area-inset-bottom));z-index:15}.mobile-nav button{border:0;background:transparent;color:#b8af9b;display:flex;flex-direction:column;align-items:center;font-size:21px;gap:3px;padding:3px 10px;min-width:54px}.mobile-nav button span{font-size:9px}.mobile-nav button.active{color:var(--primary)}footer{font-size:9px;gap:10px}footer span{font-size:8px}.calday{min-height:100px;padding:3px}.calshift{font-size:8px;padding:3px}.calhead{font-size:10px}.daynum{font-size:11px}.auth{display:block;background:white}.intro{padding:25px!important;gap:30px}.intro .brand{font-size:22px}.intro h1{font-size:29px;line-height:1.4;margin:10px 0}.intro p{font-size:12px}.intro>small,.mini{display:none}.intro>div{padding:10px 0 0}.authcard{padding:30px 25px}.authcard h2{font-size:22px}.authcard .eyebrow{display:none}.authcard form{margin-top:22px}.historyitem{padding:15px;gap:10px}.historyitem button{white-space:nowrap;font-size:11px}.historyitem p{font-size:11px}.scroll{max-height:65dvh}.addcell{opacity:.65}#toast{bottom:85px}}
.schedulefilters{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px;align-items:center}.rangeform{display:flex;align-items:end;gap:14px;padding:20px;margin-bottom:20px;flex-wrap:wrap}.rangeform label{margin:0;flex:1;min-width:130px}.rangepresets{display:flex;gap:6px;width:100%}.rangepresets button{font-size:11px;min-height:34px}.totalrow{background:#fff6db;font-weight:700}.checkgroup{display:flex;gap:8px;flex-wrap:wrap}.checkgroup label{padding:8px 10px;margin:0;background:#fcf9f2;border-radius:8px;font-size:12px}.checkgroup input{margin-right:5px}@media(max-width:700px){.rangeform{padding:14px;gap:9px}.rangeform>button{width:100%}.schedulefilters>button{font-size:10px;padding:9px}.schedulefilters .switch button{font-size:11px;padding:6px 10px}#mobilelogout{font-size:9px;padding:5px 8px;min-height:35px}}

.primary{background:#f4c747;border-color:#edbd36;color:#49360e}.primary:hover{background:#ebba2f}.schedule th.today b,.calday.today .daynum{background:#f4c747;color:#49360e}input[type=checkbox]{accent-color:#b17b10}.brand span{letter-spacing:1px}

.pendingcard{margin:12vh auto;background:white;border:1px solid var(--line);border-radius:20px}.pendingcard h2{margin:30px 0 15px}.pendingcard p{font-size:13px}.pendingcard button{margin-top:12px}.approvalpanel{margin-bottom:22px}.approvalpanel .empty{padding:25px}.approvalpanel .historyitem p{word-break:break-all}

.board-list{display:grid;gap:14px}.board-card{text-align:left;padding:24px;display:block;width:100%}.board-card:hover{background:#fffdf5;border-color:#e5cb80}.board-card h3{font-size:17px;margin:12px 0 9px;word-break:break-word}.board-card p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.board-card small{display:block;margin-top:16px;font-size:10px}.post-meta{font-size:11px;color:#8c7d5f;display:flex;gap:10px;flex-wrap:wrap}.post-title{font-size:20px;margin:22px 0 15px;overflow-wrap:anywhere}.post-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9}textarea{font:inherit;color:inherit;width:100%;display:block;margin-top:8px;padding:12px;border:1px solid #e8dfcb;border-radius:10px;resize:vertical;min-height:180px;background:white}@media(max-width:700px){.mobile-nav button{min-width:0;padding:3px 5px;flex:1}.mobile-nav button span{font-size:8px}.board-card{padding:18px}.board-card h3{font-size:16px}}

.private-status{display:block;margin:10px 0;color:#85765a}.staffcard button{margin:4px 4px 4px 0}

.board-tabs,.staff-tabs{margin:0 0 22px;display:inline-flex}.color-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:7px;vertical-align:middle;border:1px solid #0001}.anonymous-option{padding:12px;background:#fffae9;border-radius:10px}.schedulefilters .actions{flex-wrap:wrap}.post-meta{line-height:1.8}.staff-tabs button{white-space:nowrap}

.google-login{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px 0 8px;background:#fff;border:1px solid #d7d1c2}.google-login span{font:700 20px Arial;color:#4285f4}.auth-divider{text-align:center;font-size:12px;color:#8b8475;margin:18px 0}.payroll-mail{margin-top:24px}.payroll-mail .settings{padding:0;margin-bottom:20px}.payslip dl{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13px}.payslip dt{color:#777062}.payslip dd{margin:0;overflow-wrap:anywhere}.payslip table{width:100%;border-collapse:collapse;margin:16px 0;min-width:440px}.payslip td,.payslip th{padding:12px;border:1px solid #e7e0d1;text-align:left}.payslip th{background:#fff7d7}.payslip-net{padding:18px;border-radius:12px;background:#fff4c8;font-size:16px;display:flex;justify-content:space-between;gap:12px}.payslip-net strong{font-size:22px}

.header-right{flex-wrap:wrap;justify-content:flex-end}.install-link{margin:4px 0 12px;font-size:12px;background:#fff9df;border-color:#f2d77c}.install-help img{border-radius:14px}.install-help li{margin:14px 0;line-height:1.65}.install-help input{font-size:12px}.install-help>button{margin-top:12px}@media(max-width:700px){.header-right{max-width:230px}.install-help ol{padding-left:24px}.install-link{width:100%}}

.copy-month-nav{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px;gap:8px}
.copy-month-nav button{min-width:44px;min-height:44px;font-size:20px}
.copy-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.copy-calendar span{font-size:12px;padding:5px 0;color:#6d624c}
.copy-calendar button{min-width:0;min-height:44px;padding:0}
.copy-calendar button[aria-pressed="true"]{background:#f4c747;border-color:#956c0b;color:#332503;font-weight:800}
.copy-calendar button[aria-disabled="true"]{opacity:.48;cursor:default}

