:root {
  --white: #f9f9fa;
  --line: rgba(238,244,255,.38);
  --glass: rgba(2,5,15,.70);
  --bg-dim: .45;
  --page-background: radial-gradient(ellipse at 55% 23%, #204265 0, transparent 42%),
    linear-gradient(125deg, #080c19 0%, #18274b 54%, #060c1a 100%);
  font-family: Arial, "Segoe UI", sans-serif;
  font-synthesis: none;
  color: var(--white);
  background: #070a14;
}
* {box-sizing:border-box}
body {margin:0;min-height:100vh;isolation:isolate}
body::before {content:"";position:fixed;inset:0;z-index:-2;background-image:var(--page-background);background-position:center center;background-size:cover;background-repeat:no-repeat}
body::after {content:"";position:fixed;inset:0;z-index:-1;background:#02050b;opacity:var(--bg-dim);pointer-events:none}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible{outline:2px solid #f5d48a;outline-offset:2px}
button:disabled{opacity:.55;cursor:not-allowed}
h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Arial,"Segoe UI",sans-serif}
.shell{min-height:100vh}
.appbar{min-height:44px;background:rgba(0,2,9,.87);border-bottom:1px solid #ffffff36;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 20px}
.appbrand{font-size:13px;font-weight:700;color:#fff}.appbrand span{font-size:10px;font-weight:400;opacity:.55;margin-left:8px}
.appbar{flex-wrap:wrap}
.appbrand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-logo{display:block;width:190px;height:auto;flex-shrink:0}
.brand-copy{min-width:0;line-height:1.35}
.appbrand .brand-version{display:block;margin:3px 0 0;font-size:11px;opacity:.7}
.appbar .app-actions{margin-left:auto;max-width:100%;flex-wrap:wrap}
@media(max-width:850px){.brand-logo{width:165px}}
@media(max-width:690px){.appbrand{width:100%;gap:10px}.brand-logo{width:clamp(112px,34vw,145px)}}
.app-actions{display:flex;align-items:center;gap:8px}.mini-status{font-size:11px;color:#c9d1df}.subtle-btn{border:1px solid #ffffff50;background:transparent;color:#f1f1f1;border-radius:2px;font-size:11px;padding:6px 9px}
.site-grid{display:grid;grid-template-columns:205px minmax(0,1fr) 46px;min-height:calc(100vh - 44px)}
.sidebar{background:rgba(0,2,9,.77);border-right:1px solid #ffffff36;padding:17px 12px;min-width:0}
.sidebar-label{font-size:13px;font-weight:700;margin:0 0 10px;color:#fff}
.search{width:100%;background:#010712b3;border:1px solid #ffffff66;color:#fff;border-radius:2px;padding:10px 8px;font-size:12px;min-width:0;outline-color:#eee}
.search::placeholder{color:#b2b8c7}
.character-list{margin-top:12px;display:grid;gap:5px}.character-link{text-align:left;border:1px solid transparent;color:#e2e6ef;background:transparent;font-size:12px;padding:10px 8px;border-radius:2px;line-height:1.35}
.character-link:hover,.character-link.selected{background:#ffffff23;border-color:#ffffff52}.character-avatar{display:inline-grid;place-items:center;background:#ffffff24;border:1px solid #ffffff25;height:24px;width:24px;margin-right:8px}
.main{width:min(100%,1150px);margin:0 auto;padding:10px 22px 70px;min-width:0}
.toolrail{background:rgba(0,2,9,.77);border-left:1px solid #ffffff36;display:flex;align-items:center;flex-direction:column;gap:10px;padding-top:15px}
.toolrail button{background:#0008;border:1px solid #ffffff55;color:#fff;border-radius:2px;width:32px;height:36px;font-size:19px}
.toolrail button:hover{background:#fff3}
#message:empty{display:none}.message{border:1px solid #e7a19b;background:#4b161be8;color:#fff;padding:9px 12px;margin:7px 0;font-size:12px}.message.success{background:#113a27d9;border-color:#88ba9b}
.initial{max-width:440px;margin:120px auto;text-align:center;background:#050811aa;padding:35px 20px;border:1px solid var(--line)}.initial h1{font-size:23px;margin-bottom:10px}.initial p{font-size:12px;line-height:1.5}.skeleton{font-size:12px;color:#b6b6c3;padding:12px}
.character-content{min-height:400px}
.sheet-page{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9);width:100%;margin:0 auto}
.sheet-identity{text-align:center;padding:14px 8px 18px}.sheet-identity h1{font-size:clamp(27px,3.3vw,36px);font-weight:700;line-height:1.1}.sheet-rank{display:block;font-size:15px;margin:8px auto 7px;border:0;background:transparent;color:#fff;font-weight:700;padding:2px 12px}.sheet-rank:hover{background:#ffffff22}.sheet-status{font-size:15px;font-style:italic;color:#e5e7ee}
.sheet-head{display:grid;grid-template-columns:minmax(155px,.87fr) minmax(150px,.72fr) minmax(275px,1.5fr);gap:12px;align-items:stretch;margin-bottom:16px}
.sheet-left,.sheet-right{display:flex;flex-direction:column;gap:10px;min-width:0}
.sheet-portrait{border:1px solid #ffffff50;background:#03040d8c;aspect-ratio:3/4;min-height:205px;overflow:hidden;display:grid;place-items:center;position:relative}
.sheet-portrait img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.portrait-empty{display:grid;place-items:center;gap:6px;padding:10px;color:#b5c3dc;text-align:center}.portrait-empty .glyph{font-size:38px;opacity:.5}.portrait-empty span{font-size:12px}
.sheet-panel{background:var(--glass);border:1px solid var(--line);padding:11px 12px;min-width:0}
.sheet-panel h2{font-size:16px;margin:1px 0 9px;font-weight:700}.sheet-panel h3{font-size:13px;margin:8px 0 5px;font-weight:700}
.sheet-resource{text-align:center}.sheet-resource .data-pair{margin:0 0 9px}.sheet-resource .data-pair:last-child{margin-bottom:0}
.data-pair .label{display:block;font-size:13px;font-weight:700;line-height:1.3;white-space:pre-wrap;overflow-wrap:anywhere}.data-pair .value{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere;margin-top:3px}
.sheet-stats{text-align:center;padding-left:9px;padding-right:9px;min-width:0}.sheet-stats .stat-row{display:block;margin:0 auto 12px;padding:0;border:0;background:transparent;color:#fff;width:100%;text-align:center;min-height:41px}.sheet-stats .stat-row:last-child{margin-bottom:0}
.sheet-stats .k{display:block;font-size:13px;font-weight:700;color:#fff;line-height:1.4}.sheet-stats .v{font-size:13px;display:block;margin-top:3px;line-height:1.4;color:#f3f4f8}
.editable:hover,.arcana-title.editable:hover{background:#ffffff20;outline:1px solid #ffffff78;outline-offset:2px}.pending-badge{color:#ffe4a1;margin-left:5px;font-size:10px;font-weight:400}.pen{font-size:10px;color:#d4d8e3;opacity:0;margin-left:4px}.editable:hover .pen{opacity:1}
.sheet-mastery{padding-bottom:5px}.sheet-mastery h2{margin-bottom:11px}.mastery-list{display:flex;flex-direction:column;gap:9px}.mastery-card{padding:0 0 2px;min-width:0}.mastery-name{font-size:14px;font-weight:400;line-height:1.4;margin-bottom:4px;overflow-wrap:anywhere}.mastery-desc{font-size:13px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.mastery-unpaired{opacity:.9}.mastery-caption{font-size:11px;opacity:.75}
.sheet-features .extra-item,.sheet-traits .extra-item{margin-bottom:9px}.sheet-features .extra-item:last-child,.sheet-traits .extra-item:last-child{margin-bottom:0}
.extra-title{font-size:13px;font-weight:700;line-height:1.5;margin-bottom:3px}.extra-body{font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.sheet-features .extra-body,.sheet-traits .extra-body{font-style:italic}
.special-stack{display:flex;flex-direction:column;gap:10px;margin:12px 0 29px}
.pre-arcana-block{background:var(--glass);border:1px solid var(--line)}
.pre-arcana-title{font-size:14px;text-align:center;font-weight:700;background:var(--special-color,#be6161);color:#170e10;text-shadow:none;padding:8px 12px;line-height:1.4}
.pre-arcana-description{font-size:13px;font-weight:600;font-style:italic;text-align:center;line-height:1.5;padding:9px 12px}
.pre-arcana-ability{font-size:13px;text-align:center;line-height:1.5;padding:3px 12px 7px;border-top:1px solid #ffffff33}
.arcana-section-title{font-size:21px;font-weight:700;margin:20px 0 13px}
.arcana-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:12px}
.arcana-card{min-width:0;background:var(--glass);border:1px solid var(--line);display:flex;flex-direction:column;align-self:stretch}
.arcana-card.wide{grid-column:span 2}.arcana-title{border:0;border-bottom:1px solid #16182080;color:#131617;text-shadow:none;background:var(--arcana,#b7b7b7);text-align:center;font-size:16px;font-weight:700;padding:9px 6px;line-height:1.3;display:block;width:100%;overflow-wrap:anywhere}
.arcana-title.editable{cursor:pointer}
.arcana-description{font-size:13px;text-align:center;font-style:italic;font-weight:700;line-height:1.45;padding:8px 11px;border-bottom:1px solid #ffffff55;background:#05071280;overflow-wrap:anywhere}
.arcana-ability{font-size:13px;line-height:1.55;text-align:center;padding:7px 11px;background:#0005;border-bottom:1px solid #ffffff35;white-space:pre-wrap;overflow-wrap:anywhere}
.arcana-ability:last-child{border-bottom:0}.arcana-ability:empty{min-height:32px}
.draft-sticky{position:sticky;bottom:14px;z-index:4;border:1px solid #ffffff88;background:#030611ed;padding:10px 12px;margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.draft-sticky strong{font-size:13px}.draft-sticky span{opacity:.75}
.draft-sticky button{background:#fff;border:0;color:#101621;padding:7px 12px}
.mobile-tools{display:none}
/* Editing and settings dialogs stay readable independently of the card background. */
.dialog{border:1px solid #b6b9c3;border-radius:5px;padding:22px;color:#202432;background:#f6f7f8;box-shadow:0 22px 100px #000c;width:min(94vw,540px);max-height:88vh;overflow-y:auto}
.dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}.dialog.narrow{width:min(94vw,445px)}
.dialog h2{font-size:22px;margin-bottom:10px}.dialog h3{font-size:14px;margin:0 0 10px}.dialog p{font-size:13px;line-height:1.5;margin:5px 0 10px;color:#4c5564}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}.dialog-head small{font-size:10px;color:#6e7787;letter-spacing:.08em}.close{border:1px solid #c3c7d0;background:#fff;width:32px;height:32px;font-size:24px;line-height:1}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.primary{background:#263655;color:#fff;border:1px solid #263655;padding:9px 13px;border-radius:3px}.primary:hover{background:#3b517a}.outline{background:#fff;color:#263655;border:1px solid #aeb9cc;padding:9px 11px;border-radius:3px}.wide{width:100%}.fineprint{font-size:11px!important;color:#737c8a!important;margin-top:12px!important}
.radio-row{display:block;font-size:13px;margin:12px 0}.counter{display:flex;justify-content:center;gap:12px;align-items:center;margin:23px 0}.counter button{border:1px solid #9da3ad;background:#fff;font-size:25px;width:48px;height:48px}.counter input{width:88px;height:48px;border:1px solid #a8aeb7;text-align:center;font-size:23px}.toolbox{display:grid;gap:7px;margin-top:12px}
.settings-group{border:1px solid #d7d9e1;background:#fff;padding:12px;margin:12px 0}.file-pick{display:block;border:1px dashed #9ea8bc;background:#eef2f8;text-align:center;color:#263655;padding:11px;margin:7px 0;cursor:pointer;font-size:13px}.settings-note{color:#667084!important;font-size:11px!important;margin:9px 0 3px!important}.field-row{display:flex;justify-content:space-between;font-size:12px;margin-top:15px}#bg-dim{width:100%;accent-color:#314a76;margin:10px 0}#admin-diagnostics{font-size:12px;max-height:200px;overflow:auto;border:1px solid #d6dbe4;padding:10px;margin-top:14px}
.draft-change{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #d9dce1;padding:10px 0;font-size:12px}.draft-total{display:flex;justify-content:space-between;background:#e8eef5;padding:14px;margin-top:14px}.draft-total strong{font-size:22px}
@media(max-width:1120px){.site-grid{grid-template-columns:175px minmax(0,1fr) 42px}.main{padding:11px 12px 70px}.sheet-head{grid-template-columns:minmax(125px,.8fr) minmax(120px,.68fr) minmax(210px,1.4fr);gap:8px}.sheet-panel{padding:9px}.arcana-grid{gap:9px}}
@media(max-width:850px){.sheet-head{grid-template-columns:minmax(145px,.9fr) minmax(150px,.85fr)}.sheet-right{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.sheet-mastery{grid-row:1 / span 2}.sheet-features,.sheet-traits{grid-column:2}.sheet-head>.sheet-left{grid-row:1}.sheet-stats{grid-row:1}.arcana-title{font-size:15px}}
@media(max-width:690px){.appbar{padding:7px 12px;min-height:41px}.mini-status{display:none}.site-grid{display:block}.sidebar{border:0;border-bottom:1px solid #ffffff38;display:flex;gap:8px;align-items:center;padding:8px 10px;min-height:58px}.sidebar-label{display:none}.search{width:125px;padding:8px 7px;font-size:11px;flex-shrink:0}.character-list{margin:0;display:flex;gap:5px;overflow-x:auto;white-space:nowrap;min-width:0}.character-link{padding:7px 9px;border-color:#ffffff27;background:#04051092}.character-avatar{display:none}.toolrail{display:none}.main{padding:8px 11px 85px}.mobile-tools{display:grid;place-items:center;position:fixed;bottom:21px;right:17px;z-index:12;border:1px solid #ffffff77;background:#040916ef;color:#fff;border-radius:50%;width:53px;height:53px;font-size:23px;box-shadow:0 4px 22px #0009}.sheet-identity{padding:15px 5px}.sheet-identity h1{font-size:28px}.sheet-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sheet-portrait{min-height:180px}.sheet-right{display:flex;grid-column:1/-1;grid-row:auto}.sheet-mastery,.sheet-features,.sheet-traits{grid-column:auto;grid-row:auto}.sheet-panel h2{font-size:15px}.arcana-grid{grid-template-columns:1fr;gap:9px}.arcana-card.wide{grid-column:1}.arcana-ability{font-size:13px}.arcana-section-title{margin:20px 0 12px}.sheet-rank{margin:4px auto}.sheet-status{font-size:14px}}
@media(max-width:380px){.sheet-head{gap:7px}.sheet-panel{padding:8px 7px}.sheet-portrait{min-height:155px}.sheet-stats .stat-row{margin-bottom:10px}.sheet-stats .k,.sheet-stats .v{font-size:12px}.sheet-resource .data-pair .label{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* v3: softly rounded card corners, preserving the VK character sheet layout. */
:root { --card-radius: 11px; }
.sheet-panel,.sheet-portrait,.pre-arcana-block,.arcana-card,.initial {border-radius:var(--card-radius);overflow:hidden}
.sheet-portrait{cursor:default}
.admin-mode .sheet-portrait{cursor:pointer}
.appbar,.sidebar,.toolrail{border-color:#ffffff30}
.subtle-btn,.toolrail button,.search,.character-link,.character-avatar,.message,.draft-sticky,.draft-sticky button{border-radius:7px}
.arcana-title{border-top-left-radius:var(--card-radius);border-top-right-radius:var(--card-radius)}
.admin-inline{display:inline;appearance:none;background:transparent;color:inherit;font:inherit;font-weight:inherit;font-style:inherit;line-height:inherit;text-align:inherit;border:0;padding:0;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;cursor:pointer;text-shadow:inherit}
.admin-inline:hover,.admin-inline:focus-visible{outline:1px dashed #f9db8e;outline-offset:3px;background:#ffffff1c}
.admin-pen{display:none;font-weight:normal;font-size:10px;color:#ffe09d}
.admin-inline:hover .admin-pen,.admin-inline:focus-visible .admin-pen{display:inline}
.admin-add,.admin-remove{display:inline-block;color:#f9dba0;background:#091524;border:1px dashed #c7ab6d8a;border-radius:7px;padding:5px 8px;font-size:11px;margin:5px;line-height:1.3;cursor:pointer}
.admin-remove{color:#f4aaaa;border-color:#ed7d7d8a;margin:1px 5px;padding:1px 7px}
.admin-add:hover,.admin-remove:hover{background:#3b3446}
.admin-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;background:#051021b8;padding:3px 7px}
.admin-tools .admin-inline{border:1px dashed #ffffff40;border-radius:4px;padding:4px 7px;font-size:11px}
.admin-mode .arcana-title .admin-inline{font-weight:700}
.admin-mode .mastery-card{position:relative}
.admin-metadata{border-top:1px dashed #ffffff38;display:flex;flex-wrap:wrap;gap:7px;font-size:10px;padding:3px 0;color:#babfd0}
.empty-placeholder{opacity:.65;font-style:italic}
.admin-mode .sheet-status .admin-inline{font-style:italic}
.admin-mode .sheet-identity h1 .admin-inline{font-weight:700}
.admin-textarea,.admin-value-input{display:block;width:100%;padding:12px;border:1px solid #b6bbc4;border-radius:8px;background:#fff;color:#1a2536;font:14px Arial,sans-serif;margin:9px 0;line-height:1.5}
.admin-textarea{min-height:145px;resize:vertical}
.admin-value-input[type=color]{width:100%;height:55px}
.admin-textarea[hidden],.admin-value-input[hidden]{display:none}
.validation-error{color:#a82424!important;font-weight:700}
@media(max-width:690px){:root{--card-radius:10px}.admin-add,.admin-remove{font-size:11px}}

/* v4: characteristics sit evenly inside their panel and are edited in place. */
.sheet-stats{display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;text-align:center}
.sheet-stats > h2{flex:0 0 auto;margin-bottom:7px}
.sheet-stats .stats-list{flex:1 1 auto;min-height:0;display:grid;grid-auto-rows:minmax(50px,1fr);gap:2px;align-content:stretch}
.sheet-stats .stat-row{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  position:relative;min-width:0;min-height:50px;width:100%;max-width:100%;
  margin:0;padding:5px 5px;border:1px solid transparent;border-radius:9px;
  background:transparent;color:#fff;cursor:pointer;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.sheet-stats .stat-row:hover,.sheet-stats .stat-row:focus-within,.sheet-stats .stat-row.is-active{
  background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.42);
}
.sheet-stats .stat-row.is-changed{
  border-color:#edc76c;background:rgba(226,174,61,.13);
  box-shadow:inset 0 0 0 1px rgba(237,199,108,.4);
}
.sheet-stats .stat-row.is-changed::before{
  content:"";position:absolute;right:6px;top:6px;height:5px;width:5px;
  border-radius:50%;background:#f6d16c;
}
.sheet-stats .k{font-size:15px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.sheet-stats .stat-value-line{
  position:relative;width:100%;min-height:29px;display:flex;align-items:center;
  justify-content:center;margin-top:2px;
}
.sheet-stats .v,.sheet-stats .stat-exact{font-size:16px;line-height:1.4;color:#f3f4f8;white-space:nowrap;margin:0}
.sheet-stats .stat-exact{border:0;border-radius:5px;background:transparent;padding:3px 5px}
.sheet-stats .stat-exact:hover{text-decoration:underline;text-decoration-style:dotted}
.sheet-stats .stat-step{
  position:absolute;top:50%;transform:translateY(-50%);
  width:28px;height:27px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.45);border-radius:6px;
  background:#17233c;color:#fff;font-size:19px;font-weight:bold;line-height:1;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease;
}
.sheet-stats .stat-minus{left:0}.sheet-stats .stat-plus{right:0}
.sheet-stats .stat-row:is(:hover,:focus-within,.is-active) .stat-step{
  opacity:1;visibility:visible;pointer-events:auto;
}
.sheet-stats .stat-step:disabled{opacity:.25;cursor:not-allowed}
.sheet-stats .stat-step:not(:disabled):hover{background:#354b73;border-color:#fff}
/* Numeric inputs remain useful for rank/arcana and exact admin edits, but no browser spinner. */
input[type=number]{-moz-appearance:textfield;appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:850px){
  .sheet-stats .stats-list{grid-auto-rows:minmax(49px,1fr)}
}
@media(max-width:690px){
  .sheet-stats .stats-list{grid-auto-rows:minmax(52px,1fr)}
  .sheet-stats .stat-step{width:28px;height:29px}
  /* On touch, controls open on the first tap; do not require hovering. */
}
@media(max-width:380px){
  .sheet-stats .stat-row{padding:4px 2px}
  .sheet-stats .stat-step{width:25px;height:27px}
}
@media(hover:none){
  .sheet-stats .stat-row:not(.is-active) .stat-step{opacity:0;visibility:hidden;pointer-events:none}
  .sheet-stats .stat-row.is-active .stat-step{opacity:1;visibility:visible;pointer-events:auto}
}

/* v5: rank/arcana inline controls, live OP difference, special black arcanas */
.arcana-title{color:var(--arcana-fg,#14171c)}
.arcana-heading-controls{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:stretch;min-width:0;background:var(--arcana);color:var(--arcana-fg,#14171c)}
.arcana-heading-controls .arcana-title{border-radius:0;margin:0;min-width:0}
.arcana-numeric{border:0;border-bottom:1px solid #1a1c1e65;background:#ffffff20;color:inherit;font-size:19px;font-weight:700;cursor:pointer;opacity:0;pointer-events:none}
.arcana-heading-controls:is(:hover,:focus-within,.is-active) .arcana-numeric{opacity:1;pointer-events:auto}
.arcana-numeric:disabled{opacity:.25;cursor:not-allowed}
.arcana-heading-controls.numeric-changed{outline:2px solid #e9bb54;outline-offset:-2px}
.rank-line{display:flex;align-items:center;justify-content:center;gap:7px;margin:6px auto;width:max-content;border:1px solid transparent;border-radius:8px}
.rank-line .sheet-rank{margin:0}
.rank-line .num-step{width:30px;height:28px;border-radius:6px;background:#17233c;color:white;border:1px solid #ffffff70;cursor:pointer;opacity:0;pointer-events:none}
.rank-line:is(:hover,:focus-within) .num-step{opacity:1;pointer-events:auto}
.rank-line .num-step:disabled{opacity:.2}
.rank-line.numeric-changed{border-color:#e9bb54;background:#b7903628}
.op-count{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:3px auto}
.op-arrow{color:#f6c65e;font-weight:900}
.op-changed strong{color:#ffdf93;font-size:18px}
.op-negative strong,.plan-negative{color:#ff7777!important}
.op-spent{display:block;width:100%;color:#d8c18e;font-size:11px}
.op-changed .op-first{opacity:.65}
.draft-change small{opacity:.7}.draft-total strong.plan-negative{color:#aa2424!important}
@media (hover:none){.arcana-heading-controls .arcana-numeric,.rank-line .num-step{opacity:1;pointer-events:auto}}

.reroll-skill{border:1px solid #ffffff70;border-radius:6px;background:#162341;color:#fff;padding:3px 7px;font-size:10px;cursor:pointer;margin:3px 6px}.reroll-skill:hover{background:#34466b}

.approval-list{margin:10px 0}.approval-item{padding:10px;margin:9px 0;border:1px solid #b8c2d2;border-radius:8px;background:#f2f4f8;color:#273148;font-size:12px}.approval-item b,.approval-item small{display:block;margin:4px 0}.approve-text{width:100%;padding:8px;margin:6px 0;font:12px Arial;border:1px solid #b8c2d2;border-radius:5px}.approve-slot{padding:7px;margin:4px}.approval-item button{margin:4px;padding:7px 12px}

/* v5.1: one-time VK bot sign-in */
.bot-login-code{margin:16px 0;padding:17px 10px;text-align:center;background:#132441;color:#fff;font:bold 18px monospace;border-radius:9px;letter-spacing:.04em;user-select:all;overflow-wrap:anywhere}
#bot-login-status{color:#354b67;font-weight:600}

/* v5.1.1: small registry owner label at the upper-right of every sheet. */
.sheet-owner{display:block;text-align:right;font-size:11px;line-height:1.45;color:#bdc8db;
  max-width:100%;margin:0 4px 7px;overflow-wrap:anywhere;font-weight:400}
.sheet-owner>span:first-child{opacity:.8}
.sheet-owner a{color:#d6e2fa;text-decoration:none;border-bottom:1px dotted #93a8d0;text-shadow:0 1px 3px #000}
.sheet-owner a:hover,.sheet-owner a:focus-visible{color:#fff;border-color:#fff}
.sheet-owner-name{color:#d0d7e6}
@media(max-width:690px){.sheet-owner{font-size:10px;margin-bottom:8px}.appbar{flex-wrap:wrap}.app-actions{flex-wrap:wrap;justify-content:flex-end}}

/* v5.1.5: dismissible, readable errors near the bottom of the screen. */
.site-toast-stack{position:fixed;inset:auto;bottom:calc(18px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);width:min(570px,calc(100vw - 28px));max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:inherit;overflow:visible;z-index:20000;display:grid;gap:8px;pointer-events:none}
.site-toast-stack[popover]:not(:popover-open){display:none}
.site-toast-stack::backdrop{background:transparent;backdrop-filter:none;pointer-events:none}
.site-toast{pointer-events:auto;display:flex;align-items:start;justify-content:space-between;gap:12px;border:1px solid #f4a6a2;border-left:4px solid #ff8179;border-radius:10px;background:#29131a;color:#fff;box-shadow:0 10px 38px #000c;padding:13px 13px 13px 16px;font-size:13px;line-height:1.45;overflow-wrap:anywhere;animation:site-toast-in .2s ease-out}
.site-toast.success{background:#123226;border-color:#83c8a5;border-left-color:#53bd8a}
.site-toast-copy{flex:1;min-width:0}.site-toast-close{color:#fff;background:transparent;border:0;border-radius:4px;min-width:27px;min-height:27px;padding:0 4px;font-size:23px;line-height:1;flex-shrink:0}
.site-toast-close:hover,.site-toast-close:focus-visible{background:#ffffff30}
@keyframes site-toast-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:690px){.site-toast-stack{bottom:calc(85px + env(safe-area-inset-bottom, 0px));width:calc(100vw - 24px)}.site-toast{font-size:12px;padding:12px}}
@media(prefers-reduced-motion:reduce){.site-toast{animation:none}}

/* v5.2.3: recovery diagnostics stay readable in the compact settings dialog. */
.recovery-list{margin:10px 0;display:grid;gap:9px}
.recovery-item{padding:11px;border:1px solid #b8c2d2;border-radius:8px;background:#f2f4f8;color:#273148;font-size:12px;overflow-wrap:anywhere}
.recovery-item .fineprint{font-size:11px}
.recovery-report{margin:9px 0 0;line-height:1.65;border-top:1px solid #c9d0dd;padding-top:8px}
.recovery-item button{margin:6px 6px 2px 0;padding:8px 10px;max-width:100%}

.recovery-history{font-size:11px;overflow-wrap:anywhere;color:#47536c}.recovery-history div{padding:5px 0;border-bottom:1px solid #cdd3df}

/* v5.4: a blocking, visible progress state while writing to both spreadsheets. */
.commit-progress[hidden]{display:none!important}
.commit-progress{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;background:#070d19b9;backdrop-filter:blur(5px);padding:16px}
.commit-progress-card{width:min(430px,100%);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:30px 25px;border-radius:17px;border:1px solid #9da9c966;background:#101e38;color:#f4f6ff;box-shadow:0 18px 90px #000d}
.commit-progress-card strong{font-size:18px;line-height:1.4}
.commit-progress-card p{margin:0;line-height:1.5;font-size:13px;color:#d0d8e7}
.commit-progress-card .commit-progress-note{font-size:11px;color:#f3d38f}
.commit-spinner{width:38px;height:38px;border-radius:50%;border:4px solid #93a8d34d;border-top-color:#f0c46e;animation:commit-rotate .85s linear infinite}
@keyframes commit-rotate{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.commit-spinner{animation:none;border-top-color:#f0c46e}}

.pending-commit-hint{margin:10px 0;color:#7a4c11;background:#fff5d9;border:1px solid #e4c276;border-radius:8px;padding:11px 12px;line-height:1.5;font-size:12px}

/* v5.7.2: PostgreSQL registry annotation editor */
.catalog-dialog{width:min(1260px,96vw);max-width:96vw;max-height:92vh;overflow:auto}
.catalog-toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.catalog-toolbar label{flex:1 1 210px;font-size:12px}
.catalog-toolbar select,.catalog-toolbar input,.catalog-annotation textarea,.catalog-param input,.catalog-param select{width:100%;display:block;color:#17283f;background:#fff;border:1px solid #b7c3d2;border-radius:6px;padding:9px;margin-top:4px;font:inherit;box-sizing:border-box}
.catalog-workspace{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(180px,1fr) minmax(340px,2fr);gap:10px;align-items:start}
.catalog-sidebar,.catalog-skill-list{border:1px solid #d1d9e4;background:#f6f8fc;border-radius:8px;padding:8px;max-height:64vh;overflow:auto}
.catalog-list-item{display:block;width:100%;background:#fff;color:#27364e;padding:10px;border:1px solid #d4ddea;text-align:left;border-radius:7px;margin:4px 0;cursor:pointer;overflow-wrap:anywhere}
.catalog-list-item.active{background:#e0edff;border-color:#446eae}
.catalog-list-item strong,.catalog-list-item small,.catalog-list-item span{display:block;line-height:1.35}
.catalog-list-item small{color:#68758b;font-size:11px;margin-top:4px}
.catalog-list-item span{font-size:11px;margin-top:5px;white-space:pre-wrap}
.catalog-annotation{border:1px solid #d1d9e4;border-radius:8px;padding:12px;min-width:0;background:#fff;color:#1a273a}
.catalog-annotation h3,.catalog-annotation h4{margin:5px 0 13px}
.catalog-annotation label{display:block;font-size:12px;margin:9px 0}
.catalog-annotation textarea{resize:vertical;line-height:1.4}
.catalog-annotation textarea[readonly]{background:#eef1f6}
.catalog-inline-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px}
.catalog-inline-heading button{font-size:11px;padding:7px}
.catalog-param{border:1px solid #cbd4e0;border-radius:8px;margin:10px 0;padding:9px}
.catalog-param legend{font-weight:600}
.catalog-param-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.catalog-param-upgrades{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.catalog-param-upgrades input{width:110px}
.catalog-param-upgrades select{width:120px}
.catalog-param-upgrades label{margin:4px 0}
.catalog-param-upgrades .catalog-check{display:flex;align-items:center;gap:6px}
.catalog-param-upgrades .catalog-check input{width:auto}
.catalog-standard-buttons{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.catalog-standard-buttons button,.catalog-row-actions button{font-size:12px;padding:7px}
.catalog-preview{border:1px solid #d1d9e4;border-radius:7px;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:#edf3fa;min-height:54px;font-size:13px}
@media(max-width:950px){.catalog-workspace{grid-template-columns:minmax(120px,1fr) minmax(150px,1fr)}.catalog-annotation{grid-column:1/-1}}
@media(max-width:520px){.catalog-workspace{display:block}.catalog-sidebar,.catalog-skill-list{max-height:180px;margin:7px 0}.catalog-param-fields{grid-template-columns:1fr}}

/* v5.7.3: reviewed Google Sheets sync queue */
.catalog-sync{border:1px solid #cbd7e5;border-radius:9px;padding:12px;background:#f2f6fc;color:#21354c;margin:10px 0}
.catalog-sync .catalog-inline-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}
.catalog-sync button{padding:7px 11px;font-size:12px}
.catalog-sync-changes{max-height:300px;overflow-y:auto;display:grid;gap:7px;margin-top:8px}
.catalog-sync-item{background:#fff;border:1px solid #ccd8e6;padding:10px;border-radius:7px;overflow-wrap:anywhere}
.catalog-sync-item .catalog-sync-diff{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.catalog-sync-item pre{background:#f0f3f8;padding:9px;border-radius:5px;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.5 inherit;margin:4px 0}
.catalog-sync-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.catalog-sync-warnings{max-height:110px;overflow:auto;border-left:3px solid #d7a847;padding:8px;background:#fffbef;font-size:12px;margin:8px 0;white-space:pre-wrap}
@media(max-width:520px){.catalog-sync-item .catalog-sync-diff{grid-template-columns:1fr}}

/* v5.7.4: rarity colour from "Реестр Аркан", WCAG-contrasted text. */
.catalog-list-item.rarity-card,.arcana-picker-card.rarity-card{
  background:var(--rarity-bg,#fff);color:var(--rarity-ink,#26364d);
  border-color:color-mix(in srgb,var(--rarity-bg,#e0e6ee) 75%,#27364d);
}
.catalog-list-item.rarity-card small,.catalog-list-item.rarity-card span{
  color:inherit;opacity:.88;
}
.catalog-list-item.rarity-card.active{outline:3px solid #245b97;outline-offset:-3px}
.catalog-arcana-info{font-size:12px;line-height:1.5;margin:8px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.arcana-picker-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:11px;max-height:65vh;overflow:auto;padding:3px}
.arcana-picker-card{background:#f4f6fa;color:#27364e;border:1px solid #c8d2df;padding:14px;border-radius:10px;display:flex;flex-direction:column;gap:7px;min-width:0;overflow-wrap:anywhere}
.arcana-picker-card h3{font-size:18px;margin:0}.arcana-picker-card p{font-size:13px;margin:0;white-space:pre-wrap;line-height:1.5}
.arcana-picker-card .arcana-picker-badge{font-size:11px;font-weight:700;opacity:.9}
.arcana-picker-card button{margin-top:auto;border-radius:7px;padding:8px 10px;background:#fff;color:#18283f;border:1px solid #c3cbd4;cursor:pointer}
.arcana-picker-card button:disabled{opacity:.65;cursor:default}
.arcana-picker-card details{font-size:12px;line-height:1.45}.arcana-picker-card summary{cursor:pointer}
@media(max-width:520px){.arcana-picker-list{grid-template-columns:1fr}}

/* v5.7.6: explicit two-step catalog arcana selection before draft or Sheets write. */
.arcana-picker-select{margin-top:auto;width:100%;text-align:left;font-weight:600}
.arcana-picker-card.is-selected{outline:3px solid var(--focus-color, #396ba3);outline-offset:1px}
.arcana-picker-selection{margin-top:14px;padding:16px;border:2px solid #8aa9cd;border-radius:12px;background:#f1f6fd;color:#1b2a44}
.arcana-picker-selection[hidden]{display:none}
.arcana-picker-selection h3{margin:10px 0;font-size:20px}
.arcana-picker-selection p{white-space:pre-wrap;line-height:1.5}
.arcana-picker-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.arcana-picker-actions button{flex:1 1 230px}

/* v5.8.0: history filters and readable immutable receipts */
.audit-filters {display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin:12px 0;}
.audit-filters label {display:flex;flex-direction:column;gap:5px;font-size:0.9em;}
.audit-filters input,.audit-filters select {max-width:100%;min-width:0;}
.audit-event {overflow-wrap:anywhere;}
.audit-json {white-space:pre-wrap;overflow-wrap:anywhere;max-height:350px;overflow:auto;font-size:0.78rem;}
.audit-success {color:#2b9c60;font-weight:600;}
.audit-pending {color:var(--muted, #858585);}

.mastery-entitlement{border-inline-start:3px solid currentColor;padding:4px 9px;margin-bottom:5px;opacity:.8;}

.mastery-diagnostic {border-left:3px solid #bd8030;padding:4px 8px;}

/* Legacy Google Sheets Q:T inventory: text blocks are freeform, not item records. */
.inventory-section{margin-top:22px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--glass);padding:13px;min-width:0}
.inventory-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.inventory-head h2{font-size:21px;margin:0}
.inventory-buttons{display:flex;gap:7px;flex-wrap:wrap}
.inventory-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:9px}
.inventory-stat{border:1px solid var(--line);padding:10px;text-align:center;display:grid;gap:5px;min-width:0}
.inventory-stat span{font-size:12px;color:#d6dcf0}.inventory-stat strong{font-size:20px}
.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.inventory-box{border:1px solid var(--line);min-width:0;min-height:88px}
.inventory-box h3{background:#07090f;color:#fff;font-size:14px;text-align:center;margin:0;padding:8px}
.inventory-value{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;font-size:14px;line-height:1.5}
.inventory-other{margin-top:9px}.inventory-other .inventory-box{min-height:88px}
.inventory-note{font-size:13px;color:#d9dfef}.inventory-error{color:#ffb2b2;font-size:13px}
.inventory-dialog{width:min(95vw,760px)}
.inventory-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:12px 0}
.inventory-form-grid label,.inventory-full-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.inventory-form-grid input,.inventory-form-grid textarea,.inventory-full-field textarea{box-sizing:border-box;width:100%;border:1px solid #afb6c5;padding:10px;border-radius:6px;font:14px/1.45 Arial,sans-serif;color:#151d2b;background:#fff;resize:vertical}
.inventory-history-item{border:1px solid var(--line);margin:8px 0;padding:8px;font-size:12px}
.inventory-history-item summary{cursor:pointer}.inventory-history-item pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;padding:8px;background:#111c2e}
@media(max-width:690px){.inventory-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-form-grid{grid-template-columns:1fr}}
