: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{white-space:nowrap}
.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}}
