
  :root{--navy:#0446A4;--navy-deep:#02236A;--navy-soft:#2A6BD0;--orange:#F57711;--orange-soft:#F9933A;--orange-deep:#C95E07;
    --ink:#0E1E3F;--ink-soft:#243657;--paper:#F4F7FB;--line:rgba(14,30,63,0.14);--muted:#5B6678;
    --radius:12px;--radius-sm:8px;--radius-lg:18px;
    --shadow-sm:0 1px 2px rgba(10,27,61,0.06);
    --shadow:0 2px 8px -2px rgba(10,27,61,0.10),0 1px 2px rgba(10,27,61,0.05);
    --shadow-md:0 10px 28px -12px rgba(10,27,61,0.20);
    --shadow-lg:0 30px 70px -40px rgba(10,27,61,0.42);
    --hover:rgba(4,70,164,0.07);--row-hover:rgba(4,70,164,0.05);--row-alt:rgba(4,70,164,0.022);
    --ring:rgba(245,119,17,0.32);}
  *{box-sizing:border-box;}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:"Spectral",Georgia,serif;line-height:1.6;-webkit-font-smoothing:antialiased;}
  a{color:var(--navy);text-decoration:none;}
  .topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid var(--line);padding:12px 24px;flex-wrap:wrap;}
  .tb-logo{height:38px;width:auto;display:block;}
  .nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
  .nav a{font-family:"Fraunces",serif;font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--navy-deep);padding:8px 14px;border-radius:20px;}
  .nav a:hover{background:rgba(4,70,164,0.07);}
  .nav a.on{background:var(--navy-deep);color:#fff;}
  .nav .me{display:flex;align-items:center;gap:8px;padding-left:8px;}
  .nav .me .nm{font-size:13px;color:var(--muted);}
  .wrap{max-width:960px;margin:0 auto;padding:30px 24px 70px;}
  h1{font-family:"Fraunces",serif;font-weight:500;color:var(--navy-deep);font-size:30px;margin:0 0 4px;}
  h2{font-family:"Fraunces",serif;font-weight:500;color:var(--navy-deep);font-size:20px;margin:0 0 16px;}
  h3{font-family:"Fraunces",serif;font-weight:600;color:var(--ink);font-size:17px;margin:0;}
  .sub{color:var(--muted);margin:0 0 22px;}
  .btn{display:inline-flex;align-items:center;gap:8px;font-family:"Fraunces",serif;font-size:12px;text-transform:uppercase;letter-spacing:0.12em;font-weight:500;padding:11px 20px;border-radius:8px;border:1px solid var(--orange);cursor:pointer;text-decoration:none;transition:.18s;background:#fff;color:var(--orange-deep);}
  .btn-primary{background:linear-gradient(180deg,var(--orange-soft),var(--orange));color:#3a1a00;border:none;}
  .btn-primary:hover{transform:translateY(-1px);}
  .btn-ghost{background:#fff;color:var(--navy-deep);border-color:var(--line);}
  .btn-sm{padding:8px 14px;font-size:11px;}
  .btn-open{background:var(--navy-deep);color:#fff;border:none;}
  .btn-open:hover{background:var(--navy);}
  .alert{background:rgba(245,119,17,0.1);border:1px solid var(--orange);color:var(--orange-deep);padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:14px;}
  .ok{background:rgba(8,80,65,0.1);border:1px solid #0F6E56;color:#0F6E56;padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:14px;}
  html[data-theme="dark"] .ok,html[data-theme="midnight"] .ok{background:rgba(40,180,120,0.12);color:#7BD88F;border-color:#2E7D55;}
  html[data-theme="dark"] .alert,html[data-theme="midnight"] .alert{background:rgba(245,119,17,0.14);color:#FFB069;}
  label{display:block;font-family:"Fraunces",serif;text-transform:uppercase;letter-spacing:0.12em;font-size:10px;font-weight:600;color:var(--navy-deep);margin:12px 0 6px;}
  input[type=text],input[type=password],input[type=url],input[type=email],input[type=tel],textarea,select{width:100%;background:#fff;border:1px solid var(--line);border-radius:7px;padding:11px 12px;color:var(--ink);font-family:"Spectral",serif;font-size:15px;}
  textarea{min-height:90px;resize:vertical;}
  input:focus,textarea:focus,select:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(245,119,17,0.12);}
  .card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin-bottom:22px;}
  .login-card{max-width:380px;margin:7vh auto 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 30px 30px;box-shadow:0 30px 70px -40px rgba(10,27,61,0.4);}
  .login-card .btn-primary{width:100%;justify-content:center;margin-top:22px;}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
  @media(max-width:560px){.grid2{grid-template-columns:1fr;}}
  .form-actions{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap;}
  .avatar{border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex:none;}
  .avatar.initials{color:#fff;font-family:"Fraunces",serif;font-weight:600;}
  .members{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
  .member{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;}
  .member .top{display:flex;align-items:center;gap:12px;}
  .member .role{font-family:"Fraunces",serif;font-size:10px;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;color:var(--navy-deep);background:rgba(4,70,164,0.08);padding:2px 8px;border-radius:20px;display:inline-block;}
  .member .role.admin{color:var(--orange-deep);background:rgba(245,119,17,0.1);}
  .member .mname{font-family:"Fraunces",serif;font-weight:600;color:var(--ink);}
  .member .muser{font-size:12px;color:var(--muted);}
  .member .mctrls{display:flex;gap:6px;margin-top:2px;flex-wrap:wrap;}
  .count-badge{display:inline-block;background:var(--navy-deep);color:#fff;border-radius:20px;padding:3px 12px;font-family:"Fraunces",serif;font-size:13px;margin-left:8px;}
  .res-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:14px;display:flex;align-items:center;gap:18px;justify-content:space-between;flex-wrap:wrap;}
  .res-main{flex:1;min-width:220px;}
  .res-main p{margin:4px 0 0;color:var(--muted);font-size:14px;}
  .pill{display:inline-block;background:rgba(4,70,164,0.08);color:var(--navy-deep);font-family:"Fraunces",serif;font-size:10px;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;padding:3px 9px;border-radius:20px;margin-bottom:6px;}
  .ctrls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
  .ctrls form{display:inline;margin:0;}
  .icon-btn{background:#fff;border:1px solid var(--line);border-radius:7px;width:34px;height:34px;cursor:pointer;color:var(--navy-deep);font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
  .icon-btn:hover{border-color:var(--navy-soft);}
  .icon-btn.danger:hover{border-color:var(--orange);color:var(--orange-deep);}
  .video-embed{flex-basis:100%;width:100%;margin-top:12px;}
  .video-embed iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;display:block;background:#000;}
  .drag-handle{cursor:grab;user-select:none;color:var(--muted);font-size:17px;padding:4px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;display:inline-flex;align-items:center;touch-action:none;}
  .drag-handle:active{cursor:grabbing;}
  .res-card.dragging{opacity:0.45;border-style:dashed;}
  .res-card.drag-over{border-color:var(--navy-soft);box-shadow:0 0 0 2px rgba(4,70,164,0.18);}
  .profile-head{display:flex;align-items:center;gap:18px;margin-bottom:18px;}
  .profile-head .pmeta h1{margin-bottom:2px;}
  .kv{margin:0;}
  .kv div{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:15px;}
  .kv div:last-child{border-bottom:none;}
  .kv .k{min-width:120px;color:var(--muted);font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;padding-top:3px;}
  .nav .badge{display:none;background:var(--orange);color:#3a1a00;border-radius:20px;font-family:"Fraunces",serif;font-size:10px;font-weight:600;padding:1px 7px;margin-left:4px;}

  /* "More" dropdown */
  .nav-more{position:relative;display:inline-flex;}
  .more-btn{font-family:"Fraunces",serif;font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--navy-deep);padding:8px 14px;border-radius:20px;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;line-height:1;}
  .more-btn:hover{background:rgba(4,70,164,0.07);}
  .more-btn.on{background:var(--navy-deep);color:#fff;}
  .more-btn .chev{font-size:9px;opacity:0.8;}
  .more-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(4,18,46,0.14);padding:6px;z-index:200;display:none;flex-direction:column;gap:2px;}
  .more-menu.open{display:flex;}
  .more-menu a{font-family:"Fraunces",serif;font-size:13px;text-transform:none;letter-spacing:0;color:var(--navy-deep);padding:9px 14px;border-radius:8px;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:8px;}
  .more-menu a:hover{background:rgba(4,70,164,0.07);}
  .more-menu a.on{background:var(--navy-deep);color:#fff;}
  .more-menu .sep{height:1px;background:var(--line);margin:4px 6px;}
  .more-menu .ext{opacity:0.55;font-size:11px;}
  .msg-layout{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start;}
  @media(max-width:720px){.msg-layout{grid-template-columns:1fr;}}
  .convo-col{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;}
  .newmsg{margin-bottom:10px;}
  .newmsg select{width:100%;}
  .convo-list a{display:flex;gap:10px;align-items:center;padding:10px;border-radius:9px;color:var(--ink);}
  .convo-list a:hover{background:rgba(4,70,164,0.06);}
  .convo-list a.active{background:rgba(4,70,164,0.1);}
  .convo-meta{flex:1;min-width:0;}
  .convo-meta .cn{font-family:"Fraunces",serif;font-weight:600;font-size:14px;display:flex;justify-content:space-between;gap:6px;align-items:center;}
  .convo-meta .cp{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .convo-unread{background:var(--orange);color:#3a1a00;border-radius:20px;font-size:10px;font-weight:600;padding:1px 7px;font-family:"Fraunces",serif;flex:none;}
  .thread-col{background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;min-height:460px;}
  .thread-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);}
  .thread-head .tn{font-family:"Fraunces",serif;font-weight:600;}
  .thread{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;max-height:54vh;}
  .bubble{max-width:78%;padding:9px 13px;border-radius:14px;font-size:14.5px;line-height:1.45;}
  .bubble .b-body{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;}
  .bubble .b-time{font-size:10.5px;color:var(--muted);margin-top:4px;}
  .bubble.them{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px;}
  .bubble.me{align-self:flex-end;background:var(--navy-deep);color:#fff;border-bottom-right-radius:4px;}
  .bubble.me .b-time{color:rgba(255,255,255,0.72);}
  .composer{display:flex;flex-direction:column;gap:8px;padding:12px;border-top:1px solid var(--line);}
  .composer textarea{min-height:46px;max-height:130px;width:100%;}
  .composer-actions{display:flex;gap:10px;align-items:center;}
  .composer-actions .attach-name{font-size:12px;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .attach-img{max-width:220px;max-height:200px;border-radius:8px;margin-top:6px;display:block;}
  .attach-file{display:inline-block;margin-top:6px;padding:6px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--paper);color:var(--navy-deep);}
  .bubble.me .attach-file{background:rgba(255,255,255,0.15);color:#fff;border-color:rgba(255,255,255,0.35);}
  .msg-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:30px;}
  .priv{font-size:12.5px;color:var(--muted);margin:0 0 16px;}
  .stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
  .stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 18px;min-width:130px;}
  .stat .n{font-family:"Fraunces",serif;font-size:26px;font-weight:600;color:var(--navy-deep);line-height:1;}
  .stat .l{font-size:11px;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);font-family:"Fraunces",serif;margin-top:4px;}
  .subtabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;}
  .subtabs a{font-family:"Fraunces",serif;font-size:12px;text-transform:uppercase;letter-spacing:0.1em;color:var(--navy-deep);padding:8px 16px;border-radius:20px;border:1px solid var(--line);}
  .subtabs a.on{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}
  .filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
  .filter-bar select{max-width:300px;}
  .tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .tbl th,.tbl td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top;}
  .tbl th{font-family:"Fraunces",serif;font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:var(--navy-deep);background:rgba(4,70,164,0.04);}
  .tbl tr:last-child td{border-bottom:none;}
  .tbl .muted{color:var(--muted);}
  .status{display:inline-block;font-family:"Fraunces",serif;font-size:10px;text-transform:uppercase;letter-spacing:0.08em;font-weight:600;padding:2px 9px;border-radius:20px;background:rgba(4,70,164,0.08);color:var(--navy-deep);white-space:nowrap;}
  .status.Won{background:rgba(8,80,65,0.12);color:#0F6E56;}
  .status.Lost{background:rgba(201,94,7,0.12);color:var(--orange-deep);}
  .note-cell{max-width:260px;}
  details.card summary{list-style:revert;}
  @media(max-width:760px){
    .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%;}
    .tbl thead{display:none;}
    .tbl td{border-bottom:none;padding:5px 12px;}
    .tbl tr{border-bottom:1px solid var(--line);padding:10px 0;}
  }
  .search-box{width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px 12px;font-family:"Spectral",serif;font-size:15px;margin-bottom:16px;}
  .search-box:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(245,119,17,0.12);}
  .avatar-wrap{position:relative;display:inline-block;flex:none;}
  .dot-online{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:#28a745;border:2px solid #fff;}
  .announce{background:rgba(245,119,17,0.08);border:1px solid var(--orange);border-radius:10px;padding:14px 16px;margin-bottom:12px;}
  .announce-body{color:var(--ink);font-size:15px;white-space:pre-wrap;}
  .announce-meta{font-size:12px;color:var(--muted);margin-top:6px;font-family:"Fraunces",serif;text-transform:uppercase;letter-spacing:0.06em;}
  .link-btn{background:none;border:none;color:var(--orange-deep);cursor:pointer;font-size:12px;text-transform:uppercase;letter-spacing:0.06em;font-family:"Fraunces",serif;padding:0 0 0 8px;}
  .form-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
  .form-tile{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;transition:.15s;}
  .form-tile:hover{border-color:var(--orange);transform:translateY(-2px);box-shadow:0 12px 26px -18px rgba(10,27,61,.5);}
  .form-tile .ft-title{font-family:"Fraunces",serif;font-weight:600;color:var(--navy-deep);font-size:17px;}
  .form-tile .ft-sub{color:var(--muted);font-size:12px;margin-top:4px;text-transform:uppercase;letter-spacing:.08em;font-family:"Fraunces",serif;}
  .sigwrap{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;max-width:620px;}
  #sigCanvas{width:100%;height:180px;border:1px dashed var(--line);border-radius:8px;background:#fff;touch-action:none;cursor:crosshair;}
  .sigbar{display:flex;align-items:center;gap:12px;margin-top:8px;}
  .pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px;}
  .pager a{border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-family:"Fraunces",serif;font-size:13px;color:var(--navy-deep);}
  .pager a.on{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}
  .doc-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:14px;}
  .doc-sheet{background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px 38px;max-width:820px;margin:0 auto;}
  .doc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--navy-deep);padding-bottom:14px;margin-bottom:18px;}
  .doc-co{font-family:"Fraunces",serif;font-weight:600;font-size:20px;color:var(--navy-deep);}
  .doc-meta{color:var(--muted);font-size:12px;margin-top:2px;}
  .doc-type{font-family:"Fraunces",serif;font-weight:600;color:var(--orange-deep);font-size:18px;text-align:right;}
  .doc-fields{width:100%;border-collapse:collapse;}
  .doc-fields th{text-align:left;width:38%;vertical-align:top;padding:9px 12px 9px 0;font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy-deep);border-bottom:1px solid var(--line);}
  .doc-fields td{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;}
  .doc-sign{margin-top:22px;}
  .doc-sign-label{font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
  .doc-sign img{max-width:320px;border-bottom:1px solid var(--ink);}
  .doc-foot{margin-top:24px;color:var(--muted);font-size:12px;font-style:italic;}
  @media print{.topbar,.doc-actions,.foot{display:none !important;} body{background:#fff;} .doc-sheet{border:none;max-width:none;padding:0;} .wrap{padding:0;}}
  .tb-brand{display:inline-flex;align-items:center;}
  .tb-actions{display:flex;align-items:center;gap:10px;}
  .gsearch input{width:180px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:8px 14px;font-family:"Spectral",serif;font-size:13px;}
  .gsearch input:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(245,119,17,0.12);width:220px;}
  .theme-toggle,.hamburger{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);color:var(--navy-deep);border-radius:8px;width:36px;height:36px;cursor:pointer;flex:none;}
  .theme-toggle:hover,.hamburger:hover{background:rgba(4,70,164,0.07);}
  /* show only the icon for the current theme: sun=light, crescent=dark, full moon=midnight */
  .theme-toggle .ti-crescent,.theme-toggle .ti-full{display:none;}
  .theme-toggle .ti-sun{display:inline-block;}
  html[data-theme="dark"] .theme-toggle .ti-sun{display:none;}
  html[data-theme="dark"] .theme-toggle .ti-crescent{display:inline-block;}
  html[data-theme="midnight"] .theme-toggle .ti-sun{display:none;}
  html[data-theme="midnight"] .theme-toggle .ti-full{display:inline-block;}
  .hamburger{display:none;}
  @media(max-width:820px){
    .nav{gap:2px;}
    .nav a,.more-btn{padding:7px 10px;font-size:11px;}
    .more-menu{right:8px;left:8px;min-width:0;}
    .gsearch input{width:130px;}
    .gsearch input:focus{width:150px;}
  }
  .dash-hi{font-family:"Fraunces",serif;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 2px;}
  .stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:14px;margin-bottom:22px;}
  .stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;}
  .stat-num{font-family:"Fraunces",serif;font-weight:600;font-size:30px;color:var(--navy-deep);line-height:1;}
  .stat-lbl{color:var(--muted);font-size:13px;margin-top:6px;}
  .stat-card.accent .stat-num{color:var(--orange-deep);}
  .quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 24px;}
  .widget-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px;}
  @media(max-width:680px){.widget-row{grid-template-columns:1fr;}}
  .widget{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;}
  .widget h2{font-size:16px;margin-bottom:12px;}
  .diesel-price{font-family:"Fraunces",serif;font-weight:600;font-size:34px;color:var(--navy-deep);line-height:1;}
  .trend-up{color:#C0392B;font-size:14px;}
  .trend-down{color:#1E8449;font-size:14px;}
  .wx-city{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;}
  .wx-city:last-child{border-bottom:none;}
  .wx-alert{color:var(--orange-deep);font-weight:600;}
  .widget-note{color:var(--muted);font-size:12px;margin-top:10px;}
  .ann-item{padding:10px 0;border-bottom:1px solid var(--line);}
  .ann-item:last-child{border-bottom:none;}
  .ann-when{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-family:"Fraunces",serif;}
  html[data-theme="dark"]{--paper:#0A1019;--ink:#E6ECF5;--ink-soft:#BAC6D8;--muted:#8593A8;--line:rgba(255,255,255,0.10);--navy:#9DC0FF;--navy-deep:#CFE0FF;--navy-soft:#9DC0FF;--orange-deep:#FFB069;--surface:#101A28;--surface-2:#16233A;--accent:#2A6BD0;--accent-strong:#3A7BE0;--chip:#1C2C44;--chip-ink:#CFE0FF;--menu-bg:#101A28;
    --shadow-sm:0 1px 2px rgba(0,0,0,0.40);
    --shadow:0 2px 10px -2px rgba(0,0,0,0.55),0 0 0 1px rgba(255,255,255,0.03);
    --shadow-md:0 12px 30px -12px rgba(0,0,0,0.65),0 0 0 1px rgba(255,255,255,0.04);
    --shadow-lg:0 30px 70px -34px rgba(0,0,0,0.80);
    --hover:rgba(157,192,255,0.12);--row-hover:rgba(255,255,255,0.055);--row-alt:rgba(255,255,255,0.022);
    --ring:rgba(245,119,17,0.40);}
  html[data-theme="midnight"]{--paper:#08090D;--ink:#F2F4F8;--ink-soft:#C7CDD9;--muted:#8A91A2;--line:rgba(255,255,255,0.09);--navy:#8FB4FF;--navy-deep:#BAD1FF;--navy-soft:#8FB4FF;--orange-deep:#FFB069;--surface:#121319;--surface-2:#1A1C24;--accent:#3B82F6;--accent-strong:#5A97F8;--chip:#20232E;--chip-ink:#BAD1FF;--menu-bg:#121319;
    --shadow-sm:0 1px 2px rgba(0,0,0,0.55);
    --shadow:0 2px 12px -2px rgba(0,0,0,0.65),0 0 0 1px rgba(255,255,255,0.04);
    --shadow-md:0 14px 34px -12px rgba(0,0,0,0.75),0 0 0 1px rgba(255,255,255,0.05);
    --shadow-lg:0 34px 80px -34px rgba(0,0,0,0.88);
    --hover:rgba(143,180,255,0.13);--row-hover:rgba(255,255,255,0.06);--row-alt:rgba(255,255,255,0.025);
    --ring:rgba(245,119,17,0.42);}
  html[data-theme="dark"] body,html[data-theme="midnight"] body{background:var(--paper);color:var(--ink);}
  html[data-theme="dark"] .topbar,html[data-theme="midnight"] .topbar,
  html[data-theme="dark"] .card,html[data-theme="midnight"] .card,
  html[data-theme="dark"] .login-card,html[data-theme="midnight"] .login-card,
  html[data-theme="dark"] .member,html[data-theme="midnight"] .member,
  html[data-theme="dark"] .res-card,html[data-theme="midnight"] .res-card,
  html[data-theme="dark"] .doc-sheet,html[data-theme="midnight"] .doc-sheet,
  html[data-theme="dark"] .sigwrap,html[data-theme="midnight"] .sigwrap,
  html[data-theme="dark"] .form-tile,html[data-theme="midnight"] .form-tile,
  html[data-theme="dark"] .stat-card,html[data-theme="midnight"] .stat-card,
  html[data-theme="dark"] .widget,html[data-theme="midnight"] .widget,
  html[data-theme="dark"] .search-box,html[data-theme="midnight"] .search-box,
  html[data-theme="dark"] .gsearch input,html[data-theme="midnight"] .gsearch input,
  html[data-theme="dark"] .tbl,html[data-theme="midnight"] .tbl,
  html[data-theme="dark"] .stat,html[data-theme="midnight"] .stat,
  html[data-theme="dark"] .convo,html[data-theme="midnight"] .convo,
  html[data-theme="dark"] .convo-col,html[data-theme="midnight"] .convo-col,
  html[data-theme="dark"] .thread-col,html[data-theme="midnight"] .thread-col,
  html[data-theme="dark"] .chat,html[data-theme="midnight"] .chat,
  html[data-theme="dark"] input[type=text],html[data-theme="midnight"] input[type=text],
  html[data-theme="dark"] input[type=password],html[data-theme="midnight"] input[type=password],
  html[data-theme="dark"] input[type=url],html[data-theme="midnight"] input[type=url],
  html[data-theme="dark"] input[type=email],html[data-theme="midnight"] input[type=email],
  html[data-theme="dark"] input[type=tel],html[data-theme="midnight"] input[type=tel],
  html[data-theme="dark"] input[type=date],html[data-theme="midnight"] input[type=date],
  html[data-theme="dark"] input[type=datetime-local],html[data-theme="midnight"] input[type=datetime-local],
  html[data-theme="dark"] input[type=number],html[data-theme="midnight"] input[type=number],
  html[data-theme="dark"] textarea,html[data-theme="midnight"] textarea,
  html[data-theme="dark"] select,html[data-theme="midnight"] select{background:var(--surface);color:var(--ink);border-color:var(--line);}
  html[data-theme="dark"] .tbl th,html[data-theme="midnight"] .tbl th{background:var(--surface-2);color:var(--navy-deep);}
  html[data-theme="dark"] .tbl tbody tr:nth-child(even),html[data-theme="midnight"] .tbl tbody tr:nth-child(even){background:rgba(255,255,255,0.02);}
  html[data-theme="dark"] .convo:hover,html[data-theme="midnight"] .convo:hover,html[data-theme="dark"] .form-tile:hover,html[data-theme="midnight"] .form-tile:hover{border-color:var(--navy-soft);}
  html[data-theme="dark"] .cust-ico,html[data-theme="midnight"] .cust-ico,html[data-theme="dark"] .gif-grid img,html[data-theme="midnight"] .gif-grid img{background:var(--surface);}
  html[data-theme="dark"] .bubble.me,html[data-theme="midnight"] .bubble.me,html[data-theme="dark"] .brow.me .bubble,html[data-theme="midnight"] .brow.me .bubble{background:var(--accent);color:#fff;}
  html[data-theme="dark"] .bubble.me .b-time,html[data-theme="midnight"] .bubble.me .b-time,html[data-theme="dark"] .bubble.me .bt,html[data-theme="midnight"] .bubble.me .bt{color:rgba(255,255,255,0.75);}
  html[data-theme="dark"] .btn:not(.btn-primary):not(.btn-open),html[data-theme="midnight"] .btn:not(.btn-primary):not(.btn-open),
  html[data-theme="dark"] .theme-toggle,html[data-theme="midnight"] .theme-toggle,html[data-theme="dark"] .hamburger,html[data-theme="midnight"] .hamburger,
  html[data-theme="dark"] .pager a,html[data-theme="midnight"] .pager a,html[data-theme="dark"] .icon-btn,html[data-theme="midnight"] .icon-btn,html[data-theme="dark"] .drag-handle,html[data-theme="midnight"] .drag-handle{background:var(--surface-2);color:var(--ink);border-color:var(--line);}
  html[data-theme="dark"] .nav a.on,html[data-theme="midnight"] .nav a.on,html[data-theme="dark"] .btn-open,html[data-theme="midnight"] .btn-open,
  html[data-theme="dark"] .more-btn.on,html[data-theme="midnight"] .more-btn.on,html[data-theme="dark"] .more-menu a.on,html[data-theme="midnight"] .more-menu a.on,
  html[data-theme="dark"] .subtabs a.on,html[data-theme="midnight"] .subtabs a.on,html[data-theme="dark"] .pager a.on,html[data-theme="midnight"] .pager a.on{background:var(--accent);color:#fff;border-color:var(--accent);}
  html[data-theme="dark"] .btn-open:hover,html[data-theme="midnight"] .btn-open:hover{background:var(--accent-strong);}
  html[data-theme="dark"] .pill,html[data-theme="midnight"] .pill,html[data-theme="dark"] .count-badge,html[data-theme="midnight"] .count-badge,html[data-theme="dark"] .role.admin,html[data-theme="midnight"] .role.admin{background:var(--chip);color:var(--chip-ink);}
  html[data-theme="dark"] #sigCanvas,html[data-theme="midnight"] #sigCanvas{background:var(--surface);}
  html[data-theme="dark"] .doc-sign img,html[data-theme="midnight"] .doc-sign img{background:#fff;padding:6px;border-radius:6px;}
  html[data-theme="dark"] .bubble.them,html[data-theme="midnight"] .bubble.them{background:var(--surface-2);color:var(--ink);}
  html[data-theme="dark"] .nav a:hover,html[data-theme="midnight"] .nav a:hover{background:rgba(157,192,255,0.12);}
  html[data-theme="dark"] .more-btn,html[data-theme="midnight"] .more-btn{color:var(--ink);}
  html[data-theme="dark"] .more-btn:hover,html[data-theme="midnight"] .more-btn:hover{background:rgba(157,192,255,0.12);}
  html[data-theme="dark"] .more-menu,html[data-theme="midnight"] .more-menu{background:var(--menu-bg);border-color:var(--line);box-shadow:0 12px 32px rgba(0,0,0,0.5);}
  html[data-theme="dark"] .more-menu a,html[data-theme="midnight"] .more-menu a{color:var(--ink);}
  html[data-theme="dark"] .more-menu a:hover,html[data-theme="midnight"] .more-menu a:hover{background:rgba(157,192,255,0.12);}
  html[data-theme="dark"] .more-menu .sep,html[data-theme="midnight"] .more-menu .sep{background:var(--line);}
  .foot{text-align:center;color:var(--muted);font-size:12px;padding:0 24px 40px;}
  .nav-badge{display:inline-block;background:var(--orange);color:#fff;border-radius:20px;font-size:11px;font-family:"Fraunces",serif;padding:1px 7px;margin-left:2px;}
  .convo-list{display:flex;flex-direction:column;gap:10px;}
  .convo{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;}
  .convo:hover{border-color:var(--navy-soft);}
  .convo .cmid{flex:1;min-width:0;}
  .convo .cname{font-family:"Fraunces",serif;font-weight:600;color:var(--ink);}
  .convo .cprev{color:var(--muted);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .convo .cright{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
  .convo .ctime{font-size:11px;color:var(--muted);}
  .unread-dot{background:var(--orange);color:#fff;border-radius:20px;font-size:11px;font-family:"Fraunces",serif;padding:1px 8px;}
  .thread-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .thread-head .tname{font-family:"Fraunces",serif;font-weight:600;font-size:18px;color:var(--navy-deep);}
  .chat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;max-height:55vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;}
  .brow{display:flex;}
  .brow.me{justify-content:flex-end;}
  .bubble{max-width:78%;padding:9px 13px;border-radius:14px;font-size:14.5px;line-height:1.45;}
  .bubble .bt{display:block;font-size:10.5px;margin-top:4px;opacity:.7;}
  .brow.them .bubble{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink);}
  .brow.me .bubble{background:var(--navy-deep);color:#fff;border-bottom-right-radius:4px;}
  .compose{display:flex;gap:10px;margin-top:14px;}
  .compose textarea{flex:1;min-height:46px;max-height:140px;}
  .compose .btn-primary{align-self:flex-end;}

  /* =====================================================================
     UI POLISH v11 — modern depth, motion, tables, inputs, focus & empty
     states. Theme-aware via tokens in :root / [data-theme=dark|midnight].
     Appended last so it layers cleanly over the base rules above.
     ===================================================================== */
  :root{color-scheme:light;}
  html[data-theme="dark"],html[data-theme="midnight"]{color-scheme:dark;}

  /* Smooth, consistent motion on interactive surfaces */
  a,.btn,.nav a,.more-btn,.subtabs a,.pager a,.icon-btn,.theme-toggle,.hamburger,.link-btn,
  input,select,textarea,.search-box,.gsearch input,.card,.stat,.stat-card,.widget,.member,
  .res-card,.form-tile,.convo,.tbl tbody tr,.status,.pill,.drag-handle{
    transition:background-color .18s ease,border-color .18s ease,box-shadow .2s ease,transform .2s ease,color .18s ease;}
  @media(prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;scroll-behavior:auto !important;}}

  /* Sticky, gently elevated top bar */
  .topbar{position:sticky;top:0;z-index:300;box-shadow:var(--shadow-sm);}

  /* Cards & panels: soft layered depth + consistent radius */
  .card,.widget,.stat-card,.member,.res-card,.convo-col,.thread-col,.chat,.convo,.announce{
    border-radius:var(--radius);box-shadow:var(--shadow);}
  .stat{border-radius:var(--radius);box-shadow:var(--shadow-sm);}
  /* Lift cards that are actually clickable/interactive */
  .form-tile:hover,.res-card:hover,.convo:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
  .stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
  .widget:hover{box-shadow:var(--shadow-md);}

  /* Buttons: tactile hover + press, graceful disabled */
  .btn{box-shadow:var(--shadow-sm);}
  .btn:hover{box-shadow:var(--shadow);transform:translateY(-1px);}
  .btn:active{transform:translateY(0);box-shadow:var(--shadow-sm);}
  .btn-primary:hover{box-shadow:0 10px 22px -8px rgba(245,119,17,0.55);}
  .btn:disabled,.btn[disabled]{opacity:.55;cursor:default;transform:none;box-shadow:none;}

  /* Inputs & selects: rounded, hover affordance, custom chevron */
  input[type=text],input[type=password],input[type=url],input[type=email],input[type=tel],
  input[type=date],input[type=datetime-local],input[type=number],textarea,select,.search-box{border-radius:var(--radius-sm);}
  input:hover:not(:focus),textarea:hover:not(:focus),select:hover:not(:focus),.search-box:hover:not(:focus){border-color:var(--navy-soft);}
  select{appearance:none;-webkit-appearance:none;-moz-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238593A8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.6 6 6.4 11 1.6'/></svg>");
    background-repeat:no-repeat;background-position:right 13px center;padding-right:36px;}
  /* re-apply the chevron on dark/midnight (their bg shorthand would erase it) */
  html[data-theme="dark"] select,html[data-theme="midnight"] select{
    background-color:var(--surface);
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%239FB2CC' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.6 6 6.4 11 1.6'/></svg>");
    background-repeat:no-repeat;background-position:right 13px center;}

  /* Tables: crisper header, zebra in every theme, soft row hover */
  .tbl{box-shadow:var(--shadow);}
  .tbl th{padding-top:13px;padding-bottom:13px;font-size:10.5px;border-bottom:1px solid var(--line);}
  .tbl tbody tr:nth-child(even){background:var(--row-alt);}
  .tbl tbody tr:hover{background:var(--row-hover);}
  .tbl tbody tr:last-child td{border-bottom:none;}

  /* Keyboard focus visibility (inputs already have a focus ring) */
  .btn:focus-visible,.nav a:focus-visible,.more-btn:focus-visible,.subtabs a:focus-visible,
  .pager a:focus-visible,.icon-btn:focus-visible,.theme-toggle:focus-visible,.hamburger:focus-visible,
  .form-tile:focus-visible,.convo:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);}
  a:focus-visible{outline:2px solid var(--navy-soft);outline-offset:2px;border-radius:4px;}

  /* Reusable empty state — icon + headline + hint + optional CTA */
  .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
    padding:54px 28px;background:#fff;border:1px dashed var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}
  .empty-state .es-ico{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:var(--hover);color:var(--navy-deep);margin-bottom:16px;}
  .empty-state .es-ico svg{width:28px;height:28px;display:block;}
  .empty-state h3{font-family:"Fraunces",serif;font-weight:600;color:var(--ink);font-size:19px;margin:0 0 7px;}
  .empty-state p{color:var(--muted);font-size:14px;line-height:1.55;margin:0 0 18px;max-width:430px;}
  .empty-state .btn{margin-top:2px;}
  html[data-theme="dark"] .empty-state,html[data-theme="midnight"] .empty-state{background:var(--surface);}
  /* compact variant for empty sub-sections that already sit inside a card */
  .empty-state.inset,html[data-theme="dark"] .empty-state.inset,html[data-theme="midnight"] .empty-state.inset{background:transparent;border:none;box-shadow:none;padding:26px 16px;}
  .empty-state.inset .es-ico{width:48px;height:48px;margin-bottom:12px;}
  .empty-state.inset .es-ico svg{width:24px;height:24px;}
  .empty-state.inset h3{font-size:16px;}
  .empty-state.inset p{font-size:13.5px;}

  /* Call Log: two-column layout + call-script panel (theme-aware) */
  .callgrid{display:block;}
  .callgrid-main{min-width:0;}
  .callgrid-aside{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-top:16px;}
  html[data-theme="dark"] .callgrid-aside,html[data-theme="midnight"] .callgrid-aside{background:var(--surface);}
  .sp-switch{display:flex;justify-content:flex-end;margin-bottom:10px;}
  .sp-switch .when-closed{display:none;}
  html.cs-hidden .sp-switch .when-open{display:none;}
  html.cs-hidden .sp-switch .when-closed{display:inline;}
  html.cs-hidden .callgrid-aside{display:none;}
  /* Two columns only when there's room; otherwise the panel stacks below. */
  @media(min-width:1000px){
    html:not(.cs-hidden) .callgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;}
    html:not(.cs-hidden) .callgrid-aside{margin-top:0;position:sticky;top:84px;}
    html:not(.cs-hidden) main.wrap:has(.callgrid){max-width:1240px;}
  }
  .sp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);}
  .sp-title{font-family:"Fraunces",serif;font-weight:600;color:var(--navy-deep);font-size:15px;}
  .sp-head-actions{display:flex;align-items:center;gap:8px;}
  .sp-manage{font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--orange-deep);}
  .sp-collapse{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);border-radius:8px;width:32px;height:32px;cursor:pointer;color:var(--navy-deep);font-size:15px;line-height:1;}
  .sp-collapse:hover{border-color:var(--navy-soft);}
  .sp-body{padding:14px;}
  .sp-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
  .sp-tabs a{font-family:"Fraunces",serif;font-size:11px;letter-spacing:.03em;color:var(--navy-deep);padding:5px 11px;border-radius:20px;border:1px solid var(--line);transition:background-color .15s ease,border-color .15s ease;}
  .sp-tabs a:hover{border-color:var(--navy-soft);}
  .sp-tabs a.on{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}
  html[data-theme="dark"] .sp-tabs a.on,html[data-theme="midnight"] .sp-tabs a.on{background:var(--accent);border-color:var(--accent);}
  .sp-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px;}
  .sp-toggle a{font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:7px 12px;color:var(--muted);transition:background-color .15s ease;}
  .sp-toggle a.on{background:var(--hover);color:var(--navy-deep);}
  .sp-status{font-size:12px;margin-bottom:8px;}
  .sp-content{font-size:14px;line-height:1.6;color:var(--ink);max-height:48vh;overflow-y:auto;padding-right:4px;}
  .sp-content strong{color:var(--navy-deep);font-weight:600;}
  .sp-toolbar{display:flex;gap:6px;align-items:center;margin-bottom:8px;}
  .sp-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px;}
  .sp-textarea{width:100%;min-height:260px;font-family:"Spectral",serif;font-size:14px;line-height:1.5;resize:vertical;}
  .sp-msg{font-size:14px;padding:10px 0;}

  /* ===== Floating, draggable, resizable Call Script window ===== */
  .sw-trigger-bar{display:flex;justify-content:flex-end;margin-bottom:14px;}
  .sw{display:none;position:fixed;z-index:1000;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;min-width:320px;min-height:240px;}
  .sw.open{display:flex;}
  html[data-theme="dark"] .sw,html[data-theme="midnight"] .sw{background:var(--surface);}
  .sw.minimized{height:auto !important;min-height:0;}
  .sw.minimized .sw-tabs,.sw.minimized .sw-toggle,.sw.minimized .sw-body{display:none;}
  .sw-titlebar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:move;user-select:none;background:var(--hover);}
  .sw-title{flex:1;font-family:"Fraunces",serif;font-weight:600;font-size:14px;color:var(--navy-deep);}
  .sw-grab{display:none;}
  .sw-actions{display:flex;align-items:center;gap:6px;}
  .sw-manage{font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--orange-deep);margin-right:2px;}
  .sw-btn{width:28px;height:28px;border:1px solid var(--line);background:none;border-radius:7px;cursor:pointer;color:var(--ink);font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
  .sw-btn:hover{border-color:var(--navy-soft);}
  .sw-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 12px 0;}
  .sw-tabs .sp-tab{font-family:"Fraunces",serif;font-size:11px;color:var(--navy-deep);padding:5px 11px;border-radius:20px;border:1px solid var(--line);background:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease;}
  .sw-tabs .sp-tab:hover{border-color:var(--navy-soft);}
  .sw-tabs .sp-tab.on{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);}
  html[data-theme="dark"] .sw-tabs .sp-tab.on,html[data-theme="midnight"] .sw-tabs .sp-tab.on{background:var(--accent);border-color:var(--accent);}
  .sw-toggle{padding:12px 12px 0;}
  .sw-toggle .seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
  .sw-toggle .seg button{font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:7px 12px;color:var(--muted);background:none;border:0;cursor:pointer;}
  .sw-toggle .seg button.on{background:var(--hover);color:var(--navy-deep);}
  .sw-body{flex:1;overflow-y:auto;padding:12px;min-height:0;}
  .sw-body .sp-content{max-height:none;}
  .sw-textarea{width:100%;min-height:220px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px 12px;color:var(--ink);font-family:"Spectral",serif;font-size:14px;line-height:1.55;resize:vertical;}
  html[data-theme="dark"] .sw-textarea,html[data-theme="midnight"] .sw-textarea{background:var(--surface);color:var(--ink);}
  .sw-textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px var(--ring);}
  .sw-rz{position:absolute;z-index:3;}
  .sw-rz-l{left:-3px;top:0;width:8px;height:100%;cursor:ew-resize;}
  .sw-rz-r{right:-3px;top:0;width:8px;height:100%;cursor:ew-resize;}
  .sw-rz-b{left:0;bottom:-3px;height:8px;width:100%;cursor:ns-resize;}
  .sw-rz-bl{left:-4px;bottom:-4px;width:16px;height:16px;cursor:nesw-resize;}
  .sw-rz-br{right:-4px;bottom:-4px;width:16px;height:16px;cursor:nwse-resize;}
  .sw-snap{display:none;position:fixed;top:12px;bottom:12px;width:33vw;background:rgba(58,111,192,0.16);border:2px dashed var(--navy-soft);border-radius:14px;z-index:999;pointer-events:none;}
  .sw-snap.show{display:block;}
  .sw-fab{display:none;}
  .sw-backdrop{display:none;}
  @media(max-width:768px){
    .sw-trigger-bar{display:none;}
    .sw-fab{display:inline-flex;align-items:center;justify-content:center;position:fixed;right:16px;bottom:16px;width:56px;height:56px;border-radius:50%;background:linear-gradient(180deg,var(--orange-soft),var(--orange));color:#3a1a00;border:none;box-shadow:var(--shadow-lg);font-size:22px;cursor:pointer;z-index:996;}
    html.sw-on .sw-fab{display:none;}
    .sw{left:0 !important;right:0 !important;top:auto !important;bottom:0 !important;width:100% !important;height:88vh !important;min-width:0;border-radius:18px 18px 0 0;transition:transform .18s ease;}
    .sw-rz{display:none;}
    .sw-titlebar{cursor:default;padding:18px 14px 12px;}
    .sw-grab{display:block;position:absolute;top:7px;left:50%;transform:translateX(-50%);width:42px;height:4px;border-radius:3px;background:var(--line);}
    .sw-body{font-size:16px;}
    .sw-body .sp-content{font-size:16px;line-height:1.7;}
    .sw-textarea{font-size:16px;}
    .sw-snap{display:none !important;}
    .sw-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:995;}
  }

