:root{font-family:-apple-system,BlinkMacSystemFont,"Pretendard","Noto Sans KR",sans-serif;color:#1d2725;background:#f6f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:#19614e}.shell{max-width:950px;margin:auto;min-height:100vh;background:#fff;box-shadow:0 0 42px #121b2312;padding-bottom:80px}.top{background:#225a49;color:#fff;padding:26px 24px 21px}.top h1{font-size:22px;margin:2px 0 6px;letter-spacing:-.6px}.top p{margin:0;color:#d0e7dd;font-size:13px}.top .meta{display:flex;justify-content:space-between;align-items:center;gap:8px}.top button{border:1px solid #b8dcc8;background:transparent;color:#fff;border-radius:9px;padding:8px 10px;font-size:12px}.content{padding:22px 18px}.section{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.section h2{font-size:19px;margin:0}.panel{border:1px solid #e3e9e6;border-radius:16px;padding:17px;margin-bottom:16px;background:#fff}.panel.soft{background:#f2f8f5;border-color:#d5ebe1}.panel h3{font-size:15px;margin:0 0 14px}.panel p{line-height:1.55}.small,.hint{color:#74817b;font-size:12px;line-height:1.55}.empty{padding:25px;text-align:center;background:#f5f8f6;border-radius:12px;color:#6c7974}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat{border-radius:12px;background:#f0f6f3;padding:15px 10px}.stat b{font-size:23px;display:block}.stat span{font-size:11px;color:#647b71}.field{margin:0 0 14px}.field label,.label{display:block;font-size:12px;font-weight:650;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;background:#fff;border:1px solid #d4dfd8;border-radius:10px;padding:11px 12px;min-height:43px;color:#1d2725}.field input[type=checkbox]{width:auto;min-height:unset}.field input:focus,.field select:focus{outline:2px solid #bedfd0}.button{background:#225a49;color:white;border:0;border-radius:11px;padding:12px 16px;font-weight:650;min-height:42px}.button.gray{background:#e9efec;color:#225a49}.button.red{background:#fff1f1;color:#b43b3b}.button.sm{font-size:12px;padding:8px 10px;min-height:unset}.button:disabled{opacity:.45;cursor:not-allowed}.row{display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap}.item{display:flex;justify-content:space-between;align-items:center;gap:9px;border-bottom:1px solid #edf0ee;padding:13px 0}.item:last-child{border:0}.item strong{display:block;font-size:14px}.item .small{margin-top:3px}.pill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:700;background:#e3f3eb;color:#215642}.pill.warning{background:#fff0de;color:#9e5a1a}.pill.red{background:#ffe9e9;color:#b13b3b}.days{display:flex;gap:5px;flex-wrap:wrap}.days label{display:flex;gap:5px;align-items:center;border:1px solid #dce7df;border-radius:9px;padding:8px 10px;background:#fafdfb;font-size:12px;font-weight:600}.tabs{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(950px,100%);height:66px;display:flex;background:#fff;border-top:1px solid #e5ebe7;box-shadow:0 -4px 14px #101b2310;z-index:10}.tabs button{flex:1;border:0;background:none;color:#76827b;font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.tabs button.selected{color:#225a49;background:#f0f8f4}.tabs span{font-size:20px}.notice{border-radius:12px;padding:12px;background:#fff9ee;color:#775619;font-size:12px;line-height:1.5;margin:9px 0}.error{border-radius:12px;padding:12px;background:#fff0ef;color:#a52d2d;font-size:12px;margin:12px 0;white-space:pre-wrap}.success{border-radius:12px;padding:12px;background:#e8f6ed;color:#215f38;font-size:12px;margin:12px 0}.cardtitle{font-size:14px;font-weight:750;margin-bottom:9px}.shiftcard{border:1px solid #e4ece6;border-radius:12px;padding:12px;margin-bottom:10px}.shiftcard h4{margin:0 0 4px;font-size:14px}.staffslot{margin:4px 0;padding:8px 10px;border-radius:8px;background:#f5f8f6;font-size:12px}.staffslot.missing{background:#fff0ef;color:#ad3030;font-weight:650}.signin{max-width:460px;margin:7vh auto;padding:28px 22px}.signin h1{font-size:28px;letter-spacing:-1px}.signin .logo{display:inline-block;padding:11px 13px;background:#225a49;border-radius:14px;color:white;font-size:26px}.loading{text-align:center;margin:28vh auto;color:#566860}.spinner{width:35px;height:35px;border-radius:50%;border:4px solid #e0e9e4;border-top-color:#225a49;animation:spin 1s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}.form-actions{display:flex;gap:8px;flex-wrap:wrap}.status-row{display:flex;gap:6px;align-items:center}.selectstore{background:#f7fbf9;padding:11px 12px;border-radius:12px;border:1px solid #dcebe4;width:100%;margin-bottom:15px}.selectstore select{border:0;background:transparent;font-weight:700;font-size:14px;width:100%}.footer-note{margin:18px 0;font-size:11px;color:#82918a;line-height:1.5}@media(min-width:740px){.content{padding:26px 40px}.panel{padding:23px}.top{padding:28px 40px}.grid.columns3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:370px){.content{padding:16px 12px}.days label{padding:6px 7px}.stats{gap:5px}.stat{padding:10px 6px}.stat b{font-size:19px}}

/* v0.2 Color-coded compact roster, designed for narrow phones */
.limitmatrix{display:grid;gap:7px;margin-top:8px}.limitrow{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;padding:7px 9px;border:1px solid #e6ede9;border-radius:11px}.limitrow .daylabel{font-size:12px;font-weight:750}.limitrow select{width:100%;min-width:0;border:1px solid #dee6e1;border-radius:8px;padding:9px 7px;background:white;font-size:12px}.limitrow .small{grid-column:2;color:#a35f3c}
.poster{border:1px solid #dfebe5;border-radius:20px;padding:15px;background:#f7faf9;margin-bottom:14px;overflow:hidden}.poster-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:4px 4px 13px}.poster-title h3{margin:5px 0 3px;font-size:23px;letter-spacing:-.6px}.poster-title p{font-size:12px;color:#677a70;margin:0}.poster-kicker{font-size:10px;letter-spacing:2px;font-weight:850;color:#428772}.poster-status{flex-shrink:0;background:#fff1cf;color:#865a1a;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:800}.poster-status.confirmed{background:#def4e8;color:#1d6b4a}.poster-legend{display:flex;gap:5px;margin-bottom:12px}.poster-days{display:grid;grid-template-columns:1fr;gap:9px}.day-poster{display:grid;grid-template-columns:61px minmax(0,1fr);gap:8px;border:1px solid #e6eee9;background:#fff;border-radius:14px;padding:11px}.day-poster-title{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.day-poster-title strong{font-size:14px}.day-poster-title span{font-size:11px;color:#71847b}.shift-rows{display:flex;flex-direction:column;gap:7px;min-width:0}.shift-group{padding:9px 10px;border-radius:11px;background:#f0f8f5;border:1px solid #dceee5}.shift-group.close{background:#f6f3fb;border-color:#ebe4f7}.shift-head{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap}.shift-head strong{font-size:12px;color:#2f6955}.shift-group.close .shift-head strong{color:#66539d}.shift-head span{font-size:10px;color:#64766e}.roster-role{display:flex;align-items:flex-start;gap:7px;margin:4px 0}.role-name{width:23px;flex-shrink:0;font-size:11px;font-weight:850;margin-top:4px;color:#506058}.chip-wrap{display:flex;flex-wrap:wrap;gap:4px}.namechip{display:inline-flex;align-items:center;justify-content:center;min-height:25px;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:750;white-space:nowrap}.namechip.hall{background:#dceafa;color:#174e85}.namechip.kitchen{background:#fff0d9;color:#92530f}.namechip.missing{background:#ffe7e8;color:#b12b36}.no-shift{font-size:12px;color:#819089;padding:12px 0}.poster-foot{font-size:11px;color:#74867c;text-align:center;padding-top:13px}
@media(min-width:800px){.poster-days{grid-template-columns:1fr 1fr}.poster{padding:23px}.day-poster{grid-template-columns:72px 1fr}}
@media(max-width:390px){.day-poster{padding:8px;grid-template-columns:47px 1fr;gap:5px}.shift-group{padding:8px}.namechip{padding:5px 6px;font-size:10px}.poster{padding:10px}}

/* v0.3 Branch settings */
.top-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.store-card{border:1px solid #e2ebe6;border-radius:12px;padding:12px;margin:12px 0;background:#fafcfb}.store-card strong{font-size:14px}.store-rename-form{margin-top:12px;border-top:1px solid #e4eae6;padding-top:12px}.store-rename-form .field{margin-bottom:9px}@media(max-width:390px){.top-actions{gap:4px}.top .meta button{padding:7px 7px;font-size:11px}}

/* v0.4 authentication + staff access */
.auth-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:16px 0}.auth-modes button{border:1px solid #d4e3da;border-radius:9px;padding:10px 5px;background:#fff;color:#346454;font-size:12px}.auth-modes button.selected{background:#225a49;color:#fff;border-color:#225a49}.access-secret{border:1px solid #cfe9dc;background:#f0faf4}.secret-text{font-size:20px;font-weight:800;letter-spacing:3px;background:#fff;padding:13px;border-radius:10px;margin-bottom:12px;overflow-wrap:anywhere}
