:root{font-family:system-ui,"Microsoft YaHei",sans-serif;color:#172033;background:#f4f7fb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eaf1ff,#f8fbff)}.card{background:#fff;border:1px solid #e5eaf2;border-radius:18px;box-shadow:0 14px 45px #19376b18}.login .card{width:min(420px,100%);padding:28px}.logo{display:flex;align-items:center;gap:12px;margin-bottom:28px}.logo i{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#2563eb;color:#fff;font-style:normal;font-weight:800}.logo h1{font-size:22px;margin:0}.logo p,.muted{color:#708097;margin:4px 0 0;font-size:13px}label{display:block;font-size:14px;color:#506078;margin:14px 0 6px}input,select,textarea{width:100%;border:1px solid #d9e1ec;border-radius:10px;padding:11px;background:#fff}.btn{border:0;border-radius:10px;padding:11px 16px;background:#2563eb;color:#fff;font-weight:700;cursor:pointer}.btn.secondary{background:#edf3ff;color:#2563eb}.btn.danger{background:#fff2f2;color:#c62828}.login .btn{width:100%;margin-top:18px}.error{color:#c62828;font-size:13px}.shell{min-height:100vh;padding-bottom:72px}.top{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid #e5eaf2;padding:15px 18px;display:flex;justify-content:space-between;align-items:center}.top h1{font-size:18px;margin:0}.top small{color:#708097}.content{padding:16px;max-width:1100px;margin:auto}.nav{position:fixed;bottom:0;left:0;right:0;z-index:6;background:#fff;border-top:1px solid #e5eaf2;display:flex;padding-bottom:env(safe-area-inset-bottom)}.nav button{flex:1;border:0;background:#fff;padding:10px 2px;color:#6f7d91;font-size:12px}.nav button.on{color:#2563eb;font-weight:700}.grid{display:grid;gap:12px}.metrics{grid-template-columns:repeat(3,1fr)}.metric{padding:18px}.metric span{color:#708097;font-size:13px}.metric b{font-size:24px;display:block;margin-top:7px}.panel{padding:16px;margin-top:14px}.panel h2{font-size:17px;margin:0 0 12px}.store-row,.form-row,.actions{display:flex;gap:10px;align-items:end}.form-row>*{flex:1}.items{display:grid;gap:10px}.item{display:grid;grid-template-columns:1.4fr .7fr .6fr .8fr auto;gap:8px;align-items:end;padding:10px;border:1px solid #edf0f5;border-radius:12px}.item label{margin:0}.total{display:flex;justify-content:space-between;border-top:1px solid #e9edf3;margin-top:14px;padding-top:14px;font-weight:700}.actions{justify-content:flex-end;margin-top:16px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:11px 8px;border-bottom:1px solid #edf0f5;font-size:14px}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#fff4d8;color:#916000;font-size:12px}.pill.ok{background:#e8f8ef;color:#187842}.modal{position:fixed;inset:0;z-index:20;background:#17203366;display:grid;place-items:end center}.modal .card{width:min(540px,100%);border-radius:18px 18px 0 0;padding:18px;max-height:88vh;overflow:auto}.hide{display:none!important}.notice{position:fixed;left:50%;bottom:85px;transform:translateX(-50%);background:#172033;color:#fff;padding:10px 16px;border-radius:10px;z-index:30}.empty{text-align:center;color:#7a8799;padding:28px}.salary-line{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:8px;margin-bottom:8px;align-items:center}.salary-line input{padding:8px}.view-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.view-title h2{margin:0}@media(max-width:700px){.metrics{grid-template-columns:1fr}.metric{padding:15px}.metric b{font-size:22px}.store-row,.form-row{display:grid;grid-template-columns:1fr 1fr}.item{grid-template-columns:1fr 1fr}.item>:first-child{grid-column:1/-1}.table-wrap{overflow:auto}.table{min-width:700px}.salary-line{grid-template-columns:1fr 1fr}.salary-line>:first-child{grid-column:1/-1}.content{padding:12px}.panel{padding:14px}.top{padding:13px 15px}}
