@import"https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Gowun+Dodum&family=Nanum+Gothic:wght@400;700&family=Noto+Sans+KR:wght@400;500;700&display=swap";:root{font-family:Noto Sans KR,sans-serif;color:#12221b;background:radial-gradient(circle at top left,#ffe6bf,#f8f4eb 45%,#e2f2dc)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(165deg,#f8f2e8,#def1d9)}#root{min-height:100vh}.app-shell{max-width:430px;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 14px max(30px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.hero{background:linear-gradient(145deg,#1f4f3d,#2a8c57);color:#f6f2e8;border-radius:20px;padding:18px;box-shadow:0 12px 24px #14322833}.hero h1{margin:0;font-family:Black Han Sans,sans-serif;font-weight:400;letter-spacing:.02em}.hero p{margin:8px 0 0;font-size:.95rem;line-height:1.45}.hero.compact{display:flex;align-items:center;justify-content:space-between;gap:10px}.compact-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.card{background:#ffffffeb;border-radius:18px;padding:16px;box-shadow:0 6px 20px #1a352614;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card h2{margin:0 0 8px;font-size:1.05rem}.stack{display:flex;flex-direction:column;gap:10px}label span{display:block;font-size:.85rem;margin-bottom:6px;color:#2d4439}.locale-picker{display:flex;flex-direction:column;gap:6px}.locale-picker span{margin-bottom:0;font-size:.78rem;color:#365144}.locale-picker select{min-width:170px;padding:9px 10px;font-size:.85rem}.locale-picker-inline{align-self:flex-end;width:min(220px,100%)}input{width:100%;border:1px solid #d4dfd4;border-radius:12px;padding:12px;font-size:.98rem;background:#fff}textarea{width:100%;min-height:88px;border:1px solid #d4dfd4;border-radius:12px;padding:12px;font-size:1rem;font-family:inherit;background:#fff;resize:vertical}select{width:100%;border:1px solid #d4dfd4;border-radius:12px;padding:12px;font-size:.95rem;background:#fff;color:#12221b}input[type=checkbox]{width:18px;height:18px;border-radius:6px;padding:0}button{border:none;border-radius:12px;padding:11px 14px;font-size:.95rem;font-weight:700;background:#2a8c57;color:#fff}button.alt{background:#e8efe8;color:#214033}button:disabled{opacity:.55}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.notice{margin:10px 0 0;padding:10px 12px;border-radius:12px;font-size:.9rem}.notice.ok{background:#def7e8;color:#14442d}.notice.error{background:#ffe2e2;color:#642323}.notice.info{background:#e4eefc;color:#1a3963}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metrics article,.metric-button{background:#f2f7ef;border-radius:14px;padding:10px;display:flex;flex-direction:column;min-width:0}.metric-button{border:1px solid #d9e5da;text-align:left;color:#12221b;cursor:pointer}.metrics strong,.metric-button strong{font-size:1.5rem}.metrics span,.metric-button span{color:#45584d;font-size:.85rem}.metric-button:hover{background:#edf5ec;border-color:#bfd5c4}.billing-meta-grid{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}.billing-meta{background:#f2f7ef;border:1px solid #d9e5da;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px}.billing-meta span{color:#5b6d63;font-size:.8rem}.billing-meta strong{color:#1e3a2c;font-size:1rem}.billing-meta small{color:#5b6d63;font-size:.82rem}.subtle{color:#4c5f55;font-size:.9rem;margin:0 0 10px}.guide-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:#2f483d;font-size:.9rem}.qr-box{margin-top:12px;background:#f7f3e9;border-radius:14px;padding:12px;text-align:center}.qr-box-empty{display:flex;align-items:center;justify-content:center;min-height:120px}.current-team-qr-panel{border:1px solid #d9e5da;border-radius:14px;padding:12px;background:#f8fbf7}.current-team-qr-panel h3{margin:0;font-size:.98rem}.qr-box img{width:min(74vw,250px);height:auto;border-radius:10px}.qr-box code{display:block;margin-top:8px;padding:8px 10px;border-radius:10px;background:#edf3ea;color:#1b3a2d;font-size:.75rem;line-height:1.35;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;max-width:100%;max-height:7.2em;overflow-y:auto;text-align:left;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.qr-actions{margin-top:10px;display:flex;justify-content:center}.qr-style-panel{border:1px solid #d9e5da;border-radius:14px;padding:12px;background:#f5faf4}.qr-style-panel h3{margin:0 0 6px;font-size:.95rem;color:#234236}.subtle.qr-style-policy{margin-bottom:8px}.qr-style-grid{display:grid;gap:8px;grid-template-columns:1fr}.qr-style-chip{text-align:left;border:1px solid #d6e4d7;border-radius:12px;background:#fff;color:#1f3b2f;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.qr-style-chip strong{font-size:.92rem}.qr-style-chip span{font-size:.78rem;color:#4d6559}.qr-style-chip.selected{background:#2a8c57;border-color:#2a8c57;color:#fff}.qr-style-chip.selected span{color:#ffffffdb}.qr-style-chip.locked{background:#f8fbf7;border-style:dashed;color:#4c6357}.qr-style-chip.locked span{color:#6c8177}.qr-style-selected-preview{margin-top:10px;border:1px solid #dbe7dc;border-radius:12px;background:#f8fcf6;padding:10px}.subtle.qr-style-selected-preview-title{margin-bottom:8px}.qr-style-selected-preview-box{border:1px solid #dbe7dc;border-radius:10px;background:#f1f6ef;min-height:240px;display:flex;align-items:center;justify-content:center;padding:12px}.qr-style-selected-preview-box img{width:min(100%,228px);height:auto;object-fit:contain;border-radius:10px;background:#fff}.qr-style-selected-preview-placeholder{font-size:.8rem;color:#5d7267;font-weight:600}.qr-logo-label-field{margin-top:10px}.qr-logo-label-field input{max-width:140px}.qr-style-applied{margin-top:8px;margin-bottom:0}.custom-group-details{margin-top:10px;border:1px solid #d7e3d6;border-radius:12px;background:#f9fcf8;padding:8px 10px}.custom-group-details summary{cursor:pointer;font-weight:700;color:#224034;margin-bottom:8px}.custom-group-details[open] summary{margin-bottom:10px}.qr-color-grid{display:grid;grid-template-columns:1fr;gap:8px}.color-picker-field{display:flex;flex-direction:column;gap:6px}.color-picker-field span{font-size:.84rem;color:#2b483c}.color-input-wrap{display:flex;align-items:center;gap:8px}.color-input-wrap input[type=color]{width:46px;height:34px;border-radius:10px;border:1px solid #d4dfd4;padding:0;background:#fff}.color-input-wrap code{padding:4px 8px;border-radius:8px;background:#edf3ea;color:#244338;font-size:.78rem}.custom-icon-preview{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #dbe7dc;border-radius:12px;background:#fff}.custom-icon-preview img{width:42px;height:42px;object-fit:contain;border-radius:10px;border:1px solid #d7e3d6;background:#fff}.custom-icon-preview .subtle{margin:0;flex:1}.scanner-region{margin-top:12px;border-radius:14px;overflow:hidden;background:#14251e}.manual-scan{margin-top:12px;display:flex;flex-direction:column;gap:8px}.camera-capture-input{display:none}.picker-trigger{width:100%;text-align:left;background:#fff;color:#1c342a;border:1px solid #d4dfd4;font-weight:500;position:relative;padding-right:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-trigger:after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#436254}.team-assignment-trigger{display:block}.status-line{margin:10px 0;font-size:.9rem}.menu-trigger{white-space:nowrap;padding:9px 12px;font-size:.85rem}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#101a1559;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:90}.drawer-overlay.open{opacity:1;pointer-events:auto}.side-drawer{position:fixed;top:0;left:0;height:100vh;width:min(33vw,320px);min-width:240px;background:#f7f6f0;border-right:1px solid #d6e2d3;box-shadow:0 14px 30px #0f201833;padding:14px;display:flex;flex-direction:column;gap:10px;transform:translate(-100%);transition:transform .2s ease;z-index:100}.side-drawer.open{transform:translate(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer-head h3{margin:0;font-size:1rem}.drawer-user{background:#e8efe8;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px}.drawer-user strong{font-size:.95rem}.drawer-user span{color:#3d5247;font-size:.85rem}.drawer-field{margin-top:2px}.drawer-nav{display:flex;flex-direction:column;gap:6px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row span{margin:0}.workspace-meta{margin-top:8px;display:flex;flex-direction:column;gap:6px}.workspace-meta p{margin:0;font-size:.9rem}.personal-status-banner{margin-top:10px;display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:14px;border:1px solid #d9e5da;background:#f5faf4}.personal-status-dot{width:10px;height:10px;margin-top:4px;border-radius:999px;background:#6b7f75;flex:0 0 auto}.personal-status-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.personal-status-label{font-size:.76rem;font-weight:700;letter-spacing:.02em;color:#587062}.personal-status-copy strong{font-size:.96rem;line-height:1.25;color:#20382d}.personal-status-copy span:last-child{font-size:.82rem;line-height:1.35;color:#4a6155}.personal-status-banner.working{background:#edf8f1;border-color:#b8dec3}.personal-status-banner.working .personal-status-dot{background:#2a8c57}.personal-status-banner.done{background:#f3f6f2;border-color:#d6e0d4}.personal-status-banner.done .personal-status-dot{background:#6f7d74}.personal-status-banner.idle{background:#f8f6ef;border-color:#e2ddd0}.personal-status-banner.idle .personal-status-dot{background:#b59451}.personal-status-banner.warning{background:#fff4eb;border-color:#efceae}.personal-status-banner.warning .personal-status-dot{background:#cf6b2b}.location-results{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow-y:auto}.location-item{text-align:left;background:#f3f7f2;color:#294235;border:1px solid #d5e3d5;border-radius:10px;font-size:.86rem;padding:8px 10px}.location-item.selected{background:#2a8c57;color:#fff;border-color:#2a8c57}.list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.filters-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:10px}.filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}.filter-field span{margin-bottom:0}.filter-field>input,.filter-field>select{min-width:0}.filter-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-bottom:10px}.filter-toolbar button{width:100%}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.work-table{width:100%;min-width:520px;border-collapse:collapse;font-size:.88rem;color:#2c463a}.work-table th,.work-table td{padding:8px 6px;border-bottom:1px solid #d9e5da;text-align:left}.work-table th{font-size:.8rem;color:#4b6055;font-weight:700;background:#f4f8f2;position:sticky;top:0}.work-table th:not(:first-child),.work-table td:not(:first-child){text-align:center;white-space:nowrap}.empty-cell,.empty-text{text-align:center;color:#5c6f66}.daily-group{margin-top:12px;background:#f8fbf7;border:1px solid #e0ebe1;border-radius:14px;padding:10px}.daily-group h3{margin:0 0 8px;font-size:.95rem;color:#254636}.manual-admin-box{margin-top:8px;margin-bottom:12px;padding:10px;border-radius:12px;border:1px solid #d9e5da;background:#f5faf4;overflow:hidden}.manual-admin-box h3{margin:0 0 8px;font-size:.92rem;color:#2a4839}.manual-admin-box .manual-member-select{color:#173126;background:#fff;-webkit-text-fill-color:#173126;border:1px solid #d4dfd4}.manual-admin-box .manual-member-select option{color:#173126;background:#fff}.manual-admin-box .manual-member-select:disabled{color:#5c6f66;-webkit-text-fill-color:#5c6f66}.manual-admin-grid .filter-field:first-child{grid-column:auto}.filters-grid.manual-admin-grid{grid-template-columns:1fr}.location-query-input{text-overflow:ellipsis}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSheetUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1a1473;display:flex;align-items:center;justify-content:center;z-index:220;padding:14px;animation:modalFadeIn .18s ease-out}.modal-sheet{width:100%;max-width:420px;max-height:min(72vh,560px);background:#f7f8f3;border:1px solid #d8e4d7;border-radius:16px;box-shadow:0 18px 35px #122a1f47;padding:12px;display:flex;flex-direction:column;gap:10px;animation:modalSheetUp .22s ease-out}.modal-handle{width:36px;height:4px;border-radius:999px;background:#d1dfd4;margin:0 auto 2px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-head h3{margin:0;font-size:1rem;color:#203a2f}.modal-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.modal-option{width:100%;text-align:left;border:1px solid #d4e2d4;border-radius:12px;background:#fff;color:#213a30;font-weight:600}.team-assignment-option{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-option.selected{background:#2a8c57;border-color:#2a8c57;color:#fff}.working-now-list{gap:8px}.working-now-item{border:1px solid #d8e4d7;border-radius:13px;background:#f8fbf7;padding:12px}.working-now-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.working-now-copy strong{color:#1f3a2d;font-size:.95rem;overflow-wrap:anywhere}.working-now-copy span{color:#54695d;font-size:.82rem;line-height:1.45}.working-now-empty{margin:0;padding:12px 4px 2px}.account-delete-modal{max-width:460px;max-height:min(84vh,700px);gap:14px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.account-delete-final-modal{max-width:392px;gap:12px}.account-delete-hero{display:flex;align-items:flex-start;gap:12px;padding:4px 2px 0}.account-delete-hero.compact{padding-top:2px}.account-delete-badge{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:linear-gradient(180deg,#ffe6dd,#ffd6c8);color:#8e2f23;font-size:1.1rem;font-weight:800;box-shadow:inset 0 1px #fff9}.account-delete-copy{min-width:0}.account-delete-copy h3{margin:0;font-size:1.08rem;color:#203a2f}.account-delete-copy p{margin:6px 0 0;font-size:.88rem;line-height:1.5;color:#50675b}.account-delete-state{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:14px;border:1px solid #d8e4d7;background:#f3f8f2}.account-delete-state strong{color:#223b30;font-size:.92rem}.account-delete-state span{color:#587063;font-size:.84rem;line-height:1.45}.account-delete-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.account-delete-stat{min-width:0;padding:12px;border-radius:14px;border:1px solid #d8e4d7;background:linear-gradient(180deg,#fbfcf8,#f2f6ef);display:flex;flex-direction:column;gap:6px}.account-delete-stat span{font-size:.74rem;line-height:1.35;color:#64796f;font-weight:700}.account-delete-stat strong{font-size:1.2rem;line-height:1;color:#213a2f}.account-delete-stat.danger{border-color:#efceae;background:linear-gradient(180deg,#fff6ef,#fff0e5)}.account-delete-stat.danger span,.account-delete-stat.danger strong{color:#8c4424}.account-delete-note-list{display:flex;flex-direction:column;gap:8px}.account-delete-note{padding:12px 13px;border-radius:14px;border:1px solid #d9e4d8;background:#f6faf5}.account-delete-note strong{display:block;margin-bottom:4px;font-size:.85rem;color:#244235}.account-delete-note p{margin:0;font-size:.83rem;line-height:1.5;color:#546c60}.account-delete-note.danger{border-color:#efceae;background:#fff4eb}.account-delete-note.danger strong,.account-delete-note.danger p{color:#864423}.account-delete-confirm{display:flex;flex-direction:column;gap:12px;padding:12px;border-radius:14px;border:1px solid #d8e4d7;background:#fbfcf8}.account-delete-confirm-field{display:flex;flex-direction:column;gap:8px}.account-delete-confirm span{font-size:.82rem;line-height:1.45;color:#546c60}.account-delete-confirm strong{display:inline-flex;align-self:flex-start;max-width:100%;padding:5px 9px;border-radius:999px;background:#eef3ec;color:#264437;font-size:.8rem;font-weight:700;overflow-wrap:anywhere}.account-delete-confirm input{margin-top:2px}.account-delete-confirm-note{margin:0;padding:0 2px;color:#556b60;font-size:.8rem;line-height:1.45}.account-delete-confirm-note.ready{color:#244035}.account-delete-confirm-note.danger{color:#8b4727}.account-delete-actions{display:flex;flex-direction:column-reverse;gap:10px;margin-top:2px}.account-delete-actions button{width:100%;min-height:48px;border-radius:14px;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.account-delete-actions button.alt{background:#edf3ec;color:#244035;border:1px solid #d7e4d6;box-shadow:inset 0 1px #ffffffb8}.account-delete-actions button.danger{background:transparent;color:#a34343;border:1px solid #d79d9d;box-shadow:inset 0 1px #ffffff80}@media (hover: hover){.account-delete-actions button.alt:hover:not(:disabled){background:#e3ede2;border-color:#c9dbc8}.account-delete-actions button.danger:hover:not(:disabled){background:#b54a4a;color:#fff7f7;border-color:#b54a4a;box-shadow:0 10px 22px #b54a4a2e}}.account-delete-actions button:active:not(:disabled){transform:translateY(1px)}button.danger{background:#b43a3a;border-color:#b43a3a}@media (hover: hover){button.danger:hover:not(:disabled){background:#982e2e;border-color:#982e2e}}@media (max-width: 640px){.modal-overlay{align-items:flex-end;padding:0}.modal-sheet{max-width:none;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:max(16px,env(safe-area-inset-bottom))}.account-delete-summary{grid-template-columns:1fr}.account-delete-modal{max-height:min(92dvh,860px)}}@media (min-width: 600px){.account-delete-actions{flex-direction:row;justify-content:flex-end;gap:12px}.account-delete-actions button{width:auto;min-width:118px;padding-inline:18px}}@media (min-width: 431px){body{padding:16px}.app-shell{border-radius:24px}}@media (min-width: 390px){.billing-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.qr-style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-grid.manual-admin-grid{grid-template-columns:1fr}.qr-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-toolbar{flex-direction:row;align-items:flex-end}.filter-toolbar .filter-field{flex:1}.filter-toolbar button{width:auto;white-space:nowrap}}@media (max-width: 640px){.work-table{min-width:0;table-layout:fixed;font-size:.82rem}.work-table th,.work-table td{padding:7px 4px;overflow-wrap:anywhere;word-break:keep-all}.work-table th:not(:first-child),.work-table td:not(:first-child){white-space:normal}.work-table-members th:nth-child(2),.work-table-members td:nth-child(2){text-align:left}.work-table-daily td:last-child{min-width:72px}.work-table-daily td:last-child button{width:100%;padding:7px 6px;font-size:.8rem}.qr-style-grid{grid-template-columns:1fr}}html[dir=rtl] .app-shell{direction:rtl}html[dir=rtl] .hero.compact,html[dir=rtl] .drawer-head{flex-direction:row-reverse}
