
:root{--bg:#090b14;--panel:#141627;--panel2:#1e1a32;--stroke:#3d3453;--txt:#f0edf8;--muted:#b7abc9;--vio:#aa79fb;--red:#fa667a;--sky:#85d6eb;--gold:#f0bd72}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(ellipse at 15% 0,#30204b66,transparent 45%),radial-gradient(ellipse at 85% 20%,#60223736,transparent 45%),var(--bg);color:var(--txt);margin:0;min-height:100vh}
button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.top{min-height:196px;background:linear-gradient(100deg,#100d21,#261836 60%,#221221);border-bottom:1px solid #794f955a;padding:28px clamp(15px,4vw,72px) 24px;position:relative;overflow:hidden}
.top:after{content:'呪';position:absolute;right:7%;top:-95px;font-size:260px;color:#9f62db12;pointer-events:none}.eyebrow{font-size:11px;color:var(--red);font-weight:900;letter-spacing:.22em}.top h1{font-size:clamp(32px,4.4vw,64px);line-height:1;letter-spacing:-.05em;text-transform:uppercase;margin:10px 0 12px;max-width:940px}.top h1 em{font-style:normal;color:var(--vio)}.top p{max-width:790px;line-height:1.65;color:#c6bdd4;margin:0}.head-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.head-meta span{font-size:11px;border:1px solid #9a77c57a;background:#ffffff0a;padding:5px 10px;border-radius:30px;color:#e0cfed}
.shell{max-width:1530px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:20px;padding:25px clamp(12px,3vw,48px) 80px;align-items:start}.pane{background:#151424de;border:1px solid #55436e;border-radius:16px;box-shadow:0 14px 48px #0003;overflow:hidden}.pane-head{padding:18px 22px;border-bottom:1px solid #39304e;background:linear-gradient(120deg,#28203a,#171625)}.pane-head h2{font-size:17px;letter-spacing:.01em;margin:0 0 4px}.pane-head p{font-size:12px;color:var(--muted);margin:0;line-height:1.4}.filters{padding:16px 20px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:10px;border-bottom:1px solid #372e49}input,select{min-width:0;width:100%;background:#0d0e1c;border:1px solid #605277;border-radius:9px;color:#eee8fb;padding:11px 10px;font-size:12px}input::placeholder{color:#82768d}.controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 20px;border-bottom:1px solid #372e49}.button{padding:10px 12px;border:1px solid #65547c;border-radius:9px;background:#29223b;color:#f4eefa;font-size:12px;font-weight:750;transition:background .2s}.button:hover{background:#45305b}.button.primary{background:linear-gradient(120deg,#9b4e9c,#663ea3);border-color:#cb88d1}.button.primary:hover{background:linear-gradient(120deg,#a956ad,#7848be)}.button.red{border-color:#a35864;background:#492530}.button.ghost{border-color:transparent;background:transparent;color:#cbbedd}.button:disabled{opacity:.42;cursor:not-allowed}.counter{margin-left:auto;font-size:12px;color:#bbaecd;font-variant-numeric:tabular-nums}.catalog{padding:12px 18px 22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:690px;overflow:auto}.pick{padding:13px 13px 11px;border:1px solid #4f4161;background:linear-gradient(140deg,#242038,#181b2b);border-radius:11px;min-width:0;position:relative}.pick:before{content:'';height:2px;position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,var(--red),var(--vio),var(--sky))}.pick .p-meta{color:#b7a4cf;font-size:10px;letter-spacing:.07em;font-weight:780}.pick h3{font-size:15px;line-height:1.25;margin:6px 0 7px;color:#f5f0ff}.pick .p-info{font-size:12px;color:#aab1c6;line-height:1.4;min-height:32px}.pick .p-actions{display:flex;gap:6px;align-items:center;justify-content:space-between;margin-top:10px}.pick .restriction{color:#ffd0ae;font-size:9px;font-weight:800}.pick button{min-width:90px}.aside{position:sticky;top:13px}.stack{padding:14px}.size-mode{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:13px}.mode{border:1px solid #5f5074;padding:11px 9px;background:#262039;color:#d5c8e9;text-align:left;border-radius:8px;font-weight:800;font-size:12px}.mode small{display:block;font-size:10px;font-weight:500;margin-top:5px;color:#ac9cbf}.mode.active{border-color:var(--vio);box-shadow:inset 0 0 0 1px #b481df,0 0 16px #b77bf233;background:#342247;color:#fff}.batch{display:flex;gap:8px;margin-bottom:13px}.batch>*{flex:1}.selected-list{max-height:370px;overflow:auto;padding:0 11px 11px}.chosen{display:flex;gap:9px;align-items:center;justify-content:space-between;border-bottom:1px solid #332a44;padding:8px 3px}.chosen .name{font-size:12px;font-weight:750;flex:1;min-width:0}.chosen small{color:#a99ac2;font-size:10px;display:block;margin-top:3px}.qty{display:flex;gap:4px;align-items:center;flex-shrink:0}.qty button{width:25px;height:25px;border:1px solid #645277;border-radius:6px;background:#242239;color:#eedafc}.qty span{width:16px;font-size:12px;text-align:center}.summary{padding:12px 18px;border-top:1px solid #3b3150;color:#d5c8e6;font-size:12px}.summary strong{color:#fff}.note{font-size:11px;line-height:1.55;color:#b7abc8;padding:12px 18px 17px;border-top:1px solid #3b3150}.note b{color:#ecc7f4}.footer{max-width:1450px;margin:0 auto 30px;color:#968aac;font-size:12px;padding:0 25px}.empty{grid-column:1/-1;text-align:center;padding:30px 15px;color:#b5a5c9}.onlyprint{display:none}.sheet{--cardw:90mm;--cardh:128mm;--gapx:8mm;--gapy:6mm;display:grid;grid-template-columns:repeat(2,var(--cardw));grid-template-rows:repeat(2,var(--cardh));gap:var(--gapy) var(--gapx);align-content:start;justify-content:center;max-width:fit-content;margin:20px auto;padding:0}.sheet.compact{--cardw:63mm;--cardh:88mm;--gapx:2mm;--gapy:5mm;grid-template-columns:repeat(3,var(--cardw));grid-template-rows:repeat(3,var(--cardh))}
/* Printable card: inspired by classic maneuver-reference cards, original graphic layout. */
.print-card{width:var(--cardw);height:var(--cardh);background:#151324;color:#f7f1fd;border:1px solid #bb9ad2;outline:1px dashed #a0a0ac;outline-offset:1mm;border-radius:2mm;position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0;font-family:Arial,Helvetica,sans-serif;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.print-card:before{content:'';position:absolute;left:0;right:0;top:0;height:1.5mm;background:linear-gradient(90deg,#e9516b 0%,#a47afa 62%,#6ca6dd 100%)}
.print-card .card-head{padding:3.5mm 3.4mm 2mm;min-height:23mm;background:linear-gradient(145deg,#29223e,#141624)}.print-card .card-id{font-size:6.8pt;font-weight:700;letter-spacing:.08em;color:#d2a9ff;text-transform:uppercase;line-height:1.3}.print-card .card-name{font-size:14pt;font-weight:900;letter-spacing:-.045em;line-height:1.05;margin-top:1.2mm;overflow-wrap:anywhere;max-height:16mm;overflow:hidden}.print-card .card-family{font-size:7.2pt;color:#c0b0d4;margin-top:1mm;line-height:1.1}.print-card .stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #625174;border-bottom:1px solid #625174;background:#211d32}.print-card .kstat{padding:1.6mm 1.1mm;border-right:1px solid #5a496a;min-width:0;text-align:center}.print-card .kstat:nth-child(3n){border-right:0}.print-card .kstat:nth-child(n+4){border-top:1px solid #5a496a}.print-card .kstat span{display:block;text-transform:uppercase;font-size:5.7pt;font-weight:800;letter-spacing:.03em;color:#cbadcf}.print-card .kstat b{display:block;font-size:10pt;color:#fff;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.print-card .card-details{padding:2.1mm 3.4mm 3mm;display:flex;flex-direction:column;gap:1.8mm;overflow:hidden;flex:1;min-height:0}.print-card .rule-label{font-size:6.6pt;line-height:1.15;color:#ffa6b9;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.print-card .rule-body{font-size:7.3pt;line-height:1.31;color:#f1ebfa;margin:0;overflow-wrap:anywhere}.print-card .rule-block{min-width:0}.print-card .rulescore{flex:1;min-height:0;overflow:hidden}.print-card .card-foot{margin-top:auto;padding:1.4mm 3mm 1.8mm;border-top:1px solid #6e5a824d;display:flex;justify-content:space-between;color:#b9a9cf;font-size:6.3pt;gap:2mm}.print-card .restricted{color:#ffc89a}.print-card .overflow-notice{color:#efc89d;font-weight:700}.print-card.compact .card-head{min-height:18mm;padding:2.7mm 2.5mm 1.2mm}.print-card.compact .card-id{font-size:6pt}.print-card.compact .card-name{font-size:11pt;max-height:11.5mm}.print-card.compact .card-family{font-size:6pt}.print-card.compact .kstat{padding:1mm .6mm}.print-card.compact .kstat span{font-size:5pt}.print-card.compact .kstat b{font-size:8.1pt}.print-card.compact .card-details{padding:1.4mm 2.5mm 2mm;gap:1mm}.print-card.compact .rule-label{font-size:5.4pt}.print-card.compact .rule-body{font-size:6.35pt;line-height:1.22}.print-card.compact .card-foot{font-size:5pt;padding:1mm 2.5mm}.print-card.fine .rule-body{font-size:6.4pt;line-height:1.23}.print-card.fine .card-details{gap:.9mm}.print-card.compact.fine .rule-body{font-size:5.4pt;line-height:1.18}.print-card.tiny .rule-body{font-size:5.6pt;line-height:1.18}.print-card.compact.tiny .rule-body{font-size:4.8pt;line-height:1.13}
@media(max-width:1160px){.shell{grid-template-columns:1fr}.aside{position:static}.selected-list{max-height:220px}}@media(max-width:680px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.catalog{grid-template-columns:1fr;max-height:550px}.top{min-height:auto}.top h1{font-size:38px}.shell{padding:15px 10px 60px}.pane-head{padding:15px}.filters{padding:12px}.catalog{padding:10px}}
@page{size:A4 portrait;margin:8mm}
@media print{html,body{margin:0!important;padding:0!important;background:#fff!important;color:#111!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}.top,.shell,.footer,.screen-only{display:none!important}.onlyprint{display:block!important}.sheet{page-break-after:always!important;break-after:page!important;margin:0 auto!important;padding:0!important;width:188mm!important;height:262mm!important;overflow:hidden!important}.sheet.compact{width:193mm!important;height:274mm!important}.sheet:last-child{page-break-after:auto!important;break-after:auto!important}.print-card{box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important}.print-card *{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}}
