/* DanceMeshOps 0.2.2: modern workspace, retaining organisation brand tokens. */
:root{--bg:#f7f6f2;--line:#e9e6df;--muted:#74746e;--ink:#252822;--radius:16px;--shadow:0 4px 22px #272b2004}
body{font-size:14px;line-height:1.6;background:var(--bg)}svg{width:20px;height:20px;flex-shrink:0}h1,h2,h3{margin:0 0 12px}h1{font-size:clamp(30px,3vw,42px);letter-spacing:-1.2px}h2,.section h2{font:600 20px/1.3 Montserrat,Arial,sans-serif;letter-spacing:-.4px}h3{font:600 16px/1.4 Montserrat,Arial,sans-serif}p{margin:0 0 16px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:700;color:var(--accent);margin-bottom:10px}
.layout{grid-template-columns:246px minmax(0,1fr)}.sidebar{background:#fff;color:var(--ink);border:0;border-right:1px solid var(--line);padding:28px 18px;height:100vh;overflow:auto}.brand{margin-bottom:26px;letter-spacing:-.5px}.brand a{display:flex;align-items:center;gap:11px;min-width:0}.brand img{max-width:85px;max-height:50px;background:transparent;padding:0;object-fit:contain}.brand a>span:not(.brand-mark){font-size:16px;overflow-wrap:anywhere}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:.02em;color:var(--muted)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:43px;height:43px;background:var(--primary);border-radius:12px;font:700 27px Georgia,serif;color:#20251f}.brand-mark span{font-size:32px;color:#fff}.nav-label{font-size:9px;color:#92938b;letter-spacing:.12em;text-transform:uppercase;padding:16px 13px 8px}.nav a{display:flex;align-items:center;gap:12px;color:#696e62;letter-spacing:0;text-transform:none;font-size:12px;font-weight:500;padding:11px 13px;border-radius:10px;margin:2px 0}.nav a svg{width:18px;height:18px}.nav a:hover{background:#f5f4ef;color:var(--ink)}.nav a.active{background:#fff0df;color:#623a0e;font-weight:700;box-shadow:inset 3px 0 var(--primary)}.nav-bottom{border-top:1px solid var(--line);margin-top:22px;padding-top:13px}.sidebar-version{font-size:9px;color:var(--muted);padding:16px 13px 0}.signout{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#696e62;padding:11px 13px;cursor:pointer;font:500 12px Montserrat,Arial,sans-serif}.signout svg{width:18px}.main{padding:0 34px 24px;min-width:0;max-width:1700px;width:100%;margin:auto}.topbar{min-height:94px;padding:22px 0;margin-bottom:30px;gap:20px}.breadcrumb{font-size:10px;color:var(--muted);margin-bottom:4px}.breadcrumb span{padding:0 8px;color:#babbb3}.org{font-size:12px;font-weight:600;letter-spacing:0}.user-chip{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;flex-shrink:0}.user-chip small{display:block;font-size:9px;font-weight:400;color:var(--muted);text-transform:capitalize}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e6eadf;color:#47513c;font-size:14px}.card,.grid .card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);background:#fff}.section{margin-top:24px}.grid{gap:16px}.stat{font:600 34px/1.3 Montserrat,Arial,sans-serif;letter-spacing:-1.5px;margin:14px 0 4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;border-radius:9px;padding:12px 17px;min-height:44px;background:var(--primary);border:1px solid transparent;color:#24291f;line-height:1.4}.btn:hover{filter:brightness(.97);box-shadow:0 3px 10px #17171712}.btn.secondary,.btn.ghost{background:#fff;color:#41473b;border:1px solid #dedfd7}.btn:active{transform:translateY(1px)}.btn svg{width:17px;height:17px}.formgrid{gap:18px 22px;align-items:end;margin-top:18px}.formgrid>button{justify-self:start}.formgrid label{margin:0}label{font-size:11px;font-weight:600;color:#50554b}input,select,textarea{font-size:12px;line-height:1.5;border-radius:9px;padding:11px 12px;border:1px solid #dddfd6;background:#fdfdfa;margin-top:7px;color:var(--ink);max-width:100%}input:focus,select:focus,textarea:focus{background:white;border-color:var(--accent)}input[type=checkbox]{width:16px;height:16px;vertical-align:middle;margin-right:7px}textarea{min-height:110px}input[type=color]{height:46px}table{border-radius:0;overflow:visible}th{background:#f7f8f4;color:#767b6d;font:600 9px/1.5 Montserrat,Arial,sans-serif;letter-spacing:.05em;padding:13px 16px;white-space:nowrap}td{font-size:11px;padding:16px;border-bottom:1px solid #eff0eb;line-height:1.65}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fdfdfb}.table-scroll{width:100%;overflow-x:auto;margin-top:16px}.table-scroll table{min-width:600px}td .muted{font-size:10px}.badge{border-radius:7px;font-size:9px;font-weight:600;padding:5px 9px;white-space:nowrap;background:#eceee8;color:#606753}.status-approved,.status-recorded{background:#e6f1e5;color:#3b6638}.status-pending,.status-cancel_requested{background:#fff1d6;color:#885e17}.status-rejected,.status-cancelled{background:#f9e9e5;color:#a1513f}.status-draft,.status-returned{background:#ecedf5;color:#5a6188}.flash{padding:14px 18px;background:#fff7e8;border:1px solid #f0ddba;border-left:3px solid var(--primary);border-radius:10px;font-size:12px}.review-form{min-width:230px}.history-item{font-size:10px}.workflow-header{background:#fff;border:1px solid var(--line);padding:28px}.workflow-header h2{font:600 30px/1.25 'Playfair Display',Georgia,serif;margin-bottom:8px}.workflow-header p{font-size:12px;color:var(--muted);max-width:620px;margin-bottom:0}.workflow-header .eyebrow{margin-bottom:9px;color:var(--accent)}.workflow-header a{font-size:11px;text-decoration:underline}.metric{transition:transform .15s,box-shadow .15s}.metric:hover{transform:translateY(-2px);box-shadow:0 8px 25px #272b2009}.metric>.muted{font-size:11px}.metric-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#717768;gap:5px}.icon-tile{display:grid;place-items:center;border-radius:9px;width:32px;height:32px;background:#f4f4eb;color:#838b73}.icon-tile svg{width:17px}.metric p{font-size:9px;color:var(--muted);margin:0}.overview-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:8px 0 28px}.overview-hero p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0}.overview-hero .eyebrow{color:#818675}.scope-caption{font-size:9px;color:var(--muted);margin:10px 0 25px}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.quick-actions{margin-top:20px}.quick-actions>a{display:flex;align-items:center;gap:14px;padding:16px 0;border-top:1px solid #eeefe9}.quick-actions>a>svg:first-child{width:38px;height:38px;padding:10px;border-radius:10px;background:#f7f4eb;color:#817655}.quick-actions>a>svg:last-child{margin-left:auto;color:#929987;width:16px}.quick-actions strong,.upcoming-item strong{font-size:11px;font-weight:600}.quick-actions small,.upcoming-item small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.text-link{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#7e5b2d;text-decoration:none!important}.text-link svg{width:14px}.upcoming-item{display:flex;gap:14px;align-items:center;padding:17px 0;border-top:1px solid #eeefe9}.date-tile{display:grid;place-items:center;background:#f5f4ed;border-radius:10px;padding:6px 12px;font-size:20px;line-height:1.3;min-width:48px}.date-tile small{font-size:9px;margin:0}.empty-state{text-align:center;padding:32px 20px;color:var(--muted)}.empty-state svg{width:32px;height:32px;margin:0 auto 14px;color:#a4ad96}.empty-state h3{font-size:13px;color:#59634e}.empty-state p{font-size:11px;max-width:300px;margin:0 auto}.workspace-footer{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#91968a;padding-top:30px;margin-top:20px}.mobile-toggle{display:none}.skip-link{position:absolute;top:-100px;left:12px;z-index:10;background:white;padding:12px}.skip-link:focus{top:12px}:focus-visible{outline:3px solid #946126;outline-offset:3px}details summary{font-size:10px;color:#7e683f;padding:5px 0}.report-toolbar{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.report-meta{font-size:11px;color:var(--muted);margin-top:8px}
/* Branded sign-in */
.auth-body{background:#fbfaf6}.auth-layout{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.auth-story{position:relative;isolation:isolate;overflow:hidden;background:#26302a;color:#f9f7f0;padding:48px 60px;display:flex;flex-direction:column;justify-content:space-between}.auth-story:after{content:'';position:absolute;z-index:-1;width:470px;height:470px;border-radius:50%;border:1px solid #ffffff0f;right:-200px;bottom:-120px;box-shadow:0 0 0 50px #ffffff03,0 0 0 100px #ffffff03}.auth-brand{display:flex;align-items:center;gap:14px;font-size:18px;font-weight:600}.auth-brand img{max-width:145px;max-height:70px;object-fit:contain;background:#fff;border-radius:9px;padding:7px}.auth-intro{margin:65px 0;max-width:540px}.auth-intro .eyebrow{color:#d3c4a7}.auth-intro h1{font-size:clamp(42px,4.3vw,68px);line-height:1.13;letter-spacing:-2px;margin-bottom:26px}.auth-intro h1 em{font-weight:500;color:#f4b462}.auth-intro>p:not(.eyebrow){font-size:13px;color:#c0c8bc;max-width:340px;line-height:1.9}.auth-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.auth-tags span{padding:7px 10px;border:1px solid #ffffff24;border-radius:20px;font-size:9px;color:#d5dace}.auth-foot{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#a0ac9c}.auth-foot span{font-size:9px}.auth-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 40px}.auth-form{width:min(365px,100%)}.auth-form h2{font:600 36px/1.2 'Playfair Display',Georgia,serif;letter-spacing:-1px}.auth-form>.muted{font-size:12px;margin-bottom:34px}.auth-form .eyebrow{font-size:9px;line-height:1.7;max-width:350px}.auth-form label{margin-top:20px;font-size:11px}.auth-form input{height:48px;background:#fff}.auth-submit{width:100%;justify-content:space-between;margin-top:27px;padding:14px 18px}.auth-help{font-size:10px;line-height:1.9;color:var(--muted);margin-top:27px;padding-top:22px;border-top:1px solid var(--line)}.auth-powered{font-size:9px;color:#989d91;margin-top:60px}.report-print-header{display:none}
@media(min-width:901px){.organisation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.layout{grid-template-columns:220px minmax(0,1fr)}.main{padding:0 22px 20px}.dashboard-columns{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.auth-story{padding:40px}.auth-intro h1{font-size:50px}}
@media(max-width:900px){.layout{display:block}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:15px 20px}.brand{margin:0;justify-content:space-between}.brand small{font-size:9px}.brand-mark{width:34px;height:34px;font-size:22px}.nav{display:none;margin-top:16px}.nav.is-open{display:block}.mobile-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:white;cursor:pointer}.topbar{min-height:80px;margin-bottom:22px;padding:18px 0}.formgrid{grid-template-columns:1fr 1fr!important}.auth-layout{grid-template-columns:.85fr 1fr}.auth-story{padding:30px}.auth-intro h1{font-size:40px}.auth-tags{display:none}.auth-foot span{display:none}}
@media(max-width:620px){.main{padding:0 16px 20px}.topbar{display:flex;gap:12px}.org{font-size:10px}.user-chip>span:not(.avatar){display:none}.overview-hero{display:block}.overview-hero .btn{margin-top:20px}.card,.grid .card{padding:18px;border-radius:12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.stat{font-size:29px}.metric-heading{font-size:9px;align-items:flex-start}.icon-tile{display:none}.metric p{font-size:8px}.formgrid{grid-template-columns:1fr!important}.workflow-header{display:block}.workflow-header>div+div{margin-top:12px}.workflow-header h2{font-size:27px}.workspace-footer{display:block}.workspace-footer span{display:block;margin-top:5px}.section-heading{align-items:flex-start}.auth-layout{display:flex;flex-direction:column}.auth-story{padding:24px;min-height:0}.auth-intro{margin:28px 0 0}.auth-intro h1{font-size:31px;line-height:1.15;margin:0}.auth-intro h1 br{display:none}.auth-intro h1 em:before{content:' '}.auth-intro>p,.auth-foot{display:none}.auth-panel{padding:35px 25px;flex:1}.auth-form h2{font-size:30px}.auth-powered{margin-top:30px}.report-toolbar .btn{flex:1}.quick-actions small{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.sidebar,.topbar,.report-toolbar,.workspace-footer,.skip-link,form,.btn,.scope-caption{display:none!important}.main{max-width:none;padding:0}.layout{display:block}.report-print-header{display:block;margin-bottom:20px}.report-print-header img{max-height:45px;max-width:130px}.card{border:0;box-shadow:none;padding:0;break-inside:auto}.table-scroll{overflow:visible}table{min-width:0!important}th{color:#222;background:#eee}td,th{font-size:9px;padding:8px}a{text-decoration:none!important}body{background:white}.report-filters,.workflow-header{display:none}}
/* Legacy directory/setup tables remain scrollable on small screens. */
.main>.section:not(.grid){overflow-x:auto}.main>.section:not(.grid)>table{min-width:600px}
@media(max-width:620px){.organisation-grid{grid-template-columns:1fr!important}}
/* Flexible weekly activity sheet */
.ts-picker{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.ts-picker label{min-width:160px;flex:1}.ts-week-title{display:flex;justify-content:space-between;margin:26px 0 18px;gap:14px}.ts-week-title span{font-size:12px;color:var(--muted)}.ts-statistics{background:#f8f8f3;padding:20px;border-radius:12px}.ts-statistics span{font-size:10px;display:block}.ts-statistics strong{font-size:24px;display:block;letter-spacing:-1px;margin-top:5px}.ts-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:20px 0 12px}.ts-days>div{padding:12px 9px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.ts-days span{font-size:9px;color:var(--muted);display:block}.ts-days strong{font-size:12px;display:block;margin:8px 0}.ts-days i{display:block;background:var(--primary);height:3px;border-radius:3px;max-width:100%}.ts-days .today{background:#fff7ec;border-color:#ecc08a}.ts-entry-fields{display:grid;grid-template-columns:145px minmax(170px,1.4fr) minmax(130px,1fr) minmax(130px,1fr) 150px;gap:12px;align-items:end}.ts-time{border:0;margin:0;padding:0;display:flex;gap:8px;min-width:0}.ts-time legend{font-size:11px;font-weight:600;padding:0}.ts-time label{font-size:9px;flex:1;min-width:0}.ts-time input{padding:11px 8px}.ts-new-row{padding:18px 0;border-bottom:1px solid var(--line)}.ts-extra{max-width:700px}.ts-extra label{margin-top:12px}.ts-sheet-heading,.ts-sheet-line{display:grid;grid-template-columns:100px minmax(150px,1.4fr) minmax(130px,1fr) 100px 120px;gap:15px;align-items:center}.ts-sheet-heading{padding:12px 15px;background:#f7f8f4;font-size:9px;text-transform:uppercase;color:var(--muted);border-radius:8px;margin-top:20px}.ts-saved-row{padding:17px 15px;border-bottom:1px solid var(--line)}.ts-sheet-line{font-size:11px}.ts-sheet-line small{display:block;color:var(--muted);margin-top:3px}.ts-edit{margin-top:12px;background:#fbfaf6;border-radius:10px;padding:5px 12px}.ts-edit summary{font-weight:600}.ts-edit form{padding:10px 0}.ts-total-line{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:11px 0;border-bottom:1px solid var(--line)}.ts-total-line span{overflow-wrap:anywhere}.ts-total-line strong{white-space:nowrap}.ts-breakdowns{grid-template-columns:repeat(3,minmax(0,1fr))!important}#ts-new-total{font-size:11px;color:var(--muted);align-self:center}
@media(max-width:1250px){.ts-entry-fields{grid-template-columns:1fr 1fr}.ts-task{grid-column:auto}.ts-time{max-width:220px}.ts-sheet{overflow-x:auto}.ts-sheet-heading,.ts-sheet-line{min-width:640px}}
@media(max-width:620px){.ts-days{grid-template-columns:repeat(4,minmax(0,1fr))}.ts-entry-fields{grid-template-columns:1fr}.ts-breakdowns{grid-template-columns:1fr!important}.ts-week-title{display:block}.ts-sheet-heading{display:none}.ts-sheet-line{min-width:0;grid-template-columns:1fr 1fr;gap:10px}.ts-sheet-line>strong:nth-child(2){grid-column:1/-1;grid-row:2}.ts-saved-row{padding:16px 0}.ts-picker .btn{flex:1}.ts-statistics strong{font-size:20px}}
