:root{
    --bg:#EEF1F7; --surface:#FFFFFF; --ink:#182746; --ink-soft:#5B6B85; --ink-faint:#9AA5BA;
    --primary:#16305A; --primary-dark:#0E1F3D; --primary-soft:#E7ECF4;
    --info:#3B7DDD; --info-soft:#E8F0FC;
    --success:#2FA968; --success-soft:#E4F5EC;
    --warning:#EEA23A; --warning-soft:#FCF0DC;
    --danger:#E2574C; --danger-soft:#FBEAE8;
    --purple:#7B6EF6; --purple-soft:#EEEBFE;
    --line:#E8ECF3; --line-strong:#D2D9E6;
    --font:'Inter',sans-serif;
    --shadow-card:0 1px 2px rgba(24,39,70,.04), 0 6px 16px rgba(24,39,70,.06);
    --shadow-drawer:0 12px 32px rgba(14,27,55,.24);
  }
  *{box-sizing:border-box;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;}
  h1,h2,h3,h4{margin:0;font-family:var(--font);}
  button{font-family:var(--font);cursor:pointer;}

  .app-switcher{background:var(--primary-dark);color:#fff;padding:12px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:sticky;top:0;z-index:200;}
  .brand{font-weight:800;font-size:15.5px;display:flex;align-items:center;gap:8px;letter-spacing:.1px;}
  .brand .dot{width:8px;height:8px;background:var(--warning);border-radius:50%;}
  .switch-tabs{display:flex;gap:2px;background:rgba(255,255,255,.07);padding:3px;border-radius:9px;}
  .switch-tabs button{background:transparent;border:none;color:rgba(255,255,255,.6);font-size:13px;font-weight:500;padding:7px 13px;border-radius:7px;transition:.15s;}
  .switch-tabs button.active{background:var(--info);color:#fff;}
  .switch-tabs button:not(.active):hover{color:#fff;background:rgba(255,255,255,.09);}
  .device-toggle{margin-left:auto;display:flex;gap:2px;background:rgba(255,255,255,.07);padding:3px;border-radius:9px;}
  .device-toggle button{background:transparent;border:none;color:rgba(255,255,255,.5);font-size:12px;padding:6px 11px;border-radius:7px;}
  .device-toggle button.active{background:rgba(255,255,255,.16);color:#fff;}
  .hint{font-size:11px;color:rgba(255,255,255,.38);margin-left:6px;}

  .stage{padding:22px;}
  .view{display:none;}
  .view.active{display:block;}

  .device-frame{width:100%;margin:0 auto;transition:width .25s ease;}
  .device-frame.mobile{width:400px;}
  .shell-wrapper{container-type:inline-size;container-name:shell;}
  .shell{display:flex;background:var(--surface);border-radius:18px;overflow:hidden;min-height:660px;position:relative;box-shadow:var(--shadow-card);}

  .sidebar{width:236px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:20px 14px;overflow-y:auto;}
  .sidebar-brand{padding:2px 8px 18px;margin-bottom:8px;display:flex;align-items:center;gap:10px;}
  .sidebar-brand .logo{width:34px;height:34px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;}
  .sidebar-brand .name{font-weight:700;color:var(--ink);font-size:14.5px;}
  .sidebar-brand .sub{font-size:10.5px;color:var(--ink-faint);margin-top:1px;}
  .nav-group{padding:2px 0 10px;}
  .nav-group-label{font-size:10px;color:var(--ink-faint);padding:10px 10px 6px;font-weight:700;letter-spacing:.5px;}
  .nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:11px;font-size:13.5px;color:var(--ink-soft);cursor:pointer;margin-bottom:2px;border:none;background:none;width:100%;text-align:left;font-family:var(--font);font-weight:500;}
  .nav-item .ic{width:18px;text-align:center;font-size:14px;flex-shrink:0;}
  .nav-item:hover{background:var(--bg);}
  .nav-item.current{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 4px 10px rgba(22,48,90,.28);}

  .main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);}
  .topbar{display:flex;align-items:center;gap:14px;padding:18px 26px;background:var(--surface);border-bottom:1px solid var(--line);}
  .menu-btn{display:none;background:var(--bg);border:1px solid var(--line-strong);width:34px;height:34px;border-radius:9px;font-size:15px;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink);}
  .topbar .title{font-weight:700;font-size:18px;color:var(--ink);}
  .topbar .meta{font-size:11.5px;color:var(--ink-faint);margin-top:1px;}
  .topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto;}
  .search-box{border:1px solid var(--line-strong);padding:8px 13px;border-radius:10px;font-size:12px;color:var(--ink-faint);display:flex;align-items:center;gap:6px;background:var(--bg);white-space:nowrap;}
  .avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0;}
  .btn{font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:11px;border:1px solid var(--primary);background:var(--primary);color:#fff;white-space:nowrap;}
  .btn:hover{background:var(--primary-dark);border-color:var(--primary-dark);}
  .btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong);}
  .btn.secondary:hover{background:var(--bg);}
  .btn.sm{padding:6px 12px;font-size:11.5px;}
  .btn.pill{border-radius:999px;}

  .content{padding:22px 26px 34px;overflow-x:auto;}
  .content-inner{animation:fadeIn .18s ease;}
  @keyframes fadeIn{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}

  .stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}
  .stat{background:var(--surface);padding:16px 18px;border-radius:16px;box-shadow:var(--shadow-card);}
  .stat .label{font-size:11.5px;color:var(--ink-faint);margin-bottom:8px;display:flex;align-items:center;gap:7px;}
  .stat .label::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--primary);flex-shrink:0;}
  .stat.blue .label::before{background:var(--info);}
  .stat.butter .label::before{background:var(--warning);}
  .stat.danger .label::before{background:var(--danger);}
  .stat .value{font-size:22px;font-weight:800;color:var(--ink);}
  .stat .sub{font-size:11px;color:var(--ink-faint);margin-top:4px;}
  .stat .sub.up{color:var(--success);} .stat .sub.down{color:var(--danger);}

  .grid-2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;}

  .panel{background:var(--surface);border-radius:16px;margin-bottom:16px;box-shadow:var(--shadow-card);overflow:hidden;}
  .panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 19px;border-bottom:1px solid var(--line);gap:10px;flex-wrap:wrap;}
  .panel-head h3{font-size:14.5px;font-weight:700;color:var(--ink);}
  .panel-head .link{font-size:11.5px;color:var(--info);font-weight:600;cursor:pointer;}
  .pills{display:flex;gap:7px;flex-wrap:wrap;padding:14px 19px 0;}
  .pill{font-size:11.5px;padding:6px 13px;border-radius:20px;border:1px solid var(--line-strong);color:var(--ink-soft);font-weight:500;}
  .pill.active{background:var(--primary);border-color:var(--primary);color:#fff;}

  table{width:100%;border-collapse:collapse;font-size:12.8px;}
  thead th{text-align:left;padding:10px 19px;font-size:10.5px;color:var(--ink-faint);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap;letter-spacing:.3px;text-transform:uppercase;}
  tbody td{padding:12px 19px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink);}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover td{background:var(--bg);}
  .num{font-variant-numeric:tabular-nums;text-align:right;}
  .route-tag{font-size:10px;padding:3px 9px;border:1px solid var(--line-strong);border-radius:20px;color:var(--ink-soft);font-weight:500;}

  .badge{font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;display:inline-block;}
  .badge.ok{background:var(--success-soft);color:var(--success);}
  .badge.pending{background:var(--warning-soft);color:#966317;}
  .badge.due{background:var(--danger-soft);color:var(--danger);}
  .badge.paused{background:var(--info-soft);color:var(--info);}

  .ledger-list{padding:4px 0;}
  .ledger-item{display:flex;justify-content:space-between;align-items:center;padding:12px 19px;border-bottom:1px solid var(--line);gap:10px;}
  .ledger-item:last-child{border-bottom:none;}
  .ledger-item .who{font-size:12.8px;font-weight:600;}
  .ledger-item .when{font-size:10.8px;color:var(--ink-faint);margin-top:2px;}
  .ledger-item .amt{font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;flex-shrink:0;}
  .ledger-item .amt.credit{color:var(--danger);} .ledger-item .amt.paid{color:var(--success);}

  .info-card{background:var(--surface);border-radius:14px;padding:15px 17px;box-shadow:var(--shadow-card);}
  .info-card .h{font-weight:700;font-size:13px;margin-bottom:3px;color:var(--ink);}
  .info-card .s{font-size:11.5px;color:var(--ink-faint);margin-bottom:10px;}
  .progress{height:7px;background:var(--line);border-radius:20px;overflow:hidden;margin:9px 0;}
  .progress > div{height:100%;background:var(--primary);border-radius:20px;}
  .avatar-lg{width:40px;height:40px;border-radius:12px;background:var(--info-soft);color:var(--info);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 19px;}
  .field{display:flex;flex-direction:column;gap:6px;}
  .field.full{grid-column:1/-1;}
  .field label{font-size:11.5px;color:var(--ink-soft);font-weight:600;}
  .field input, .field select, .field textarea{border:1px solid var(--line-strong);border-radius:11px;padding:10px 12px;font-size:13px;font-family:var(--font);background:var(--bg);color:var(--ink);}
  .field input:focus, .field textarea:focus{outline:2px solid var(--info);outline-offset:1px;}
  .field textarea{resize:vertical;min-height:70px;}
  .toggle-row{display:flex;align-items:center;justify-content:space-between;padding:13px 19px;border-bottom:1px solid var(--line);}
  .toggle-row:last-child{border-bottom:none;}
  .toggle-row .t-h{font-size:13px;font-weight:600;color:var(--ink);}
  .toggle-row .t-s{font-size:11px;color:var(--ink-faint);margin-top:2px;}
  .switch{width:40px;height:23px;border-radius:20px;background:var(--line-strong);position:relative;flex-shrink:0;}
  .switch.on{background:var(--info);}
  .switch::after{content:'';position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.2);}
  .switch.on::after{left:19.5px;}

  .bar-row{display:flex;align-items:center;gap:10px;padding:10px 19px;}
  .bar-row .bl{width:110px;font-size:12px;color:var(--ink-soft);flex-shrink:0;}
  .bar-track{flex:1;height:9px;background:var(--line);border-radius:20px;overflow:hidden;}
  .bar-fill{height:100%;background:var(--primary);border-radius:20px;}
  .bar-row .bv{width:52px;text-align:right;font-size:12px;font-weight:700;flex-shrink:0;}

  .plan-card{background:var(--surface);border-radius:16px;padding:20px;box-shadow:var(--shadow-card);border:1px solid transparent;}
  .plan-card.highlight{border-color:var(--info);}
  .plan-card .pname{font-weight:800;font-size:15px;color:var(--ink);}
  .plan-card .pprice{font-size:25px;font-weight:800;margin:9px 0 2px;color:var(--ink);}
  .plan-card .pprice span{font-size:12px;color:var(--ink-faint);font-weight:400;}
  .plan-card ul{list-style:none;padding:0;margin:13px 0 15px;font-size:12.5px;color:var(--ink-soft);display:flex;flex-direction:column;gap:7px;}
  .plan-card ul li::before{content:'✓ ';color:var(--success);font-weight:700;}
  .client-row-name{font-weight:700;font-size:13px;color:var(--ink);}
  .client-row-sub{font-size:11px;color:var(--ink-faint);margin-top:2px;}
  .plan-chip{font-size:10px;font-weight:700;padding:4px 10px;border-radius:20px;}
  .plan-chip.basic{background:var(--info-soft);color:var(--info);}
  .plan-chip.standard{background:var(--warning-soft);color:#966317;}
  .plan-chip.premium{background:var(--primary-soft);color:var(--primary);}
  .status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;}
  .status-dot.active{background:var(--success);} .status-dot.inactive{background:var(--ink-faint);}

  /* settings list (MilkMate-style) */
  .profile-header{display:flex;align-items:center;gap:13px;padding:18px 19px;border-bottom:1px solid var(--line);}
  .profile-header .av{width:46px;height:46px;border-radius:50%;background:var(--info-soft);color:var(--info);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;}
  .profile-header .nm{font-weight:700;font-size:14.5px;color:var(--ink);}
  .profile-header .ph{font-size:12px;color:var(--ink-faint);margin-top:1px;}
  .settings-section-label{font-size:10.5px;color:var(--ink-faint);font-weight:700;letter-spacing:.5px;padding:16px 19px 6px;}
  .settings-row{display:flex;align-items:center;gap:12px;padding:12px 19px;border-bottom:1px solid var(--line);}
  .settings-row:last-child{border-bottom:none;}
  .settings-row .bic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
  .settings-row .bic.blue{background:var(--info-soft);color:var(--info);}
  .settings-row .bic.green{background:var(--success-soft);color:var(--success);}
  .settings-row .bic.orange{background:var(--warning-soft);color:#966317;}
  .settings-row .bic.purple{background:var(--purple-soft);color:var(--purple);}
  .settings-row .bic.red{background:var(--danger-soft);color:var(--danger);}
  .settings-row .txt{flex:1;min-width:0;}
  .settings-row .txt .t{font-size:13px;font-weight:600;color:var(--ink);}
  .settings-row .txt .s{font-size:11px;color:var(--ink-faint);margin-top:1px;}
  .settings-row .chev{color:var(--ink-faint);font-size:16px;flex-shrink:0;}

  .overlay{position:fixed;inset:0;background:rgba(14,27,55,.35);z-index:39;display:none;}
  .overlay.show{display:block;}

  .shell.narrow .sidebar{position:fixed;top:0;left:-260px;height:100%;z-index:40;width:236px;box-shadow:var(--shadow-drawer);transition:left .22s ease;}
  .shell.narrow .sidebar.open{left:0;}
  .shell.narrow .menu-btn{display:flex;}
  .shell.narrow .stat-row{grid-template-columns:repeat(2,1fr);}
  .shell.narrow .grid-2, .shell.narrow .grid-3{grid-template-columns:1fr;}
  .shell.narrow .form-grid{grid-template-columns:1fr;}
  .shell.narrow .search-box{display:none;}
  .shell.narrow .content{padding:16px 14px 24px;}
  .shell.narrow .topbar{padding:14px 14px;}
  .shell.narrow-sm .stat-row{grid-template-columns:1fr 1fr;gap:9px;}
  .shell.narrow-sm .stat .value{font-size:18px;}
  .shell.narrow-sm .topbar .title{font-size:16px;}
  .shell.narrow-sm .btn{padding:8px 12px;font-size:12px;}

  /* ===== Phone ===== */
  .phone-stage{display:flex;justify-content:center;}
  .phone{width:360px;border:10px solid var(--primary-dark);border-radius:38px;background:var(--primary-dark);box-shadow:0 24px 50px rgba(14,27,55,.25);max-width:92vw;}
  .phone-screen{background:var(--bg);border-radius:28px;overflow:hidden;min-height:700px;display:flex;flex-direction:column;}
  .phone-notch{height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg);flex-shrink:0;}
  .phone-notch::before{content:'';width:80px;height:5px;background:var(--primary-dark);border-radius:4px;opacity:.18;}
  .app-topbar{background:var(--primary);color:#fff;padding:16px 19px 19px;flex-shrink:0;}
  .app-topbar.plain{background:var(--surface);color:var(--ink);padding:16px 19px;display:flex;align-items:center;gap:12px;}
  .app-topbar.plain .back{width:30px;height:30px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--ink);flex-shrink:0;border:none;}
  .app-topbar.plain .h{font-size:15.5px;font-weight:700;}
  .app-topbar .greet{font-size:11px;color:#C7D6EE;}
  .app-topbar .h{font-size:18px;font-weight:800;margin-top:2px;}
  .app-topbar .route-pill{display:inline-block;margin-top:10px;background:rgba(255,255,255,.15);font-size:10.5px;padding:5px 11px;border-radius:20px;}
  .app-body{flex:1;padding:14px 14px 0;overflow-y:auto;}
  .stop-card{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-card);padding:13px 14px;margin-bottom:10px;}
  .stop-card .row1{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
  .stop-card .cname{font-weight:700;font-size:13.5px;color:var(--ink);}
  .stop-card .caddr{font-size:11px;color:var(--ink-faint);margin-top:2px;}
  .stop-card .cprod{font-size:11.5px;color:var(--ink-soft);margin-top:8px;}
  .stop-card .actions{display:flex;gap:8px;margin-top:11px;}
  .stop-card .actions .btn{flex:1;padding:9px 0;text-align:center;font-size:11.5px;}
  .stop-card .actions .btn.ghost{background:transparent;color:var(--ink-soft);border-color:var(--line-strong);}
  .stop-card .due-tag{font-size:10px;color:var(--danger);font-weight:700;margin-top:6px;}
  .app-tabbar{display:flex;border-top:1px solid var(--line);background:var(--surface);padding:8px 0 10px;flex-shrink:0;}
  .app-tabbar .t{flex:1;text-align:center;font-size:9.5px;color:var(--ink-faint);background:none;border:none;font-family:var(--font);}
  .app-tabbar .t.active{color:var(--primary);font-weight:700;}
  .app-tabbar .t .ic{display:block;font-size:16px;margin-bottom:3px;}
  .summary-strip{display:flex;gap:8px;padding:0 14px 12px;}
  .summary-strip .box{flex:1;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-card);padding:10px 8px;text-align:center;}
  .summary-strip .box .v{font-weight:800;font-size:14.5px;color:var(--ink);}
  .summary-strip .box .l{font-size:9.5px;color:var(--ink-faint);margin-top:2px;}
  .otp-card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-card);padding:20px;margin:8px 14px 14px;text-align:center;}
  .otp-card .ic-lg{width:52px;height:52px;border-radius:14px;background:var(--info-soft);color:var(--info);display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 12px;}
  .otp-card .lead{font-size:11.5px;color:var(--ink-faint);margin-bottom:13px;line-height:1.5;}
  .otp-digits{display:flex;gap:7px;justify-content:center;margin-bottom:16px;}
  .otp-digits input{width:36px;height:44px;text-align:center;font-size:17px;border:1px solid var(--line-strong);border-radius:10px;font-weight:700;background:var(--bg);}
  .otp-digits input:nth-child(3){margin-right:9px;}
  .bill-hero{background:var(--primary);color:#fff;padding:20px 18px;border-radius:0 0 22px 22px;flex-shrink:0;}
  .bill-hero .l{font-size:11px;color:#C7D6EE;}
  .bill-hero .amt{font-size:29px;font-weight:800;margin-top:4px;}
  .bill-hero .due{font-size:11px;margin-top:8px;color:#DCE7F7;}
  .bill-hero .btn{margin-top:14px;width:100%;background:var(--warning);border-color:var(--warning);color:#4A3200;}
  .section-label{font-size:10.5px;font-weight:700;color:var(--ink-faint);margin:16px 14px 8px;letter-spacing:.3px;}
  .history-row{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px;background:var(--surface);}
  .history-row .d{color:var(--ink-faint);font-size:10.5px;}
  .history-wrap{background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card);margin:0 14px;}
  .history-wrap .history-row{border-radius:0;margin:0;box-shadow:none;}

  .field-ic{position:relative;}
  .field-ic .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--ink-faint);}
  .field-ic input, .field-ic textarea{padding-left:34px !important;}

  .seg-group{display:flex;gap:8px;padding:0 14px;}
  .seg-option{flex:1;border:1.5px solid var(--line-strong);border-radius:12px;padding:11px 6px;text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-soft);background:var(--surface);}
  .seg-option .ic{display:block;font-size:15px;margin-bottom:4px;}
  .seg-option.active{border-color:var(--info);background:var(--info-soft);color:var(--info);}

  .app-form-card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-card);margin:14px 14px 0;padding:16px 15px;}
  .app-form-card .fl{display:flex;flex-direction:column;gap:6px;margin-bottom:13px;}
  .app-form-card .fl label{font-size:11px;font-weight:700;color:var(--ink-soft);}
  .app-form-card .fl input, .app-form-card .fl textarea, .app-form-card .fl select{border:1px solid var(--line-strong);border-radius:11px;padding:10px 12px;font-size:12.5px;background:var(--bg);color:var(--ink);font-family:var(--font);}

  footer.note{max-width:900px;margin:22px auto 0;font-size:11.5px;color:var(--ink-faint);line-height:1.6;padding:0 4px;}