.login-shell[hidden],main[hidden],[hidden]{display:none!important}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:18px 0 8px;padding:4px;border-radius:12px;background:#eef3f1}
.login-tabs button{min-height:42px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:700}
.login-tabs button.active{background:white;color:var(--green);box-shadow:0 3px 12px #102e2812}
.code-row{display:grid;grid-template-columns:1fr 112px;gap:8px}
.code-row button{border:1px solid #9dc8bd;border-radius:10px;background:#edf8f5;color:var(--green);font-weight:700}
.code-row button:disabled{opacity:.55}
.sms-hint{margin:6px 0 0!important;font-size:12px!important}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;padding:14px 22px;background:#f8faf9;border-bottom:1px solid var(--line)}
.filters select{padding:10px 8px;margin:0}.filters .ghost{background:white;color:var(--green)}
.result-meta{padding:11px 22px 0;color:var(--muted);font-size:12px}.ocr-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:13px}.ocr-box{position:relative;min-height:112px;margin:0;padding:18px;border:1px solid #89b8ad;background:#f1faf7;border-radius:12px;text-align:center;align-items:center;justify-content:center;overflow:hidden}.ocr-box input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;pointer-events:auto}.ocr-box b{font-size:16px;color:var(--green)}.ocr-box span{font-weight:400;color:var(--muted)}
.form-save-message{margin:0;padding:10px 26px;background:#fff}
.remember{display:flex;flex-direction:row;align-items:center;gap:9px;margin:13px 0;font-weight:400;color:var(--muted)}.remember input{width:18px;height:18px;margin:0;accent-color:var(--green)}
.login-actions{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px;color:var(--muted);font-size:14px}
.login-actions{flex-wrap:wrap}.login-divider{color:#a9b6b2}
.link-button,.back-button{border:0;background:none;color:var(--green);font-weight:800;padding:7px}
.register-head p{margin:7px 0 13px;font-size:13px;line-height:1.65}
.back-button{margin:0 0 12px -7px}
.agreement span{line-height:1.55}
.hero-actions{display:flex;align-items:center;gap:10px}
.approval-button{border:1px solid #d5b06d;border-radius:10px;background:#fff9ee;color:#845a12;padding:12px 16px;font-weight:800}
.approval-button span{display:inline-grid;min-width:22px;height:22px;margin-left:5px;place-items:center;border-radius:20px;background:#dfe7e4;color:#47615b;font-size:12px}
.approval-button.has-pending span{background:#b3342d;color:white}
.approval-content{padding:20px 24px}.approval-content>p{margin:0 0 16px;color:var(--muted);line-height:1.7}
.approval-list{display:grid;gap:10px}.approval-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px;border:1px solid var(--line);border-radius:13px}
.approval-item b,.approval-item span,.approval-item small,.approval-item time{display:block}.approval-item span{margin-top:5px;color:var(--green);font-weight:700}.approval-item small,.approval-item time{margin-top:4px;color:var(--muted)}
.approval-actions{display:flex;gap:8px}.approval-actions button{min-width:72px}.approval-dialog{width:min(680px,calc(100% - 28px))}
.user-create-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.user-create-grid label{margin:12px 0}.user-create-grid .wide{grid-column:1/-1}.user-create-submit{width:100%;margin-top:8px}
.panel-tools{display:flex;align-items:center;gap:9px}.export-button{min-height:43px;border:1px solid #9bc6bb;border-radius:9px;background:#f1faf7;color:var(--green);padding:0 14px;font-weight:800;white-space:nowrap}
.member-note{display:grid;gap:5px;margin-top:14px;padding:13px 15px;border:1px solid #b9d8d0;border-radius:13px;background:#f1faf7;color:#315d54}.member-note b{font-size:15px}.member-note span{font-weight:700}.member-note small{line-height:1.55;color:var(--muted)}
.permission-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:12px 0 16px;padding:13px;border:1px solid var(--line);border-radius:12px}.permission-fieldset legend{padding:0 7px;color:var(--green);font-size:13px;font-weight:800}.permission-fieldset label{display:flex;flex-direction:row;align-items:center;gap:7px;margin:0;padding:8px;border-radius:9px;background:#f5f8f7;font-weight:600}.permission-fieldset input{width:18px;height:18px;margin:0;accent-color:var(--green)}
.user-management-dialog{width:min(820px,calc(100% - 28px))}.close-user-management{width:44px;height:44px;border:0;border-radius:14px;background:#eff5f3;font-size:28px}.user-management-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.user-management-head p{margin:0;color:var(--muted);line-height:1.6}.user-management-head button{flex:none}.user-management-list{display:grid;gap:13px}.user-management-item{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.user-account-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.user-account-line b,.user-account-line span,.user-account-line small{display:block}.user-account-line b{font-size:17px}.user-account-line span{margin-top:4px;color:var(--green);font-weight:700}.user-account-line small{margin-top:4px;color:var(--muted)}.user-active{display:flex;flex-direction:row;align-items:center;gap:7px;margin:0;padding:8px 10px;border-radius:20px;background:#eef6f3;white-space:nowrap}.user-active input{width:18px;height:18px;margin:0;accent-color:var(--green)}.user-role{max-width:240px;margin:12px 0}.permission-fieldset.compact{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.save-user-settings{width:100%}.admin-lock{display:block;color:var(--muted)}.permission-hint{padding:12px;border-radius:10px;background:#f5f7f6;color:var(--muted)}
@media(max-width:760px){.filters{grid-template-columns:repeat(2,1fr);padding:12px 14px}.filters .ghost{grid-column:1/-1}.ocr-actions{gap:10px}.ocr-box{min-height:112px;padding:17px 10px}.panel-tools{display:grid;grid-template-columns:1fr}.panel-tools .search{margin-top:0}.export-button{min-height:48px}.permission-fieldset,.permission-fieldset.compact{grid-template-columns:1fr 1fr}.user-management-head{display:block}.user-management-head button{width:100%;margin-top:12px}.user-account-line{display:block}.user-active{width:max-content;margin-top:10px}.user-management-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0}}
.close-user{font-size:27px;border:0;background:none}
.reviews article{padding:14px 0;border-bottom:1px solid var(--line)}.reviews article b{color:#d3942f;letter-spacing:2px}.reviews article span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.reviews article p{margin:8px 0}.reviews article small{color:var(--muted)}.review-form{margin-top:18px;padding:18px;background:#f7faf9;border-radius:12px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.review-grid label{margin:0}@media(max-width:760px){.review-grid{display:block}.review-grid label{margin:12px 0}.user-create-grid{display:block}.close-user{width:44px;height:44px;border-radius:14px;background:#eff5f3}.hero-actions{flex-wrap:wrap}.hero-actions .approval-button{flex:1}}
.visit-status-badge{margin-left:6px;background:#eef4ff;color:#305d91}
.group-status-badge{margin-left:6px;background:#eee8ff;color:#62439a}
.group-status-form{display:grid;grid-template-columns:minmax(160px,260px) auto minmax(100px,1fr);gap:10px;align-items:end;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f7faf9}
.group-status-form label{margin:0}.group-status-form .message{margin:0;align-self:center}

.nearby-dialog{width:min(920px,calc(100% - 28px));max-height:min(92vh,900px)}
.nearby-content{padding:18px 22px 30px}
.nearby-controls{display:grid;grid-template-columns:minmax(140px,1fr) minmax(180px,1.25fr) auto;gap:12px;align-items:end}
.nearby-controls label{margin:0;color:var(--muted);font-size:13px;font-weight:700}
.nearby-controls select{width:100%;min-height:46px;margin-top:7px}
.nearby-controls button{min-height:46px;white-space:nowrap}
.nearby-message{margin:16px 0 6px;padding:12px 14px;border-radius:12px;background:#eef7f4;color:#345e55;line-height:1.6}
.nearby-message:empty{display:none}
.nearby-summary{min-height:24px;margin:8px 2px;color:var(--muted);font-size:13px;font-weight:700}
.nearby-list{display:grid;gap:11px}
.nearby-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(20,59,52,.05)}
.route-number{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:15px;font-weight:900}
.nearby-main{min-width:0}
.nearby-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.nearby-title b{font-size:17px;line-height:1.45}
.nearby-title>span{flex:none;padding:4px 8px;border-radius:16px;background:#eef5f3;color:var(--green);font-size:12px;font-weight:800}
.nearby-badges{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}
.nearby-badges span{padding:3px 8px;border-radius:12px;font-size:11px;font-weight:800}
.database-badge{background:#e8f2ff;color:#1766a2}
.group-badge{background:#eee8ff;color:#62439a}
.visited-badge{background:#e7f5ee;color:#147050}
.history-badge{background:#fff3d9;color:#8b6417}
.new-badge{background:#f1f3f2;color:#52625e}
.skip-badge{background:#f8e8e5;color:#9a4038}
.nearby-main>p{margin:6px 0;color:var(--muted);line-height:1.55}
.nearby-phone{display:inline-block;margin:2px 0 5px;color:var(--green);font-weight:800;text-decoration:none}
.nearby-main>small{display:block;margin:2px 0;color:var(--muted)}
.nearby-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:12px}
.nearby-actions a,.nearby-actions button{display:inline-flex;min-width:110px;min-height:42px;align-items:center;justify-content:center;border-radius:11px;font-weight:800;text-decoration:none}
.nearby-actions a{border:1px solid #9bc6bb;background:#f2faf7;color:var(--green)}
.visit-button{border:0}
.visit-button.done{background:#e7eeeb;color:#64746f}
.route-mark-button{border:1px solid #d8b8a8;background:#fff8f4;color:#8b4d31}
.route-mark-button.restore{border-color:#9bc6bb;background:#f2faf7;color:var(--green)}
.visit-history{margin-top:9px;border-top:1px dashed var(--line);color:var(--muted)}
.visit-history summary{padding:10px 0 4px;color:var(--green);font-size:12px;font-weight:800;cursor:pointer}
.visit-history>div{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;padding:7px 0;border-top:1px solid #eff3f1;font-size:12px}
.visit-history span{text-align:right}.visit-history p{grid-column:1/-1;margin:0;color:var(--text)}
.visit-dialog{width:min(520px,calc(100% - 28px))}
.close-nearby,.close-visit{width:44px;height:44px;border:0;border-radius:14px;background:#eff5f3;font-size:28px;line-height:1}

@media(max-width:760px){
  .group-status-form{grid-template-columns:1fr}
  .group-status-form .location{min-height:48px}
  .nearby-dialog,.visit-dialog{width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .nearby-content{padding:14px 12px calc(30px + env(safe-area-inset-bottom,0px))}
  .nearby-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .nearby-controls button{grid-column:1/-1;min-height:50px}
  .nearby-message{margin-top:12px;font-size:13px}
  .nearby-item{grid-template-columns:36px minmax(0,1fr);gap:9px;padding:13px 11px;border-radius:16px}
  .route-number{width:34px;height:34px;font-size:13px}
  .nearby-title{display:block}
  .nearby-title b{display:block;font-size:16px}
  .nearby-title>span{display:inline-block;margin-top:5px}
  .nearby-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .nearby-actions a,.nearby-actions button{width:100%;min-width:0;min-height:48px}
}
