:root{--primary:#0d6b3f;--primary-dark:#0b5a34;--primary-light:#e0f5ea;--accent:#ffb347;--accent-end:#ff6723;--cta-gradient:linear-gradient(135deg,#ffb347,#ff6723);--success:#10b981;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--warning:#f59e0b;--warning-light:#fef3c7;--bg:#f7f8f6;--card-bg:#fff;--gray-bg:#fff;--card-alt-bg:#f7f8f6;--text:#1b3a28;--text-secondary:#8a9f90;--text-light:#5a7a66;--text-muted:#7a9b87;--border:#e0e8e2;--border-light:#e8ede9;--border-div:#e4ebe6;--radius:12px;--radius-sm:14px;--radius-lg:16px;--radius-xl:18px;--radius-xs:8px;--radius-full:20px;--shadow-sm:0 1px 3px #0000000a;--shadow:0 4px 16px #0000000f;--shadow-lg:0 6px 24px #00000014;--shadow-cta:0 6px 24px #ff672366;--shadow-green:0 4px 16px #0d6b3f4d;--bottom-nav-h:64px;--header-h:56px;--safe-bottom:env(safe-area-inset-bottom,0px);--section-pad:32px 20px;--dark-bg:#0a1628;--dark-footer:#091a10;--safe-bar-bg:#0b5a34;--font-family:-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f8f6;background:var(--bg);color:#1b3a28;color:var(--text);font-family:-apple-system,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;font-family:var(--font-family);line-height:1.5;overscroll-behavior:none}a{color:inherit;text-decoration:none}button{touch-action:manipulation}button,input,select,textarea{font-family:inherit;font-size:inherit}.app-shell{background:#f7f8f6;background:var(--bg);box-shadow:0 6px 24px #00000014;box-shadow:var(--shadow-lg);margin:0 auto;max-width:480px;min-height:100vh;position:relative}.app-shell.has-nav{padding-bottom:calc(72px + env(safe-area-inset-bottom, 0px));padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + 8px)}.page-wrap{min-height:100vh;padding:16px 16px 24px}.page-wrap.auth-pages{padding-top:80px}.bottom-nav{background:#fff;border-top:1px solid #e0e8e2;border-top:1px solid var(--border);bottom:0;height:calc(64px + env(safe-area-inset-bottom, 0px));height:calc(var(--bottom-nav-h) + var(--safe-bottom));justify-content:space-around;left:50%;max-width:480px;padding-bottom:env(safe-area-inset-bottom,0);padding-bottom:var(--safe-bottom);position:fixed;transform:translateX(-50%);width:100%;z-index:100}.bottom-nav,.bottom-nav-item{align-items:center;display:flex}.bottom-nav-item{background:none;border:none;color:#5a7a66;color:var(--text-light);cursor:pointer;flex-direction:column;font-size:10px;font-weight:500;gap:0;min-width:56px;padding:6px 8px 4px;position:relative;transition:all .2s}.bottom-nav-item .nav-icon{font-size:20px;margin-bottom:2px;transition:transform .2s}.bottom-nav-item.active{color:#0d6b3f;color:var(--primary);font-weight:600}.bottom-nav-item.active .nav-icon{transform:scale(1.05)}.auth-page-v2{background:#f7f8f6;background:var(--bg);min-height:100vh;overflow-x:hidden}.auth-hero{display:flex;flex-direction:column;min-height:420px;overflow:hidden;padding:0 0 20px;position:relative}.auth-hero:before{background:linear-gradient(180deg,#0a1628,#0a1628 40%,#0d4a2b);content:"";inset:0;position:absolute;z-index:0}.auth-hero:after{background:#f7f8f6;background:var(--bg);border-radius:24px 24px 0 0;bottom:-1px;content:"";height:30px;left:0;position:absolute;right:0;z-index:2}.auth-hero-head{align-items:center;display:flex;gap:8px;padding:16px 20px 24px;position:relative;z-index:1}.auth-hero-logo{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000026;display:flex;flex-shrink:0;font-size:20px;height:36px;justify-content:center;width:36px}.auth-hero-brand{color:#fff;font-size:17px;font-weight:800;text-shadow:0 1px 4px #0006}.auth-hero-live{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0006;border-radius:10px;color:#fca5a5;font-size:10px;font-weight:600;margin-left:auto;padding:3px 10px}.auth-hero-spacer{flex:1 1;position:relative;z-index:1}.auth-hero-bottom-card{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#00000073;border:1px solid #ffffff1a;border-radius:18px;margin:0 16px;padding:20px 16px 16px;position:relative;z-index:1}.auth-hero-cta{background:linear-gradient(135deg,#ffb347,#ff6723);border:none;border-radius:14px;box-shadow:0 6px 24px #ff672366;color:#fff;cursor:pointer;display:block;font-size:17px;font-weight:700;height:56px;transition:all .2s;width:100%}.auth-hero-cta:hover{box-shadow:0 8px 28px #ff672380;transform:translateY(-1px)}.auth-hero-cta:active{transform:translateY(0)}.auth-hero-cta-note{color:#ffffffd9;font-size:11px;margin-top:10px;position:relative;text-align:center;z-index:1}.auth-hero-title{color:#fff;font-size:17px;font-weight:800;position:relative;text-shadow:0 1px 4px #0006;z-index:1}.auth-stats-bar{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000000f;display:flex;margin:-8px 16px 0;padding:20px 10px;position:relative;z-index:3}.auth-stat-item{flex:1 1;text-align:center}.auth-stat-num{color:#0d6b3f;font-size:20px;font-weight:800}.auth-stat-num small{font-size:11px;font-weight:600}.auth-stat-label{color:#8a9f90;font-size:10px;margin-top:2px}.auth-stat-divider{background:#e4ebe6;height:30px;width:1px}.auth-hero-stats{align-items:center;background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000000f;display:flex;justify-content:center;margin:-8px 16px 0;padding:20px 10px;position:relative;z-index:3}.auth-stat{flex:1 1;text-align:center}.auth-stat+.auth-stat{border-left:1px solid #e4ebe6}.auth-form-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000a;margin:16px;padding:24px 20px;position:relative}.auth-form-title{color:#1b3a28;font-size:17px;font-weight:700;margin-bottom:20px;text-align:center}.auth-form-footer{color:#8a9f90;color:var(--text-secondary);font-size:13px;margin-top:20px;text-align:center}.auth-form-footer .link{color:#0d6b3f;color:var(--primary);font-weight:600;margin-left:6px}.auth-trust-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:16px 20px}.auth-trust-item{background:#fff;border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:20px;color:#5a7a66;color:var(--text-light);font-size:11px;padding:6px 14px}.auth-copyright{color:#7a9b87;color:var(--text-muted);font-size:10px;padding:8px 20px 24px;text-align:center}.auth-page{align-items:center;background:linear-gradient(180deg,#e0f5ea,#f7f8f6 40%);display:flex;flex-direction:column;padding-top:60px}.auth-logo{margin-bottom:36px;text-align:center}.logo-icon{align-items:center;background:#0d6b3f;background:var(--primary);border-radius:24px;box-shadow:0 8px 24px #0d6b3f33;display:flex;font-size:38px;height:80px;justify-content:center;margin:0 auto 16px;width:80px}.logo-text{color:#1b3a28;color:var(--text);font-size:26px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}.logo-sub{color:#8a9f90;color:var(--text-secondary);font-size:14px}.auth-form{max-width:360px;width:100%}.auth-footer{color:#8a9f90;color:var(--text-secondary);font-size:14px;margin-top:24px;text-align:center}.auth-footer .link{color:#0d6b3f;color:var(--primary);font-weight:600;margin-left:6px}.demo-hint{background:#e0f5ea;background:var(--primary-light);border-radius:10px;color:#5a7a66;color:var(--text-light);font-size:11px;line-height:1.6;margin-top:20px;padding:10px 16px;text-align:center}.demo-hint strong{color:#0d6b3f;color:var(--primary);display:block;font-size:12px;margin-top:2px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.form-group label,.form-input{color:#1b3a28;color:var(--text)}.form-input{background:#fff;border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:12px;box-sizing:border-box;font-size:15px;outline:none;padding:12px 14px;transition:border .2s;width:100%}.form-input:focus{border-color:#0d6b3f;border-color:var(--primary)}.form-input::placeholder{color:#999}.form-success{background:#d1fae5;background:var(--success-light,#d1fae5);border-radius:10px;color:#10b981;color:var(--success,#0d6b3f);font-size:13px;margin-bottom:16px;padding:10px 14px}.code-hint{margin-bottom:16px;text-align:center}.code-hint p{color:#8a9f90;color:var(--text-secondary);font-size:13px;margin:0}.code-hint .code-demo{color:#7a9b87;color:var(--text-muted);font-size:12px;margin-top:6px}.code-input{font-size:24px;font-weight:700;letter-spacing:8px;text-align:center}.hero-input{background:#ffffff1f!important;border:1px solid #fff3!important;border-radius:10px!important;color:#fff!important}.hero-input::placeholder{color:#ffffff80!important}.hero-input:focus{background:#ffffff2e!important;border-color:#fff6!important}.auth-form-card .btn-primary{margin-top:8px}.btn-primary{background:#0d6b3f;background:var(--primary);border:none;border-radius:14px;box-shadow:0 4px 16px #0d6b3f4d;color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:700;letter-spacing:.3px;padding:15px;text-align:center;transition:all .2s;width:100%}.btn-primary:hover{box-shadow:0 6px 20px #0d6b3f66;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-primary.outline{background:#0000;border:1.5px solid #0d6b3f;border:1.5px solid var(--primary);box-shadow:none;color:#0d6b3f;color:var(--primary)}.btn-lg{border-radius:12px;border-radius:var(--radius);font-size:16px;font-weight:700;padding:16px 24px}.btn-logout{background:none;border:1.5px solid #ef4444;border:1.5px solid var(--danger);border-radius:20px;color:#ef4444;color:var(--danger);cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;transition:all .2s}.btn-logout:hover{background:#fee2e2;background:var(--danger-light)}.btn-link{border:none;color:#0d6b3f;color:var(--primary);font-weight:500;margin-top:12px;padding:8px;text-align:center;width:100%}.form-error{background:#fee2e2;background:var(--danger-light);border-radius:10px;color:#ef4444;color:var(--danger);font-size:13px;font-weight:500;margin-bottom:16px;padding:10px 14px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px;padding:12px 0 8px}.page-header h2{color:#1b3a28;font-size:17px;font-weight:700}.card{background:#fff;background:var(--card-bg);border:1px solid #e8ede9;border:1px solid var(--border-light);border-radius:14px;border-radius:var(--radius-sm);box-shadow:0 1px 3px #00000008;padding:18px}.card,.card-title{margin-bottom:12px}.card-title{color:#8a9f90;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.3px}:root{--credit-purple:#7c3aed;--credit-purple-dark:#5b21b6;--credit-purple-light:#ede9fe;--credit-purple-bg:#f5f3ff}.credit-page{background:linear-gradient(180deg,#f5f3ff,#f7f8f6 40%)}.credit-hero-card{align-items:center;background:linear-gradient(135deg,#2e0194,#5b21b6 40%,#7c3aed);border-radius:20px;box-shadow:0 12px 32px #7c3aed4d;color:#fff;display:flex;flex-direction:column;margin-bottom:16px;padding:28px 20px;text-align:center}.credit-hero-ring{height:180px;margin-bottom:16px;position:relative;width:180px}.credit-hero-center{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute}.credit-hero-score{font-size:48px;font-weight:800;letter-spacing:-2px;line-height:1}.credit-hero-grade{border-radius:12px;color:#fff;font-size:13px;font-weight:700;margin-top:4px;padding:3px 16px}.credit-hero-info{width:100%}.credit-hero-label{font-size:11px;letter-spacing:1px;margin-bottom:6px;opacity:.7;text-transform:uppercase}.credit-hero-desc{font-size:13px;line-height:1.6;opacity:.9}.credit-dimensions-card{background:#fff;border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);margin-bottom:14px;padding:18px}.credit-dim-row{margin-bottom:14px}.credit-dim-row:last-child{margin-bottom:0}.credit-dim-header{align-items:center;display:flex;gap:8px;margin-bottom:6px}.credit-dim-icon{font-size:16px}.credit-dim-label{color:#1b3a28;color:var(--text);flex:1 1;font-size:13px;font-weight:600}.credit-dim-score{color:#5a7a66;color:var(--text-light);font-size:12px;font-weight:500}.credit-dim-bar-bg{background:#f1f5f9;border-radius:3px;height:6px;overflow:hidden}.credit-dim-bar-fill{border-radius:3px;height:100%;transition:width .6s ease}.credit-tips-card{background:#fff;border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);margin-bottom:14px;padding:18px}.credit-tip-item{align-items:flex-start;border-bottom:1px solid #e8ede9;border-bottom:1px solid var(--border-light);display:flex;gap:12px;padding:12px 0}.credit-tip-item:last-child{border-bottom:none}.credit-tip-num{color:#ede9fe;color:var(--credit-purple-light);flex-shrink:0;font-size:24px;font-weight:800;line-height:1;text-align:center;width:36px}.credit-tip-title{color:#1b3a28;color:var(--text);font-size:14px;font-weight:600;margin-bottom:2px}.credit-tip-desc{color:#5a7a66;color:var(--text-light);font-size:12px;line-height:1.5}.credit-score-card{align-items:center;background:#fff;border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;justify-content:space-between;margin-bottom:18px;padding:18px 20px;transition:all .2s}.credit-score-card:hover{box-shadow:0 4px 16px #0000000f;box-shadow:var(--shadow)}.credit-score-left{flex:1 1}.credit-score-label{color:#5a7a66;color:var(--text-light);font-size:11px;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.credit-score-value{font-size:36px;font-weight:800;letter-spacing:-1px;line-height:1}.credit-score-grade{border-radius:10px;color:#fff;display:inline-block;font-size:11px;font-weight:700;margin-top:4px;padding:2px 12px}.credit-score-right{flex-shrink:0}.credit-score-ring{align-items:center;border:4px solid #0d6b3f;border:4px solid var(--primary);border-radius:50%;color:#1b3a28;color:var(--text);display:flex;font-weight:800;height:68px;justify-content:center;width:68px}.profile-card{background:linear-gradient(180deg,#0a1628,#0d6b3f);border-radius:12px;border-radius:var(--radius);box-shadow:0 8px 24px #0d6b3f33;color:#fff;gap:14px;margin-bottom:18px;padding:22px 18px}.avatar,.profile-card{align-items:center;display:flex}.avatar{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:50%;flex-shrink:0;font-size:18px;font-weight:700;height:52px;justify-content:center;width:52px}.profile-name{font-size:17px;font-weight:700;margin-bottom:2px}.profile-phone{font-size:13px;opacity:.85}.me-hero-card{background:linear-gradient(180deg,#0a1628,#0a1628 40%,#0d4a2b);border-radius:16px;border-radius:var(--radius-lg);color:#fff;margin-bottom:16px;overflow:hidden;padding:20px;position:relative}.me-hero-card:before{background:linear-gradient(180deg,#0003,#00000005 30% 70%,#0000004d);content:"";inset:0;position:absolute;z-index:0}.me-hero-card>*{position:relative;z-index:1}.me-hero-top{gap:12px}.me-hero-avatar,.me-hero-top{align-items:center;display:flex}.me-hero-avatar{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#ffffff26;border-radius:50%;flex-shrink:0;font-size:15px;font-weight:700;height:48px;justify-content:center;width:48px}.me-hero-info{flex:1 1;min-width:0}.me-hero-name{font-size:17px;font-weight:800;margin-bottom:2px;text-shadow:0 1px 4px #0006}.me-hero-phone{font-size:12px;opacity:.75}.me-hero-score-badge{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#ffffff1f;border:1.5px solid #fff3;border-radius:50%;cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;height:56px;justify-content:center;transition:all .2s;width:56px}.me-hero-score-badge:hover{background:#fff3;transform:scale(1.05)}.me-hero-score-num{font-size:18px;font-weight:800;line-height:1}.me-hero-score-label{font-size:9px;margin-top:2px;opacity:.7}.me-hero-grade-row{align-items:center;border-top:1px solid #ffffff1a;display:flex;gap:10px;margin-top:14px;padding-top:14px}.me-hero-grade-tag{border-radius:10px;color:#fff;display:inline-block;font-size:11px;font-weight:700;padding:3px 14px}.me-hero-grade-desc{font-size:12px;opacity:.65}.me-cta-row{display:flex;gap:12px;margin-bottom:16px}.me-cta-btn{align-items:center;border:none;border-radius:14px;border-radius:var(--radius-sm);cursor:pointer;display:flex;flex:1 1;font-size:15px;font-weight:700;gap:8px;justify-content:center;padding:16px 12px;transition:all .2s}.me-cta-borrow{background:#0d6b3f;background:var(--primary);box-shadow:0 4px 16px #0d6b3f4d;color:#fff}.me-cta-borrow:hover{box-shadow:0 6px 20px #0d6b3f66;transform:translateY(-1px)}.me-cta-borrow:active{transform:translateY(0)}.me-cta-repay{background:#fff;border:2px solid #e0e8e2;border:2px solid var(--border);color:#1b3a28;color:var(--text)}.me-cta-repay:hover{background:#f7f8f6;background:var(--bg)}.me-cta-icon{font-size:20px}.me-cta-text{letter-spacing:.3px}.me-menu-card{overflow:hidden;padding:0}.me-menu-group-title{color:#7a9b87;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;padding:14px 18px 8px}.me-bottom-actions{display:flex;gap:12px;margin-bottom:8px;margin-top:20px}.me-bottom-btn{align-items:center;background:#fff;background:var(--card-bg);border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:14px;border-radius:var(--radius-sm);color:#1b3a28;color:var(--text);cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:500;gap:6px;justify-content:center;padding:13px;transition:all .2s}.me-bottom-btn:hover{background:#f7f8f6;background:var(--bg)}.me-logout-btn{border-color:#fee2e2;border-color:var(--danger-light);color:#ef4444;color:var(--danger)}.me-logout-btn:hover{background:#fee2e2;background:var(--danger-light)}.menu-list{overflow:hidden;padding:0}.menu-item{align-items:center;border-bottom:1px solid #e8ede9;border-bottom:1px solid var(--border-light);cursor:pointer;display:flex;font-size:15px;gap:14px;padding:15px 0;transition:all .15s}.menu-item:last-child{border-bottom:none}.menu-item:active{margin:0 -18px;padding:15px 18px}.menu-icon,.menu-item:active{background:#f7f8f6;background:var(--bg)}.menu-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:36px;justify-content:center;width:36px}.menu-item span:nth-child(2){flex:1 1;font-weight:500}.arrow{color:#5a7a66;color:var(--text-light);font-size:18px}.amount-display{color:#0d6b3f;color:var(--primary);font-size:42px;font-weight:800;letter-spacing:-1px;margin:8px 0 4px;text-align:center}.amount-unit{font-size:18px;font-weight:600;opacity:.7}.amount-input{-moz-appearance:textfield;background:#fff;border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:8px;color:#1b3a28;color:var(--text);flex:1 1;font-size:16px;font-weight:600;outline:none;padding:10px 12px;text-align:center;transition:border-color .2s}.amount-input:focus{border-color:#0d6b3f;border-color:var(--primary)}.amount-input::-webkit-inner-spin-button,.amount-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=range]{appearance:none;background:linear-gradient(180deg,#0000 22px,#e0e8e2 0,#e0e8e2 26px,#0000 0);background:linear-gradient(to bottom,#0000 22px,var(--border) 22px,var(--border) 26px,#0000 26px);border-radius:0;height:48px;margin:0;outline:none;padding:0;width:100%}input[type=range]::-webkit-slider-thumb{appearance:none;background:#fff;border:2px solid #0d6b3f;border:2px solid var(--primary);border-radius:50%;box-shadow:0 2px 8px #0d6b3f26;cursor:pointer;height:24px;margin-top:-10px;width:24px}input[type=range]::-moz-range-track{background:#e0e8e2;background:var(--border);border:none;border-radius:2px;height:4px}input[type=range]::-moz-range-thumb{background:#fff;border:2px solid #0d6b3f;border:2px solid var(--primary);border-radius:50%;box-shadow:0 2px 8px #0d6b3f26;cursor:pointer;height:24px;width:24px}.choice-btn{background:#fff;border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:8px;border-radius:var(--radius-xs);color:#1b3a28;color:var(--text);cursor:pointer;flex:1 1;font-size:14px;font-weight:600;min-width:60px;padding:11px 8px;transition:all .2s}.choice-btn.selected{background:#e0f5ea;background:var(--primary-light);border-color:#0d6b3f;border-color:var(--primary);color:#0d6b3f;color:var(--primary)}.pill-btn{border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:20px;cursor:pointer;font-size:13px;font-weight:600;padding:8px 18px;transition:all .2s}.pill-btn.selected{background:#0d6b3f;background:var(--primary);border-color:#0d6b3f;border-color:var(--primary);color:#fff}.loan-summary-card{background:#e0f5ea;background:var(--primary-light);border-radius:14px;border-radius:var(--radius-sm);padding:18px}.loan-row{color:#8a9f90;color:var(--text-secondary);display:flex;font-size:14px;justify-content:space-between;padding:7px 0}.loan-row.total{border-top:1px solid #0000000f;color:#1b3a28;color:var(--text);font-size:16px;font-weight:700;margin-top:8px;padding-top:12px}.status-badge{border-radius:20px;font-size:12px;font-weight:700;padding:4px 12px}.status-ok{background:#d1fae5;background:var(--success-light);color:#10b981;color:var(--success)}.status-no{background:#fee2e2;background:var(--danger-light);color:#ef4444;color:var(--danger)}.review-card{padding:36px 16px;text-align:center}.review-icon{font-size:64px;margin-bottom:16px}.review-title{font-size:20px;font-weight:700;margin-bottom:8px}.review-desc{color:#8a9f90;color:var(--text-secondary);font-size:14px;margin-bottom:28px}.loan-card{background:#fff;background:var(--card-bg);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);margin-bottom:12px;padding:18px}.loan-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.loan-amount{color:#1b3a28;color:var(--text);font-size:22px;font-weight:800}.loan-status{border-radius:20px;font-size:12px;font-weight:700;padding:4px 12px}.loan-status.pending{background:#fef3c7;background:var(--warning-light);color:#f59e0b;color:var(--warning)}.loan-status.approved{background:#d1fae5;background:var(--success-light);color:#10b981;color:var(--success)}.loan-status.rejected{background:#fee2e2;background:var(--danger-light);color:#ef4444;color:var(--danger)}.loan-meta{color:#8a9f90;color:var(--text-secondary);font-size:13px;margin-bottom:14px}.loan-actions{display:flex;gap:8px}.notif-item{align-items:flex-start;border-bottom:1px solid #e8ede9;border-bottom:1px solid var(--border-light);display:flex;gap:12px;padding:16px;transition:background .2s}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:#f5f9f6}.notif-left{flex-shrink:0;position:relative}.notif-icon-circle{align-items:center;border-radius:12px;display:flex;font-size:18px;height:40px;justify-content:center;width:40px}.notif-dot{background:#ef4444;border:2px solid #fff;border-radius:50%;height:10px;position:absolute;right:-2px;top:-2px;width:10px}.notif-content{flex:1 1;min-width:0}.notif-header-row{align-items:center;display:flex;gap:8px;margin-bottom:2px}.notif-title{font-size:14px;font-weight:600}.notif-time{color:#5a7a66;color:var(--text-light);font-size:12px}.contract-box{background:#f7f8f6;background:var(--bg);border-radius:14px;border-radius:var(--radius-sm);font-size:14px;line-height:2;padding:18px}.contract-row{border-bottom:1px dashed #e0e8e2;border-bottom:1px dashed var(--border);display:flex;justify-content:space-between;padding:9px 0}.contract-row:last-child{border-bottom:none}.contract-hero{background:linear-gradient(180deg,#0a1628,#0d6b3f);border-radius:12px;color:#fff;margin-bottom:18px;overflow:hidden;padding:32px 20px;position:relative;text-align:center}.contract-hero:before{background:radial-gradient(ellipse at 30% 50%,#ffffff0f 0,#0000 70%);content:"";inset:0;position:absolute}.contract-hero-badge{background:#ffffff26;border-radius:20px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:14px;padding:4px 18px;position:relative}.contract-hero-no{font-family:monospace;font-size:22px;font-weight:800;letter-spacing:1px;margin-bottom:8px;position:relative}.contract-hero-sub{font-size:12px;letter-spacing:2px;opacity:.7;position:relative}.contract-detail-grid{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 1fr}.contract-detail-item{border-bottom:1px dashed #e0e8e2;border-bottom:1px dashed var(--border);padding:14px 0}.contract-detail-item:nth-child(odd){padding-right:12px}.contract-detail-item:nth-child(2n){padding-left:12px}.contract-detail-label{color:#5a7a66;color:var(--text-light);font-size:12px;margin-bottom:3px}.contract-detail-value{color:#1b3a28;color:var(--text);font-size:16px;font-weight:600}.contract-detail-value.highlight{color:#0d6b3f;color:var(--primary);font-weight:700}.contract-stamp-area{display:flex;justify-content:flex-end;margin-bottom:16px}.contract-stamp{align-items:center;border:3px solid #d93030;border-radius:50%;color:#d93030;display:flex;font-size:14px;font-weight:900;height:72px;justify-content:center;letter-spacing:1px;line-height:1.3;opacity:.85;transform:rotate(-12deg);width:72px}.step-list{display:flex;flex-direction:column;gap:2px}.step-item{align-items:center;background:#fff;background:var(--card-bg);border-radius:14px;border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;font-size:15px;gap:14px;padding:15px 18px;transition:all .2s}.step-item:active{background:#f7f8f6;background:var(--bg)}.step-icon{font-size:22px}.step-item .step-check{color:#10b981;color:var(--success);font-size:16px;font-weight:700}.submit-progress-card{background:#fff;background:var(--card-bg);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);margin-bottom:12px;padding:20px}.submit-progress-header{align-items:center;display:flex;gap:16px;margin-bottom:14px}.submit-progress-circle{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:48px;justify-content:center;width:48px}.submit-progress-info{flex:1 1}.submit-progress-title{color:#1b3a28;color:var(--text);font-size:16px;font-weight:600;margin-bottom:4px}.submit-progress-sub{color:#5a7a66;color:var(--text-light);font-size:13px}.submit-progress-bar{background:#e8ede9;background:var(--border-light);border-radius:4px;height:8px;overflow:hidden}.submit-progress-fill{border-radius:4px;height:100%;transition:width .5s ease}.submit-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.submit-step-card{align-items:center;background:#fff;background:var(--card-bg);border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:14px;border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);display:flex;gap:12px;padding:14px 16px;transition:all .2s}.submit-step-card.done{background:#f0fdf4;border-color:#d1fae5;border-color:var(--success-light)}.submit-step-card.next{border-color:#0d6b3f;border-color:var(--primary);border-width:2px;box-shadow:0 0 0 3px #e0f5ea;box-shadow:0 0 0 3px var(--primary-light)}.submit-step-order{flex-shrink:0}.submit-step-num{align-items:center;background:#e8ede9;background:var(--border-light);border-radius:50%;color:#5a7a66;color:var(--text-light);display:flex;font-size:14px;font-weight:600;height:32px;justify-content:center;width:32px}.submit-step-card.next .submit-step-num{background:#0d6b3f;background:var(--primary);color:#fff}.submit-step-check{align-items:center;background:#10b981;background:var(--success);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:32px;justify-content:center;width:32px}.submit-step-body{flex:1 1;min-width:0}.submit-step-label{color:#1b3a28;color:var(--text);font-size:14px;font-weight:600;margin-bottom:2px}.submit-step-card.done .submit-step-label{color:#10b981;color:var(--success)}.submit-step-desc{color:#5a7a66;color:var(--text-light);font-size:12px}.submit-step-summary{background:#e0f5ea;background:var(--primary-light);border-radius:4px;color:#0d6b3f;color:var(--primary);font-size:12px;margin-top:4px;padding:4px 8px;word-break:break-all}.submit-step-action{flex-shrink:0}.submit-step-done-tag{background:#f0fdf4;border-radius:20px;color:#10b981;color:var(--success);font-size:12px;font-weight:600;padding:4px 12px}.submit-step-btn{background:#0d6b3f;background:var(--primary);border-radius:20px;color:#fff;display:inline-block;font-size:13px;font-weight:600;padding:8px 16px;text-decoration:none;white-space:nowrap}.submit-step-link{color:#5a7a66;color:var(--text-light);font-size:12px;padding:4px 8px;text-decoration:none}.submit-action-area{margin-top:8px}.submit-ready-banner{align-items:center;background:#d1fae5;background:var(--success-light);border-radius:14px;border-radius:var(--radius-sm);color:#10b981;color:var(--success);display:flex;font-size:14px;gap:10px;margin-bottom:16px;padding:14px 16px}.wizard-tabs{display:flex;gap:2px;justify-content:space-between;margin:16px 0 4px;overflow-x:auto;padding-bottom:4px}.wizard-tab{align-items:center;background:#0000;border:none;border-bottom:3px solid #0000;border-radius:6px 6px 0 0;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:52px;padding:10px 8px;transition:all .2s}.wizard-tab.active{background:#fff;background:var(--card-bg)}.wizard-tab.done .wizard-tab-label{color:#10b981}.wizard-tab-icon{font-size:18px}.wizard-tab-num{font-weight:700}.wizard-tab-num,.wizard-tab-text{color:#5a7a66;color:var(--text-light);font-size:10px;line-height:1}.wizard-tab-text{white-space:nowrap}.wizard-tab.active .wizard-tab-num,.wizard-tab.active .wizard-tab-text{color:#0d6b3f;color:var(--primary)}.wizard-tab.done .wizard-tab-num,.wizard-tab.done .wizard-tab-text{color:#10b981}.saved-data-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:16px;padding:12px 14px}.saved-data-title{color:#065f46;font-size:12px;font-weight:600;margin-bottom:4px}.saved-data-text{color:#1b3a28;color:var(--text);font-size:13px;word-break:break-all}.saved-data-table{border-collapse:collapse;width:100%}.saved-data-label{color:#5a7a66;color:var(--text-light);font-size:12px;padding:3px 8px 3px 0;vertical-align:top;white-space:nowrap;width:1%}.saved-data-value{color:#1b3a28;color:var(--text);font-size:13px;font-weight:500;padding:3px 0}.document-card{align-items:flex-start;background:#fff;background:var(--card-bg);border:1.5px solid #e0e8e2;border:1.5px solid var(--border);border-radius:14px;border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);display:flex;gap:12px;padding:14px 16px;transition:all .2s}.document-card.uploaded{background:#f0fdf4;border-color:#d1fae5;border-color:var(--success-light)}.document-card.uploading{border-color:#e0f5ea;border-color:var(--primary-light);opacity:.7}.document-card-icon{flex-shrink:0;font-size:28px;margin-top:2px}.document-card-body{flex:1 1;min-width:0}.document-card-label{align-items:center;color:#1b3a28;color:var(--text);display:flex;font-size:14px;font-weight:600;gap:6px;margin-bottom:2px}.document-card-desc{color:#5a7a66;color:var(--text-light);font-size:11px;margin-bottom:4px}.document-card-file{color:#10b981;color:var(--success);font-size:11px;margin-top:4px}.document-card-action{align-self:center;flex-shrink:0}.document-upload-btn{background:#0d6b3f;background:var(--primary);border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px}.document-done-tag{color:#10b981;color:var(--success);font-size:12px;font-weight:600;white-space:nowrap}.document-uploading-text{color:#5a7a66;color:var(--text-light);font-size:12px;white-space:nowrap}.document-required-tag{background:#fef2f2;border-radius:10px;color:#ef4444;font-size:10px;font-weight:600;padding:1px 6px}.loan-status-banner{align-items:flex-start;border-radius:14px;border-radius:var(--radius-sm);display:flex;font-size:13px;gap:10px;margin-top:12px;padding:12px 14px}.service-card{padding:36px 16px;text-align:center}.service-icon{font-size:56px;margin-bottom:16px}.service-row{align-items:center;background:#f7f8f6;background:var(--bg);border-radius:14px;border-radius:var(--radius-sm);display:flex;gap:14px;margin-bottom:10px;padding:16px}.service-row-icon{flex-shrink:0;font-size:22px}.info-section{margin-bottom:16px}.info-section h3{color:#1b3a28;color:var(--text);font-size:16px;font-weight:700;margin-bottom:8px}.info-section p{color:#8a9f90;color:var(--text-secondary);font-size:14px;line-height:1.9;white-space:pre-wrap}.period-select-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.period-card{background:#fff;border:2px solid #e0e8e2;border:2px solid var(--border);border-radius:14px;border-radius:var(--radius-sm);cursor:pointer;padding:14px 10px;text-align:center;transition:all .2s}.period-card.selected{background:#e0f5ea;background:var(--primary-light)}.period-months{font-size:18px;font-weight:700;margin-bottom:4px}.period-badge{border-radius:8px;display:inline-block;font-size:10px;font-weight:600;padding:2px 10px}.schedule-card{overflow:hidden}.schedule-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.schedule-table{border-collapse:collapse;font-size:12px;width:100%}.schedule-table th{border-bottom:2px solid #e0e8e2;border-bottom:2px solid var(--border);color:#5a7a66;color:var(--text-light);font-size:10px;font-weight:700;letter-spacing:.3px;padding:8px 6px;text-align:center;text-transform:uppercase;white-space:nowrap}.schedule-table td{border-bottom:1px solid #e8ede9;border-bottom:1px solid var(--border-light);font-weight:500;padding:7px 6px;text-align:center;white-space:nowrap}.schedule-table tbody tr:nth-child(2n){background:#f7f8f6;background:var(--bg)}.pay-header-card{background:linear-gradient(180deg,#0a1628,#0d6b3f);border-radius:12px;border-radius:var(--radius);box-shadow:0 8px 24px #0d6b3f33;color:#fff;margin-bottom:16px;padding:24px 18px;text-align:center}.pay-header-label{font-size:12px;letter-spacing:.5px;margin-bottom:4px;opacity:.8;text-transform:uppercase}.pay-header-amount{font-size:36px;font-weight:800}.pay-history-item{align-items:center;border-bottom:1px solid #e8ede9;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:14px 0}.pay-history-amount{font-size:15px;font-weight:700}.pay-history-date{color:#5a7a66;color:var(--text-light);font-size:12px;margin-top:2px}.pay-history-left{align-items:center;display:flex;gap:12px}.pay-history-icon{align-items:center;background:#e0f5ea;background:var(--primary-light);border-radius:10px;display:flex;flex-shrink:0;font-size:18px;height:40px;justify-content:center;width:40px}.pay-history-status{color:#10b981;color:var(--success);font-size:12px;font-weight:600}.pay-history-status.is-pending{color:#f59e0b;color:var(--warning)}.pay-loan-card{background:#f7f8f6;background:var(--bg);border:1px solid #e8ede9;border:1px solid var(--border-light);border-radius:14px;border-radius:var(--radius-sm);margin-bottom:10px;padding:16px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-wrap>*{animation:fadeInUp .3s ease both}.page-wrap>:nth-child(2){animation-delay:.05s}.page-wrap>:nth-child(3){animation-delay:.1s}.page-wrap>:nth-child(4){animation-delay:.15s}.page-wrap>:nth-child(5){animation-delay:.2s}.empty-state{padding:48px 20px;text-align:center}.empty-state-icon{font-size:56px;margin-bottom:12px}.empty-state-text{color:#8a9f90;color:var(--text-secondary);font-size:14px;margin-bottom:20px}.tab-bar{background:#fff;background:var(--card-bg);border-radius:14px;border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);display:flex;margin-bottom:16px;overflow:hidden}.tab-bar button{background:none;border:none;color:#8a9f90;color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:12px;transition:all .2s}.tab-bar button.active{background:#e0f5ea;background:var(--primary-light);border-radius:14px;border-radius:var(--radius-sm)}.link,.tab-bar button.active{color:#0d6b3f;color:var(--primary)}.link{font-weight:600}.divider{background:#e8ede9;background:var(--border-light);height:1px;margin:16px 0}.text-center{text-align:center}.text-secondary{color:#8a9f90;color:var(--text-secondary)}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.flex-between{align-items:center;display:flex;justify-content:space-between}.admin-login-page{align-items:center;background:linear-gradient(180deg,#0a1628,#0d6b3f);display:flex;justify-content:center;min-height:100vh}.admin-login-card{background:#fff;border-radius:12px;box-shadow:0 16px 48px #0003;max-width:400px;padding:44px 36px;width:100%}.admin-login-logo{font-size:44px;margin-bottom:8px;text-align:center}.admin-login-card h1{color:#1b3a28;font-size:22px;font-weight:700;margin-bottom:4px;text-align:center}.admin-login-sub{color:#7a9b87;color:var(--text-muted);font-size:13px;margin-bottom:28px;text-align:center}.admin-login-hint{background:#e0f5ea;background:var(--primary-light);border-radius:10px;color:#5a7a66;color:var(--text-light);font-size:12px;margin-top:20px;padding:10px;text-align:center}.admin-shell{background:#eef1f3;display:flex;min-height:100vh}.admin-sidebar{background:#0a1628;background:var(--dark-bg);bottom:0;box-shadow:2px 0 16px #00000026;color:#cbd5e1;display:flex;flex-direction:column;left:0;position:fixed;top:0;width:200px;z-index:200}.admin-sidebar-header{align-items:center;border-bottom:1px solid #ffffff14;display:flex;gap:10px;padding:22px 18px 18px}.admin-sidebar-logo{font-size:26px;line-height:1}.admin-sidebar-title{color:#f1f5f9;font-size:15px;font-weight:700;letter-spacing:.3px}.admin-nav{flex:1 1;min-height:0;overflow-y:auto;padding:10px 0}.admin-nav::-webkit-scrollbar{width:6px}.admin-nav::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.admin-nav::-webkit-scrollbar-track{background:#0000}.admin-nav-item{align-items:center;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;margin:2px 10px;padding:11px 16px;text-decoration:none;transition:all .18s}.admin-nav-item:hover{background:#ffffff14;color:#e2e8f0}.admin-nav-item.active{background:#0d6b3f26;box-shadow:none;color:#4ade80;font-weight:600}.admin-nav-item.active .admin-nav-icon{transform:scale(1.08)}.admin-nav-icon{font-size:17px;text-align:center;transition:transform .15s;width:22px}.admin-nav-group{margin-bottom:6px}.admin-nav-group-label{color:#94a3b866;font-size:10px;font-weight:700;letter-spacing:1px;padding:8px 18px 2px;text-transform:uppercase}.admin-sidebar-footer{align-items:center;border-top:1px solid #ffffff14;display:flex;justify-content:space-between;margin-top:auto;padding:14px 16px}.admin-main{display:flex;flex:1 1;flex-direction:column;margin-left:200px;min-height:100vh}.admin-header{align-items:center;background:#0a1628;background:var(--dark-bg);box-shadow:0 2px 8px #00000026;display:flex;height:48px;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100}.admin-header-left{align-items:center;display:flex;gap:10px}.admin-header-breadcrumb{color:#e2e8f0;font-size:13px;font-weight:600;letter-spacing:.3px}.admin-header-right{align-items:center;display:flex;gap:12px}.admin-header-user{color:#fffc;font-size:12px}.admin-header .btn-logout{border-color:#ffffff40;color:#ffffffbf;font-size:11px;padding:4px 12px}.admin-header .btn-logout:hover{background:#ffffff1a;color:#fff}.admin-content{flex:1 1;padding:24px 28px}.admin-tab-bar{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000a;display:flex;gap:0;margin-bottom:20px;padding:4px}.admin-tab-bar button{background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;flex:0 0 auto;font-size:13px;font-weight:500;padding:9px 22px;transition:all .18s}.admin-tab-bar button:hover{background:#f1f5f9;color:#334155}.admin-tab-bar button.active{background:#e0f5ea;background:var(--primary-light);color:#0d6b3f;color:var(--primary);font-weight:600}.admin-stat-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.admin-stat-card{background:#fff;border-radius:10px;border-top:3px solid #0d6b3f;border-top:3px solid var(--primary);box-shadow:0 1px 4px #0000000a;padding:18px 22px;transition:box-shadow .15s}.admin-stat-card:hover{box-shadow:0 4px 16px #0000001a}.admin-stat-card-body{align-items:center;display:flex;justify-content:space-between}.admin-stat-label{color:#8896a7;font-size:12px;font-weight:500;letter-spacing:.4px;margin-bottom:5px;text-transform:uppercase}.admin-stat-value{color:#1b3a28;font-size:30px;font-weight:800;letter-spacing:-.5px}.admin-stat-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:20px;height:42px;justify-content:center;width:42px}.admin-grid-2{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr}.admin-panel{background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000a;overflow:hidden}.admin-panel-header{align-items:center;border-bottom:1px solid #e8ece9;display:flex;justify-content:space-between;padding:16px 20px}.admin-panel-header h3{color:#334155;font-size:14px;font-weight:700}.admin-page-title{color:#1b3a28;font-size:18px;font-weight:700;margin-bottom:20px}.admin-table{border-collapse:collapse;font-size:13px;width:100%}.admin-table th{background:#eef1f6;border-bottom:2px solid #dde2e9;color:#5a6d80;font-size:11px;font-weight:600;letter-spacing:.4px;padding:12px 14px;text-align:left;text-transform:uppercase}.admin-table td{border-bottom:1px solid #e8ece9;color:#334155;font-size:13px;padding:11px 14px}.admin-table tbody tr:nth-child(2n){background:#f7f8f6;background:var(--bg)}.admin-table tbody tr:hover{background:#e0f5ea;background:var(--primary-light)}.admin-table-empty{color:#8896a7;font-size:13px;padding:36px 16px!important;text-align:center}.admin-badge{border-radius:20px;display:inline-block;letter-spacing:.2px}.badge-pending{background:#fef9e7;color:#b8860b}.badge-approved{background:#e0f5ea;background:var(--primary-light);color:#0b5a34;color:var(--primary-dark)}.badge-rejected{background:#fef0f0;color:#d93030}.badge-completed{background:#e8ece9;color:#5a6d80}.admin-btn-approve{background:#0d6b3f;background:var(--primary);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;margin-right:5px;padding:5px 14px;transition:all .15s}.admin-btn-approve:hover{background:#0b5a34;background:var(--primary-dark)}.admin-btn-reject{background:#e86060;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px;transition:all .15s}.admin-btn-reject:hover{background:#cc4545}.admin-actions{display:flex;gap:3px;white-space:nowrap}.admin-search-bar{align-items:center;display:flex;gap:10px;margin-bottom:18px}.admin-filter-bar{background:#fff;border-radius:10px;box-shadow:0 1px 4px #0000000a;margin-bottom:16px;padding:14px 18px}.admin-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.admin-filter-label{color:#5a6d80;font-size:12px;font-weight:600;white-space:nowrap}.admin-filter-input{border:1px solid #dde2e9;border-radius:6px;color:#334155;font-size:12px;outline:none;padding:6px 10px;transition:border-color .15s}.admin-filter-input:focus{border-color:#0d6b3f;border-color:var(--primary);box-shadow:0 0 0 2px #0d6b3f1a}.admin-btn-search{background:#0d6b3f;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:6px 16px;transition:background .15s}.admin-btn-search:hover{background:#0b5a34;background:var(--primary-dark)}.admin-pagination{align-items:center;border-top:1px solid #e8ece9;color:#8896a7;display:flex;font-size:12px;justify-content:space-between;padding:14px 20px}.admin-pagination-btns{display:flex;gap:3px}.admin-pagination-btns button{background:#fff;border:1px solid #dde2e9;border-radius:5px;color:#5a6d80;cursor:pointer;font-size:12px;padding:5px 11px;transition:all .15s}.admin-pagination-btns button:hover{background:#f0f3f7;border-color:#c8d0d8}.admin-pagination-btns button.active{background:#0d6b3f;background:var(--primary);border-color:#0d6b3f;border-color:var(--primary);color:#fff}.admin-pagination-btns button:disabled{cursor:not-allowed;opacity:.4}.admin-dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.progress-bar{background:#f1f5f9;border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{border-radius:4px;height:100%;transition:width .3s}.section-title{color:#5a6d80;font-size:13px;font-weight:700;letter-spacing:.4px;margin-bottom:10px;text-transform:uppercase}.admin-setting-input{max-width:300px}.admin-search-input{max-width:320px}.admin-search-btn{padding:10px 24px;width:auto}.success-msg{color:#10b981;font-size:13px;margin-left:12px}.form-actions{align-items:center;display:flex;gap:12px;margin-top:20px}.date-sep{color:#5a7a66;color:var(--text-light);margin:0 6px}.admin-detail-table td{font-size:12px;padding:6px 0}.admin-detail-table td:first-child{color:#5a7a66;color:var(--text-light);font-weight:600;width:100px}.admin-badge{border-radius:10px;font-size:11px;font-weight:600;padding:3px 10px}.admin-login-v2{align-items:center;background:#1a1a2e;display:flex;font-family:Inter,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;justify-content:center;min-height:100vh}.admin-login-v2 .admin-login-card-v2{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:400px;overflow:hidden;width:100%}.admin-login-v2 .admin-login-hero{background:linear-gradient(135deg,#148be4,#1e9fff);overflow:hidden;padding:36px 28px;position:relative;text-align:center}.admin-login-v2 .admin-login-hero:before{background:#ffffff1a;border-radius:0 80px 0 0;bottom:0;content:"";height:80px;left:0;position:absolute;width:80px}.admin-login-v2 .admin-login-hero:after{background:#ffffff1a;border-radius:50%;content:"";height:100px;position:absolute;right:-20px;top:-20px;width:100px}.admin-login-v2 .admin-login-hero h1{color:#fff;font-size:24px;font-weight:700;margin:0 0 6px;position:relative;z-index:1}.admin-login-v2 .admin-login-hero p{color:#ffffffbf;font-size:13px;margin:0;position:relative;z-index:1}.admin-login-v2 .admin-login-body{padding:32px 28px 40px}.admin-login-v2 .admin-login-input-group{margin-bottom:24px;position:relative}.admin-login-v2 .admin-login-input-group .input-icon{font-size:18px;left:0;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.admin-login-v2 .admin-login-input-group input{border:none;border-bottom:1px solid #dae1e6;border-radius:0;box-sizing:border-box;font-size:14px;outline:none;padding:10px 0 10px 32px;transition:border-color .2s;width:100%}.admin-login-v2 .admin-login-input-group input:focus{border-bottom-color:#1e9fff}.admin-login-v2 .admin-login-btn{background:linear-gradient(135deg,#148be4,#1e9fff);border:none;border-radius:22px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;height:44px;letter-spacing:.5px;transition:all .2s;width:100%}.admin-login-v2 .admin-login-btn:hover{box-shadow:0 4px 16px #1e9fff66;transform:translateY(-1px)}.admin-login-v2 .admin-login-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.admin-login-v2 .admin-login-footer{color:#8896a7;font-size:11px;margin-top:20px;text-align:center}.admin-login-v2 .admin-login-hint-v2{background:#f7f8fa;border-radius:8px;color:#a0aec0;font-size:12px;margin-top:16px;padding:10px;text-align:center}@media (max-width:768px){.admin-sidebar{width:56px}.admin-nav-group-label,.admin-nav-label,.admin-sidebar-title{display:none}.admin-nav-item{justify-content:center;margin:2px 8px;padding:10px 0}.admin-main{margin-left:56px}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-grid-2{grid-template-columns:1fr}.admin-content{padding:16px}}.modal-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 8px 30px #00000026;max-height:80vh;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e8ece9;display:flex;justify-content:space-between;padding:16px 22px}.modal-header h3{color:#1b3a28;font-size:15px;font-weight:700}.modal-close{background:none;border:none;color:#8896a7;cursor:pointer;font-size:18px;padding:2px 4px}.modal-close:hover{color:#334155}.modal-body{padding:22px}.modal-footer{border-top:1px solid #e8ece9;display:flex;gap:10px;justify-content:flex-end;padding:14px 22px}.btn-secondary{background:#f0f3f7;border:1px solid #dde2e9;border-radius:7px;color:#5a6d80;cursor:pointer;font-size:13px;font-weight:500;padding:9px 22px;transition:all .15s}.btn-secondary:hover{background:#e2e6ec}.admin-loading{color:#8896a7;font-size:14px;padding:60px 20px;text-align:center}.admin-loading:before{animation:spin .7s linear infinite;border:3px solid #e8ede9;border-top-color:#0d6b3f;border:3px solid var(--border-light);border-radius:50%;border-top-color:var(--primary);content:"";display:block;height:32px;margin:0 auto 12px;width:32px}@keyframes spin{to{transform:rotate(1turn)}}.contract-pdf-container{background:#fff;border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 12px #0000000f;margin-bottom:16px;overflow:hidden}.contract-pdf-toolbar{align-items:center;background:#f0f3f7;border-bottom:1px solid #e0e8e2;border-bottom:1px solid var(--border);color:#1b3a28;color:var(--text);display:flex;font-size:13px;font-weight:600;justify-content:space-between;padding:10px 16px}.contract-pdf-badge{background:#fef3c7;border-radius:10px;color:#b45309;font-size:11px;font-weight:600;padding:3px 12px}.contract-pdf-iframe{border:none;display:block;height:600px;width:100%}.contract-sign-section{margin-bottom:16px}.signature-pad{align-items:center;display:flex;flex-direction:column}.signature-pad-label{align-self:flex-start;color:#1b3a28;color:var(--text);font-size:13px;font-weight:600;margin-bottom:8px}.signature-canvas{background:#fafbfa;border:2px dashed #e0e8e2;border:2px dashed var(--border);border-radius:8px;cursor:crosshair;display:block;height:auto;max-width:100%;touch-action:none}.signature-pad-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:10px;width:100%}.btn-link{background:none;border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:7px;color:#5a7a66;color:var(--text-light);cursor:pointer;font-size:13px;padding:9px 20px;transition:all .15s}.btn-link:hover{background:#f0f3f7;color:#1b3a28;color:var(--text)}@media (min-width:768px){.app-shell{box-shadow:none;display:flex;max-width:none;min-height:100vh}.app-shell.has-nav{padding-bottom:0}.bottom-nav{display:none}.shell-content{flex:1 1;margin-left:200px;min-height:100vh;overflow-y:auto}.page-wrap{padding:24px 28px}}.user-sidebar{background:#0a1628;background:var(--dark-bg);bottom:0;box-shadow:2px 0 16px #00000026;color:#cbd5e1;display:flex;flex-direction:column;left:0;position:fixed;top:0;width:200px;z-index:200}.user-sidebar-header{align-items:center;border-bottom:1px solid #ffffff14;display:flex;gap:10px;padding:22px 18px 18px}.user-sidebar-logo{font-size:26px;line-height:1}.user-sidebar-title{color:#4ade80;font-size:15px;font-weight:700;letter-spacing:.3px}.user-sidebar-nav{flex:1 1;overflow-y:auto;padding:10px 0}.user-nav-group{margin-bottom:6px}.user-nav-group-label{color:#94a3b866;font-size:10px;font-weight:700;letter-spacing:1px;padding:8px 18px 2px;text-transform:uppercase}.user-nav-item{align-items:center;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;margin:2px 10px;padding:11px 16px;text-decoration:none;transition:all .18s}.user-nav-item:hover{background:#ffffff14;color:#e2e8f0}.user-nav-item.active{background:#0d6b3f26;color:#4ade80;font-weight:600}.user-nav-icon{font-size:17px;text-align:center;width:22px}@media (max-width:768px){.user-sidebar{display:none}.shell-content{margin-left:0}}.toast-stack{display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;top:16px;transform:translateX(-50%);width:min(92vw,420px);z-index:4000}.toast{animation:toast-in .18s ease-out;border-radius:8px;border-radius:var(--radius-xs);box-shadow:0 6px 24px #00000014;box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;font-size:14px;line-height:1.45;padding:12px 16px;pointer-events:auto;word-break:break-word}.toast,.toast-info{background:#334155}.toast-success{background:#0d6b3f;background:var(--primary)}.toast-error{background:#ef4444;background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.confirm-backdrop{align-items:center;background:#0f172a73;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:4100}.confirm-box{background:#fff;background:var(--card-bg);border-radius:12px;border-radius:var(--radius);box-shadow:0 6px 24px #00000014;box-shadow:var(--shadow-lg);padding:20px;width:min(92vw,380px)}.confirm-title{color:#1b3a28;color:var(--text);font-size:15px;font-weight:700;margin-bottom:8px}.confirm-message{color:#5a7a66;color:var(--text-light);font-size:14px;line-height:1.5;margin-bottom:18px;word-break:break-word}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-btn{background:#fff;background:var(--card-bg);border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-xs);color:#5a7a66;color:var(--text-light);cursor:pointer;font-size:14px;font-weight:600;padding:9px 18px}.confirm-btn:disabled{cursor:not-allowed;opacity:.6}.confirm-btn-primary{background:#0d6b3f;background:var(--primary);border-color:#0d6b3f;border-color:var(--primary);color:#fff}.confirm-btn-danger{background:#ef4444;background:var(--danger);border-color:#ef4444;border-color:var(--danger);color:#fff}.admin-page-hint{color:#5a6d80;font-size:13px;line-height:1.7;margin:-10px 0 20px;max-width:900px}.admin-form-grid{grid-gap:8px 18px;display:grid;gap:8px 18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:14px}.admin-link-box{background:#e0f5ea;background:var(--primary-light);border:1px solid #bfe4d0;border-radius:10px;margin-bottom:20px;padding:16px 18px}.admin-link-box-title{color:#0b5a34;color:var(--primary-dark);font-size:13px;font-weight:700;margin-bottom:10px}.admin-link-row{align-items:center;display:flex;gap:10px}.admin-link-row .form-input{flex:1 1;min-width:0}.admin-link-hint{color:#4f7263;font-size:12px;line-height:1.6;margin-top:10px}.contract-preview-frame{background:#fff;border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:8px;display:block;height:520px;margin:12px 0;width:100%}.sign-contract-title{color:#1b3a28;color:var(--text);font-size:16px;font-weight:700;margin-bottom:4px}.sign-meta{border-top:1px solid #e8ede9;border-top:1px solid var(--border-light);margin-top:12px;padding-top:10px}.sign-meta-row{color:#5a7a66;color:var(--text-light);display:flex;font-size:13px;gap:16px;justify-content:space-between;padding:3px 0}.sign-meta-row strong{color:#1b3a28;color:var(--text);font-weight:600;text-align:right;word-break:break-word}.sign-field-hint{color:#8a9f90;color:var(--text-secondary);font-size:12px;margin-top:6px}.sign-agree{align-items:flex-start;color:#1b3a28;color:var(--text);cursor:pointer;display:flex;font-size:13px;gap:10px;line-height:1.5;margin:6px 0 14px}.sign-agree input{accent-color:#0d6b3f;accent-color:var(--primary);flex-shrink:0;height:16px;margin-top:2px;width:16px}.signature-record{display:inline-block;text-align:center}.signature-record-label{color:#5a7a66;color:var(--text-light);font-size:12px;margin-bottom:6px}.signature-record-image{background:#fff;border:1px solid #e0e8e2;border:1px solid var(--border);border-radius:8px;display:block;max-width:320px;padding:6px;width:100%}