/* Only host chrome and platform adaptation here. Page design comes from WXSS. */
[hidden] { display:none!important; }
body { padding-bottom:54px; }
wx-picker { position:relative; min-width:0; max-width:100%; }
wx-picker > .native-picker-control { position:absolute; inset:0; width:100%; height:100%; min-height:0; margin:0; padding:0; border:0; opacity:0; cursor:pointer; box-sizing:border-box; }
wx-picker:focus-within,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible { outline:2px solid #1677ff; outline-offset:3px; }
#native-navigation { display:flex; align-items:center; justify-content:center; position:relative; box-sizing:border-box; height:91px; padding:47px 90px 0; background:#176be6; color:#fff; font-size:17px; font-weight:600; }
#native-nav-back { position:absolute; left:8px; top:47px; width:44px; height:44px; padding:0; background:transparent; color:white; line-height:40px; font-size:32px; }
#native-menu { position:absolute; top:51px; right:max(12px,calc((100vw - 480px)/2 + 12px)); z-index:1100; }
#native-menu > summary { display:flex; align-items:center; justify-content:center; width:70px; height:30px; box-sizing:border-box; list-style:none; cursor:pointer; border:1px solid #ffffff70; border-radius:18px; color:#fff; background:#0001; letter-spacing:3px; }
#native-menu > summary::-webkit-details-marker { display:none; }
.native-toolbar { position:absolute; top:38px; right:0; display:grid; min-width:165px; padding:8px; background:#fff; border:1px solid #d2dff1; border-radius:12px; box-shadow:0 8px 24px #183f7030; }
.native-toolbar button,.native-toolbar a { display:block; margin:0; padding:10px 12px; border:0; border-radius:6px; background:#fff; color:#075dc5; font-size:14px; line-height:1.5; text-decoration:none; text-align:left; }
.native-toolbar button:hover,.native-toolbar a:hover { background:#edf5ff; }
.native-test-banner { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:min(100%,480px); box-sizing:border-box; z-index:80; padding:7px 14px; color:#875300; background:#fff4e4; border-top:1px solid #efd9b1; font-size:11px; line-height:1.5; }
#native-status { position:fixed; bottom:58px; left:50%; transform:translateX(-50%); width:min(90%,440px); box-sizing:border-box; z-index:100; margin:0; padding:12px 16px; border-radius:10px; background:#fff4f1; color:#b92323; white-space:pre-wrap; font-size:14px; }
#native-status:empty { display:none; }
.dashboard-custom-nav { max-width:480px; margin:0 auto; }
.native-dialog { max-width:min(92vw,540px); box-sizing:border-box; border:0; border-radius:20px; padding:24px; box-shadow:0 16px 80px #00152b55; }
.native-dialog::backdrop { background:#00152b77; }
.native-dialog p { white-space:pre-wrap; }
.native-dialog div { display:flex; gap:16px; justify-content:flex-end; }
.native-dialog button { margin:0; border:0; border-radius:8px; padding:10px 18px; background:#1676ee; color:#fff; font-size:16px; line-height:1.5; }
.native-dialog video { width:100%; max-height:60vh; }
.native-dialog input { width:100%; height:auto; box-sizing:border-box; padding:12px; margin-bottom:16px; border:1px solid #bed7fa; border-radius:8px; }
.native-modal { width:320px; max-width:90vw; padding:0; border-radius:12px; text-align:center; }
.native-modal h2 { margin:30px 24px 0; font-size:18px; line-height:1.4; font-weight:600; }
.native-modal p { margin:16px 24px 28px; color:#808080; font-size:16px; line-height:1.5; }
.native-modal > div { gap:0; border-top:1px solid #eee; }
.native-modal > div > button { flex:1; padding:0 8px; min-height:52px; border-radius:0; background:#fff; color:#000; line-height:1.5; font-size:17px; }
.native-modal > div > button + button { border-left:1px solid #eee; }
.native-modal > div > button[data-confirm=true] { color:#576b95; font-weight:600; }
.native-modal > input { width:calc(100% - 48px); margin:0 24px 20px; }
textarea[data-auto-height] { overflow-y:hidden; }
#native-feedback { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:1300; box-sizing:border-box; width:122px; max-width:85vw; padding:22px 16px; border-radius:9px; background:rgba(0,0,0,.75); color:#fff; text-align:center; font-size:14px; line-height:1.5; pointer-events:none; }
#native-feedback[data-icon=none] { width:max-content; max-width:min(85vw,400px); padding:12px 18px; }
#native-feedback-icon { display:block; margin:0 auto 14px; height:38px; width:38px; font-size:36px; line-height:38px; }
#native-feedback-mask { position:fixed; inset:0; z-index:1290; background:transparent; }
#native-feedback[data-icon=loading] #native-feedback-icon,.native-button-spinner { box-sizing:border-box; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:native-spin .9s linear infinite; }
.native-button-spinner { display:inline-block; flex:none; vertical-align:middle; width:16px; height:16px; margin-right:8px; }
@keyframes native-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .native-button-spinner,#native-feedback[data-icon=loading] #native-feedback-icon { animation:none; } }
/* Preserve all native icon effects, typography and attendance-button geometry. */
.attendance-scan-button .glass-button-label { white-space:nowrap; }
.sorting-grid,.dashboard-menu-sorting-grid { user-select:none; -webkit-user-select:none; }
.sort-task-button,.dashboard-menu-drag-handle { touch-action:none; cursor:grab; }
.dragging,.dashboard-menu-dragging { cursor:grabbing; }
#native-root input,#native-root textarea { font-family:inherit; }
#native-root wx-scroll { max-width:100%; }
#native-root .dashboard-custom-nav { left:50%; right:auto; transform:translateX(-50%); width:min(100%,480px); }
.application-review { padding:18px 0; border-bottom:1px solid #dce7f3; }
