/* Twinstar Staff Portal */
.tsp-app,.tsp-login{--n:#0B1F3A;--g:#B0884F;--ink:#1B2433;--mut:#5A6578;--ln:#D5DBE4;--bg:#F4F6F9;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:14px;line-height:1.45;text-align:left}
.tsp-app *,.tsp-login *{box-sizing:border-box}
.tsp-app{margin:30px 0 60px}
.tsp-login{max-width:420px;margin:40px auto 70px;padding:32px;border:1px solid var(--ln);border-top:3px solid var(--g);background:#fff}
.tsp-login h2{margin:0 0 6px;color:var(--n);font-size:24px}
.tsp-login p{color:var(--mut);margin:0 0 18px}
.tsp-login label{display:block;font-weight:600;font-size:13px;margin-bottom:4px}
.tsp-login input[type=text],.tsp-login input[type=password]{width:100%;padding:10px 12px;border:1px solid var(--ln);border-radius:4px;font-size:15px}
.tsp-login .login-remember label{font-weight:400}
.tsp-login input[type=submit]{background:var(--n);color:#fff;border:0;border-radius:4px;padding:12px 22px;font-weight:600;cursor:pointer;min-height:44px}
.tsp-login .tsp-lost{margin:14px 0 0;font-size:13px}
.tsp-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;background:var(--n);color:#fff;padding:14px 20px;border-bottom:3px solid var(--g)}
.tsp-brand{font-weight:600;font-size:16px}
.tsp-kicker{color:var(--g);letter-spacing:3px;font-size:12px;margin-right:6px}
.tsp-tabs{display:flex;gap:6px}
.tsp-tab{background:transparent;color:#C9D2E0;border:1px solid transparent;border-radius:4px;padding:9px 16px;font:600 14px inherit;font-family:inherit;cursor:pointer;min-height:40px}
.tsp-tab:hover{color:#fff}
.tsp-tab.on{background:#fff;color:var(--n)}
.tsp-user{font-size:13px;color:#C9D2E0}
.tsp-user a{color:var(--g)!important}
.tsp-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin:18px 0 12px}
.tsp-search{flex:1 1 280px;max-width:460px}
.tsp-search input{width:100%;padding:10px 12px;border:1px solid var(--ln);border-radius:4px;font-size:14px;min-height:44px}
.tsp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--n);color:#fff!important;border:1px solid var(--n);border-radius:4px;padding:10px 18px;font:600 14px/1.2 inherit;font-family:inherit;cursor:pointer;text-decoration:none!important;min-height:42px;white-space:nowrap}
.tsp-btn:hover{background:#163257}
.tsp-btn.ghost{background:#fff;color:var(--n)!important;border-color:var(--ln)}
.tsp-btn.ghost:hover{border-color:var(--n)}
.tsp-btn.sm{padding:6px 12px;font-size:13px;min-height:34px}
.tsp-tablewrap{overflow-x:auto;border:1px solid var(--ln);background:#fff}
.tsp-table{width:100%;border-collapse:collapse;min-width:760px;margin:0}
.tsp-table th{background:var(--bg);color:var(--mut);font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;text-align:left;padding:10px 14px;border:0;border-bottom:1px solid var(--ln)}
.tsp-table td{padding:12px 14px;border:0;border-bottom:1px solid var(--ln);vertical-align:top}
.tsp-table small{display:block;color:var(--mut);font-size:12px;margin-top:2px}
.tsp-empty{text-align:center;color:var(--mut);padding:36px!important}
.tsp-actions{white-space:nowrap;text-align:right}
.tsp-actions .tsp-btn{margin-left:4px}
.tsp-link{background:none;border:0;padding:0;color:var(--n);font:700 14px inherit;font-family:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.tsp-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 8px;border-radius:999px;background:#E8ECF2;color:#3A4556}
.tsp-badge.s-sent{background:#E3EEFB;color:#174A85}
.tsp-badge.s-accepted{background:#E2F3E8;color:#1D6B3A}
.tsp-badge.s-declined{background:#F7E6E6;color:#8A2B2B}
.tsp-edhead{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:18px 0}
.tsp-edhead h2{margin:0;flex:1 1 auto;font-size:22px;color:var(--n)}
.tsp-edhead h2 span{color:var(--g);font-size:16px;font-weight:600;margin-left:6px}
.tsp-edactions{display:flex;flex-wrap:wrap;gap:8px}
.tsp-grid{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.tsp-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:18px}
.tsp-side{flex:1 1 300px;min-width:0}
.tsp-grid.one{flex-direction:column;align-items:stretch}
.tsp-card{background:#fff;border:1px solid var(--ln);padding:18px 20px}
.tsp-card.sticky{position:sticky;top:110px}
.tsp-card h3{margin:0 0 14px;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--n);display:flex;align-items:center;gap:10px}
.tsp-card h3::after{content:"";flex:1;height:1px;background:var(--g)}
.tsp-row{display:flex;flex-wrap:wrap;gap:12px 14px;margin-bottom:10px}
.tsp-row.tight{gap:10px}
.tsp-f{display:flex;flex-direction:column;gap:4px;flex:1 1 180px;min-width:0;margin:0}
.tsp-f.sm{flex:0 1 130px}
.tsp-f.xs{flex:0 1 90px}
.tsp-f.grow{flex:3 1 220px}
.tsp-f.inline{display:inline-flex;vertical-align:middle;margin-left:6px}
.tsp-f>span{font-size:11px;font-weight:600;letter-spacing:.6px;color:var(--mut);text-transform:uppercase}
.tsp-f input,.tsp-f select,.tsp-f textarea{width:100%;padding:9px 10px;border:1px solid var(--ln);border-radius:4px;font:inherit;font-size:14px;color:var(--ink);background:#fff;min-height:42px;margin:0}
.tsp-f textarea{min-height:0;resize:vertical}
.tsp-f input:focus,.tsp-f select:focus,.tsp-f textarea:focus,.tsp-search input:focus{outline:2px solid var(--g);outline-offset:1px;border-color:var(--g)}
.tsp-f output{display:flex;align-items:center;min-height:42px;font-weight:600}
.tsp-leg,.tsp-extra,.tsp-crew{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:10px 0;border-bottom:1px dashed var(--ln)}
.tsp-leg:last-of-type,.tsp-extra:last-of-type{margin-bottom:12px}
.tsp-legno{width:28px;height:28px;border-radius:50%;background:var(--n);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;margin-bottom:7px}
.tsp-role{flex:0 0 230px;font-weight:600;color:var(--n);padding-bottom:12px}
.tsp-x{width:42px;height:42px;border:1px solid var(--ln);background:#fff;border-radius:4px;color:#8A2B2B;font-size:20px;line-height:1;cursor:pointer}
.tsp-x:hover{border-color:#8A2B2B}
.tsp-chips{display:flex;flex-wrap:wrap;gap:8px}
.tsp-chip{background:var(--bg);border:1px solid var(--ln);border-radius:999px;padding:8px 14px;font:600 13px inherit;font-family:inherit;color:var(--n);cursor:pointer;min-height:38px}
.tsp-chip:hover{border-color:var(--n)}
.tsp-check{display:inline-flex;align-items:center;gap:8px;font-weight:600;margin:6px 0}
.tsp-check input{width:18px;height:18px}
.tsp-totals dl{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:16px 0;padding:14px 0;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.tsp-totals dt{color:var(--mut);margin:0}
.tsp-totals dd{margin:0;text-align:right;font-weight:600}
.tsp-totals .tot{color:var(--n);font-size:18px;font-weight:700;padding-top:6px;border-top:2px solid var(--g)}
.tsp-warn{background:#FFF6E5;border-left:3px solid var(--g);padding:8px 10px;font-size:13px;margin:0 0 14px}
.tsp-muted{color:var(--mut);font-size:13px;margin:6px 0}
.tsp-muted.inline{align-self:center;flex:1 1 220px}
.tsp-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--n,#0B1F3A);color:#fff;padding:12px 20px;border-radius:6px;font:600 14px Inter,Arial,sans-serif;z-index:99999;box-shadow:0 8px 24px rgba(0,0,0,.2);transition:opacity .4s}
.tsp-toast.bad{background:#8A2B2B}
.tsp-toast.out{opacity:0}
/* Override theme form styles inside the portal */
.tsp-app .tsp-f input,.tsp-app .tsp-f select,.tsp-app .tsp-f textarea,.tsp-app .tsp-search input,.tsp-login input[type=text],.tsp-login input[type=password]{color:#1B2433!important;background:#fff!important;font-size:15px!important;height:auto!important;padding:9px 10px!important;border:1px solid #C3CBD6!important;border-radius:4px!important}
.tsp-app .tsp-f input::placeholder,.tsp-app .tsp-f textarea::placeholder,.tsp-app .tsp-search input::placeholder{color:#6B7486!important;opacity:1}
.tsp-ffbox{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;flex:1 1 100%;margin-left:38px}
.tsp-grid.one .tsp-ffbox{margin-left:0;margin-top:4px}
.tsp-check.sm{font-weight:500;font-size:13px;margin:0}
.tsp-check.sm input{width:18px;height:18px;margin:0}
.tsp-ff{text-decoration:none!important}
.tsp-ok{background:#E9F5EE;border-left:3px solid #1D6B3A;color:#1D5A33;padding:8px 10px;font-size:13px;margin:0 0 14px}
@media (max-width:700px){.tsp-ffbox{margin-left:0}}
@media (max-width:700px){.tsp-role{flex-basis:100%;padding-bottom:0}.tsp-card.sticky{position:static}.tsp-top{padding:12px 14px}}
