:root{color-scheme:dark;--navy:#101013;--ink:#f2f2f4;--muted:#a4a4af;--line:#333339;--bg:#111114;--surface:#1b1b20;--surface-raised:#222228;--accent:#ff6977;--action:#c72840;--teal:#ff6977;--blue:#ff6977;--red:#ff8b97;font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.65;color:var(--ink);background:var(--bg)}

[hidden]{display:none!important}
.upload{margin-top:1.4rem}

*{box-sizing:border-box}
body{margin:0}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.6}
button,input,select,textarea{border-radius:8px}
button{border:1px solid transparent;background:var(--navy);color:white;padding:.7rem 1.15rem;font-weight:700}
button:hover:not(:disabled){filter:brightness(1.1)}
button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}
button.danger{background:#361f28;color:var(--red);border-color:#663242}
button.positive{background:var(--teal)}
button.small{font-size:.875rem;padding:.4rem .8rem}
button.text{background:transparent;color:var(--muted);font-weight:400;padding:.4rem}
input,select,textarea{border:1px solid #42424c;background:var(--surface);color:var(--ink);width:100%;padding:.72rem .85rem;min-height:46px}
input[readonly]{background:#17171c;color:#aaaab6}
textarea{resize:vertical;min-height:100px}
input:focus,select:focus,textarea:focus{outline:2px solid #ff6977;outline-offset:2px}
button:focus-visible,a:focus-visible{outline:3px solid #ff6977;outline-offset:3px}
h1,h2,h3,p{margin:0}
h1{font-size:1.75rem;line-height:1.5;letter-spacing:-.6px}
h2{font-size:1.15rem}
h3{font-size:1rem}
.muted{color:var(--muted)}
.eyebrow{color:var(--teal);font-size:.875rem;font-weight:700}
.mono{font-family:Consolas,monospace;direction:ltr;unicode-bidi:embed;display:inline-block;letter-spacing:.2px}
.small-copy{font-size:.875rem}
.logo{width:42px;height:42px;flex-shrink:0}
.brand{display:flex;gap:.8rem;align-items:center}
.brand strong{font-size:1.18rem}
.brand small{display:block;color:#aaaab6;font-size:.8rem}
.sidebar{position:fixed;inset:0 0 0 auto;width:244px;background:var(--navy);color:#f2f2f4;padding:2rem 1.25rem;display:flex;flex-direction:column;z-index:5}
.sidebar .brand{padding:0 .5rem 2rem;border-bottom:1px solid #ffffff18}
.nav{display:grid;gap:.5rem;margin-top:1.75rem}
.nav a{padding:.8rem 1rem;border-radius:8px;color:#aaaab6;font-size:.94rem;display:flex;gap:.75rem;align-items:center}
.nav a.active{color:var(--navy);background:var(--accent);font-weight:700}
.nav a:hover{background:#ffffff14;color:white}
.nav a.active:hover{background:var(--accent);color:var(--navy)}
.nav svg{width:20px;height:20px}
.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff20;padding:1rem .5rem 0}
.sidebar-bottom p{color:#aaaab6;font-size:.8rem}
.sidebar-bottom strong{font-size:.9rem}
.workspace{margin-right:244px}
.topbar{min-height:81px;border-bottom:1px solid var(--line);background:var(--surface);padding:1rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.topbar-title{font-size:.9rem;color:var(--muted)}
.account{display:flex;align-items:center;gap:.8rem;font-size:.875rem}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#3c2029;color:var(--navy);font-weight:700}
.content{max-width:1280px;margin:auto;padding:2.25rem 2.5rem 4rem}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem}
.page-head p{color:var(--muted);margin-top:.4rem}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #00000020}
.panel-head{padding:1.3rem 1.5rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:.7rem}
.step-number{height:30px;width:30px;display:grid;place-items:center;border-radius:8px;background:#3c2029;color:var(--teal);font-size:.9rem;font-weight:700}
.panel-body{padding:1.5rem}
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:1.25rem;align-items:start}
.form-main{display:grid;gap:1.2rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.5rem}
.field{display:grid;gap:.4rem;align-content:start;font-size:.9rem;font-weight:700}
.field .help{font-weight:400;color:var(--muted);font-size:.8rem}
.field.wide{grid-column:1/-1}
.required{color:var(--red)}
.form-aside{position:sticky;top:1rem}
.guide{padding:1.4rem;background:#202026;border-radius:12px}
.guide h3{margin-bottom:1rem}
.guide ol{margin:0;padding-right:1.1rem;display:grid;gap:.9rem;font-size:.875rem;color:#b1b1bd}
.guide li::marker{color:var(--teal);font-weight:700}
.guide-note{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #38383f;font-size:.8rem;color:var(--muted)}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.notice{padding:.85rem 1rem;background:#29231a;border:1px solid #514330;color:#e8c584;border-radius:8px;font-size:.875rem;margin-bottom:1.3rem}
.notice.info{background:#24242e;border-color:#42424d;color:#c5c5d6}
.notice.success{background:#1d3027;color:#97d7b5;border-color:#365c49}
.error{color:var(--red);background:#361f28;border:1px solid #663242;border-radius:7px;padding:.8rem 1rem;margin:.8rem 0;font-size:.9rem}
.error:empty{display:none}
.items{display:grid;gap:.8rem}
.item-row{display:grid;grid-template-columns:minmax(150px,2fr) minmax(90px,.8fr) minmax(80px,.8fr) 42px;gap:.6rem;align-items:end}
.remove-item{height:46px;font-size:1.3rem;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--red)}
.add-item{margin-top:1rem}
.upload{border:1px dashed #595966;padding:1.1rem;border-radius:8px;background:#17171c}
.upload input{border:0;background:none;padding:0;min-height:0;margin-top:.7rem;font-size:.875rem}
.upload-count{margin-top:.5rem;font-size:.8rem;color:var(--muted)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.3rem}
.stat span{display:block;color:var(--muted);font-size:.875rem}
.stat strong{font-size:1.9rem;line-height:1.5;font-weight:600}
.stat.pending{border-top:3px solid #c89e58}
.stat.approved{border-top:3px solid var(--teal)}
.stat.rejected{border-top:3px solid #de687b}
.filters{display:flex;gap:.8rem;padding:1rem 1.3rem;border-bottom:1px solid var(--line)}
.filters input{max-width:420px}
.filters select{max-width:190px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;text-align:right;font-size:.9rem}
th{font-weight:400;color:var(--muted);font-size:.8rem;background:#17171c;white-space:nowrap}
td,th{padding:1rem 1.2rem;border-bottom:1px solid #303037}
tbody tr:last-child td{border-bottom:0}
td .sub{display:block;font-size:.8rem;color:var(--muted);margin-top:.2rem}
tbody tr:hover{background:#25252c}
.badge{font-size:.8rem;padding:.3rem .65rem;display:inline-flex;align-items:center;border-radius:5px;font-weight:700;white-space:nowrap}
.badge.pending{background:#332c20;color:#eacb91}
.badge.approved{background:#20372b;color:#a0dfb9}
.badge.rejected{background:#3c2029;color:#ffa3ae}
.badge.neutral{background:#2d2d36;color:#c5c5cf}
.empty{text-align:center;padding:4rem 1.5rem;color:var(--muted)}
.empty h3{font-size:1.15rem;color:var(--ink);margin-bottom:.4rem}
.empty svg{width:48px;height:48px;margin-bottom:1rem;color:#888893}
.empty button{margin-top:1rem}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.25rem;align-items:start}
.stack{display:grid;gap:1.25rem}
.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.data-grid dt{color:var(--muted);font-size:.8rem}
.data-grid dd{margin:0;font-size:.94rem;overflow-wrap:anywhere}
.data-grid dl{margin:0}
.decision-buttons{display:flex;gap:.65rem;margin-top:1rem}
.decision-buttons button{flex:1}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{padding:0 1.2rem 1.3rem 0;border-right:2px solid #41414b;position:relative;margin-right:.3rem}
.timeline li:before{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#8c8c97;right:-6px;top:7px}
.timeline li.done:before{background:var(--teal)}
.timeline li:last-child{padding-bottom:0;border-color:transparent}
.timeline strong{font-size:.875rem}
.timeline p{font-size:.8rem;color:var(--muted);margin-top:.25rem}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.photo-grid img{width:100%;height:135px;object-fit:contain;background:#17171c;border-radius:7px;border:1px solid var(--line)}
.stage{padding:.9rem 0;border-bottom:1px solid var(--line)}
.stage:last-child{border-bottom:0}
.stage h3{margin-bottom:.3rem}
.stage p{font-size:.875rem;color:var(--muted)}
.stage button{margin-top:.65rem;width:100%}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}
.login-side{background:var(--navy);color:white;display:flex;flex-direction:column;padding:3rem clamp(2rem,5vw,5rem)}
.login-story{margin:auto 0;max-width:460px;padding:4rem 0}
.login-story h1{font-size:2.65rem;line-height:1.6;letter-spacing:-1px}
.login-story>p{color:#b8b8c4;margin:1rem 0 2.5rem;font-size:1rem;line-height:2}
.login-flow{display:grid;gap:1.25rem}
.login-flow>div{display:flex;gap:1rem;align-items:center}
.login-flow span{border:1px solid #75414c;border-radius:8px;width:38px;height:38px;display:grid;place-items:center;color:#ff9ba5;font-size:.9rem}
.login-flow p{color:#b8b8c4;font-size:.9rem}
.login-flow strong{display:block;color:white}
.login-foot{font-size:.8rem;color:#a4a4af;border-top:1px solid #ffffff20;padding-top:1.3rem}
.login-main{display:flex;align-items:center;justify-content:center;padding:2.5rem}
.login-card{width:100%;max-width:390px}
.login-card h2{font-size:1.9rem;margin:.6rem 0}
.login-card>p{color:var(--muted);margin-bottom:2rem;font-size:.94rem}
.login-card form{display:grid;gap:1.1rem}
.login-card form>button{margin-top:.5rem;padding:.9rem}
.login-card .login-hint{font-size:.8rem;margin:1.5rem 0 0;text-align:center;color:var(--muted)}
.login-card .notice{margin-top:1.5rem}
.loading{padding:5rem;text-align:center;color:var(--muted)}
#toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--navy);color:white;border-radius:9px;padding:.8rem 1.5rem;box-shadow:0 5px 25px #00000066;z-index:30;max-width:90vw;display:none}
#toast.show{display:block}
dialog{border:1px solid var(--line);border-radius:14px;padding:1.7rem;width:min(460px,90vw);color:var(--ink)}
dialog::backdrop{background:#000000bb}
dialog h2{margin-bottom:.8rem}
dialog p{color:var(--muted);font-size:.94rem;margin-bottom:1rem}
.dialog-actions{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1.5rem}
.back-link{color:var(--muted);font-size:.875rem;display:inline-block;margin-bottom:1rem}
.inline-action{display:flex;gap:.5rem;align-items:center}
.user-create{margin-bottom:1.5rem}
.permission-note{border-right:3px solid var(--teal);padding:.6rem 1rem;background:#2b1c23;color:#e6b2bb;font-size:.875rem;margin-bottom:1.5rem}
.request-title{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.print-only{display:none}

@media(min-width:1550px){.content{padding-top:3rem}
.login-story h1{font-size:3rem}
}
@media(max-width:1150px){.sidebar{width:210px}
.workspace{margin-right:210px}
.content{padding:1.8rem 1.5rem}
.topbar{padding:1rem 1.5rem}
.form-layout{grid-template-columns:1fr}
.form-aside{position:static}
.guide ol{display:flex;gap:2rem}
.guide-note{margin-top:.8rem}
.detail-grid{grid-template-columns:1fr}
.detail-grid>.stack:last-child{grid-template-columns:1fr 1fr}
.login-story h1{font-size:2.15rem}
}
@media(max-width:960px){.sidebar{position:static;width:auto;padding:1rem;display:block}
.sidebar .brand{padding:0;border:0}
.sidebar .logo{width:35px;height:35px}
.sidebar .brand small,.sidebar-bottom{display:none}
.nav{display:flex;gap:.4rem;margin-top:1rem;overflow-x:auto}
.nav a{white-space:nowrap;font-size:.85rem;padding:.55rem .7rem}
.workspace{margin:0}
.topbar{min-height:65px;padding:.8rem 1rem}
.topbar-title{display:none}
.account{width:100%}
.account>button{margin-right:auto}
.content{padding:1.3rem 1rem 3rem}
.page-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:1.2rem}
h1{font-size:1.45rem}
.page-head p{font-size:.875rem}
.stats{grid-template-columns:1fr 1fr;gap:.65rem}
.stat{padding:.8rem 1rem}
.stat strong{font-size:1.65rem}
.panel-body{padding:1.1rem}
.panel-head{padding:1rem 1.1rem}
.form-grid{grid-template-columns:1fr;gap:1rem}
.filters{padding:1rem;flex-wrap:wrap}
.filters input,.filters select{max-width:none}
.guide ol{display:grid;gap:.6rem}
.item-row{grid-template-columns:1fr 1fr 40px;gap:.5rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.item-row>.field:first-child{grid-column:1/-1}
.item-row:last-child{border:0}
.detail-grid>.stack:last-child{grid-template-columns:1fr}
.data-grid{gap:1.1rem}
.photo-grid{grid-template-columns:1fr 1fr}
.login-page{display:block}
.login-side{padding:1.5rem}
.login-story,.login-foot{display:none}
.login-main{padding:2.5rem 1.5rem}
.login-card{max-width:450px}
.login-card h2{font-size:1.6rem}
.form-actions>button{width:100%}
}


/* Dark graphite surfaces with crimson navigation and primary actions. */
body{background:var(--bg);accent-color:var(--action)}

button{background:var(--action);border-color:#de3a52;border-radius:6px;transition:background .15s,border-color .15s}

button:hover:not(:disabled){filter:none;background:#df3450;border-color:#f15f75}

button.secondary{background:var(--surface-raised)}

button.secondary:hover:not(:disabled),button.text:hover:not(:disabled){background:#303038;border-color:#555560;color:white}

button.danger{background:#361f28;color:#ff9cab;border-color:#773548}

button.danger:hover:not(:disabled){background:#50232f}

button.positive{background:var(--action)}

button.text{border-color:transparent}

input,select,textarea{background:#141419;border-color:#42424c;border-radius:6px}

input::placeholder,textarea::placeholder{color:#8e8e9b;opacity:1}

input[readonly]{color:#b6b6c1;border-style:dashed}

input::file-selector-button{background:#34343e;color:#f2f2f4;border:1px solid #535360;border-radius:5px;padding:.45rem .75rem;margin-inline-end:.75rem}

.sidebar{background:#0c0c0f;border-left:1px solid #303036;border-top:3px solid var(--action)}

.sidebar .brand{border-bottom-color:#303036}

.nav a{border:1px solid transparent;border-radius:6px}

.nav a.active,.nav a.active:hover{background:#351c25;color:#ffb0bb;border-color:#63303d;border-right:3px solid #f04460}

.nav a:hover{background:#24242c}

.sidebar-bottom{border-top-color:#303036}

.topbar{background:#16161b}

.avatar{color:#ffacb8;border:1px solid #64303e}

.page-head h1{font-weight:700}

.panel{border-radius:8px;box-shadow:0 5px 20px #00000018}

.panel-head{background:#1e1e24}

.step-number{border:1px solid #63303d;border-radius:5px;color:#ffadb8}

.guide{border:1px solid var(--line);border-top:3px solid var(--action);border-radius:8px}

.stat{background:linear-gradient(135deg,#25252d,#19191e);border-radius:8px;border-top:3px solid #777781}

.stat strong{font-size:2.15rem;font-weight:700}

.stat.approved{border-top-color:#72b28c}

.stat.rejected{border-top-color:#f04460}

.badge{border:1px solid transparent;border-radius:4px}

.badge.approved{border-color:#365c49}
.badge.pending{border-color:#625032}
.badge.rejected{border-color:#773548}
.badge.neutral{border-color:#484852}

.permission-note{border-right-color:#ef4660;border-radius:5px}

.timeline li.done:before{background:#f04460;box-shadow:0 0 0 3px #3c2029}

.remove-item{background:#24242b;border-color:#484852}

.login-side{background:radial-gradient(ellipse at 85% 0%,#4b1828 0%,#20131c 40%,#101013 80%);border-left:1px solid #49303a;border-top:4px solid var(--action)}

.login-main{background:#16161b}

.login-story h1{color:#fff2f5}

.login-flow span{background:#391c27;border-radius:5px}

.login-flow strong{color:#f9e9ed}

.login-foot{border-top-color:#49303a}

#toast{background:#2d2028;border:1px solid #8b3b4e;border-radius:7px}

dialog{background:#202027;border-color:#59515a;border-top:3px solid var(--action);border-radius:8px;box-shadow:0 25px 90px #00000088}

::selection{background:#9d2944;color:white}

@media(prefers-reduced-motion:reduce){button{transition:none}
}


@media print{.sidebar,.topbar,.notice,.back-link,button,.filters{display:none!important}
.workspace{margin:0}
.content{padding:0}
.detail-grid{display:block}
.panel{break-inside:avoid;box-shadow:none;margin-bottom:1rem}
.print-only{display:block}
body{background:var(--surface)}
}


@media print{:root{color-scheme:light;--ink:#161616;--muted:#444;--line:#ccc;--surface:white;--bg:white}
body,.panel,.panel-head,th,.stat,.guide{background:white!important;color:#161616!important}
.badge,.step-number,.permission-note{background:white!important;color:#161616!important;border-color:#777!important}
.timeline p,.stage p{color:#444!important}
}


.brand strong{display:block;white-space:normal;line-height:1.55;overflow-wrap:break-word}
.brand .logo{width:48px;height:48px;object-fit:contain;background:#fff;border-radius:50%;padding:3px;border:1px solid #ffffff30}
@media(max-width:960px){.sidebar .brand .logo{width:38px;height:38px}}

/* Selected design: Ruby Glass. Screen-only treatments preserve the paper layout. */
@media screen {
  :root{--navy:#201224;--ink:#faf0f6;--muted:#cbb5c8;--line:#ffffff24;--bg:#191320;--surface:#ffffff08;--surface-raised:#ffffff10;--accent:#ffa4c0;--action:#bd2851;--teal:#ffa4c0;--red:#ff9caf}
  body{min-height:100vh;background:radial-gradient(ellipse at 95% 0%,#61253f 0%,#32192d 36%,#1b1423 70%,#15131e 100%);background-attachment:fixed}
  .sidebar{inset:16px 16px 16px auto;width:220px;padding:1.7rem 1rem;background:#1c102466;border:1px solid var(--line);border-radius:24px;backdrop-filter:blur(18px);box-shadow:0 15px 45px #10081724}
  .sidebar .brand{padding:0 .2rem 1.6rem;border-bottom-color:var(--line)}
  .brand small,.sidebar-bottom p{color:#cbb5c8}
  .sidebar-bottom{border-color:var(--line)}
  .nav a{border-radius:14px;padding:.85rem .8rem;color:#d2bbd0}
  .nav a.active,.nav a.active:hover{color:#ffdae6;background:#ffffff12;border:1px solid #fa99b655;box-shadow:inset 0 1px 0 #ffffff08}
  .nav a:hover{background:#ffffff0c;color:#fff2f7}
  .topbar{background:#ffffff04;border-bottom-color:#ffffff18;backdrop-filter:blur(16px)}
  .avatar{background:#ffffff10;border-color:#ffffff25;color:#ffc3d5}
  .content{padding-top:2.3rem}
  .page-head h1{color:#fff3fa}
  .eyebrow{color:#ffafc8}
  .panel{background:#ffffff07;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 30px #10081815;backdrop-filter:blur(12px)}
  .panel-head{background:#ffffff03;border-color:var(--line)}
  .step-number{background:#ffffff0c;color:#ffc3d5;border:1px solid #ffffff25;border-radius:50%}
  .stat,.stat.pending,.stat.approved,.stat.rejected{background:linear-gradient(140deg,#ffffff0d,#ffffff04);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px #00000012;backdrop-filter:blur(12px)}
  .stat.pending strong{color:#f3d5a5}.stat.approved strong{color:#b1e4ca}.stat.rejected strong{color:#ffb3c5}
  .stat strong{font-weight:600}
  button,button.positive{background:linear-gradient(125deg,#b92350,#d34668);border:1px solid #ef779344;border-radius:12px;box-shadow:0 6px 18px #ab174328}
  button:hover:not(:disabled),button.positive:hover:not(:disabled){background:linear-gradient(125deg,#ce305e,#e75a7b);border-color:#ff9bb166}
  button.secondary{background:#ffffff0b;border-color:#ffffff2a;box-shadow:none}
  button.secondary:hover:not(:disabled){background:#ffffff17;border-color:#ffffff42}
  button.text{background:transparent;box-shadow:none;border-color:transparent;color:var(--muted)}
  button.text:hover:not(:disabled){background:#ffffff0d;border-color:transparent}
  button.danger{background:#721f3a40;border-color:#dc718455;color:#ffb1c2;box-shadow:none}
  button.danger:hover:not(:disabled){background:#8a2a4755;border-color:#f69bb477}
  input,select,textarea{background:#180f2070;border:1px solid #ffffff2d;border-radius:12px;color:#faf0f6}
  select option{background:#28192f;color:#faf0f6}
  input::placeholder,textarea::placeholder{color:#b99fb6}
  input[readonly]{background:#ffffff05;color:#cbb5c8;border-color:#ffffff1f}
  input:focus,select:focus,textarea:focus{outline-color:#e58bab}
  button:focus-visible,a:focus-visible{outline-color:#ffafc8}
  input::file-selector-button{background:#ffffff10;border-color:#ffffff30;color:#f6e6ef;border-radius:8px}
  .filters input,.filters select{border-radius:24px}
  th{background:#ffffff03;color:#cbb5c8}
  td,th{border-color:#ffffff16}
  tbody tr:hover{background:#ffffff05}
  .badge{border-radius:8px}
  .badge.pending{background:#58442c66;color:#f3d5a5;border-color:#b5966355}
  .badge.approved{background:#254d3d77;color:#b1e4ca;border-color:#71ab8b44}
  .badge.rejected{background:#742a4866;color:#ffbbcd;border-color:#d8789155}
  .badge.neutral{background:#ffffff0c;color:#ddcbde;border-color:#ffffff25}
  .notice{background:#60402b35;border-color:#b5975a44;color:#eed7b2;border-radius:12px}
  .notice.info{background:#ffffff08;border-color:#ffffff25;color:#ddcce0}
  .notice.success{background:#254d3d55;border-color:#71ab8b44;color:#b1e4ca}
  .permission-note{background:linear-gradient(90deg,#ffffff03,#be426f15);border:1px solid #ffffff14;border-right:2px solid #e685a6;border-radius:12px;color:#e9bfd1}
  .guide{background:#ffffff06;border:1px solid var(--line);border-radius:20px;backdrop-filter:blur(12px)}
  .guide ol{color:#d2bbd0}.guide-note{border-color:var(--line)}
  .upload{background:#ffffff04;border-color:#bd8fac77;border-radius:14px}
  .remove-item{background:#ffffff08;border-color:#ffffff25;box-shadow:none}
  .error{background:#732d4855;border-color:#d7759155;color:#ffc0d2;border-radius:12px}
  .timeline li{border-color:#ffffff25}
  .timeline li:before{background:#b899b1}
  .timeline li.done:before{background:#ef8ead;box-shadow:0 0 0 4px #a84c7122}
  .photo-grid img{background:#ffffff07;border-color:var(--line);border-radius:12px}
  .login-page{background:transparent}
  .login-side{background:radial-gradient(ellipse at 95% 5%,#75294955,transparent 70%);border:0;border-left:1px solid var(--line)}
  .login-main{background:#ffffff03;backdrop-filter:blur(16px)}
  .login-story h1{color:#fff0f7}.login-story>p,.login-flow p{color:#d2bbd0}
  .login-flow span{background:#ffffff08;border-color:#ffffff25;color:#ffc3d5;border-radius:12px}
  .login-foot{border-color:var(--line);color:#bfa7bd}
  .login-card{background:#ffffff04;border:1px solid #ffffff1c;padding:2rem;border-radius:24px;max-width:460px;box-shadow:0 24px 60px #12091b20}
  dialog{background:linear-gradient(145deg,#49283feF,#21182bf5);border:1px solid #d598b45c;border-radius:22px;backdrop-filter:blur(22px);box-shadow:0 25px 90px #00000066}
  dialog::backdrop{background:#100918aa;backdrop-filter:blur(5px)}
  #toast{background:#3f233deb;border:1px solid #e0a0b955;border-radius:14px;backdrop-filter:blur(12px);color:#ffebf4}
  ::selection{background:#a53663;color:white}
}
@media screen and (max-width:1150px) and (min-width:961px){.sidebar{width:200px}.workspace{margin-right:232px}.brand .logo{width:40px;height:40px}.brand strong{font-size:1.05rem}}
@media screen and (max-width:960px){.sidebar{position:static;width:auto;margin:12px 12px 0;padding:1rem;border-radius:20px}.sidebar .brand{padding:0;border:0}.workspace{margin:0}.topbar{background:transparent;backdrop-filter:none}.nav{margin-top:1rem}.nav a{padding:.55rem .8rem}.content{padding-top:1.25rem}.login-side{border:0;background:#ffffff03}.login-main{padding:1.5rem 1rem}.login-card{padding:1.5rem}.panel,.guide{border-radius:18px}}
/* English layout follows the selected document direction. */
#language-switch{position:fixed;bottom:18px;inset-inline-end:18px;z-index:20;background:#49283f;color:white;border:1px solid #d598b4;border-radius:24px;padding:.5rem 1rem;font-size:.85rem}
html[dir=ltr] .sidebar{inset:16px auto 16px 16px}
html[dir=ltr] .workspace{margin-right:0;margin-left:252px}
html[dir=ltr] table{text-align:left}
html[dir=ltr] .guide ol{padding-right:0;padding-left:1.1rem}
html[dir=ltr] .timeline li{padding:0 0 1.3rem 1.2rem;border-right:0;border-left:2px solid #41414b;margin-right:0;margin-left:.3rem}
html[dir=ltr] .timeline li:before{right:auto;left:-6px}
html[dir=ltr] .permission-note{border-right:1px solid #ffffff14;border-left:2px solid #e685a6}
html[dir=ltr] .login-side{border-left:0;border-right:1px solid var(--line)}
html[dir=ltr] .account>button{margin-right:0;margin-left:auto}
html[dir=ltr] .login-story h1{font-size:clamp(2rem,3.5vw,3.6rem)}
@media screen and (max-width:1150px) and (min-width:961px){html[dir=ltr] .workspace{margin-left:232px}}
@media screen and (max-width:960px){html[dir=ltr] .sidebar{position:static}html[dir=ltr] .workspace{margin:0}html[dir=ltr] .login-side{border:0}}
@media print{#language-switch{display:none}html[dir=ltr] .workspace{margin:0}}
.scan-button{width:100%;margin-top:.6rem;min-height:48px}
.qr-scanner{width:min(94vw,580px);max-height:94dvh;overflow:auto}
.qr-scanner video{display:block;width:100%;max-height:48dvh;aspect-ratio:4/3;object-fit:cover;background:#090909;border:2px solid #e58aae;border-radius:14px}
.qr-scanner .scanner-status{min-height:3em;font-size:.9rem}
.qr-scanner .dialog-actions{flex-wrap:wrap}
.checkpoint-confirm{margin-bottom:1.25rem;border-color:#65bf97}
@media print{.scan-button,.checkpoint-confirm,.qr-scanner{display:none}}

/* Compact layouts, readable long titles and consistent touch controls. */
.transport-options{grid-column:1/-1;border:0;padding:0;margin:0 0 .4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;min-width:0}
.transport-options label{display:flex;align-items:center;gap:.6rem;min-height:44px;cursor:pointer;font-weight:600;font-size:.95rem}
.transport-options input[type=radio]{width:18px;height:18px;min-height:0;padding:0;margin:0;flex-shrink:0;accent-color:#e58bab}
.transport-details{grid-template-columns:repeat(2,minmax(0,1fr))}
.transport-details>.field:last-child{grid-column:1}
@media(max-width:600px){.transport-options{gap:.4rem}.transport-options label{font-size:.8rem;gap:.35rem}.transport-details{grid-template-columns:1fr}.transport-details>.field:last-child{grid-column:auto}}
.account-menu{min-width:0}
.account-menu summary{display:flex;align-items:center;gap:.75rem;padding:.85rem .8rem;border:1px solid transparent;border-radius:14px;cursor:pointer;color:#d2bbd0;list-style:none}
.account-menu summary::-webkit-details-marker{display:none}
.account-menu summary::after{content:'⌄';margin-inline-start:auto}
.account-menu[open] summary::after{content:'⌃'}
.account-menu summary:hover{background:#ffffff0c}
.account-menu summary:focus-visible{outline:3px solid #ffafc8;outline-offset:2px}
.account-submenu{display:grid;gap:.3rem;padding-inline-start:1rem;margin-top:.35rem;border-inline-start:1px solid var(--line);margin-inline-start:1rem}
.account-submenu a{font-size:.875rem}
@media(max-width:960px){.account-menu{flex-basis:100%}.account-menu summary{min-height:44px}.account-submenu{margin-bottom:.3rem}}
.topbar .account{direction:ltr;flex-wrap:nowrap;width:auto;gap:.75rem}
.topbar .account .account-role{flex:0 0 auto;font-weight:700}
.topbar .account>button{margin:0;min-height:44px;padding:.55rem 1.15rem}
.brand>div,.account>span,.form-main,.stack,.field,.page-head>div{min-width:0}
.sidebar .brand strong{font-size:1rem}
.sidebar .brand{align-items:flex-start}
.sidebar .logo{margin-top:.15rem}
.form-layout{grid-template-columns:minmax(0,1fr)}
.topbar{justify-content:flex-end}
.account{flex-wrap:wrap}
.account>span{overflow-wrap:anywhere}
.decision-buttons,.dialog-actions{flex-wrap:wrap}
.decision-buttons button{min-width:130px;min-height:44px}
dialog{max-height:90dvh;overflow-y:auto}
.upload input{min-height:44px;margin-bottom:.65rem;max-width:100%}
input::file-selector-button{min-height:44px;cursor:pointer}
.upload-count{overflow-wrap:anywhere}
.upload>button{min-height:44px;margin-inline-end:.35rem;margin-top:.3rem}
.data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.step-number{flex-shrink:0}
.login-page{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:2rem 1rem 5rem}
.login-main{width:100%;padding:0;background:none;backdrop-filter:none}
.login-card{max-width:480px}
.login-card>.brand{padding-bottom:1.4rem;margin-bottom:1.4rem;border-bottom:1px solid var(--line)}
.login-card h2{font-size:1.45rem;margin:0 0 1.3rem}
.login-card .login-hint{margin-top:1rem}
.content{padding-bottom:6rem}
@media screen and (max-width:960px){
 .nav{align-items:center;flex-wrap:wrap;overflow:visible}
 .nav a,.scan-button{min-height:44px}
 .scan-button{width:auto;flex:1;min-width:120px;margin:0}
 .sidebar .brand{align-items:center}
 .sidebar .brand strong{font-size:1.05rem}
 .account{gap:.55rem;font-size:.8rem}
 .account>span:not(.avatar){flex:1}
 .account>button{min-height:44px}
 .content{padding-bottom:6rem}
 .login-card{padding:1.5rem}
}
@media screen and (max-width:420px){
 .data-grid{grid-template-columns:1fr}
 .panel-head,.panel-body{padding:1rem}
 .stat{padding:.75rem}
 .stat span{font-size:.78rem}
 .decision-buttons{width:100%}
 .decision-buttons button{flex:1 1 100%}
 .dialog-actions button{flex:1;min-height:44px}
 .login-card>.brand strong{font-size:1.05rem}
}

/* Calm light theme: matte surfaces, muted teal actions and readable contrast. */
@media screen{
 :root{color-scheme:light;--navy:#223d3a;--ink:#263b39;--muted:#5e706c;--line:#d7e0dc;--bg:#f2f4f1;--surface:#fff;--surface-raised:#f5f8f6;--accent:#dcece6;--action:#28665a;--teal:#28665a;--blue:#28665a;--red:#a13643}
 body{background:#f2f4f1;color:var(--ink);accent-color:var(--action)}
 .sidebar{background:#fbfcfa;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 20px #263b3905;backdrop-filter:none;color:var(--ink)}
 .sidebar .brand,.sidebar-bottom{border-color:var(--line)}
 .brand strong,.login-card h2,.page-head h1,.empty h3{color:#263b39}
 .brand small,.sidebar-bottom p{color:var(--muted)}
 .brand .logo{border-color:#e1e7e2;background:white}
 .nav a,.account-menu summary{color:#50645f;border-radius:10px}
 .nav a:hover,.account-menu summary:hover{background:#edf3ef;color:#224d43}
 .nav a.active,.nav a.active:hover{background:#e3eee7;color:#245b4e;border:1px solid #b8d0c4;box-shadow:none}
 .account-submenu{border-color:#cfddd4}
 .topbar{background:#f8faf7;border-color:var(--line);backdrop-filter:none}
 .account-role{color:#405b53}
 .eyebrow,.back-link{color:#28665a}
 .panel,.guide,.login-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 14px #263b3905;backdrop-filter:none}
 .panel-head{background:#f9faf8;border-color:#e2e8e3}
 .step-number{background:#eaf1ec;border-color:#d7e4da;color:#38604f}
 .stat,.stat.pending,.stat.approved,.stat.rejected{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:none;backdrop-filter:none}
 .stat strong{color:#294b41}.stat.pending strong{color:#89601d}.stat.approved strong{color:#28634f}.stat.rejected strong{color:#a3444b}
 button,button.positive{background:#28665a;border-color:#28665a;color:white;border-radius:9px;box-shadow:none}
 button:hover:not(:disabled),button.positive:hover:not(:disabled){background:#205347;border-color:#205347}
 button.secondary{background:#f7faf7;border-color:#c7d6cd;color:#315a4d}
 button.secondary:hover:not(:disabled){background:#eaf1eb;border-color:#a8c2b3;color:#234d3f}
 button.text{background:transparent;color:#576e64;box-shadow:none;border-color:transparent}
 button.text:hover:not(:disabled){background:#edf3ee;border-color:transparent;color:#263b39}
 button.danger{background:#fbefef;border-color:#e4bfc2;color:#a13643}
 button.danger:hover:not(:disabled){background:#f6e0e2;border-color:#d6a3a9}
 input,select,textarea{background:#fcfdfa;color:#263b39;border:1px solid #b9cac0;border-radius:9px}
 select option{background:#fff;color:#263b39}
 input::placeholder,textarea::placeholder{color:#5e706c}
 input[readonly]{background:#f1f4f0;color:#5e7065;border-color:#d4ded5}
 input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,.account-menu summary:focus-visible{outline-color:#347768}
 input::file-selector-button{background:#eaf1e9;color:#315a4d;border-color:#c7d6cd}
 .transport-options input[type=radio]{accent-color:#28665a}
 .transport-details{gap:1.2rem 1.5rem}
 .upload{background:#f8faf6;border-color:#b9ccc0;border-radius:10px}
 .remove-item{background:#f9f2f1;border-color:#e0ceca;color:#a3444b;box-shadow:none}
 th{background:#f5f8f3;color:#576e61}
 td,th{border-color:#e1e8e0}
 tbody tr:hover{background:#f8faf6}
 .badge.pending{background:#faf2df;color:#765817;border-color:#e9d8a7}
 .badge.approved{background:#e9f3eb;color:#2c6345;border-color:#c4decb}
 .badge.rejected{background:#f9e9eb;color:#923846;border-color:#e7bdc4}
 .badge.neutral{background:#edf1ed;color:#516259;border-color:#d5ddd5}
 .notice{background:#fcf6e7;border-color:#e8d9b4;color:#735820;border-radius:10px}
 .notice.info,.permission-note{background:#edf3ee;border:1px solid #ceddd1;color:#3c5e48}
 .notice.success{background:#e9f3eb;border-color:#c4decb;color:#2c6345}
 .error{background:#fbecee;border-color:#e7c2c8;color:#963244;border-radius:9px}
 .timeline li,html[dir=ltr] .timeline li{border-color:#cfddd1}
 .timeline li:before{background:#8caa97}
 .timeline li.done:before{background:#39765b;box-shadow:0 0 0 3px #e9f3eb}
 .photo-grid img{background:#f1f5ef;border-color:#d5dfd3}
 .checkpoint-confirm{border-color:#accfbc;background:#f9fcf8}
 .login-page,.login-main{background:transparent;backdrop-filter:none}
 .login-card{box-shadow:0 16px 48px #314d3c0a}
 dialog{background:#fff;color:#263b39;border:1px solid #c9d8cd;border-radius:16px;backdrop-filter:none;box-shadow:0 20px 70px #203c332b}
 dialog::backdrop{background:#263b3959;backdrop-filter:blur(2px)}
 .qr-scanner video{border-color:#699d8c}
 #toast{background:#2d5648;color:#fff;border-color:#2d5648;backdrop-filter:none}
 #language-switch{background:#fff;color:#315a4d;border-color:#b9cdbf;box-shadow:0 3px 12px #263b3910}
 ::selection{background:#c8e0d1;color:#203d30}
}

@media screen {
 .upload-previews{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
 .upload-previews:empty{display:none}
 .upload-preview{position:relative;width:112px;min-width:0;padding:6px;background:#fff;border:1px solid #d5dfd3;border-radius:12px;text-align:start}
 .upload-preview img{display:block;width:98px;height:86px;object-fit:contain;background:#f2f4f1;border-radius:7px}
 .upload-preview-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:7px 2px 1px;font-size:12px;color:#5e706c}
 .upload-preview .remove-photo{position:absolute;inset-inline-end:-8px;top:-8px;display:grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border:1px solid #d5dfd3;border-radius:50%;background:#fff;color:#963244;font-size:23px;line-height:1;box-shadow:0 2px 6px #263b3914}
 .upload-preview .remove-photo:hover{background:#fbecee;border-color:#e7c2c8}
 .upload-preview .remove-photo:focus-visible{outline:3px solid #28665a;outline-offset:2px}
}

#install-app{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));inset-inline-start:18px;z-index:20;background:#28665a;color:#fff;border:1px solid #28665a;border-radius:24px;padding:.5rem 1rem;font-size:.85rem;min-height:42px;box-shadow:0 3px 12px #263b3910}
#install-app[hidden]{display:none}
#install-help{max-width:min(420px,calc(100vw - 32px));padding:24px}
#install-help p{line-height:1.8;margin:16px 0 24px}
@media(max-width:900px){.content,.login-main{padding-bottom:90px}}
@media print{#install-app,#install-help{display:none}}
/* Consistent application controls across browsers and languages. */
@media screen {
 #request-form .field>input:not([type=radio]):not([type=file]),
 #request-form .field>select{width:100%;min-width:0;max-width:100%;height:50px;min-height:50px;padding:11px 13px;font-size:16px;line-height:24px;font-weight:400;box-sizing:border-box}
 #request-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #request-form .form-grid>label.field{align-content:end}
 #request-form .remove-item{height:50px;min-height:50px}
 #request-form input[type=date]{display:block;-webkit-appearance:none;appearance:none}
 #request-form input[type=date]::-webkit-date-and-time-value{text-align:start;min-height:24px}
 #request-form input[type=date]::-webkit-datetime-edit{padding:0}
 @media(max-width:760px){#request-form .form-grid{grid-template-columns:minmax(0,1fr)}#request-form .transport-details>.field:last-child{grid-column:auto}}
}
/* Teal navigation with a separate, calm brand card. */
@media screen {
 .sidebar{background:#294b46;color:#edf5f1;border:1px solid #294b46;border-radius:22px;padding:18px 14px 80px;box-shadow:0 8px 24px #223d3a10;overflow-y:auto}
 .sidebar .brand{background:#f5f8f4;border:0;border-radius:15px;padding:20px 14px;color:#294b46;gap:12px}
 .sidebar .brand .logo{width:52px;height:52px;margin:0;padding:4px;border:1px solid #dde8e1;flex-shrink:0}
 .sidebar .brand strong{font-size:1rem;line-height:1.55;font-weight:700}
 .sidebar .nav{margin-top:22px;gap:8px}
 .sidebar .nav>a,.sidebar .account-menu summary{min-height:48px;padding:12px;color:#e5efeb;background:transparent;border:1px solid transparent;border-radius:11px;font-size:.92rem;line-height:1.5;gap:10px}
 .sidebar .nav>a:hover,.sidebar .account-menu summary:hover{color:#fff;background:#385b54;border-color:#52746b}
 .sidebar .nav a.active,.sidebar .nav a.active:hover{background:#e8f2eb;color:#244e43;border:1px solid #e8f2eb;box-shadow:none;font-weight:700}
 .sidebar .account-menu[open]>summary{background:#35574f;color:#fff;border-color:#52746b}
 .sidebar .account-submenu{margin:10px 0 0 12px;padding:4px 0 4px 10px;gap:5px;border-inline-start:1px solid #66867c}
 html[dir=rtl] .sidebar .account-submenu{margin:10px 12px 0 0}
 .sidebar .account-submenu a{position:relative;padding:10px 12px;min-height:44px;color:#d4e4dc;border:1px solid transparent;border-radius:9px;font-size:.86rem;line-height:1.5}
 .sidebar .account-submenu a:hover{background:#385b54;color:#fff}
 .sidebar .nav svg{flex-shrink:0;width:19px;height:19px}
 .sidebar .scan-button{background:#e8f2eb;color:#244e43;border:1px solid #c9dfd1;box-shadow:none}
 .sidebar .nav a:focus-visible,.sidebar .account-menu summary:focus-visible{outline-color:#b9decc;outline-offset:2px}
 @media(min-width:961px){
  .sidebar{width:244px}
  .sidebar .brand{flex-direction:column;text-align:center;align-items:center}
  .workspace{margin-right:276px}
  html[dir=ltr] .workspace{margin-left:276px;margin-right:0}
 }
 @media(max-width:960px){
  .sidebar{padding:12px;border-radius:18px;overflow:visible}
  .sidebar .brand{padding:12px 14px;align-items:center}
  .sidebar .brand .logo{width:42px;height:42px}
  .sidebar .brand strong{font-size:.95rem}
  .sidebar .nav{margin-top:12px;gap:8px}
  .sidebar .nav>a,.sidebar .account-menu summary{padding:10px 12px;min-height:44px}
  .sidebar .account-submenu{display:flex;flex-wrap:wrap;border:0;margin:8px 0 0;padding:0;gap:6px}
  html[dir=rtl] .sidebar .account-submenu{margin:8px 0 0}
 }
}
.account-name{display:none}
@media screen and (max-width:960px){
 #app>.topbar{margin:0;padding:12px 18px;background:#fff;border-bottom:1px solid #d7e0dc;min-height:76px}
 #app>.topbar .account{width:100%;justify-content:space-between;align-items:center;gap:16px}
 #app>.topbar .account-role{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;flex:1;text-align:start;line-height:1.4}
 #app>.topbar .account-name{display:block;font-size:.83rem;font-weight:400;color:#5e706c;max-width:100%;overflow-wrap:anywhere}
 #app>.topbar .account-role{direction:ltr}
 html[dir=rtl] #app>.topbar .account-role{direction:rtl;align-items:flex-start}
 .sidebar{margin:12px 12px 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
 .sidebar .brand{background:#fff;border:1px solid #d7e0dc;border-radius:16px;padding:18px;justify-content:center;min-height:90px}
 .sidebar .nav{background:#294b46;padding:10px;border:1px solid #294b46;border-radius:14px;margin-top:12px;gap:8px;justify-content:stretch}
 .sidebar .nav>a{flex:1;justify-content:center;white-space:normal;text-align:center}
}
@media screen and (max-width:960px){
 .workspace>.topbar{display:none}
 .sidebar .brand{display:grid;grid-template-columns:38px minmax(0,1fr) auto;column-gap:10px;row-gap:12px;padding:14px;align-items:center;text-align:start}
 .sidebar .brand .logo{width:38px;height:38px}
 .sidebar .brand strong{font-size:.88rem;line-height:1.5}
 .sidebar .brand>#logout{font-size:.72rem;padding:6px 9px;min-height:34px;white-space:nowrap;border-radius:8px;background:#f5f8f4;color:#355b50;border-color:#cfddd5;box-shadow:none}
 .sidebar .brand>.account-role{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;border-top:1px solid #e3eae5;padding-top:9px;font-size:.73rem;font-weight:600;line-height:1.5;color:#5e706c}
 .sidebar .brand .account-name{display:inline;font-size:.75rem;font-weight:400;color:#5e706c;overflow-wrap:anywhere;min-width:0}
}
/* Shared header and navigation layout on laptops and phones. */
@media screen and (min-width:961px){
 #app:not(.admin-layout) .workspace>.topbar{display:none}
 #app:not(.admin-layout) .workspace,html[dir=ltr] #app:not(.admin-layout) .workspace{margin:0}
 #app:not(.admin-layout) .sidebar,html[dir=ltr] #app:not(.admin-layout) .sidebar{position:static;inset:auto;width:calc(100% - 80px);max-width:1200px;margin:24px auto 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;display:block}
 #app:not(.admin-layout) .sidebar .brand{display:grid;grid-template-columns:42px minmax(0,1fr) auto;column-gap:12px;row-gap:12px;padding:16px 20px;align-items:center;text-align:start;background:#fff;border:1px solid #d7e0dc;border-radius:16px}
 #app:not(.admin-layout) .sidebar .brand .logo{width:42px;height:42px}
 #app:not(.admin-layout) .sidebar .brand strong{font-size:1rem;line-height:1.5}
 #app:not(.admin-layout) .sidebar .brand>#logout{font-size:.75rem;padding:6px 11px;min-height:34px;white-space:nowrap;border-radius:8px;background:#f5f8f4;color:#355b50;border-color:#cfddd5;box-shadow:none}
 #app:not(.admin-layout) .sidebar .brand>.account-role{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;border-top:1px solid #e3eae5;padding-top:9px;font-size:.75rem;font-weight:600;line-height:1.5;color:#5e706c}
 #app:not(.admin-layout) .sidebar .brand .account-name{display:inline;font-size:.75rem;font-weight:400;color:#5e706c;overflow-wrap:anywhere;min-width:0}
 #app:not(.admin-layout) .sidebar .nav{display:flex;flex-wrap:wrap;align-items:flex-start;background:#294b46;padding:10px;border:1px solid #294b46;border-radius:14px;margin-top:12px;gap:8px}
 #app:not(.admin-layout) .sidebar .nav>a{min-width:160px;justify-content:center;white-space:normal;text-align:center}
 #app:not(.admin-layout) .sidebar .account-menu{min-width:220px}
 #app:not(.admin-layout) .sidebar .account-submenu,html[dir=rtl] #app:not(.admin-layout) .sidebar .account-submenu{display:flex;flex-wrap:wrap;border:0;margin:8px 0 0;padding:0;gap:6px}
 #app:not(.admin-layout) .sidebar .scan-button{min-height:48px;margin:0}
 #app:not(.admin-layout) .content{padding-top:1.5rem}
}
/* Admin option 1: charcoal and muted yellow. */
@media screen {
 #app.admin-layout .sidebar{background:#242522;color:#f4f2e8;border:1px solid #34362f;box-shadow:0 6px 22px #2425220c}
 #app.admin-layout .sidebar .brand{background:transparent;border:0;border-bottom:1px solid #46473d;border-radius:0;color:#f7f3df;display:flex;flex-direction:row;align-items:center;text-align:start;padding:4px 7px 22px;gap:12px}
 #app.admin-layout .sidebar .brand .logo{width:43px;height:43px;padding:3px;border-color:#ece9d7}
 #app.admin-layout .sidebar .brand strong{font-size:.94rem;line-height:1.5;color:#f7f3df}
 #app.admin-layout .sidebar .nav{background:transparent;border:0;padding:0;margin-top:23px;gap:9px}
 #app.admin-layout .sidebar .nav>a,#app.admin-layout .sidebar .account-menu summary{color:#e5e3d7;border-color:transparent}
 #app.admin-layout .sidebar .account-menu[open]>summary{background:#3b3b2d;color:#f2dc80;border-color:#504d35}
 #app.admin-layout .sidebar .nav a:hover,#app.admin-layout .sidebar .account-menu summary:hover{background:#414034;color:#fff0ad}
 #app.admin-layout .sidebar .account-submenu{border-color:#555442}
 #app.admin-layout .sidebar .account-submenu a{color:#d6d3c4}
 #app.admin-layout .sidebar .nav a.active,#app.admin-layout .sidebar .nav a.active:hover{background:#e7c958;color:#25261f;border:1px solid #e7c958;box-shadow:0 3px 8px #00000014;font-weight:700}
 #app.admin-layout .sidebar .nav a:focus-visible,#app.admin-layout .sidebar .account-menu summary:focus-visible{outline-color:#f0d76e}
 @media(max-width:960px){
  #app.admin-layout .sidebar{padding:14px;border-radius:16px}
  #app.admin-layout .sidebar .brand{display:grid;grid-template-columns:38px minmax(0,1fr) auto;padding:0 0 12px;gap:10px}
  #app.admin-layout .sidebar .brand .logo{width:38px;height:38px}
  #app.admin-layout .sidebar .brand strong{font-size:.88rem}
  #app.admin-layout .sidebar .brand>.account-role{border-color:#46473d;color:#d6d3c4}
  #app.admin-layout .sidebar .brand .account-name{color:#d6d3c4}
  #app.admin-layout .sidebar .brand>#logout{background:#3b3b2d;color:#f2dc80;border-color:#635b35}
  #app.admin-layout .sidebar .nav{margin-top:12px}
 }
}
/* Complete admin palette, isolated from applicant and checkpoint views. */
@media screen {
 body.admin-theme{--ink:#292a24;--muted:#6a6a5e;--line:#deded3;--surface:#fff;--surface-raised:#f7f7f0;--action:#d8ba42;--accent:#f5e9ad;--teal:#686024;--navy:#242522;background:#f4f4ed;color:#292a24;accent-color:#c5a62c}
 .admin-theme .topbar{background:#fcfcf8;border-color:#deded3}
 .admin-theme .account-role,.admin-theme .page-head h1{color:#292a24}
 .admin-theme .panel,.admin-theme .guide{background:#fff;border-color:#deded3;box-shadow:0 3px 14px #24252205}
 .admin-theme .panel-head{background:#faf9f0;border-color:#e5e2cf}
 .admin-theme .step-number{background:#f4e7a9;border-color:#e4cf70;color:#49411d}
 .admin-theme .eyebrow,.admin-theme .back-link{color:#716019}
 .admin-theme .stat{background:#fffef8;border-color:#dedbc7;border-top:3px solid #d6b943}
 .admin-theme .stat strong{color:#292a24}
 .admin-theme .stat.pending strong{color:#8a6816}
 .admin-theme .stat.approved strong{color:#373c2e}
 .admin-theme .stat.rejected strong{color:#9a3943}
 .admin-theme button,.admin-theme button.positive{background:#e7c958;color:#25261f;border-color:#d9bd4b;box-shadow:none}
 .admin-theme button:hover:not(:disabled),.admin-theme button.positive:hover:not(:disabled){background:#f0d776;border-color:#c4a434;color:#25261f}
 .admin-theme button.secondary{background:#faf9f1;color:#37372d;border-color:#d5d2bc}
 .admin-theme button.secondary:hover:not(:disabled){background:#f4ebc5;border-color:#cbbb70;color:#292a24}
 .admin-theme button.text{background:transparent;color:#696448;border-color:transparent}
 .admin-theme button.danger{background:#faeeee;border-color:#e2bfc0;color:#993641}
 .admin-theme button.danger:hover:not(:disabled){background:#f5dfe0;border-color:#d59b9e;color:#8d303a}
 .admin-theme input,.admin-theme select,.admin-theme textarea{background:#fffef9;color:#292a24;border-color:#cccbb7;accent-color:#c5a62c}
 .admin-theme select option{background:#fffef9;color:#292a24}
 .admin-theme input[readonly]{background:#f3f2e8;color:#6b6958;border-color:#dedbc7}
 .admin-theme input::placeholder,.admin-theme textarea::placeholder{color:#77745e}
 .admin-theme input:focus,.admin-theme select:focus,.admin-theme textarea:focus,.admin-theme button:focus-visible,.admin-theme a:focus-visible{outline-color:#b59a2e}
 .admin-theme th{background:#30312b;color:#f3e5a1;border-color:#44453a}
 .admin-theme td{border-color:#e7e5d8}
 .admin-theme tbody tr:hover{background:#fcf9e9}
 .admin-theme .badge.pending{background:#fbf1c7;color:#766019;border-color:#e5d27b}
 .admin-theme .badge.approved{background:#efefe2;color:#424731;border-color:#d2d4b9}
 .admin-theme .badge.neutral{background:#f1f0e9;color:#63614f;border-color:#d9d6c5}
 .admin-theme .notice{background:#fcf5d9;color:#756020;border-color:#e8d896}
 .admin-theme .notice.info,.admin-theme .permission-note,.admin-theme .notice.success{background:#f3f1e3;color:#585839;border-color:#d9d5b8}
 .admin-theme .timeline li,.admin-theme[dir=ltr] .timeline li{border-color:#d9d4ba}
 .admin-theme .timeline li:before{background:#c4b879}
 .admin-theme .timeline li.done:before{background:#c0a335;box-shadow:0 0 0 3px #f7f0cc}
 .admin-theme .photo-grid img{background:#f6f4e8;border-color:#ded8bd}
 .admin-theme dialog{background:#fffef9;color:#292a24;border-color:#d9d0a2;box-shadow:0 20px 70px #2425222b}
 .admin-theme dialog::backdrop{background:#24252266}
 .admin-theme #toast{background:#292a24;color:#f5e5a0;border-color:#534e31}
 .admin-theme #language-switch{background:#fffdf2;color:#554b22;border-color:#d8ca8c;box-shadow:0 3px 12px #292a2410}
 .admin-theme #install-app{background:#e7c958;color:#25261f;border-color:#d9bd4b;box-shadow:0 3px 12px #292a2410}
 .admin-theme ::selection{background:#f0db85;color:#25261f}
}
/* Dark charcoal login with muted yellow actions. */
@media screen {
 body.login-theme{color-scheme:dark;background:#191a18;color:#f2f0e5;--ink:#f2f0e5;--muted:#b8b7a9;--line:#43443a;--surface:#262723;--action:#e7c958}
 .login-theme .login-page,.login-theme .login-main{background:transparent}
 .login-theme .login-card{background:#262723;color:#f2f0e5;border:1px solid #444538;border-top:3px solid #e7c958;border-radius:18px;box-shadow:0 20px 60px #00000030}
 .login-theme .login-card>.brand{border-color:#45463b}
 .login-theme .brand strong,.login-theme h2{color:#f4f0dd}
 .login-theme .field{color:#dedccd}
 .login-theme input{background:#1e1f1c;color:#f5f2e4;border-color:#5b5b49;min-height:50px;font-size:16px;caret-color:#e7c958}
 .login-theme input::placeholder{color:#afad9c}
 .login-theme input:focus,.login-theme button:focus-visible{outline-color:#e7c958}
 .login-theme input:autofill{box-shadow:0 0 0 1000px #292b24 inset;-webkit-text-fill-color:#f5f2e4}
 .login-theme #login-form>button{background:#e7c958;border-color:#e7c958;color:#24251e;min-height:48px;box-shadow:none}
 .login-theme #login-form>button:hover:not(:disabled){background:#f0d776;border-color:#f0d776}
 .login-theme .login-hint{color:#bbb9a7}
 .login-theme .error{background:#422a2c;border-color:#855057;color:#ffd6da}
 .login-theme #language-switch{background:#2d2f27;border-color:#655e3c;color:#efe3ae;box-shadow:none}
 .login-theme #install-app{background:#e7c958;border-color:#e7c958;color:#25261f;box-shadow:none}
 .login-theme #install-help{background:#262723;color:#f2f0e5;border-color:#5b5b49}
 .login-theme #install-help button{background:#e7c958;color:#25261f;border-color:#e7c958}
 .login-theme #toast{background:#33352b;color:#f4e5a3;border-color:#655e3c}
 .login-theme ::selection{background:#e7c958;color:#24251e}
}

/* Consistent controls and readable layouts across account types. */
@media screen {
 .field input:not([type=radio]):not([type=checkbox]):not([type=file]),.field select,.filters input,.filters select{height:50px;min-height:50px;font-size:16px;line-height:1.4}
 .field,.form-grid>*,.data-grid>*,.stack,.detail-grid>*{min-width:0}
 .data-grid strong,.data-grid p,.data-grid span,.account-name{overflow-wrap:anywhere}
 .account-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:180px}
 .account-actions button{min-height:44px}
 dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow-y:auto}
 .dialog-actions{flex-wrap:wrap;gap:10px}
 #language-switch{min-height:44px;bottom:calc(18px + env(safe-area-inset-bottom))}
 #install-app{min-height:44px}
 .content{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 @media(max-width:600px){
  .page-head{flex-wrap:wrap}
  .page-head h1{font-size:1.4rem;overflow-wrap:anywhere}
  .decision-buttons{flex-wrap:wrap;gap:8px}
  .decision-buttons button{min-height:44px}
  .add-item{min-height:44px}
  .panel-head{align-items:flex-start}
  .step-number{flex-shrink:0}
  #install-app{inset-inline-start:12px}
  #language-switch{inset-inline-end:12px}
 }
}

/* Admin navigation: brand, identity, then permanent account sections. */
@media screen {
 #app.admin-layout .sidebar .brand{display:grid;grid-template-columns:43px minmax(0,1fr);gap:10px 12px;padding:4px 7px 18px}
 #app.admin-layout .sidebar .brand>.account-role{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-top:3px;border:0;font-size:.7rem;line-height:1.5;color:#d6d3c4}
 #app.admin-layout .sidebar .brand .account-name{display:block;font-size:.83rem;font-weight:500;color:#f7f3df;overflow-wrap:anywhere}
 #app.admin-layout .sidebar .nav{display:grid;gap:8px;margin-top:18px}
 #app.admin-layout .sidebar .nav>a{min-height:48px;font-size:.9rem;border-radius:8px;padding:11px 13px}
 #app.admin-layout .sidebar .account-menu{margin-top:16px;min-width:0}
 #app.admin-layout .sidebar .account-menu-heading{font-size:.75rem;letter-spacing:.03em;font-weight:600;color:#d6d3c4;padding:0 13px 12px;border-bottom:1px solid #555442}
 #app.admin-layout .sidebar .account-submenu,html[dir=rtl] #app.admin-layout .sidebar .account-submenu{display:grid;gap:6px;margin:10px 0 0;padding:0;border:0}
 #app.admin-layout .sidebar .account-submenu a{min-height:44px;padding:10px 13px;border-radius:8px;font-size:.88rem}
 @media(max-width:960px){
  #app.admin-layout .sidebar .brand{grid-template-columns:38px minmax(0,1fr) auto}
  #app.admin-layout .sidebar .brand>#logout{grid-column:3;grid-row:1}
  #app.admin-layout .sidebar .brand>.account-role{grid-row:2}
  #app.admin-layout .sidebar .nav>a{justify-content:flex-start;text-align:start}
 }
}

@media screen {
 #app.admin-layout .sidebar .brand .account-name{display:none}
 .header-actions{display:flex;align-items:center;gap:8px}
 .admin-theme .header-actions #logout,.admin-theme .header-actions #language-switch{position:static;inset:auto;min-height:32px;height:32px;padding:4px 10px;font-size:12px;line-height:1.4;border-radius:7px;box-shadow:none;white-space:nowrap}
 @media(max-width:960px){
  #app.admin-layout .sidebar .brand{grid-template-columns:38px minmax(0,1fr)}
  #app.admin-layout .sidebar .brand>.header-actions{grid-column:1/-1;grid-row:3}
  .admin-theme .sidebar .header-actions #logout,.admin-theme .sidebar .header-actions #language-switch{background:#3b3b2d;color:#f2dc80;border-color:#635b35}
 }
}

/* Apply the shared charcoal and yellow palette to every signed-in role. */
@media screen {
 body.admin-theme{--bg:#f4f4ed;--blue:#686024}
 .admin-theme .empty h3{color:#292a24}
 .admin-theme input::file-selector-button{background:#f4ebc5;color:#49411d;border-color:#d5d2bc}
 .admin-theme .transport-options input[type=radio]{accent-color:#b69a2d}
 .admin-theme .upload{background:#faf9f0;border-color:#d5d2bc}
 .admin-theme .upload-preview{background:#fffef9;border-color:#ded8bd}
 .admin-theme .upload-preview img{background:#f6f4e8}
 .admin-theme .upload-preview-name{color:#6a6a5e}
 .admin-theme .upload-preview .remove-photo{background:#fffef9;color:#993641;border-color:#d5d2bc}
 .admin-theme .upload-preview .remove-photo:focus-visible{outline-color:#b59a2e}
 .admin-theme .remove-item{background:#faeeee;border-color:#e2bfc0;color:#993641}
 .admin-theme .checkpoint-confirm{background:#fffef8;border-color:#d6b943}
 .admin-theme .qr-scanner video{border-color:#c4a434}
 html[dir=ltr] .admin-theme .timeline li{border-color:#d9d4ba}
 #app:not(.admin-layout) .sidebar .brand{background:#242522;border-color:#34362f;color:#f7f3df}
 #app:not(.admin-layout) .sidebar .brand strong{color:#f7f3df}
 #app:not(.admin-layout) .sidebar .brand>.account-role{color:#d6d3c4;border-color:#46473d}
 #app:not(.admin-layout) .sidebar .brand .account-name{color:#d6d3c4}
 #app:not(.admin-layout) .sidebar .brand>#logout{background:#3b3b2d;color:#f2dc80;border-color:#635b35}
 #app:not(.admin-layout) .sidebar .nav{background:#242522;border-color:#34362f}
 #app:not(.admin-layout) .sidebar .nav a{color:#e5e3d7}
 #app:not(.admin-layout) .sidebar .nav a:hover{background:#414034;color:#fff0ad}
 #app:not(.admin-layout) .sidebar .nav a.active,#app:not(.admin-layout) .sidebar .nav a.active:hover{background:#e7c958;color:#25261f;border-color:#e7c958}
 #app:not(.admin-layout) .sidebar .nav a:focus-visible{outline-color:#f0d76e}
 #app:not(.admin-layout) .sidebar .scan-button{background:#e7c958;color:#25261f;border-color:#d9bd4b}
 #app:not(.admin-layout) .sidebar .scan-button:hover{background:#f0d776;border-color:#c4a434}
}

/* Language follows sign out: adjacent on laptops, stacked on phones. */
@media screen {
 #app .sidebar .brand>.header-actions{grid-column:3;grid-row:1;align-self:center}
 .admin-theme .sidebar .header-actions #logout,.admin-theme .sidebar .header-actions #language-switch{background:#3b3b2d;color:#f2dc80;border-color:#635b35}
 .login-theme .login-card .brand>div{min-width:0;flex:1}
 .login-theme .login-card .brand>#language-switch{position:static;inset:auto;flex-shrink:0;min-height:32px;height:32px;padding:4px 8px;font-size:12px;line-height:1.4;border-radius:7px}
 @media(max-width:960px){
  #app.admin-layout .sidebar .brand{grid-template-columns:38px minmax(0,1fr) auto}
  #app.admin-layout .sidebar .brand>.header-actions{grid-column:3;grid-row:1}
  .header-actions{flex-direction:column;align-items:stretch;gap:6px}
 }
}

@media screen and (max-width:960px){
 #app .sidebar .brand,#app.admin-layout .sidebar .brand{grid-template-columns:46px minmax(0,1fr) auto}
 #app .sidebar .brand .logo,#app.admin-layout .sidebar .brand .logo{width:46px;height:46px}
}

.brand-mobile-title{display:none}
@media screen and (max-width:960px){
 .sidebar .brand-standard-title{display:none}
 .sidebar .brand-mobile-title{display:block}
}

@media screen and (min-width:961px){
 #app .sidebar .brand-standard-title{display:none}
 #app .sidebar .brand-mobile-title{display:block}
 #app .sidebar .brand .logo,#app.admin-layout .sidebar .brand .logo{width:46px;height:46px}
 #app:not(.admin-layout) .sidebar .brand{grid-template-columns:46px minmax(0,1fr) auto}
 #app.admin-layout .sidebar .brand{grid-template-columns:46px minmax(0,1fr);column-gap:10px}
 #app.admin-layout .sidebar .brand strong{font-size:.8rem;line-height:1.5}
}

/* Desktop admin utility bar matches the charcoal navigation. */
@media screen and (min-width:961px){
 .admin-theme #app.admin-layout .workspace>.topbar{background:#242522;color:#f7f3df;border-bottom:1px solid #46473d;box-shadow:0 3px 12px #24252212;min-height:76px;padding:16px 40px}
 .admin-theme #app.admin-layout .topbar .header-actions{padding:5px;gap:6px;border:1px solid #4b4936;border-radius:11px;background:#2d2e27;box-shadow:inset 0 1px 0 #ffffff04}
 .admin-theme #app.admin-layout .topbar .header-actions #logout{background:#e7c958;color:#25261f;border-color:#d9bd4b;border-radius:7px;padding-inline:13px}
 .admin-theme #app.admin-layout .topbar .header-actions #language-switch{background:#35362c;color:#f2dc80;border-color:#5a5438;border-radius:7px;padding-inline:13px}
 .admin-theme #app.admin-layout .topbar .header-actions #logout:hover{background:#f0d776;border-color:#f0d776}
 .admin-theme #app.admin-layout .topbar .header-actions #language-switch:hover{background:#454332;color:#fff0ad;border-color:#8d7c3e}
 .admin-theme #app.admin-layout .topbar .header-actions button:focus-visible{outline-color:#f0d76e}
}

/* One continuous desktop frame, with a compact utility header. */
@media screen and (min-width:961px){
 #app.admin-layout .sidebar,html[dir=ltr] #app.admin-layout .sidebar{inset:0 auto 0 0;width:244px;margin:0;padding:20px 14px 80px;border:0;border-radius:0;box-shadow:none}
 html[dir=rtl] #app.admin-layout .sidebar{inset:0 0 0 auto}
 #app.admin-layout .workspace,html[dir=ltr] #app.admin-layout .workspace{margin:0 0 0 244px}
 html[dir=rtl] #app.admin-layout .workspace{margin:0 244px 0 0}
 .admin-theme #app.admin-layout .workspace>.topbar{height:54px;min-height:54px;padding:8px 24px;border:0;box-shadow:none;border-radius:0}
 .admin-theme #app.admin-layout .topbar .header-actions{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:8px}
 #app.admin-layout .sidebar .brand{padding-top:0;padding-bottom:18px}
 #app.admin-layout .content{padding-top:24px}
}

/* Three-language selector: compact in headers, readable on touch screens. */
#language-switch{width:auto;max-width:118px;cursor:pointer;appearance:auto;background-image:none;direction:ltr}
#language-switch option{background:#292a24;color:#fff6ce}
@font-face{font-family:'Noto Sans Arabic';src:url('/fonts/NotoSansArabic-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Noto Sans Arabic';src:url('/fonts/NotoSansArabic-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
html[lang=ckb] body{font-family:'Noto Sans Arabic',Tahoma,Arial,sans-serif}
html[lang=ckb] h1,html[lang=ckb] .account-menu-heading{letter-spacing:normal}
html[lang=ckb] .brand strong{line-height:1.6}
@media(max-width:480px){html[lang=ckb] .brand strong{font-size:14px}#language-switch{max-width:100px}}