/* ===== Mobile navigation & touch UX (added in optimization pass) ===== */
@media(max-width:820px){
  .hamburger{display:inline-flex;}
  .topbar{padding:10px 14px;position:sticky;top:0;z-index:900;}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);flex-direction:column;align-items:stretch;gap:0;padding:8px 10px 14px;max-height:calc(100vh - 60px);overflow-y:auto;}
  html[data-theme="dark"] .nav,html[data-theme="midnight"] .nav{background:var(--surface,#0E1E3F);}
  .nav.open{display:flex;}
  .nav a,.more-btn{display:block;width:100%;text-align:left;padding:13px 14px;font-size:13px;border-radius:10px;min-height:44px;}
  .nav-more{width:100%;}
  .more-btn{background:none;border:none;cursor:pointer;}
  .more-menu{position:static;box-shadow:none;border:none;border-left:2px solid var(--line);border-radius:0;margin:0 0 0 14px;min-width:0;padding:0;}
  .more-menu a{padding:12px 14px;min-height:44px;}
  .tb-actions{margin-left:auto;}
  .gsearch input{width:110px;font-size:16px;}
  .gsearch input:focus{width:130px;}
  .wrap{padding:20px 14px 60px;}
  h1{font-size:24px;}
}
@media(max-width:560px){
  .gsearch{display:none;}
  .doc-sheet{padding:20px 16px;}
  .quick-actions .btn{flex:1 1 45%;justify-content:center;}
}
/* iOS: 16px inputs prevent auto-zoom on focus */
@media(max-width:820px){
  input[type=text],input[type=password],input[type=url],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select,.search-box{font-size:16px;}
}
/* Horizontal-scroll fallback wrapper for wide tables */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ===== Page-level responsive fixes ===== */
img,svg,video{max-width:100%;}
.tb-logo{max-width:none;}
@media(max-width:760px){
  .agent-roll,.tax-table,.user-table,.asgn-table,.inv-items{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .agent-roll thead,.tax-table thead,.user-table thead,.asgn-table thead,.inv-items thead{white-space:nowrap;}
}
@media(max-width:700px){
  .add-form{grid-template-columns:1fr;}
  .ta-wrap{padding:20px 14px 50px;}
}
/* Comfortable touch targets on coarse pointers */
@media(pointer:coarse){
  .btn,.btn-sm,.icon-btn,.pager a{min-height:42px;}
  .subtabs a,.sp-tabs a{padding-top:8px;padding-bottom:8px;}
}

/* ===== CRM directory-style layout (banner + filter card + sortable/bulk table) ===== */
main.wrap:has(.crm-wide){max-width:1180px;}
.hero-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(4,70,164,0.07),rgba(245,119,17,0.05));
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:18px;}
.hero-banner .hb-text{flex:1;min-width:240px;}
.hero-banner .hb-text strong{font-family:"Fraunces",serif;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--navy-deep);}
.hero-banner .hb-text p{margin:4px 0 0;color:var(--muted);font-size:13.5px;}
.hero-banner .stats{margin:0;}
html[data-theme="dark"] .hero-banner,html[data-theme="midnight"] .hero-banner{background:linear-gradient(135deg,rgba(157,192,255,0.08),rgba(255,176,105,0.06));}

