:root {
    --blue: #079bd8;
    --blue-dark: #0879ad;
    --blue-soft: #eaf7fc;
    --ink: #20272d;
    --muted: #68747d;
    --line: #dfe6ea;
    --panel: #ffffff;
    --canvas: #f5f8fa;
    --success: #237a58;
    --success-bg: #eaf7f1;
    --pending: #9b6119;
    --pending-bg: #fff4dd;
    --danger: #b44444;
    --shadow: 0 12px 34px rgba(28, 54, 68, .09);
    --radius: 16px;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.topbar { height: 76px; background: #fff; border-bottom: 1px solid var(--line); padding: 0 max(24px, calc((100vw - 1420px) / 2)); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 30; }
.brand { display: inline-flex; align-items: center; gap: 16px; text-decoration: none; }
.brand img { width: 190px; height: auto; display: block; }
.brand > span { border-left: 1px solid var(--line); padding-left: 16px; font-size: 14px; font-weight: 700; color: #58636b; letter-spacing: .01em; }
.user-menu { display: flex; align-items: center; gap: 14px; }
.user-menu > div { display: grid; text-align: right; line-height: 1.25; }
.user-menu strong { font-size: 14px; }
.user-menu small { color: var(--muted); margin-top: 3px; }
.user-menu form { margin: 0; }
.icon-button, .close-button { width: 42px; height: 42px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: #52616b; text-decoration: none; cursor: pointer; }
.icon-button:hover, .close-button:hover { border-color: #bedae7; color: var(--blue-dark); background: var(--blue-soft); }
.icon-button svg { width: 20px; }
.main-nav { height: 54px; display: flex; align-items: flex-end; gap: 30px; padding: 0 max(24px, calc((100vw - 1420px) / 2)); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); position: sticky; top: 76px; z-index: 29; }
.main-nav a { height: 54px; padding: 18px 2px 14px; color: #64717a; font-size: 14px; font-weight: 700; text-decoration: none; border-bottom: 3px solid transparent; }
.main-nav a:hover { color: var(--ink); }
.main-nav a.active { color: var(--blue-dark); border-color: var(--blue); }

.app-shell, .tech-shell { width: min(1420px, calc(100% - 48px)); margin: 0 auto; padding: 34px 0 64px; }
.tech-shell { width: min(1000px, calc(100% - 48px)); }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.page-heading h1 { margin: 3px 0 7px; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; letter-spacing: -.035em; }
.page-heading p:not(.eyebrow) { margin: 0; color: var(--muted); }
.eyebrow { margin: 0; color: var(--blue-dark); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 17px; border: 1px solid transparent; border-radius: 11px; font-weight: 750; font-size: 14px; text-decoration: none; cursor: pointer; white-space: nowrap; }
.button svg { width: 19px; }
.button-primary { background: var(--blue); border-color: var(--blue); color: #fff; box-shadow: 0 7px 16px rgba(7,155,216,.2); }
.button-primary:hover { background: var(--blue-dark); border-color: var(--blue-dark); }
.button-secondary { background: #fff; border-color: var(--line); color: #46545e; }
.button-secondary:hover { border-color: #b9d4e0; color: var(--blue-dark); }
.button-large { min-height: 51px; width: 100%; font-size: 15px; }

.flash { margin: 0 0 22px; padding: 14px 17px; border-radius: 12px; font-size: 14px; font-weight: 650; border: 1px solid; }
.flash-success { color: var(--success); background: var(--success-bg); border-color: #bfe2d2; }
.flash-error { color: var(--danger); background: #fff1f1; border-color: #efcccc; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metric-card { min-height: 111px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 19px 21px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: 0 2px 5px rgba(28,54,68,.025); }
.metric-card span { color: var(--muted); font-size: 13px; font-weight: 650; }
.metric-card strong { font-size: 31px; line-height: 1; letter-spacing: -.03em; }
.dashboard-metrics { margin-bottom: 20px; }
.work-card, .summary-section { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.work-toolbar { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.segmented-control { display: inline-flex; padding: 4px; border-radius: 11px; background: #edf2f4; }
.segmented-control a { min-width: 90px; padding: 9px 15px; border-radius: 8px; color: var(--muted); text-decoration: none; font-size: 13px; font-weight: 750; text-align: center; }
.segmented-control a.active { background: #fff; color: var(--ink); box-shadow: 0 2px 7px rgba(30,55,66,.1); }
.search-form { margin: 0; }
.search-input { width: min(320px, 40vw); height: 43px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 11px; padding: 0 13px; background: #fff; }
.search-input:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7,155,216,.1); }
.search-input svg { width: 18px; color: #829099; }
.search-input input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); }
.bucket { padding: 0 20px 24px; }
.bucket + .bucket { border-top: 1px solid var(--line); }
.bucket-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 21px 4px 13px; }
.bucket-heading h2 { margin: 0; font-size: 17px; letter-spacing: -.01em; }
.bucket-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.bucket-heading > span { min-width: 30px; height: 30px; padding: 0 8px; display: grid; place-items: center; border-radius: 99px; background: #edf2f4; color: #5b6870; font-size: 12px; font-weight: 800; }
.bucket-now .bucket-heading h2 { color: #854f19; }
.table-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.mobilisation-table { width: 100%; border-collapse: collapse; min-width: 800px; }
.mobilisation-table th { height: 42px; padding: 0 15px; color: #77848d; background: #f8fafb; border-bottom: 1px solid var(--line); text-align: left; font-size: 10px; letter-spacing: .075em; text-transform: uppercase; }
.mobilisation-table td { height: 68px; padding: 0; border-bottom: 1px solid #edf1f3; font-size: 13px; }
.mobilisation-table tr:last-child td { border-bottom: 0; }
.mobilisation-table tbody tr:hover { background: #f9fcfd; }
.tech-link, .cell-link { min-height: 68px; height: 100%; display: flex; align-items: center; padding: 10px 15px; text-decoration: none; }
.tech-link { flex-direction: column; align-items: flex-start; justify-content: center; }
.tech-link strong { font-size: 14px; color: #263139; }
.tech-link span { max-width: 260px; margin-top: 4px; color: var(--muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.row-open { width: 36px; height: 36px; display: grid; place-items: center; margin: 0 10px 0 4px; border-radius: 9px; color: var(--blue-dark); background: var(--blue-soft); text-decoration: none; font-size: 25px; line-height: 1; }
.status { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 99px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.status > span { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-complete { color: var(--success); background: var(--success-bg); }
.status-pending { color: var(--pending); background: var(--pending-bg); }

.summary-section { padding: 25px; margin-bottom: 20px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-heading h2 { margin: 4px 0 0; font-size: 23px; }
.section-heading > span { color: var(--muted); font-size: 13px; }
.metric-grid-wide { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.metric-grid-wide .metric-card { min-height: 118px; padding: 18px; }
.metric-grid-wide .metric-card strong { font-size: 29px; }
.forecast-section { border-top: 4px solid var(--blue); }
.compact-metrics .metric-card { background: #f8fbfc; box-shadow: none; }
.month-picker { display: flex; align-items: flex-end; gap: 9px; }
.month-picker label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 750; }
.month-picker input { height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fff; }
.history-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 4px 2px; }
.history-links > span { margin-right: 4px; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.history-links a { padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: #53616a; font-size: 12px; font-weight: 700; text-decoration: none; }
.history-links a.active { color: #fff; background: var(--blue); border-color: var(--blue); }

.overlay { position: fixed; inset: 0; z-index: 100; padding: 24px; display: grid; place-items: center; overflow: auto; background: rgba(18,31,39,.55); backdrop-filter: blur(5px); }
.modal { position: relative; width: min(590px, 100%); padding: 29px; background: #fff; border-radius: 20px; box-shadow: 0 28px 80px rgba(15,33,43,.25); }
.modal .close-button, .drawer-header .close-button { position: absolute; top: 19px; right: 19px; font-size: 24px; }
.modal h2 { margin: 5px 44px 10px 0; font-size: 26px; letter-spacing: -.025em; }
.modal > p:not(.eyebrow) { margin: 0 0 22px; color: var(--muted); line-height: 1.6; font-size: 14px; }
.stack-form { display: grid; gap: 17px; }
.file-drop { min-height: 164px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1.5px dashed #9fcfe2; border-radius: 14px; background: var(--blue-soft); color: var(--blue-dark); text-align: center; cursor: pointer; }
.file-drop:hover { border-color: var(--blue); background: #e2f5fc; }
.file-drop svg { width: 30px; margin-bottom: 5px; }
.file-drop strong { font-size: 15px; }
.file-drop span { color: #6f8792; font-size: 12px; }
.file-drop input { width: min(360px, 85%); margin-top: 8px; color: #55636c; font-size: 12px; }
.notice { display: flex; flex-direction: column; gap: 4px; padding: 13px 15px; border-left: 3px solid var(--blue); border-radius: 7px; background: #f1f9fc; font-size: 13px; }
.notice span { color: var(--muted); line-height: 1.45; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; }

.drawer-overlay { place-items: stretch end; padding: 0; }
.drawer { width: min(720px, 100%); min-height: 100%; background: #fff; box-shadow: -20px 0 55px rgba(17,34,44,.18); display: flex; flex-direction: column; animation: slide-in .18s ease-out; }
@keyframes slide-in { from { transform: translateX(30px); opacity: .6; } }
.drawer-header { position: relative; padding: 25px 76px 20px 27px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 4px 0 3px; font-size: 27px; letter-spacing: -.025em; }
.drawer-header > div > p:last-child { margin: 0; color: var(--muted); font-size: 13px; }
.record-form { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.drawer-body { flex: 1; overflow-y: auto; padding: 23px 27px 10px; }
.drawer-footer { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 15px 27px max(15px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(8px); }
.form-section { margin: 0 0 17px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; }
.form-section:disabled { opacity: .7; background: #f8fafb; }
.form-section legend { padding: 0 7px 0 0; font-size: 17px; font-weight: 800; }
.form-section legend span { width: 26px; height: 26px; display: inline-grid; place-items: center; margin-right: 8px; border-radius: 50%; background: var(--blue-soft); color: var(--blue-dark); font-size: 12px; }
.form-section > p { margin: -2px 0 17px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.form-section label:not(.check-card) { display: grid; gap: 7px; margin-bottom: 14px; color: #4e5b64; font-size: 12px; font-weight: 750; }
.form-section input[type="text"], .form-section input[type="date"], .form-section select, .form-section textarea, .login-form input { width: 100%; border: 1px solid #ccd7dc; border-radius: 10px; background: #fff; color: var(--ink); outline: none; }
.form-section input[type="text"], .form-section input[type="date"], .form-section select { height: 45px; padding: 0 12px; }
.form-section textarea { padding: 12px; resize: vertical; line-height: 1.45; }
.form-section input:focus, .form-section select:focus, .form-section textarea:focus, .login-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7,155,216,.1); }
.field-grid, .confirm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.check-card { min-height: 62px; display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }
.check-card:has(input:checked) { border-color: #8bcbe5; background: var(--blue-soft); }
.check-card input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--blue); }
.check-card span { display: grid; gap: 3px; }
.check-card strong { font-size: 12px; }
.check-card small { color: var(--muted); font-size: 10px; line-height: 1.25; }
.conditional-panel { display: none; margin: 2px 0 14px; padding: 15px; border-radius: 12px; background: #f5f9fb; }
.conditional-panel.is-visible { display: block; }
.conditional-panel.nested { margin-top: 8px; padding: 12px; background: #fff; border: 1px solid var(--line); }
.conditional-panel > label:last-child { margin-bottom: 0; }
.inline-check, .final-confirm { margin: 4px 0 2px; }
.final-confirm { border-color: #afd5e4; }

.login-body { min-height: 100vh; background: #fff; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, .85fr) minmax(500px, 1.15fr); }
.login-panel { width: min(480px, calc(100% - 60px)); margin: auto; padding: 46px 0; }
.login-logo { width: min(300px, 76%); display: block; margin-bottom: 64px; }
.login-copy h1 { max-width: 430px; margin: 7px 0 12px; font-size: clamp(34px, 4vw, 52px); line-height: 1.02; letter-spacing: -.047em; }
.login-copy > p:last-child { margin: 0 0 28px; color: var(--muted); }
.login-form { display: grid; gap: 16px; }
.login-form label { display: grid; gap: 7px; color: #4e5b64; font-size: 12px; font-weight: 750; }
.login-form input { height: 50px; padding: 0 14px; }
.login-help { margin: 20px 0 0; color: #849099; font-size: 12px; text-align: center; }
.login-art { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(40px, 7vw, 100px); color: #fff; background: radial-gradient(circle at 93% 27%, rgba(83,198,151,.8), transparent 34%), linear-gradient(145deg, #038bc9 0%, #02a6de 52%, #086fb2 100%); }
.login-art::before, .login-art::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }
.login-art::before { width: 560px; height: 560px; top: -130px; right: -240px; }
.login-art::after { width: 840px; height: 840px; top: -220px; right: -390px; }
.art-mark { position: absolute; top: clamp(50px, 8vw, 110px); right: clamp(50px, 8vw, 110px); width: 108px; height: 108px; display: grid; place-items: center; border: 4px solid #fff; border-radius: 18px; font-size: 90px; font-style: italic; font-weight: 800; line-height: 1; transform: rotate(-4deg); }
.login-art p { position: relative; z-index: 1; margin: 0; font-size: clamp(32px, 4vw, 62px); font-weight: 300; line-height: 1.08; letter-spacing: -.04em; }

.compact-heading { align-items: center; }
.tech-date-card { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 25px 28px; margin-bottom: 18px; border-radius: var(--radius); color: #fff; background: linear-gradient(120deg, var(--blue-dark), var(--blue)); box-shadow: 0 16px 34px rgba(7,121,173,.2); }
.tech-date-card > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.tech-date-card > div > span:first-child { width: 100%; color: rgba(255,255,255,.76); font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.tech-date-card strong { font-size: clamp(20px, 4vw, 29px); }
.tech-date-card .status { color: #fff; background: rgba(255,255,255,.16); }
.date-arrow { font-size: 28px; color: rgba(255,255,255,.65); }
.tech-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.detail-card { min-width: 0; padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.detail-card-head { display: flex; align-items: center; gap: 13px; padding-bottom: 19px; border-bottom: 1px solid var(--line); }
.detail-icon { width: 43px; height: 43px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; color: var(--blue-dark); background: var(--blue-soft); font-size: 22px; }
.detail-card-head > div:nth-child(2) { min-width: 0; flex: 1; }
.detail-card h2 { margin: 3px 0 0; font-size: 19px; overflow-wrap: anywhere; }
.details-list { margin: 5px 0 0; }
.details-list > div { display: grid; grid-template-columns: 120px 1fr; gap: 15px; padding: 14px 0; border-bottom: 1px solid #edf1f3; }
.details-list > div:last-child { border-bottom: 0; padding-bottom: 2px; }
.details-list dt { color: var(--muted); font-size: 12px; }
.details-list dd { margin: 0; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.read-only-note { margin: 18px 0 0; color: var(--muted); font-size: 12px; text-align: center; }
.empty-state { padding: 70px 30px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; text-align: center; }
.empty-state h2 { margin: 12px 0 6px; font-size: 20px; }
.empty-state p { margin: 0; color: var(--muted); }
.empty-icon { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto; border-radius: 50%; color: var(--success); background: var(--success-bg); font-size: 22px; }
.small-empty { margin: 20px; padding: 45px 20px; border: 0; box-shadow: none; }

.setup-card { width: min(560px, calc(100% - 38px)); margin: 8vh auto; padding: 34px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow); }
.setup-card img { width: 240px; margin-bottom: 36px; }
.setup-card h1 { margin: 5px 0 10px; font-size: 30px; letter-spacing: -.03em; }
.setup-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.requirement-list { display: grid; gap: 8px; margin-top: 22px; padding: 17px; border-radius: 12px; background: #f4f8fa; font-size: 13px; }
.requirement-list span { color: var(--muted); }

@media (max-width: 1100px) {
    .metric-grid-wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .login-shell { grid-template-columns: minmax(380px, 1fr) minmax(380px, .8fr); }
}

@media (max-width: 780px) {
    .topbar { height: 66px; padding: 0 16px; }
    .brand img { width: 145px; }
    .brand > span { display: none; }
    .user-menu > div { display: none; }
    .main-nav { top: 66px; height: 50px; padding: 0 16px; gap: 24px; }
    .main-nav a { height: 50px; padding-top: 16px; }
    .app-shell, .tech-shell { width: min(100% - 28px, 1420px); padding-top: 24px; }
    .page-heading { align-items: flex-start; flex-direction: column; margin-bottom: 20px; }
    .page-heading h1 { font-size: 29px; }
    .dashboard-heading .button { width: 100%; }
    .metric-grid, .metric-grid-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .metric-card, .metric-grid-wide .metric-card { min-height: 94px; padding: 15px; }
    .metric-card strong, .metric-grid-wide .metric-card strong { font-size: 27px; }
    .work-toolbar { align-items: stretch; flex-direction: column; gap: 11px; padding: 14px; }
    .segmented-control { width: 100%; }
    .segmented-control a { flex: 1; }
    .search-input { width: 100%; }
    .bucket { padding: 0 13px 18px; }
    .table-scroll { overflow: visible; border: 0; }
    .mobilisation-table, .mobilisation-table tbody { min-width: 0; display: block; }
    .mobilisation-table thead { display: none; }
    .mobilisation-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; margin-bottom: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
    .mobilisation-table td { height: auto; min-width: 0; display: block; padding: 0; border: 0; }
    .mobilisation-table td:first-child { grid-column: 1 / -1; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
    .mobilisation-table td:last-child { display: none; }
    .mobilisation-table td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: #87939a; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
    .tech-link, .cell-link { min-height: 0; padding: 0; display: block; }
    .tech-link { display: flex; }
    .tech-link strong { font-size: 16px; }
    .cell-link .status { padding-left: 0; background: transparent; }
    .summary-section { padding: 18px 14px; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .month-picker { width: 100%; display: grid; grid-template-columns: 1fr auto; }
    .month-picker label { min-width: 0; }
    .month-picker input { width: 100%; }
    .overlay { padding: 12px; }
    .modal { padding: 24px 20px; }
    .drawer { width: 100%; }
    .drawer-header { padding: 21px 68px 17px 18px; }
    .drawer-body { padding: 17px 14px 6px; }
    .drawer-footer { padding: 12px 14px max(12px, env(safe-area-inset-bottom)); }
    .form-section { padding: 16px 13px; }
    .field-grid, .confirm-grid { grid-template-columns: 1fr; }
    .login-shell { display: block; min-height: 100vh; padding: 25px 0; }
    .login-panel { width: min(480px, calc(100% - 38px)); padding: 25px 0; }
    .login-logo { width: 235px; margin-bottom: 52px; }
    .login-copy h1 { font-size: 37px; }
    .login-art { display: none; }
    .tech-date-card { grid-template-columns: 1fr; gap: 14px; padding: 22px; }
    .date-arrow { transform: rotate(90deg); justify-self: start; }
    .tech-grid { grid-template-columns: 1fr; }
    .detail-card { padding: 18px; }
}

@media (max-width: 430px) {
    .metric-grid, .metric-grid-wide { grid-template-columns: 1fr 1fr; }
    .metric-card { min-width: 0; }
    .metric-card span { font-size: 11px; }
    .mobilisation-table tr { grid-template-columns: 1fr; }
    .mobilisation-table td { margin-bottom: 10px; }
    .mobilisation-table td:first-child { margin-bottom: 11px; }
    .mobilisation-table td:nth-last-child(2) { margin-bottom: 0; }
    .form-actions, .drawer-footer { display: grid; grid-template-columns: 1fr 1fr; }
    .details-list > div { grid-template-columns: 100px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}


.inferred-source { width: 100%; color: rgba(255,255,255,.78); font-size: 10px; font-weight: 700; }
.field-source { color: var(--muted); font-size: 10px; font-weight: 650; }
.work-pattern-card { display: grid; grid-template-columns: minmax(190px,.7fr) 1.3fr; gap: 22px; margin: 0 0 18px; padding: 20px 21px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.work-pattern-heading { display: flex; align-items: center; gap: 12px; align-self: start; }
.work-pattern-heading h2 { margin: 3px 0 0; font-size: 18px; }
.work-pattern-heading > span { margin-left: auto; color: var(--muted); font-size: 11px; white-space: nowrap; }
.work-pattern-groups { display: grid; gap: 13px; }
.work-pattern-group { display: grid; gap: 8px; }
.work-pattern-group > strong { color: #52616c; font-size: 11px; }
.schedule-chip-list { display: flex; flex-wrap: wrap; gap: 7px; }
.schedule-chip { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; padding: 8px 10px; border: 1px solid #c9dce7; border-radius: 9px; color: var(--blue-dark); background: #f5f9fc; font-size: 11px; font-weight: 750; }
.schedule-chip b { display: inline-grid; place-items: center; min-width: 24px; height: 20px; padding: 0 4px; border-radius: 5px; color: #fff; background: var(--blue); font-size: 9px; }
.schedule-chip.work-night { color: #29455f; background: #eef3f8; border-color: #b9cad9; }
.schedule-chip.work-night b { background: #2d587a; }
.admin-work-pattern { display: grid; gap: 10px; margin: 14px 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.admin-work-pattern > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.admin-work-pattern > div:first-child strong { font-size: 13px; }
.admin-work-pattern > div:first-child span, .admin-work-pattern > p { margin: 0; color: var(--muted); font-size: 10px; }
.admin-shift-row { display: grid; grid-template-columns: 28px 1fr; align-items: start; gap: 9px; }
.admin-shift-row > b { display: grid; place-items: center; height: 28px; border-radius: 7px; color: #fff; background: var(--blue-dark); font-size: 9px; }
@media (max-width: 780px) {
    .work-pattern-card { grid-template-columns: 1fr; gap: 15px; padding: 17px; }
    .work-pattern-heading { width: 100%; }
    .admin-work-pattern > div:first-child { align-items: flex-start; flex-direction: column; }
}
.rest-days-card { display: flex; align-items: center; gap: 22px; margin: 0 0 18px; padding: 18px 21px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.rest-days-heading { min-width: 205px; display: flex; align-items: center; gap: 12px; }
.rest-days-heading h2 { margin: 3px 0 0; font-size: 18px; }
.rest-days-heading > span { margin-left: auto; color: var(--muted); font-size: 11px; white-space: nowrap; }
.rest-day-list { flex: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.rest-day-chip { padding: 9px 12px; border: 1px solid #b9ddeb; border-radius: 9px; color: var(--blue-dark); background: var(--blue-soft); font-size: 12px; font-weight: 800; }
.no-rest-days { margin: 0; color: var(--muted); font-size: 13px; }
.journey-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 13px; }
.journey-card { padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.journey-booking { margin: 8px 0 0 !important; padding: 0 !important; border: 0 !important; }
@media (max-width: 780px) {
    .inferred-source { width: 100%; color: rgba(255,255,255,.78); font-size: 10px; font-weight: 700; }
.field-source { color: var(--muted); font-size: 10px; font-weight: 650; }
.work-pattern-card { display: grid; grid-template-columns: minmax(190px,.7fr) 1.3fr; gap: 22px; margin: 0 0 18px; padding: 20px 21px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.work-pattern-heading { display: flex; align-items: center; gap: 12px; align-self: start; }
.work-pattern-heading h2 { margin: 3px 0 0; font-size: 18px; }
.work-pattern-heading > span { margin-left: auto; color: var(--muted); font-size: 11px; white-space: nowrap; }
.work-pattern-groups { display: grid; gap: 13px; }
.work-pattern-group { display: grid; gap: 8px; }
.work-pattern-group > strong { color: #52616c; font-size: 11px; }
.schedule-chip-list { display: flex; flex-wrap: wrap; gap: 7px; }
.schedule-chip { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; padding: 8px 10px; border: 1px solid #c9dce7; border-radius: 9px; color: var(--blue-dark); background: #f5f9fc; font-size: 11px; font-weight: 750; }
.schedule-chip b { display: inline-grid; place-items: center; min-width: 24px; height: 20px; padding: 0 4px; border-radius: 5px; color: #fff; background: var(--blue); font-size: 9px; }
.schedule-chip.work-night { color: #29455f; background: #eef3f8; border-color: #b9cad9; }
.schedule-chip.work-night b { background: #2d587a; }
.admin-work-pattern { display: grid; gap: 10px; margin: 14px 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.admin-work-pattern > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.admin-work-pattern > div:first-child strong { font-size: 13px; }
.admin-work-pattern > div:first-child span, .admin-work-pattern > p { margin: 0; color: var(--muted); font-size: 10px; }
.admin-shift-row { display: grid; grid-template-columns: 28px 1fr; align-items: start; gap: 9px; }
.admin-shift-row > b { display: grid; place-items: center; height: 28px; border-radius: 7px; color: #fff; background: var(--blue-dark); font-size: 9px; }
@media (max-width: 780px) {
    .work-pattern-card { grid-template-columns: 1fr; gap: 15px; padding: 17px; }
    .work-pattern-heading { width: 100%; }
    .admin-work-pattern > div:first-child { align-items: flex-start; flex-direction: column; }
}
.rest-days-card { align-items: flex-start; flex-direction: column; gap: 14px; padding: 17px; }
    .rest-days-heading { width: 100%; min-width: 0; }
    .journey-grid { grid-template-columns: 1fr; }
}


/* Manager-ready V2 */
.button-small { min-height: 38px; padding: 0 13px; font-size: 12px; }
.tech-heading-actions { display: flex; align-items: center; gap: 10px; }
.latest-import { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: -4px 0 18px; padding: 13px 17px; border: 1px solid #cde8d9; border-radius: 13px; background: #f2fbf6; color: #41524a; }
.latest-import > div { min-width: 0; display: flex; align-items: center; gap: 12px; }
.latest-import > div > div { min-width: 0; display: grid; gap: 3px; }
.latest-import strong { font-size: 13px; overflow-wrap: anywhere; }
.latest-import span { color: #6d7b74; font-size: 11px; }
.import-icon { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--success) !important; background: var(--success-bg); font-size: 15px !important; font-weight: 900; }
.filter-chips { display: flex; gap: 8px; padding: 12px 20px 2px; overflow-x: auto; scrollbar-width: thin; }
.filter-chips a { min-height: 36px; display: inline-flex; align-items: center; padding: 0 13px; border: 1px solid var(--line); border-radius: 99px; color: #5d6971; background: #fff; font-size: 11px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.filter-chips a.active { color: var(--blue-dark); border-color: #9bd3e9; background: var(--blue-soft); }
.missing-items { display: block; max-width: 190px; margin-top: 5px; color: #8d6a36; font-size: 9px; line-height: 1.25; }
.owner-chip { display: inline-flex; align-items: center; min-height: 25px; margin-left: 8px; padding: 0 9px; border-radius: 99px; color: var(--blue-dark); background: var(--blue-soft); font-size: 9px; font-weight: 800; vertical-align: middle; }
.confirmation-stamp { margin: 10px 2px 0 !important; color: #708089 !important; font-size: 10px !important; font-weight: 700; }
.inline-link { display: inline-block; margin-top: 8px; color: var(--blue-dark); font-size: 12px; font-weight: 800; text-decoration: none; }
.inline-link:hover { text-decoration: underline; }
.internal-notes { border-style: dashed; background: #fafcfd; }
.manager-footer { flex-wrap: wrap; }
.save-pending { border-color: #b7d5e2; color: var(--blue-dark); }

.standard-fields label:not(.check-card) { display: grid; gap: 7px; color: #4e5b64; font-size: 12px; font-weight: 750; }
.standard-fields label small { color: var(--muted); font-size: 10px; font-weight: 500; }
.standard-fields input[type="text"], .standard-fields input[type="email"], .standard-fields input[type="tel"], .standard-fields input[type="password"], .standard-fields input[type="date"], .standard-fields select, .standard-fields textarea { width: 100%; border: 1px solid #ccd7dc; border-radius: 10px; background: #fff; color: var(--ink); outline: none; }
.standard-fields input[type="text"], .standard-fields input[type="email"], .standard-fields input[type="tel"], .standard-fields input[type="password"], .standard-fields input[type="date"], .standard-fields select { height: 45px; padding: 0 12px; }
.standard-fields textarea { padding: 12px; resize: vertical; }
.standard-fields input:focus, .standard-fields select:focus, .standard-fields textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7,155,216,.1); }
.password-modal { width: min(510px,100%); }
.password-modal .standard-fields { gap: 15px; }

.technician-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 20px; }
.technician-toolbar > div { display: grid; gap: 4px; }
.technician-toolbar > div strong { font-size: 15px; }
.technician-toolbar > div span { color: var(--muted); font-size: 11px; }
.technician-table-wrap { padding: 20px; }
.technician-table { min-width: 920px; }
.technician-table .contact-cell { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.type-pill { display: inline-flex; padding: 7px 10px; border-radius: 99px; color: #4f6570; background: #eef3f5; font-size: 10px; font-weight: 800; }
.technician-drawer { width: min(690px,100%); }
.drawer-tabs { display: flex; gap: 5px; padding: 10px 27px 0; border-bottom: 1px solid var(--line); background: #fbfcfd; overflow-x: auto; }
.drawer-tabs a { min-height: 42px; display: inline-flex; align-items: center; padding: 0 13px; border-bottom: 3px solid transparent; color: var(--muted); font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.drawer-tabs a.active { color: var(--blue-dark); border-color: var(--blue); }
.form-section h3 { margin: 0 0 17px; font-size: 17px; }
.profile-active { align-self: end; min-height: 45px; margin-bottom: 14px; }

.import-preview-modal { width: min(760px,100%); max-height: calc(100vh - 32px); overflow-y: auto; }
.preview-totals { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; margin-bottom: 19px; }
.preview-totals article { min-width: 0; display: grid; gap: 6px; padding: 15px 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.preview-totals strong { font-size: 24px; }
.preview-totals span { color: var(--muted); font-size: 9px; line-height: 1.3; }
.name-matches { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.name-matches h3 { margin: 0 0 3px; font-size: 14px; }
.name-matches label { display: grid; grid-template-columns: minmax(150px,.8fr) minmax(200px,1.2fr); align-items: center; gap: 12px; padding-top: 9px; border-top: 1px solid #edf1f3; }
.name-matches label > span { display: grid; gap: 3px; }
.name-matches label strong { font-size: 12px; }
.name-matches label small { color: var(--muted); font-size: 10px; }
.name-matches select { width: 100%; height: 42px; padding: 0 10px; border: 1px solid #ccd7dc; border-radius: 9px; background: #fff; }
.technician-preview-modal { width: min(580px,100%); }
.preview-phone { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: #f5f8fa; }
.preview-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 16px; border-radius: 13px; color: #fff; background: linear-gradient(120deg,var(--blue-dark),var(--blue)); }
.preview-dates span { display: grid; gap: 5px; color: rgba(255,255,255,.76); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.preview-dates strong { color: #fff; font-size: 15px; text-transform: none; }
.preview-block { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.preview-block small { color: var(--blue-dark); font-weight: 900; letter-spacing: .1em; }
.preview-block > strong { display: block; margin-top: 5px; font-size: 15px; }
.preview-block p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

@media (max-width: 780px) {
    .main-nav { gap: 18px; }
    .main-nav a { flex: 1; min-width: 0; padding-left: 0; padding-right: 0; text-align: center; }
    .tech-heading-actions { width: 100%; justify-content: space-between; }
    .latest-import { align-items: flex-start; flex-direction: column; }
    .latest-import > span { padding-left: 44px; }
    .filter-chips { padding: 11px 14px 2px; }
    .technician-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .technician-metrics .metric-card:last-child { grid-column: 1 / -1; min-height: 74px; }
    .technician-toolbar { align-items: stretch; flex-direction: column; }
    .technician-table-wrap { padding: 12px; }
    .technician-table { min-width: 0; }
    .technician-table .contact-cell { max-width: none; white-space: normal; overflow-wrap: anywhere; }
    .drawer-tabs { padding-left: 14px; padding-right: 14px; }
    .owner-chip { display: flex; width: fit-content; margin: 7px 0 0 34px; }
    .preview-totals { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .name-matches label { grid-template-columns: 1fr; }
    .manager-footer { display: grid; grid-template-columns: 1fr 1fr; }
    .manager-footer .button-primary { grid-column: 1 / -1; grid-row: 1; }
    .manager-footer .save-pending { grid-column: 2; }
    .manager-footer > .button:first-child { grid-column: 1; }
}

@media (max-width: 430px) {
    .topbar { padding-left: 13px; padding-right: 13px; }
    .main-nav { padding: 0 10px; gap: 8px; }
    .main-nav a { font-size: 12px; }
    .tech-heading-actions { align-items: flex-start; flex-direction: column; }
    .tech-heading-actions .button { width: 100%; }
    .technician-metrics { grid-template-columns: 1fr 1fr; }
    .preview-dates { grid-template-columns: 1fr; }
    .import-preview-actions { grid-template-columns: 1fr; }
    .manager-footer { grid-template-columns: 1fr; }
    .manager-footer .button-primary, .manager-footer .save-pending, .manager-footer > .button:first-child { grid-column: 1; }
    .manager-footer .button-primary { grid-row: 1; }
    .manager-footer .save-pending { grid-row: 2; }
    .manager-footer > .button:first-child { grid-row: 3; }
}

.rest-editor { margin-top: 17px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafb; }
.rest-editor-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.rest-editor-heading > div { display: grid; gap: 3px; }
.rest-editor-heading strong { font-size: 13px; }
.rest-editor-heading span { color: var(--muted); font-size: 10px; }
.rest-editor-list { display: grid; gap: 8px; margin-bottom: 10px; }
.rest-editor-list:empty { margin: 0; }
.rest-editor-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.rest-editor-row input { margin: 0 !important; }
.remove-rest { min-height: 45px; padding: 0 12px; border: 1px solid #e4caca; border-radius: 9px; color: #9a4d4d; background: #fff; font-size: 11px; font-weight: 800; cursor: pointer; }
.rest-editor .final-confirm { margin-top: 11px; }
@media (max-width: 430px) {
  .rest-editor-heading { align-items: stretch; flex-direction: column; }
  .rest-editor-heading .button { width: 100%; }
  .rest-editor-row { grid-template-columns: 1fr; }
  .remove-rest { min-height: 38px; }
}

.ticket-upload { display: grid !important; gap: 6px; margin: 11px 0 0 !important; padding: 11px; border: 1px dashed #aed3e2; border-radius: 10px; color: var(--blue-dark) !important; background: var(--blue-soft); }
.ticket-upload input[type="file"] { width: 100%; color: #53656e; font-size: 11px; }
.ticket-upload small { color: var(--muted); font-size: 9px; font-weight: 500; }
.ticket-downloads { display: grid; gap: 8px; margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); }
.ticket-downloads > strong { font-size: 11px; }
.ticket-link { min-height: 39px; display: flex; align-items: center; gap: 9px; padding: 7px 10px; border: 1px solid #b9ddea; border-radius: 9px; color: var(--blue-dark); background: var(--blue-soft); font-size: 11px; font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.ticket-link span { font-size: 16px; }
.journey-booking > .ticket-link, [data-train-ticket-panel] > .ticket-link { margin-top: 8px; }
.flight-email-note { display: grid; gap: 4px; margin-bottom: 13px; padding: 12px; border-left: 3px solid var(--blue); border-radius: 8px; background: var(--blue-soft); }
.flight-email-note strong { font-size: 12px; }
.flight-email-note span { color: var(--muted); font-size: 10px; }
@media (max-width: 430px) {
  .ticket-upload { padding: 10px; }
  .ticket-link { width: 100%; }
}


/* MWS V3 workflow */
.dashboard-search{display:flex;justify-content:flex-end;margin:18px 0 14px}.dashboard-search .search-input{width:min(100%,390px)}
.dashboard-panel{margin-bottom:22px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(22,53,70,.05)}
.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:22px 24px 18px}.panel-heading h2{margin:3px 0 0;font-size:23px}.panel-heading p:not(.eyebrow){margin:6px 0 0;color:var(--muted);font-size:12px}.panel-heading>span{color:var(--muted);font-size:11px;font-weight:800}
.panel-tabs{display:flex;gap:4px;padding:0 24px;border-bottom:1px solid var(--line)}.panel-tabs a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;color:var(--muted);border-bottom:3px solid transparent;font-size:12px;font-weight:800;text-decoration:none}.panel-tabs a.active{color:var(--blue-dark);border-color:var(--blue)}.panel-tabs b{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:99px;background:#edf3f6;font-size:10px}.panel-tabs a.active b{color:var(--blue-dark);background:var(--blue-soft)}
.dashboard-panel .table-scroll{padding:0 18px 18px}.dashboard-panel .mobilisation-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.outstanding-panel{margin-bottom:42px}.rota-date-cell{display:grid;gap:4px}.rota-date-cell strong{font-size:12px}.rota-date-cell small{color:var(--muted);font-size:10px}.needs-review-row td{background:#fffaf0}.needs-review-row:hover td{background:#fff7e6}
.change-review{display:grid;gap:12px}.change-review-heading{display:flex;align-items:center;justify-content:space-between}.change-review-heading h3{margin:0}.change-review-heading span{color:var(--muted);font-size:11px;font-weight:800}.change-list{max-height:380px;overflow:auto;border:1px solid var(--line);border-radius:11px}.change-list table{width:100%;min-width:690px;border-collapse:collapse}.change-list th,.change-list td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;font-size:11px;vertical-align:top}.change-list th{position:sticky;top:0;z-index:1;color:var(--muted);background:#f7fafb;font-size:9px;letter-spacing:.05em;text-transform:uppercase}.change-list td:first-child{font-weight:800}.change-list td:first-child small{display:block;margin-top:4px;color:#9a6415;font-size:9px}.protected-change td{background:#fffaf0}.change-code{display:inline-flex;padding:5px 8px;border-radius:6px;font-weight:900}.change-code.before{color:#5c6d78;background:#edf2f4}.change-code.after{color:var(--blue-dark);background:var(--blue-soft)}.protected-ack{border-color:#e2bf7c;background:#fffaf0}.no-change-result{display:grid;gap:4px;padding:20px;color:#2f6850;background:#eff9f4;border:1px solid #c8e6d6;border-radius:11px}.no-change-result span{font-size:12px}
.review-alert{display:grid;gap:8px;margin-bottom:18px;padding:16px;color:#765315;background:#fff8e9;border:1px solid #e9c77f;border-radius:12px}.review-alert strong{font-size:14px}.review-alert span{font-size:11px;line-height:1.5}.review-alert label{display:flex;align-items:flex-start;gap:9px;margin:3px 0 0;font-size:11px;font-weight:800}.review-alert input{width:17px;height:17px;margin:0;accent-color:var(--blue)}
.not-required-field{display:grid;gap:5px;align-content:center;min-height:83px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8fafb}.not-required-field span{color:var(--muted);font-size:10px;font-weight:800}.not-required-field strong{font-size:15px}.not-required-field small{color:var(--muted);font-size:10px;line-height:1.4}
.directory-card .table-toolbar select{min-width:180px;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
@media(max-width:720px){.dashboard-search{justify-content:stretch}.dashboard-search .search-input{width:100%}.panel-heading{align-items:flex-start;padding:18px 16px 14px}.panel-heading h2{font-size:20px}.panel-heading>span{white-space:nowrap}.panel-tabs{padding:0 12px}.panel-tabs a{flex:1;justify-content:center;padding:0 8px}.dashboard-panel .table-scroll{padding:0 10px 10px}.change-list{max-height:55vh}.directory-card .table-toolbar select{width:100%}}


/* Final mobile fit */
@media (max-width:780px){
  .tech-date-card>div{display:grid;grid-template-columns:1fr;justify-items:start;gap:7px}
  .tech-date-card .status{max-width:100%;white-space:normal}
  .work-pattern-card{grid-template-columns:1fr;gap:15px;padding:17px}
  .work-pattern-heading{width:100%}
  .rest-days-card{align-items:flex-start;flex-direction:column;gap:14px;padding:17px}
  .rest-days-heading{width:100%;min-width:0}
}

/* MWS Planning V1 additions — retains the approved portal design language */
.status-done{color:var(--success);background:var(--success-bg)}
.status-due{color:#a93636;background:#fff0f0}
.status-upcoming{color:var(--pending);background:var(--pending-bg)}
.main-nav{gap:22px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.main-nav a{flex:0 0 auto;position:relative}
.nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 5px;border-radius:99px;color:#fff;background:var(--danger);font-size:9px}
.project-switcher{margin-left:auto;margin-right:20px}.project-switcher label{display:flex;align-items:center;gap:8px}.project-switcher label>span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.project-switcher select{height:40px;max-width:240px;padding:0 34px 0 11px;border:1px solid var(--line);border-radius:10px;background:#f8fafb;color:var(--ink);font-size:12px;font-weight:750}
.dashboard-totals{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 18px}.dashboard-totals .metric-card{min-height:104px}.dashboard-totals .metric-card:first-child{border-top:4px solid var(--success)}.dashboard-totals .metric-card:nth-child(2){border-top:4px solid var(--danger)}.dashboard-totals .metric-card:nth-child(3){border-top:4px solid var(--blue)}
.import-workspace,.import-review-page{padding:25px;margin-bottom:22px}.import-page-form{max-width:720px}.import-page-form>.button{justify-self:start}.import-workspace .file-drop{min-height:190px}.import-review-page .change-list{max-height:520px}.import-review-page .preview-totals{margin-bottom:22px}
.role-readonly{background:#f8fafb}.not-required-section{color:#dbe1e4;border-color:#2a3034;background:#2a3034}.not-required-section legend{color:#fff}.not-required-callout{display:grid;gap:5px}.not-required-callout strong{color:#fff;font-size:18px}.not-required-callout span{color:#b7c0c5;font-size:12px;line-height:1.5}.confirmed-date-field{margin-top:16px;padding:14px;border:1px solid #b9dfea;border-radius:11px;background:var(--blue-soft)}
.project-access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}.project-access legend{padding:0 7px;font-size:12px;font-weight:800}.project-access .check-card{margin:0}.profile-photo-preview{width:84px;height:84px;margin:0 0 15px;border:3px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--line),0 7px 18px rgba(27,55,70,.12)}.user-name-cell{display:inline-flex;align-items:center;gap:10px}.user-name-cell img,.avatar-fallback{width:34px;height:34px;border-radius:50%;object-fit:cover}.avatar-fallback{display:grid;place-items:center;color:var(--blue-dark);background:var(--blue-soft);font-size:12px;font-weight:900}
.operator-action-card,.support-compose-card,.notification-card{margin-top:18px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 7px 24px rgba(28,54,68,.05)}.operator-action-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid var(--blue)}.operator-action-card h2,.support-compose-card h2,.notification-card h2{margin:4px 0 7px;font-size:21px}.operator-action-card p:not(.eyebrow),.support-compose-card>div>p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px;line-height:1.55}.support-compose-card{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(320px,1.25fr);gap:25px}.support-compose{display:grid;gap:12px}.support-compose label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:750}.support-compose select,.support-compose textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.support-compose .button{justify-self:start}.mini-request-list{grid-column:1/-1;display:grid;gap:9px;padding-top:17px;border-top:1px solid var(--line)}.mini-request-list>div{display:grid;gap:3px;padding:11px 13px;border-radius:10px;background:#f7fafb}.mini-request-list span,.mini-request-list p{margin:0;color:var(--muted);font-size:11px}.notification-list{display:grid;gap:9px}.notification-list article{display:grid;gap:5px;padding:14px 15px;border:1px solid var(--line);border-radius:11px;background:#fff}.notification-list article.unread{border-left:4px solid var(--blue);background:#f7fcfe}.notification-list p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.notification-list small{color:#849099;font-size:10px}.manager-notifications article{grid-template-columns:1fr auto auto;align-items:center;gap:14px}.request-message{padding:15px;border-radius:10px;background:#f5f8fa;font-size:13px;line-height:1.65}.import-workspace+.workspace-card{margin-top:22px}.activity-card{margin-top:22px;padding:22px}.activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.activity-list article{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f9fbfc}.activity-list strong{font-size:12px}.activity-list span{color:var(--muted);font-size:10px}

@media(max-width:900px){.project-switcher label>span{display:none}.project-switcher{margin-right:10px}.brand>span{display:none}.brand img{width:165px}.support-compose-card{grid-template-columns:1fr}.dashboard-totals{grid-template-columns:1fr 1fr}.dashboard-totals .metric-card:last-child{grid-column:1/-1}.manager-notifications article{grid-template-columns:1fr auto}.manager-notifications small{grid-column:1/-1}}
@media(max-width:780px){.main-nav{gap:18px;padding:0 16px}.main-nav a{flex:0 0 auto;min-width:max-content;padding-left:2px;padding-right:2px;text-align:left}.project-switcher select{max-width:135px}.user-menu>div{display:none}.dashboard-totals{grid-template-columns:1fr}.dashboard-totals .metric-card:last-child{grid-column:auto}.operator-action-card{align-items:stretch;flex-direction:column}.operator-action-card form,.operator-action-card .button{width:100%}.support-compose-card{padding:17px}.project-access{grid-template-columns:1fr}.import-workspace,.import-review-page{padding:17px}.activity-list{grid-template-columns:1fr}}
@media(max-width:430px){.brand img{width:134px}.project-switcher{margin:0 4px 0 auto}.project-switcher select{width:104px;max-width:104px;padding-left:8px;font-size:10px}.topbar{gap:5px}.main-nav{gap:16px}.main-nav a{font-size:12px}.manager-notifications article{grid-template-columns:1fr}.manager-notifications .type-pill{justify-self:start}}

/* V1.1 manual planning, project transfers and multi-stay accommodation */
.add-rotation-modal{width:min(920px,calc(100vw - 30px));max-height:92vh;overflow:auto}.movement-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.movement-grid>label{margin:0}.date-editor,.transfer-editor,.accommodation-editor{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafb}.date-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.date-editor-heading>div{display:grid;gap:3px}.date-editor-heading strong{font-size:13px}.date-editor-heading small{color:var(--muted);font-size:10px}.date-editor-list,.accommodation-stay-list,[data-transfer-list]{display:grid;gap:8px}.date-editor-list:empty,.accommodation-stay-list:empty,[data-transfer-list]:empty{display:none}.date-editor-row{display:grid;grid-template-columns:1fr auto;gap:8px}.date-editor-row input,.transfer-editor-row input,.accommodation-stay-row input,.accommodation-stay-row select{margin:0!important}.date-editor-row button,.transfer-editor-row button,.accommodation-stay-row>button{min-height:42px;padding:0 11px;border:1px solid #e3caca;border-radius:9px;color:#944747;background:#fff;font-size:10px;font-weight:800;cursor:pointer}.transfer-editor-row{display:grid;grid-template-columns:1.1fr 1fr auto 1fr auto;align-items:center;gap:7px}.transfer-editor-row span{color:var(--muted);font-size:10px;font-weight:800}.accommodation-stay-row{display:grid;grid-template-columns:.8fr .8fr 1.3fr .7fr 1.4fr auto;align-items:end;gap:8px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff}.accommodation-stay-row label{display:grid;gap:5px;margin:0;color:var(--muted);font-size:9px;font-weight:800}.rotation-acceptance-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding:12px 14px;border-radius:10px;background:var(--blue-soft)}.archive-rotation-form{padding:0 24px 22px;text-align:right}.archive-rotation-form button{border:0;color:#9b4141;background:transparent;font-size:11px;font-weight:800;text-decoration:underline;cursor:pointer}.transfer-strip{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:18px;padding:18px 20px;border:1px solid #b8dfec;border-left:4px solid var(--blue);border-radius:var(--radius);background:var(--blue-soft)}.transfer-strip h2{margin:3px 0 0;font-size:20px}.transfer-list{display:flex;flex-wrap:wrap;gap:9px}.transfer-list article,.operator-stay-list article{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.transfer-list strong,.operator-stay-list strong{font-size:12px}.transfer-list span,.operator-stay-list span{font-size:11px}.transfer-list small,.operator-stay-list small{color:var(--muted);font-size:9px}.operator-stay-list{display:grid;gap:8px;margin-top:14px}.manual-conflicts{display:grid;gap:9px;padding:15px;border:1px solid #e4c37d;border-radius:12px;background:#fffaf0}.manual-conflicts h3,.manual-conflicts p{margin:0}.manual-conflicts p{color:var(--muted);font-size:11px;line-height:1.5}.manual-conflicts .check-card{margin:0}.rotation-accept-card{border-left-color:var(--success)}
@media(max-width:820px){.movement-grid{grid-template-columns:1fr}.accommodation-stay-row{grid-template-columns:1fr 1fr}.accommodation-stay-row .stay-details{grid-column:1/-1}.accommodation-stay-row>button{grid-column:1/-1}.transfer-strip{align-items:flex-start;flex-direction:column}.transfer-list{width:100%}.transfer-list article{width:100%}}
@media(max-width:520px){.date-editor-heading{align-items:stretch;flex-direction:column}.date-editor-heading .button{width:100%}.date-editor-row,.transfer-editor-row,.accommodation-stay-row{grid-template-columns:1fr}.transfer-editor-row span{display:none}.accommodation-stay-row .stay-details,.accommodation-stay-row>button{grid-column:auto}}

/* Muehlhan Mobilisation V2 */
.portal-lockup,.brand-lockup{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.portal-lockup img,.brand-lockup img{width:46px;height:46px;object-fit:contain}.portal-lockup>div,.brand-lockup>div{display:grid;line-height:1}.portal-lockup strong,.brand-lockup strong{font-size:19px;letter-spacing:-.035em;font-weight:450}.portal-lockup strong span,.brand-lockup strong span{color:var(--blue);font-weight:800}.portal-lockup small,.brand-lockup small{margin-top:5px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.portal-lockup-login{margin-bottom:64px}.portal-lockup-login img{width:58px;height:58px}.portal-lockup-login strong{font-size:23px}.art-mark-image{position:absolute;z-index:2;top:clamp(50px,8vw,105px);right:clamp(50px,8vw,105px);width:118px;height:118px;object-fit:contain;filter:brightness(0) invert(1)}
.status-done{color:var(--success);background:var(--success-bg)}.status-due{color:#ab3636;background:#fff0f0}.status-upcoming{color:#93601a;background:#fff3d8}.status-review{color:#8c3267;background:#fff0f8}.metric-review{border-top:4px solid #a23e79}.metric-due{border-top:4px solid var(--danger)}.metric-upcoming{border-top:4px solid #d39731}.metric-text{font-size:22px!important}.pill{display:inline-flex;align-items:center;width:fit-content;padding:6px 9px;border-radius:99px;color:#52636d;background:#edf3f5;font-size:10px;font-weight:800;white-space:nowrap}.pill-booked{color:var(--success);background:var(--success-bg)}.pill-pending{color:var(--pending);background:var(--pending-bg)}.pill-not_required,.pill-muted{color:#78858d;background:#edf1f3}.muted-copy{color:var(--muted);font-size:12px;line-height:1.55}.text-button{padding:0;border:0;color:var(--blue-dark);background:transparent;font-size:12px;font-weight:800;text-decoration:underline;cursor:pointer}.danger-link{color:#a94a4a}.field-label{display:block;margin-bottom:7px;color:#4e5b64;font-size:12px;font-weight:750}
.dashboard-range a{min-width:78px}.metric-grid .metric-card:first-child{border-top:4px solid var(--blue)}.important-row td{background:#fff9fc}.important-row:hover td{background:#fff4f9}.flat-table{border:0;border-radius:0}.flat-table .simple-table{min-width:940px}.empty-inline{display:grid;gap:5px;padding:22px;border:1px dashed #cfdde3;border-radius:12px;color:#5f6d75;background:#fafcfd}.empty-inline strong{color:var(--ink);font-size:14px}.empty-inline span{font-size:12px;line-height:1.5}
.simple-table{width:100%;border-collapse:collapse;min-width:760px}.simple-table th{height:42px;padding:0 14px;color:#77848d;background:#f8fafb;border-bottom:1px solid var(--line);text-align:left;font-size:10px;letter-spacing:.075em;text-transform:uppercase}.simple-table td{padding:13px 14px;border-bottom:1px solid #edf1f3;font-size:12px;line-height:1.45;vertical-align:top}.simple-table tr:last-child td{border-bottom:0}.simple-table td>strong,.simple-table td>span,.simple-table td>small{display:block}.simple-table td>small{margin-top:4px;color:var(--muted);font-size:10px}.simple-table tbody tr:hover{background:#f9fcfd}
.upload-section{border-top:4px solid var(--blue)}.upload-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px}.compact-drop{min-height:128px}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:11px 14px;border-radius:10px;background:#f6f9fa;color:var(--muted);font-size:11px}.selection-toolbar .inline-check{color:var(--ink);font-size:12px;font-weight:800}.selection-toolbar input{width:17px;height:17px;margin:0 7px 0 0;vertical-align:middle;accent-color:var(--blue)}.approval-list{display:grid;gap:12px}.approval-card{display:grid;grid-template-columns:auto 1fr;gap:15px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.approval-card:has(.approval-select input:checked){border-color:#8fcce4;background:#f7fcfe}.approval-select input{width:19px;height:19px;margin-top:4px;accent-color:var(--blue)}.approval-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.approval-head h3{margin:0;font-size:16px}.approval-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.change-summary{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0}.change-summary>span{padding:6px 8px;border-radius:7px;color:#52636c;background:#edf3f5;font-size:10px}.approval-blocked{border-color:#e4bed3;background:#fff9fc}.compact-check{max-width:420px;min-height:54px}.sticky-actions{position:sticky;z-index:4;bottom:0;margin:20px -25px -25px;padding:14px 25px;border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.tab-switch{display:inline-flex;margin-bottom:25px;padding:4px;border-radius:12px;background:#edf2f4}.tab-switch button{min-width:180px;padding:11px 18px;border:0;border-radius:9px;color:var(--muted);background:transparent;font-size:13px;font-weight:800;cursor:pointer}.tab-switch button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px rgba(30,55,66,.1)}.large-field{display:grid;gap:7px;color:#4e5b64;font-size:12px;font-weight:750}.large-field input,.large-field select,.large-field textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #ccd7dc;border-radius:10px;color:var(--ink);background:#fff}.large-field input:focus,.large-field select:focus,.large-field textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(7,155,216,.1)}.large-field small{color:var(--muted);font-weight:500}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:8px 0 13px}.section-title-row h3{margin:3px 0 0;font-size:20px}.rota-entry-list{display:grid;gap:9px}.rota-entry-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f9fbfc}.rota-entry-row label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:800}.rota-entry-row input,.rota-entry-row select{height:43px;padding:0 11px;border:1px solid #ccd7dc;border-radius:9px;background:#fff}.remove-row{width:43px;height:43px;color:#a94a4a}.picker-results{display:none;max-height:220px;margin-top:7px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow)}.picker-results.is-open{display:block}.picker-results button{width:100%;display:grid;gap:3px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.picker-results button:last-child{border-bottom:0}.picker-results button:hover{background:var(--blue-soft)}.picker-results strong{font-size:12px}.picker-results small{color:var(--muted);font-size:9px}.selected-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.selected-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:99px;color:var(--blue-dark);background:var(--blue-soft);font-size:11px;font-weight:800}.selected-chip button{padding:0;border:0;color:inherit;background:transparent;cursor:pointer}
.planner-metrics{margin-bottom:20px}.planner-table td:nth-child(2){min-width:220px}.planner-result-different td,.planner-result-unclear td,.planner-result-unknown td,.planner-result-missing td{background:#fffafc}.comparison{display:inline-flex!important;width:fit-content;padding:5px 8px;border-radius:99px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.comparison-match{color:var(--success);background:var(--success-bg)}.comparison-different,.comparison-missing{color:#9f3a3a;background:#fff0f0}.comparison-unclear,.comparison-unknown{color:#8c3267;background:#fff0f8}.comparison-local{color:#66747c;background:#eef2f3}
.drawer-wide{width:min(820px,100%)}.notice-important{margin-bottom:17px;border-left-color:#a23e79;background:#fff3fa}.notice-important strong{color:#7c2f5d}.rota-expectation{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:18px}.rota-expectation>div{display:grid;gap:5px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8fafb}.rota-expectation span{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.rota-expectation strong{font-size:12px}.stay-list{display:grid;gap:12px}.stay-row{position:relative}.stay-heading{display:flex;align-items:center;justify-content:space-between;margin:-4px 0 12px}.stay-heading strong{font-size:13px}.attachment-group{display:grid;gap:7px;margin-top:13px}.attachment-group>strong{font-size:11px}.attachment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}.attachment-card{min-width:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px;border:1px solid #b9ddea;border-radius:9px;color:var(--blue-dark);background:var(--blue-soft);text-align:left;cursor:pointer}.attachment-card>span{font-size:12px;font-weight:900}.attachment-card>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.attachment-card>small{font-size:9px}.reset-password-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;padding:15px 27px 22px;border-top:1px solid var(--line)}.reset-password-form label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800}.reset-password-form input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:9px}
[data-when],[data-when-method]{display:none}[data-when].is-visible,[data-when-method].is-visible{display:block}
.calendar-card{margin-bottom:18px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:center;margin-bottom:14px}.calendar-toolbar h2{margin:3px 0 0;font-size:23px}.month-arrow{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;color:var(--blue-dark);background:#fff;text-decoration:none;font-size:26px}.month-arrow:hover{background:var(--blue-soft)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{padding:4px;color:var(--muted);font-size:9px;font-weight:900;text-align:center;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:83px;display:grid;align-content:space-between;gap:2px;padding:7px;border:1px solid var(--line);border-radius:9px;background:#fafcfd;overflow:hidden}.calendar-day>div{display:flex;justify-content:space-between;color:#68767f}.calendar-day>div span{font-size:11px;font-weight:900}.calendar-day>div small{font-size:8px;text-transform:uppercase}.calendar-day>strong{font-size:15px;line-height:1.05;overflow-wrap:anywhere}.calendar-day>em{color:#61717a;font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase}.calendar-day.is-today{outline:2px solid var(--blue);outline-offset:1px}.calendar-day.code-day{border-color:#b9ddef;background:#edf8fd}.calendar-day.code-night{border-color:#a9b9d9;background:#eef1fb}.calendar-day.code-mob{border-color:#a7dec7;background:#effaf5}.calendar-day.code-demob{border-color:#e2c192;background:#fff7e8}.calendar-day.code-holiday{border-color:#d5c4e6;background:#f8f2fd}.calendar-day.code-sick{border-color:#ebbec0;background:#fff3f3}.calendar-day.code-rest{background:#f1f4f5}.calendar-day.long-code>strong{font-size:10px}.calendar-key{display:flex;flex-wrap:wrap;gap:8px 13px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.calendar-key span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.calendar-key b{width:25px;height:22px;display:grid;place-items:center;border-radius:5px;color:var(--ink);background:#edf2f4;font-size:8px}.operative-sections{display:grid;grid-template-columns:1fr 1fr;gap:18px}.operative-section{min-width:0;margin-bottom:0}.timeline-list{display:grid;gap:11px}.timeline-card{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.timeline-marker{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--blue);font-size:13px;font-weight:900}.demob-marker{background:#c28731}.stay-marker{color:var(--blue-dark);background:var(--blue-soft);font-size:18px}.timeline-content{min-width:0}.timeline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.timeline-head h3{margin:0;font-size:14px}.timeline-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.compact-details>div{grid-template-columns:82px 1fr;padding:10px 0}.portal-update{position:relative;margin-bottom:18px;padding-right:110px}.portal-update form{position:absolute;top:14px;right:15px}
.project-movement-list{display:grid;gap:7px;margin-bottom:12px}.project-movement-list article{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:11px 12px;border-left:3px solid var(--blue);border-radius:8px;background:var(--blue-soft)}.project-movement-list strong{font-size:12px}.project-movement-list span{font-size:11px}.project-movement-list small{grid-column:1/-1;color:var(--muted);font-size:9px}
.rota-code{display:inline-flex;align-items:center;gap:8px}.rota-code strong{width:34px;height:30px;display:grid;place-items:center;border-radius:7px;background:#edf2f4;font-size:10px}.rota-code small{color:var(--muted);font-size:10px}
.notification-card{display:grid!important;grid-template-columns:1fr auto;gap:16px;margin:0;box-shadow:none}.notification-card h3{margin:0 0 5px;font-size:14px}.notification-card p{margin:0 0 6px!important}.notification-card.unread{border-left:4px solid var(--blue)}.support-grid,.profile-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(400px,1.2fr);gap:18px}.support-grid .summary-section,.profile-grid .summary-section{margin:0}.support-list{display:grid;gap:10px;max-height:720px;overflow:auto}.support-card{padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}.support-card>p{margin:12px 0;color:#485760;font-size:12px;line-height:1.55}.support-card>small{color:var(--muted);font-size:9px}.support-head{display:flex;justify-content:space-between;gap:12px}.support-head>div{display:grid;gap:3px}.support-head small{color:var(--muted);font-size:9px}.support-response{margin:12px 0;padding:11px;border-radius:9px;background:var(--blue-soft)}.support-response strong{font-size:10px}.support-response p{margin:5px 0 0;font-size:11px}.support-update{display:grid;grid-template-columns:140px 1fr auto;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.support-update select,.support-update textarea{padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.profile-card{text-align:center}.profile-avatar{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 13px;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--blue-dark),var(--blue));font-size:29px;font-weight:800}.profile-card h2{margin:0 0 8px}.profile-card>.pill{margin:auto}.profile-card .details-list{text-align:left}
.quick-guides{margin-bottom:18px}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.guide-grid details{border:1px solid var(--line);border-radius:11px;background:#f9fbfc}.guide-grid summary{padding:14px;color:var(--ink);font-size:13px;font-weight:850;cursor:pointer}.guide-grid ol{margin:0;padding:0 22px 15px 38px;color:#53626b;font-size:11px;line-height:1.55}.guide-grid li+li{margin-top:7px}
.media-viewer{position:fixed;inset:0;z-index:300;display:none;grid-template-rows:auto 1fr;color:#fff;background:rgba(11,18,22,.96)}.media-viewer.is-open{display:grid}.media-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.15)}.media-toolbar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.media-toolbar>div{display:flex;gap:6px}.media-toolbar button,.media-toolbar a{min-width:38px;height:36px;display:grid;place-items:center;padding:0 10px;border:1px solid rgba(255,255,255,.24);border-radius:8px;color:#fff;background:rgba(255,255,255,.08);font-size:12px;font-weight:800;text-decoration:none;cursor:pointer}.media-stage{position:relative;min-height:0;overflow:hidden;touch-action:none;cursor:grab}.media-stage.is-dragging{cursor:grabbing}.media-canvas{width:100%;height:100%;display:grid;place-items:center;transform-origin:center;will-change:transform}.media-canvas img{max-width:92vw;max-height:86vh;object-fit:contain;user-select:none;pointer-events:none}.media-canvas iframe{width:94vw;height:88vh;border:0;border-radius:8px;background:#fff}.media-canvas video{max-width:94vw;max-height:88vh}
@media(max-width:1000px){.operative-sections{grid-template-columns:1fr}.calendar-day{min-height:75px}.support-grid,.profile-grid{grid-template-columns:1fr}}
@media(max-width:780px){.brand-lockup img{width:39px;height:39px}.brand-lockup strong{font-size:16px}.brand-lockup small{font-size:7px}.main-nav{scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.upload-row{grid-template-columns:1fr}.upload-row .button{width:100%}.selection-toolbar{align-items:flex-start;flex-direction:column}.approval-card{padding:14px}.approval-head{flex-direction:column}.sticky-actions{margin-left:-14px;margin-right:-14px;margin-bottom:-18px;padding:12px 14px}.tab-switch{width:100%}.tab-switch button{min-width:0;flex:1}.calendar-card{padding:10px}.calendar-grid{gap:3px}.calendar-day{min-height:67px;padding:5px;border-radius:7px}.calendar-day>strong{font-size:12px}.calendar-day>em{font-size:6px}.calendar-weekdays span{font-size:8px}.calendar-key{gap:6px 9px}.rota-expectation{grid-template-columns:1fr}.attachment-grid{grid-template-columns:1fr}.support-update{grid-template-columns:1fr}.reset-password-form{grid-template-columns:1fr}.portal-update{padding-right:15px}.portal-update form{position:static;margin-top:9px}.planner-metrics{grid-template-columns:repeat(2,1fr)}.guide-grid{grid-template-columns:1fr}}
@media(max-width:520px){.portal-lockup-login{margin-bottom:40px}.login-panel{width:min(100% - 36px,480px)}.calendar-day{min-height:58px}.calendar-day>div small,.calendar-day>em{display:none}.calendar-day>strong{font-size:10px}.calendar-day.long-code>strong{font-size:7px}.calendar-toolbar h2{font-size:19px}.rota-entry-row{grid-template-columns:1fr}.rota-entry-row .remove-row{width:100%}.field-grid{grid-template-columns:1fr}.section-title-row{align-items:stretch;flex-direction:column}.section-title-row .button{width:100%}.drawer-footer{display:grid;grid-template-columns:1fr 1fr}.drawer-footer .button-primary{grid-column:1/-1;grid-row:1}.media-toolbar{align-items:flex-start}.media-toolbar>div{flex-wrap:wrap;justify-content:flex-end}.media-toolbar [data-media-action="out"],.media-toolbar [data-media-action="in"]{display:none}}
