*{box-sizing:border-box} :root{color-scheme:dark;--bg:#10110f;--card:#1a1b1c;--gold:#dabb78;--cream:#f3ead9;--muted:#aaa9a4;--line:#454643}body{margin:0;background:var(--bg);color:var(--cream);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button,.button{min-height:48px;border:0;border-radius:15px;padding:13px 19px;background:var(--gold);color:#141410;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button.outline,.outline{border:1px solid var(--gold);background:transparent;color:var(--gold)}button.quiet{background:none;color:var(--gold);padding:8px 0;min-height:36px}input,select,textarea{width:100%;padding:16px;color:var(--cream);background:#1b1d17;border:1px solid #4e503f;border-radius:13px;margin:8px 0 17px}input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}textarea{min-height:100px}label{font-size:.8rem;color:var(--gold);display:block;text-transform:uppercase;letter-spacing:.06em}p{line-height:1.5}small,.muted{color:var(--muted)}h1{font-size:2.35rem;line-height:1.12;margin:16px 0}h2{font-size:1.4rem;margin:12px 0}h3{font-size:1.05rem;margin:5px 0}.serif{font-family:Georgia,serif}.gold{color:var(--gold)}.login{max-width:470px;padding:48px 24px;margin:auto;min-height:100dvh}.brand{text-align:center;letter-spacing:.09em;font-weight:650}.login .brand{padding:45px 0 30px}.login .brand h1{font-weight:400;font-size:1.8rem;letter-spacing:.035em}.login .welcome{text-align:center;margin:40px 0}.login button.primary{width:100%;border-radius:32px;margin-top:20px}.login .foot{text-align:center;font-size:.75rem;color:var(--muted);margin-top:35px}.logo{width:95px;height:115px;object-fit:contain;display:block;margin:0 auto 22px}.shell{max-width:900px;margin:auto;padding:20px 22px 115px}.top{display:flex;align-items:center;justify-content:space-between;gap:15px}.top .brand{font-size:.85rem}.top button{font-size:.8rem}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;margin-top:24px}.sub{color:var(--muted);margin:8px 0 25px}.card{border:1px solid var(--line);background:linear-gradient(125deg,#1c1d1f,#171819);border-radius:17px;padding:20px;margin:14px 0}.card p{margin:8px 0}.row{display:flex;gap:16px;align-items:center;justify-content:space-between}.stack{display:flex;flex-direction:column;gap:9px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid .card{margin:0}.metric{font-size:2.1rem;font-weight:650;margin:12px 0 0}.pill{border:1px solid var(--gold);border-radius:25px;color:var(--gold);font-size:.75rem;padding:7px 11px;display:inline-block}.avatar{background:#353638;border-radius:50%;width:54px;height:54px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--cream);font-size:1.1rem}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.grow{flex:1}.full{width:100%}.spaced{margin-top:25px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.timer{font-size:3.5rem;font-family:Georgia,serif;font-variant-numeric:tabular-nums;margin:18px 0}.footer{text-align:center;font-size:.75rem;letter-spacing:.1em;margin:32px 0;color:var(--muted)}nav{position:fixed;bottom:0;left:0;right:0;background:#10110ff5;padding:10px 5px calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;border-top:1px solid #30312e;z-index:5}nav button{background:none;color:#a5a5a5;display:flex;flex-direction:column;font-weight:400;font-size:.73rem;padding:5px;gap:5px;border-radius:0;min-width:60px}nav button.active{color:var(--gold)}svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.period{display:grid;grid-template-columns:1fr 1fr;gap:12px}.period input{padding:12px;font-size:.9rem}.filter{display:flex;gap:9px;margin:20px 0;overflow-x:auto}.filter button{border-radius:25px;white-space:nowrap;font-size:.82rem}.filter .off{border:1px solid #5b5b57;background:none;color:var(--cream)}#notice{position:fixed;top:10px;left:12px;right:12px;max-width:700px;margin:auto;padding:16px;background:#303022;color:var(--cream);border:1px solid var(--gold);border-radius:13px;z-index:30;box-shadow:0 10px 40px #0008;white-space:pre-wrap}#busy{position:fixed;inset:0;background:#0008;z-index:20;display:grid;place-items:center}#busy[hidden],#notice[hidden]{display:none}#busy div{background:#25261f;border:1px solid var(--gold);padding:24px;border-radius:16px}dialog{background:var(--bg);color:var(--cream);border:1px solid var(--line);border-radius:18px;width:min(95%,700px);max-height:90dvh;padding:24px}dialog::backdrop{background:#000a}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}.test{font-size:.75rem;color:var(--muted);text-align:center;padding:12px}.error{color:#f0b7a9}iframe{width:100%;height:60dvh;border:0} @media(min-width:750px){nav{left:50%;transform:translateX(-50%);max-width:900px;width:100%}.shell{padding-top:30px}.login{padding-top:30px}} @media(max-width:360px){.shell{padding-left:15px;padding-right:15px}.metric{font-size:1.65rem}nav button{font-size:.65rem}}

/* Web Features 2 */
.check{display:flex;gap:12px;align-items:flex-start;text-transform:none;letter-spacing:normal;line-height:1.5;color:var(--cream);margin:18px 0}.check input{width:22px;height:22px;flex:0 0 auto;margin:0;accent-color:var(--gold)}#web-signature{display:block}dialog form{margin-top:20px}form .outline{margin-top:8px}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}

/* T&B White Logo Polish 1. Visual presentation only. */
:root{--bg:#10110f;--card:#1b1c1d;--cream:#f3eee3;--gold:#dabb78;--muted:#b1b0a9;--line:#3b3d3c}
html{background:var(--bg);scroll-padding-bottom:110px}
body{background:radial-gradient(ellipse at 50% -25%,#22231c 0,transparent 58%),var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,.button{border-radius:15px;min-height:48px;background:linear-gradient(115deg,#d6b46e,#e0c487);font-weight:650;box-shadow:0 2px 8px #0002;transition:background-color .15s ease,transform .12s ease,box-shadow .15s ease}
button:active:not(:disabled),.button:active{transform:scale(.985)}
button.outline,.outline{background:transparent;border-color:#bba16c;color:#e2c68c;box-shadow:none}
button.quiet{background:transparent;color:#e0c38b;box-shadow:none}
button:disabled{opacity:.5;transform:none;box-shadow:none}
input,select,textarea{border-color:#505149;border-radius:13px;background:#1a1c18;padding:15px 16px;margin-top:9px;margin-bottom:20px;line-height:1.4}
input::placeholder,textarea::placeholder{color:#a8a89f}
input:focus,select:focus,textarea:focus{border-color:#dabb78;outline:2px solid #dabb7855;outline-offset:2px}
label{font-size:.75rem;line-height:1.5;letter-spacing:.08em}
.shell{max-width:840px;padding:18px 22px calc(105px + env(safe-area-inset-bottom))}
.top{position:relative;justify-content:center;min-height:90px;margin-bottom:24px}
.top>.quiet{position:absolute;right:0;top:24px;padding:8px;font-size:.76rem}
.brand.tb-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;line-height:1.15;margin:auto;color:#faf9f6}
.tb-brand img{display:block;height:46px;width:auto;max-width:64px;object-fit:contain}
.tb-brand span{font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.4;color:#faf9f6}
.login{max-width:470px;padding:30px 26px 40px;display:flex;flex-direction:column;justify-content:center;min-height:100dvh}
.login .brand.tb-login-brand{display:flex;flex-direction:column;align-items:center;padding:14px 0 10px;letter-spacing:normal}
.tb-login-brand .logo{display:block;height:82px;width:auto;max-width:105px;object-fit:contain;margin:0 auto 14px}
.tb-login-brand .tb-brand-subtitle{font-size:12px;line-height:1.4;font-weight:600;color:#faf9f6;letter-spacing:.22em;margin:0}
.login .tb-login-brand h1.tb-workspace-title{font-size:1.7rem;font-weight:400;letter-spacing:.045em;line-height:1.25;margin:27px 0 0;color:var(--cream)}
.login .welcome{margin:32px 0 27px}
.login .welcome h2{font-size:1.7rem;font-weight:500;margin:0 0 10px}
.login .welcome p{font-size:1rem;margin:0;color:#b5b5ac}
.login form .primary{min-height:54px;margin-top:15px;border-radius:30px}
.login .actions{justify-content:space-between;gap:14px;margin-top:15px}
.login .actions .quiet{font-size:.86rem}
.login .foot{display:none}
h1{font-size:clamp(2rem,7.7vw,2.65rem);font-weight:650;letter-spacing:-.035em;line-height:1.12;margin:15px 0 10px}
h2{font-size:1.32rem;letter-spacing:-.02em;line-height:1.25;margin:12px 0}
h3{font-size:1.05rem;line-height:1.25;font-weight:620}
.serif{font-family:Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:-.035em}
.eyebrow{font-size:.7rem;letter-spacing:.15em;margin-top:12px;color:#dfc181}
.sub{font-size:1.02rem;line-height:1.5;color:#bcbcb4;margin:0 0 28px}
.card{background:linear-gradient(125deg,#1e1f20 0%,#191b1c 100%);border:1px solid #3d3f3f;border-radius:18px;padding:20px;margin:14px 0;box-shadow:0 5px 16px #00000012}
.card p{line-height:1.45;margin:8px 0}
.card small{font-size:.72rem;line-height:1.5;color:#b6b6af}
.card h2:first-child{margin-top:0}
.grid{gap:12px;margin:24px 0 28px}
.grid .card{min-height:132px;padding:17px;display:flex;flex-direction:column;justify-content:space-between}
.grid .card small{font-size:.65rem;letter-spacing:.08em;line-height:1.5;font-weight:600}
.metric{font-size:clamp(1.8rem,6vw,2.6rem);font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1.1;margin:12px 0 2px}
.timer{font-size:clamp(2.8rem,11vw,4.5rem);font-variant-numeric:tabular-nums;letter-spacing:-.055em;line-height:1.15;margin:22px 0}
.row{gap:14px;align-items:center}
.row .grow{min-width:0}
.row .grow h3{overflow-wrap:anywhere}
.row .quiet{font-size:1.65rem;padding:8px;flex:0 0 auto}
.avatar{width:57px;height:57px;background:linear-gradient(140deg,#424445,#2b2d2f);border:1px solid #535553;color:#efeadf;font-size:1rem;font-weight:550;box-shadow:none}
.avatar img{display:block;object-fit:cover;border-radius:50%}
.pill{border-color:#bda16b;font-size:.73rem;padding:7px 11px;line-height:1.2;color:#e6ca91;background:#dabb7808}
.filter{gap:9px;margin:22px 0}
.filter button{border-radius:28px;min-height:43px;padding:10px 16px;font-size:.8rem}
.filter .off{background:transparent;border-color:#585a56;color:#e4e0d7;box-shadow:none}
.period{gap:12px;background:#1a1c18;border:1px solid #3e4239;border-radius:16px;padding:14px;margin:20px 0 12px}
.period input{margin-bottom:0;background:#11130f;font-size:.85rem;padding:12px 9px;min-width:0}
.actions{gap:10px}
.actions button{font-size:.88rem}
.full.spaced{margin-top:24px;min-height:52px}
nav{max-width:840px;left:50%;transform:translateX(-50%);width:100%;padding:10px 10px calc(10px + env(safe-area-inset-bottom));border:0;box-shadow:0 -9px 28px #0003;background:#10110ff5;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);gap:4px}
nav button{flex:1;max-width:175px;min-width:0;min-height:61px;background:transparent;border-radius:15px;color:#adada7;font-weight:500;font-size:.7rem;line-height:1.2;padding:9px 4px 7px;gap:7px;box-shadow:none;letter-spacing:0}
nav button svg{width:24px;height:24px;stroke-width:1.65}
nav button.active{background:#dabb7814;color:#e2c386;box-shadow:inset 0 0 0 1px #dabb7826}
nav button.active svg{stroke-width:1.9}
.footer{font-size:.65rem;color:#a9a99e;letter-spacing:.13em;margin:30px 0 14px}
.test{display:none}
dialog{border-color:#4d5049;border-radius:22px;padding:24px 22px;max-width:720px;box-shadow:0 20px 70px #0008;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
dialog::backdrop{background:#000a;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
dialog #close-detail{width:100%;margin-top:25px;min-height:48px}
dialog h1{font-size:2rem}
dialog .row>.avatar{height:78px;width:78px;border-color:#bda16b}
#notice{background:#25281f;border-color:#a99262;color:#f3eee3;border-radius:15px;box-shadow:0 10px 35px #0005;font-size:.93rem;line-height:1.45;top:calc(10px + env(safe-area-inset-top))}
#busy div{border-color:#85764f;background:#24261e;border-radius:18px;color:#f3eee3}
#web-signature{border-color:#bda16b!important;border-radius:16px!important}
.check{font-size:.88rem!important;letter-spacing:normal!important;line-height:1.5!important}
.check input{width:23px;height:23px;margin:0!important}
@media(min-width:750px){.shell{padding:22px 36px 125px}.top{margin-bottom:30px}.card{padding:24px}.grid .card{padding:22px}.login{padding-top:35px;padding-bottom:35px}nav{padding-left:25px;padding-right:25px}}
@media(max-width:370px){.shell{padding-left:16px;padding-right:16px}.grid .card{padding:14px}.grid .metric{font-size:1.75rem}.top>.quiet{font-size:.68rem;right:-3px}.row{gap:10px}.avatar{width:48px;height:48px}.filter button{padding:10px 13px}.login{padding-left:22px;padding-right:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.brand.tb-dialog-brand{margin:0 auto 25px;gap:8px}.tb-dialog-brand img{height:42px}


/* T&B Detail Polish 1. Do not change brand/logo selectors or image assets. */
dialog[open]{display:flex;flex-direction:column;position:fixed;inset:0;width:min(100%,840px);height:100dvh;max-height:100dvh;max-width:840px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 22px calc(88px + env(safe-area-inset-bottom));border:0;border-radius:0;overflow:hidden;background:#10110f;box-shadow:0 0 70px #0008}
dialog::backdrop{background:#080908e8}
dialog #detail-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding:0 2px 24px}
dialog #close-detail{position:absolute;z-index:2;top:calc(22px + env(safe-area-inset-top));left:14px;width:auto!important;max-width:100px;min-height:42px;margin:0!important;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:#e0c38b;font-size:.88rem;box-shadow:none}
dialog #close-detail:hover{background:#dabb7812}
#tb-detail-navigation{flex:0 0 auto}
#tb-detail-navigation nav{position:absolute;bottom:0;left:0;right:0;transform:none;max-width:none;width:100%;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.tb-profile-view{padding-top:6px}
.tb-profile-view>.row:first-child{display:flex;flex-direction:column;align-items:center;gap:17px;text-align:center;margin:12px 0 8px}
.tb-profile-view>.row:first-child .avatar{width:100px;height:100px;min-width:100px;min-height:100px;border:2px solid #bda16b;padding:0;background:#343738;font-size:1.6rem}
.tb-profile-view>.row:first-child h2{font-size:1.65rem;line-height:1.2;margin:0 0 9px;letter-spacing:-.025em}
.tb-profile-view>.row:first-child p{margin:0;font-size:.9rem;color:#bcbcb3;overflow-wrap:anywhere}
.tb-profile-status{text-align:center;margin:7px 0 27px}
.tb-profile-status p{font-size:.88rem;margin:5px 0;line-height:1.4}
.tb-profile-status p:first-child{color:#c7c7bd}
.tb-profile-status small{font-size:.8rem;line-height:1.5;color:#adada5}
.tb-profile-view>.card{padding:21px;margin:14px 0;border-color:#414442;background:linear-gradient(130deg,#1f2121,#191b1b)}
.tb-profile-view>.card h2{font-size:1.15rem;margin-bottom:18px}
.tb-profile-view>.card p{font-size:.94rem;line-height:1.5;margin:13px 0;overflow-wrap:anywhere}
.tb-profile-view>.full{min-height:52px;margin-top:18px}
.tb-profile-view>button[data-action="web-access"]{display:block;margin:27px auto 4px;min-height:46px;width:auto;max-width:100%;border-color:#777267;color:#cfc8b9;background:transparent;font-size:.85rem;padding:12px 18px}
.tb-profile-view>button[data-action="web-access"]:focus-visible{outline:2px solid #dabb78}
.tb-timesheet-detail>.card,.tb-hours-page .shell>.card.row{border-radius:15px;padding:19px 18px;margin:12px 0;background:linear-gradient(115deg,#1d2020,#191b1c)}
.tb-timesheet-detail>.card.row h3,.tb-hours-page .card.row h3{font-size:.95rem;font-weight:600;line-height:1.4}
.tb-timesheet-detail>.card.row p,.tb-hours-page .card.row p{font-size:.8rem;line-height:1.5;color:#bbbdb5}
.tb-timesheet-detail .stack strong,.tb-hours-page .stack strong{font-size:1.1rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.tb-timesheet-detail .stack,.tb-hours-page .stack{align-items:flex-end;gap:5px}
.tb-timesheet-detail .metric,.tb-hours-page .metric{font-family:Georgia,'Times New Roman',serif;font-size:2.7rem;font-weight:600;line-height:1.2}
.tb-timesheet-detail .pill,.tb-hours-page .pill{font-size:.69rem;line-height:1.35;padding:6px 9px;max-width:100%;white-space:normal}
.tb-document-view>h1{margin-bottom:10px}
.tb-document-view>.sub{margin-bottom:23px}
.tb-document-view>h2{margin:29px 0 15px;font-size:1.25rem}
.tb-document-filters{display:flex;gap:9px;overflow-x:auto;padding:0 0 9px;margin:16px 0 8px;scrollbar-width:thin}
.tb-document-filters button{flex:0 0 auto;border:1px solid #575b54;border-radius:26px;min-height:42px;padding:10px 14px;font-size:.77rem;background:transparent;color:#e7e5dc;box-shadow:none;white-space:nowrap}
.tb-document-filters button[aria-pressed="true"]{background:#dabb78;color:#11140e;border-color:#dabb78;font-weight:650}
.tb-document-view>.card{border-radius:18px;padding:22px;margin:15px 0;background:linear-gradient(125deg,#202323,#191c1c)}
.tb-document-view>.card[hidden]{display:none}
.tb-document-view>.card h2{font-size:1.25rem;line-height:1.3;margin-bottom:13px}
.tb-document-view>.card>.pill{display:inline-flex;align-items:center;margin:2px 0 8px;font-size:.75rem;padding:7px 11px}
.tb-document-view>.card>.actions{margin:17px 0 0;gap:10px}
.tb-document-view>.card>.actions button{flex:1 1 140px;min-height:47px;font-size:.86rem}
.tb-document-view>.card>p{font-size:.86rem;line-height:1.55;color:#c2c4bb}
.tb-document-view .web-assign{padding-top:15px;margin-top:20px}
.tb-document-filter-empty{font-size:.9rem;padding:15px 0}
.tb-document-detail iframe{border-radius:12px;margin-top:20px;background:#20231d}
.tb-document-detail form{margin-top:22px}
.tb-document-detail form>.full{margin-top:22px;min-height:52px}
@media(min-width:750px){dialog[open]{padding-left:36px;padding-right:36px}dialog #close-detail{left:26px}.tb-profile-view>.row:first-child{margin-top:22px}.tb-profile-view>.card{padding:25px}.tb-document-view>.card{padding:26px}}
@media(max-width:370px){dialog[open]{padding-left:16px;padding-right:16px}dialog #close-detail{left:5px;font-size:.77rem;padding:9px 7px}.tb-profile-view>.card{padding:17px}.tb-document-view>.card{padding:18px}.tb-timesheet-detail>.card.row,.tb-hours-page .shell>.card.row{padding:15px 13px}.tb-timesheet-detail .row{gap:9px}.tb-document-filters button{padding:10px 12px;font-size:.73rem}}
@media(prefers-reduced-motion:reduce){dialog[open],#detail-body{scroll-behavior:auto}}

.tb-document-title{display:flex;align-items:flex-start;gap:12px}.tb-doc-icon{display:inline-flex;color:#dfc181;flex:0 0 26px;padding-top:1px}.tb-doc-icon svg{width:26px;height:29px}.tb-document-signed{border-color:#747d67!important;color:#d7dfca!important;background:#a1b3840a!important}.tb-document-pending{border-style:dashed!important}

:root{--gold:#dabb78;}
button:not(.outline):not(.quiet):not(.off):not([data-action="tab"]){background:#dabb78;}