.filter-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 18px;margin-bottom:16px;}
html[data-theme="dark"] .filter-card,html[data-theme="midnight"] .filter-card{background:var(--surface);}
.filter-card .fc-label{display:block;font-family:"Fraunces",serif;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:12px;}
.filter-card .fc-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;}
.fc-field{display:flex;flex-direction:column;gap:0;min-width:150px;}
.fc-field label{margin:0 0 6px;}
.fc-field.grow{flex:1;min-width:220px;}
.fc-field.fc-actions{flex-direction:row;gap:8px;min-width:0;}

.tbl th.chk,.tbl td.chk{width:32px;text-align:center;padding-left:8px;padding-right:8px;}
input.rowchk,input.allchk{width:16px;height:16px;accent-color:var(--navy-deep);cursor:pointer;margin:0;}
.th-sort{display:inline-flex;align-items:center;gap:4px;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;}
.th-sort svg{width:10px;height:10px;opacity:.45;}
.th-sort:hover{color:var(--orange-deep);}
.th-sort.on{color:var(--orange-deep);}
.th-sort.on svg{opacity:1;}

.bulk-bar{display:none;align-items:center;justify-content:space-between;gap:12px;
  background:var(--navy-deep);color:#fff;border-radius:var(--radius);padding:10px 16px;margin-bottom:12px;
  font-family:"Fraunces",serif;font-size:13px;box-shadow:var(--shadow);}
.bulk-bar.show{display:flex;}
html[data-theme="dark"] .bulk-bar,html[data-theme="midnight"] .bulk-bar{background:var(--accent);}
@media(max-width:640px){
  .fc-row{flex-direction:column;align-items:stretch;}
  .fc-field{min-width:0;}
  .fc-field.fc-actions{flex-direction:row;}
}
