:root {
  --green:#1f6a49;--green-dark:#154b34;--green-deep:#0f3d2b;--gold:#bd8b35;
  --ink:#183a2a;--muted:#75847b;--line:#dce7e0;--paper:#fff;--wash:#f1f7f3;
  --danger:#b33e34;--shadow:0 10px 28px rgba(27,70,48,.10);
  --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--wash);font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink)}
body{overscroll-behavior-y:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}

.mobile-login{position:relative;min-height:100dvh;overflow:hidden;padding:calc(34px + var(--safe-top)) 20px calc(22px + var(--safe-bottom));background:linear-gradient(155deg,#0f3d2b,#27744f 64%,#3b8661);color:#fff}
.login-ambient{position:absolute;inset:0;background:radial-gradient(circle at 95% 5%,rgba(235,201,127,.31),transparent 30%),radial-gradient(circle at 0 70%,rgba(255,255,255,.10),transparent 38%)}
.login-ambient::after{content:"✚";position:absolute;right:-20px;bottom:-60px;font-size:240px;color:rgba(255,255,255,.055)}
.login-brand,.login-heading,.mobile-login-card{position:relative;z-index:1}
.login-brand{display:flex;align-items:center;gap:8px;color:#efd9a5;font-size:11px;letter-spacing:.16em}
.login-brand span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(239,217,165,.5);border-radius:9px;font-size:16px}
.login-heading{margin:34px 0 25px}
.login-heading h1{margin:0;font-size:42px;line-height:1.15;letter-spacing:.04em}
.login-heading h1 em{font-style:normal;color:#f0d89f}
.login-heading p{margin:11px 0 0;color:rgba(255,255,255,.75);font-size:14px}
.mobile-login-card{padding:22px 18px;border:1px solid rgba(255,255,255,.35);border-radius:22px;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 24px 55px rgba(4,28,18,.28)}
.mobile-login-card label{display:block;margin-bottom:14px;color:#506558;font-size:13px;font-weight:800}
.mobile-login-card input{width:100%;height:52px;margin-top:6px;padding:0 14px;border:1.5px solid #d2ded6;border-radius:13px;background:#fbfdfb;outline:none;font-size:17px}
.mobile-login-card input:focus{border-color:#45916b;box-shadow:0 0 0 4px rgba(48,129,87,.1)}
.mobile-login-card button{width:100%;height:54px;border:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,#2d7b55,#17513a);font-size:16px;font-weight:900;box-shadow:0 10px 22px rgba(24,82,54,.24)}
.mobile-login-card small{display:block;margin-top:14px;text-align:center;color:#89968e;font-size:11px}
.mobile-login-error{display:none;margin:-3px 0 12px;padding:9px 11px;border-radius:10px;color:#9b312a;background:#fff0ee;font-size:12px}
.mobile-login-error.show{display:block}

.mobile-app{min-height:100dvh;padding-top:calc(62px + var(--safe-top));padding-bottom:calc(72px + var(--safe-bottom));background:radial-gradient(circle at 100% 0,rgba(190,143,54,.09),transparent 25%),var(--wash)}
.mobile-appbar{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;height:calc(62px + var(--safe-top));padding:var(--safe-top) 15px 0;color:#fff;background:linear-gradient(135deg,#123f2c,#2c7654);box-shadow:0 7px 22px rgba(19,63,43,.20)}
.mobile-appbar-brand{display:flex;align-items:center;gap:10px;min-width:0}
.mobile-appbar-brand>span{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:rgba(255,255,255,.14);color:#efd89f;font-size:18px}
.mobile-appbar-brand div{display:flex;flex-direction:column;min-width:0}
.mobile-appbar-brand b{max-width:65vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.mobile-appbar-brand small{margin-top:2px;color:rgba(255,255,255,.7);font-size:10px}
.mobile-appbar>button{width:38px;height:38px;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:rgba(255,255,255,.12);color:#fff;font-size:20px}

.mobile-main{padding:14px 13px 20px}
.mobile-section-title{display:flex;align-items:flex-end;justify-content:space-between;margin:3px 2px 12px}
.mobile-section-title h2{margin:0;font-size:22px;color:var(--green-deep)}
.mobile-section-title span{color:var(--muted);font-size:11px}
.mobile-hero{padding:19px 17px;border-radius:19px;color:#fff;background:radial-gradient(circle at 100% 0,rgba(228,192,111,.25),transparent 33%),linear-gradient(140deg,#174e37,#2d7855);box-shadow:var(--shadow)}
.mobile-hero .eyebrow{color:#efd9a8;font-size:9px;font-weight:900;letter-spacing:.16em}
.mobile-hero h1{margin:8px 0 6px;font-size:26px}
.mobile-hero p{margin:0;color:rgba(255,255,255,.75);font-size:12px;line-height:1.65}
.mobile-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}
.mobile-stat{padding:15px;border:1px solid #dce7e0;border-radius:16px;background:#fff;box-shadow:0 7px 19px rgba(25,72,49,.055)}
.mobile-stat b{display:block;color:#215d41;font-size:26px;line-height:1}
.mobile-stat span{display:block;margin-top:6px;color:#7d8d84;font-size:11px}
.mobile-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:12px}
.mobile-quick{border:1px solid #dce8e1;border-radius:15px;background:#fff;padding:15px 13px;text-align:left;color:var(--ink);box-shadow:0 7px 18px rgba(26,70,48,.05)}
.mobile-quick span{display:grid;place-items:center;width:36px;height:36px;margin-bottom:9px;border-radius:11px;color:#fff;background:linear-gradient(145deg,#337d59,#1c5b40);font-size:17px}
.mobile-quick b{display:block;font-size:14px}
.mobile-quick small{display:block;margin-top:3px;color:#829088;font-size:10px}

.mobile-card-list{display:grid;gap:10px}
.mobile-card{padding:14px;border:1px solid #dce8e1;border-radius:16px;background:#fff;box-shadow:0 7px 18px rgba(27,69,48,.055)}
.mobile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.mobile-card-head b{font-size:15px;color:#224f3a}
.mobile-card-head small{display:block;margin-top:3px;color:#829087;font-size:10px}
.mobile-status{flex:0 0 auto;padding:4px 9px;border-radius:999px;font-size:10px;font-weight:800;background:#eef5f0;color:#456656}
.status-wait{background:#fff4d9;color:#8d6418}.status-arrived{background:#e7f5ec;color:#286c49}.status-done{background:#edf1ef;color:#59675f}.status-danger{background:#fdecea;color:#a13b33}
.mobile-card-body{margin-top:11px;padding-top:10px;border-top:1px dashed #e5ece8;color:#5c7064;font-size:12px;line-height:1.65}
.mobile-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;color:#7b8b82;font-size:10px}
.mobile-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.mobile-btn{min-height:40px;padding:0 13px;border:1px solid #cfdfd5;border-radius:11px;background:#f8fbf9;color:#315d47;font-size:12px;font-weight:800}
.mobile-btn.primary{border-color:#286f4e;background:linear-gradient(135deg,#327d57,#1d5a3f);color:#fff}
.mobile-btn.danger{color:#a33b32;border-color:#e9c4bf;background:#fff5f3}
.mobile-empty{padding:38px 15px;text-align:center;color:#89968f;font-size:12px;border:1px dashed #d7e3dc;border-radius:15px;background:#fff}
.mobile-search{position:relative;margin-bottom:12px}
.mobile-search input{width:100%;height:49px;padding:0 45px 0 14px;border:1.5px solid #d2e0d7;border-radius:14px;background:#fff;outline:none;font-size:15px;box-shadow:0 6px 16px rgba(24,67,45,.05)}
.mobile-search button{position:absolute;right:5px;top:5px;width:39px;height:39px;border:0;border-radius:10px;background:#eaf4ee;color:#2d694b}
.mobile-segment{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;scrollbar-width:none}
.mobile-segment button{flex:0 0 auto;padding:8px 13px;border:1px solid #d2e1d7;border-radius:999px;background:#fff;color:#60746a;font-size:11px}
.mobile-segment button.on{color:#fff;border-color:#286f4e;background:#286f4e}
.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:35;display:grid;grid-template-columns:repeat(5,1fr);height:calc(68px + var(--safe-bottom));padding:5px 8px var(--safe-bottom);border-top:1px solid rgba(213,227,219,.9);background:rgba(255,255,255,.97);backdrop-filter:blur(18px);box-shadow:0 -10px 30px rgba(25,62,43,.10)}
.mobile-tabbar button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:#8a9890;border-radius:14px;transition:color .16s ease,background .16s ease,transform .16s ease}
.mobile-tabbar .tab-icon{display:grid;place-items:center;width:36px;height:29px;border-radius:11px;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}
.mobile-tabbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mobile-tabbar button b{font-size:9.5px;font-weight:700;letter-spacing:.02em}
.mobile-tabbar button.on{color:var(--green-dark);background:linear-gradient(180deg,rgba(232,245,237,.9),rgba(255,255,255,.35))}
.mobile-tabbar button.on .tab-icon{color:#fff;background:linear-gradient(145deg,#2e7a55,#1c5d40);box-shadow:0 5px 12px rgba(31,106,73,.22);transform:translateY(-2px)}
.mobile-tabbar button:not(.on):active{background:#f1f6f3;transform:scale(.97)}

.mobile-mask{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;background:rgba(10,35,23,.5);backdrop-filter:blur(2px)}
.mobile-sheet{width:100%;max-height:88dvh;overflow:auto;padding:20px 17px calc(18px + var(--safe-bottom));border-radius:23px 23px 0 0;background:#fff;box-shadow:0 -20px 55px rgba(0,0,0,.22);animation:sheetIn .2s ease-out}
@keyframes sheetIn{from{transform:translateY(30px);opacity:.6}to{transform:none;opacity:1}}
.mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.mobile-sheet-head h3{margin:0;font-size:19px}
.mobile-sheet-head button{width:36px;height:36px;border:0;border-radius:50%;background:#f0f5f2;color:#62756a;font-size:17px}
.mobile-sheet label{display:block;margin-bottom:12px;color:#51685a;font-size:12px;font-weight:800}
.mobile-sheet input,.mobile-sheet select,.mobile-sheet textarea{width:100%;margin-top:5px;padding:11px 12px;border:1.5px solid #d2e0d7;border-radius:12px;background:#fbfdfb;outline:none;font-size:15px}
.mobile-sheet textarea{min-height:92px;resize:vertical}
.mobile-sheet .mobile-btn{min-height:48px}
.mobile-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.mobile-toast{position:fixed;left:50%;bottom:calc(82px + var(--safe-bottom));z-index:150;max-width:88vw;transform:translateX(-50%);padding:10px 17px;border-radius:999px;background:#235c41;color:#fff;font-size:12px;box-shadow:0 10px 25px rgba(0,0,0,.2)}

@media(min-width:700px){
  .mobile-login{display:grid;grid-template-columns:1fr minmax(360px,430px);align-content:center;gap:50px;padding-left:12vw;padding-right:12vw}
  .login-heading{margin-top:0}
  .mobile-login-card{grid-row:1 / span 3;grid-column:2}
  .mobile-app{max-width:760px;margin:0 auto;border-left:1px solid #dce7e0;border-right:1px solid #dce7e0;background:var(--wash)}
  .mobile-appbar{left:50%;right:auto;width:760px;transform:translateX(-50%)}
  .mobile-tabbar{left:50%;right:auto;width:760px;transform:translateX(-50%)}
  .mobile-main{padding:18px 20px 28px}
  .mobile-stat-grid{grid-template-columns:repeat(4,1fr)}
  .mobile-quick-grid{grid-template-columns:repeat(4,1fr)}
}
