@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-vietnamese-600-normal-DUi7WF5p.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-600-normal-D6zpsUhD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#F5F4EF;--card:#FFFFFF;--ink:#17150F;--muted:#6B6660;--line:#E3E0D3;--accent:#83621E;--accent-d:#695019;--soft:#F5EED8;--gold:#C9A227;--silver:#9CA1A3;--danger:#B23B2E;--disp:"Space Grotesk",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-variant-numeric:tabular-nums}a{color:var(--accent-d)}.appbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:15px 22px;gap:10px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}@media (max-width:480px){.appbar{padding:12px 14px}.appbar .bsub{display:none}.toggle button{padding:7px 11px;font-size:12px}}.brand{display:flex;align-items:center;gap:12px}.logo-badge{background:#000;border-radius:8px;padding:6px 10px;display:flex;align-items:center;line-height:0}.logo-mark{height:22px;width:auto;display:block}.logo-badge.lg{padding:9px 14px}.logo-badge.lg .logo-mark{height:34px}.bname{font-family:var(--disp);font-weight:700;letter-spacing:.12em;font-size:18px}.bsub{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.btn{background:var(--accent);color:#fff;border:0;padding:10px 17px;border-radius:8px;font-weight:600;cursor:pointer;font-size:13px}.btn:hover{background:var(--accent-d)}.btn:disabled{opacity:.55;cursor:not-allowed}.ghost{background:var(--soft);border:1px solid var(--line);color:var(--accent-d);border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;font-size:13px}.ghost:hover{border-color:var(--accent)}.ghost:disabled{opacity:.55;cursor:not-allowed}.danger-btn{background:none;border:1px solid var(--line);color:var(--danger);border-radius:8px;padding:9px 14px;font-weight:600;cursor:pointer;font-size:13px}.danger-btn:hover{border-color:var(--danger)}.txt{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:var(--body);font-size:14px;color:var(--ink);width:100%}.txt:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #83621e29}.lbl{font-family:var(--disp);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:11px;color:var(--muted)}.centerpage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;max-width:400px;width:100%}.panel h1{font-family:var(--disp);font-size:20px;margin:0 0 4px}.panel .sub{color:var(--muted);font-size:13px;margin:0 0 20px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.error{color:var(--danger);font-size:13px;margin:0 0 10px}.hint{font-size:12px;color:var(--muted);line-height:1.5}.toggle{display:flex;background:var(--soft);border-radius:8px;padding:3px;gap:2px}.toggle button{border:0;background:transparent;padding:8px 16px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;color:var(--accent-d);font-family:var(--disp);letter-spacing:.04em}.toggle button.on{background:var(--accent);color:#fff}.subnav{display:flex;gap:4px;padding:10px 22px 0;background:var(--card);border-bottom:1px solid var(--line)}.subnav button{border:0;background:transparent;padding:8px 14px;border-radius:6px 6px 0 0;font-weight:600;font-size:12.5px;cursor:pointer;color:var(--muted);font-family:var(--disp);letter-spacing:.04em}.subnav button.on{color:var(--accent-d);box-shadow:inset 0 -2px 0 var(--accent)}.placeholder{padding:60px 24px;text-align:center;color:var(--muted);max-width:480px;margin:0 auto}.placeholder h2{font-family:var(--disp);color:var(--ink)}.data-table{width:100%;border-collapse:collapse}.data-table thead tr{text-align:left;border-bottom:2px solid var(--ink)}.data-table th{padding:8px 10px;font-family:var(--disp);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.data-table td{padding:10px;font-size:13.5px;border-bottom:1px solid var(--line)}.data-table tr.inactive{opacity:.5}.data-table td.code-cell{font-family:var(--disp);font-weight:700;letter-spacing:.06em}.code-open{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;cursor:pointer;color:var(--accent-d);text-decoration:underline;text-underline-offset:3px}.code-open:hover{color:var(--accent)}.data-table td.action-cell{text-align:right}@media (max-width:560px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}.data-table td{border-bottom:0;padding:4px 0}.data-table td:before{content:attr(data-label);display:inline-block;min-width:70px;font-family:var(--disp);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.data-table td.action-cell{text-align:left;margin-top:6px}.data-table td.action-cell:before{content:none}}.pill{display:inline-block;padding:2.5px 10px;border-radius:20px;font-family:var(--disp);font-weight:600;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent;line-height:1.5;white-space:nowrap}.pill.lead{background:var(--soft);border-color:var(--accent);color:var(--accent-d)}.pill.active{background:#ecf3ec;border-color:#8fb392;color:#2e6b38}.pill.inactive{background:#f0efeb;border-color:var(--line);color:var(--muted)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 20px;border-radius:10px;font-size:13.5px;font-weight:600;z-index:60;pointer-events:none;box-shadow:0 8px 26px #00000038;animation:toast-in .18s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%)}}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#fff;opacity:.95;margin-left:8px;vertical-align:middle}.skeleton{border-radius:10px;background:linear-gradient(90deg,var(--soft) 25%,#eeeae2 50%,var(--soft) 75%);background-size:200% 100%;animation:shimmer 1.1s linear infinite;height:46px;margin-bottom:10px}@keyframes shimmer{to{background-position:-200% 0}}.empty-state{border:1.5px dashed var(--line);border-radius:14px;padding:36px 22px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}.empty-state h3{font-family:var(--disp);color:var(--ink);margin:0;font-size:16px}.empty-state p{margin:0;font-size:13px;line-height:1.55;max-width:400px}.door{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--bg);margin-top:14px}.door-k{font-family:var(--disp);font-weight:600;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-d)}.door h2{font-family:var(--disp);font-size:17px;margin:4px 0 2px;color:var(--ink)}.door p{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.5}.spread{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.print-root{display:none}@media print{@page{margin:12mm}html,body,#root{height:auto!important;overflow:visible!important;max-width:none!important}body{background:#fff}.print-hide{display:none!important}.print-root{display:block!important;max-width:800px;margin:0 auto}.print-brand{display:flex;align-items:center;gap:9px;margin-bottom:10px}.print-brand img{height:24px;width:auto;filter:grayscale(1);border-radius:4px}.print-brand span{font-family:var(--disp);font-weight:700;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#000}.print-head{border-bottom:2px solid #000;padding-bottom:10px;margin-bottom:16px}.print-title{font-family:var(--disp);font-weight:700;font-size:22px;margin:0 0 2px;letter-spacing:-.01em;color:#000}.print-meta{font-size:11px;color:#555;font-family:var(--disp);letter-spacing:.04em}.print-note{margin:10px 0 0;font-size:12.5px;color:#000;line-height:1.5;border:1px solid #ccc;border-radius:6px;padding:8px 10px}.print-card{display:grid;grid-template-columns:20px 110px 1fr;gap:12px;align-items:start;border:1px solid #bbb;border-radius:10px;padding:12px;margin-bottom:10px;break-inside:avoid}.print-num{font-family:var(--disp);font-weight:700;font-size:16px;color:#000;text-align:center}.print-photo{width:110px;height:110px}.print-photo img{width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid #ccc}.print-ph{width:100%;height:100%;border:1px dashed #ccc;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#999;font-size:9px;text-transform:uppercase;letter-spacing:.1em;text-align:center;padding:4px}.print-body{display:flex;flex-direction:column;gap:7px;min-width:0}.print-exname{font-family:var(--disp);font-weight:600;font-size:15px;color:#000}.print-dosage{display:flex;flex-wrap:wrap;border:1px solid #000;border-radius:6px;overflow:hidden}.print-dose{display:flex;flex-direction:column;flex:1 1 64px;min-width:64px;border-right:1px solid #000;border-bottom:1px solid #000}.print-dose:last-child{border-right:0}.print-dose-l{background:#000;color:#fff;font-family:var(--disp);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:8.5px;padding:3px 6px;line-height:1.3}.print-dose-v{padding:5px 6px;font-family:var(--disp);font-weight:600;font-size:13px;color:#000}.print-cue{font-size:11.5px;color:#000;line-height:1.4;border:1px solid #ccc;border-radius:6px;padding:6px 8px}.print-safety{margin-top:14px;padding-top:8px;border-top:1px solid #ccc;font-size:10.5px;color:#555;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.print-site{font-family:var(--disp);letter-spacing:.06em;color:#555;white-space:nowrap}}.sheet{padding:26px 30px 60px;max-width:800px;margin:0 auto}@media (max-width:560px){.sheet{padding:16px 12px 40px}}.sheet-head{border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:20px}.sheet-title{font-family:var(--disp);font-weight:700;font-size:26px;margin:0 0 2px;letter-spacing:-.01em}.sheet-meta{display:flex;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);font-family:var(--disp);letter-spacing:.04em}.sheet-meta:empty{display:none}.sheet-note{margin:12px 0 0;font-size:13.5px;color:var(--ink);line-height:1.5;background:var(--soft);border-radius:8px;padding:10px 12px}.empty{color:var(--muted);font-size:14px;padding:30px 0}.card{display:grid;grid-template-columns:26px 132px 1fr auto;gap:14px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;max-width:100%}@media (max-width:560px){.card{grid-template-columns:36px 1fr;grid-template-areas:"num photo" "body body" "ctrls ctrls";gap:10px;padding:10px}.num{grid-area:num}.photo{grid-area:photo}.body{grid-area:body}.card .ctrls{grid-area:ctrls;flex-direction:row}}.num{font-family:var(--disp);font-weight:700;font-size:18px;color:var(--accent);text-align:center;padding-top:2px}.photo{width:132px;height:132px;max-width:100%}@media (max-width:560px){.photo{width:100%;height:150px}}.photo img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.ph{width:100%;height:100%;border:1.5px dashed var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:4px;font-family:var(--disp);letter-spacing:.14em;text-transform:uppercase;font-size:11px;text-align:center;padding:6px}.ph span{font-family:var(--body);letter-spacing:0;text-transform:none;font-size:11px;color:#9aa8a5;line-height:1.2}.body{display:flex;flex-direction:column;gap:9px;min-width:0}.exname{font-family:var(--disp);font-weight:600;font-size:17px;color:var(--ink);border:0;border-bottom:1px solid transparent;padding:2px 0;background:transparent;width:100%}.exname:focus{outline:none;border-bottom-color:var(--accent)}.exname[readonly]{cursor:default}.dosage{display:flex;flex-wrap:wrap;border:1px solid var(--accent-d);border-radius:8px;overflow:hidden}.dose{display:flex;flex-direction:column;flex:1 1 72px;min-width:72px;border-right:1px solid rgba(0,0,0,.16);border-bottom:1px solid rgba(0,0,0,.16)}.dose.last{border-right:0}.dose-l{background:var(--accent-d);color:#fff;font-family:var(--disp);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px;padding:4px 8px;line-height:1.3}.dose input,.dose .doseval{border:0;padding:7px 8px;font-family:var(--disp);font-weight:600;font-size:15px;color:var(--ink);width:100%;background:#fff;display:block}.dose input:focus{outline:none;background:var(--soft)}.cue{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:var(--body);font-size:13px;color:var(--ink);resize:vertical;line-height:1.45}.cue:focus{outline:none;border-color:var(--accent)}.cue[readonly]{resize:none;background:#fff}.safety-note{display:block;color:#555;font-size:11.5px;margin-top:18px;border-top:1px solid #ccc;padding-top:10px;line-height:1.5}.grid{display:grid;grid-template-columns:330px 1fr;align-items:start}@media (max-width:880px){.grid{grid-template-columns:1fr}}.build{padding:20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px;position:sticky;top:62px;max-height:calc(100vh - 62px);overflow:auto}@media (max-width:880px){.build{position:static;border-right:0;border-bottom:1px solid var(--line);max-height:none}}.grp{display:flex;flex-direction:column;gap:8px}.area{resize:vertical}.reslist{display:flex;flex-direction:column;gap:4px;max-height:290px;overflow:auto}.res{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 10px 6px 6px;cursor:pointer;font-size:13.5px;color:var(--ink);text-align:left}.res:hover{border-color:var(--accent);background:var(--soft)}.res img,.res .res-noimg{width:36px;height:36px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none;background:var(--soft)}.res .res-name{flex:1;min-width:0}.res .plus{color:var(--accent);font-weight:700}.customrow{display:grid;grid-template-columns:1fr auto;gap:8px}.saveblock .savedrow{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);padding:2px 0}.savedrow .x{background:none;border:0;color:var(--muted);cursor:pointer}.savedrow .x:hover{color:var(--danger)}.codebox{display:flex;align-items:center;gap:10px;background:#141311;border:1px solid var(--gold);border-radius:8px;padding:10px 12px}.codebox .hint{color:var(--silver)}.codebox .codeval{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:.08em;color:var(--gold)}.openrow{display:grid;grid-template-columns:1fr auto;gap:8px}.imgurl{font-size:11.5px;padding:7px 10px;color:var(--muted)}.photo-actions{display:flex;flex-direction:column;gap:6px}.photo-drop{border:1.5px dashed var(--line);border-radius:8px;padding:8px;text-align:center;font-size:11px;color:var(--muted);cursor:pointer}.photo-drop:hover,.photo-drop.over{border-color:var(--accent);background:var(--soft);color:var(--accent-d)}.photo-drop input{display:none}.photo-or{font-size:10px;color:var(--muted);text-align:center;letter-spacing:.08em;text-transform:uppercase}.crop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120f99;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.crop-modal{background:var(--card);border-radius:14px;padding:22px;max-width:360px;width:100%;display:flex;flex-direction:column;gap:14px}.crop-title{font-family:var(--disp);font-size:16px;margin:0}.crop-viewport{position:relative;overflow:hidden;border-radius:10px;background:#111;margin:0 auto;touch-action:none;cursor:grab}.crop-viewport img{max-width:none;-webkit-user-select:none;user-select:none}.crop-zoom{display:flex;align-items:center;gap:10px}.crop-zoom input{flex:1}.crop-actions{display:flex;justify-content:flex-end;gap:8px}.chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.chips-l{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:var(--disp);font-weight:600;margin-right:2px}.chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:20px;padding:3px 10px;font-size:11.5px;cursor:pointer;font-family:var(--body)}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--soft);border-color:var(--accent);color:var(--accent-d);font-weight:600}.ctrls{display:flex;flex-direction:column;gap:5px}.ctrls button{width:28px;height:26px;border:1px solid var(--line);background:var(--card);border-radius:6px;cursor:pointer;color:var(--muted);font-size:10px;display:flex;align-items:center;justify-content:center}.ctrls button:hover{border-color:var(--accent);color:var(--accent)}.ctrls .del:hover{border-color:var(--danger);color:var(--danger)}@media print{.grid{display:block}.ctrls{display:none}}.pplan-root{display:none}@media print{@page{margin:12mm}html,body,#root{height:auto!important;overflow:visible!important;max-width:none!important}body{background:#fff}.pplan-root{display:block!important;max-width:800px;margin:0 auto;color:#111}.pplan-brand{display:flex;align-items:center;gap:9px;margin-bottom:10px}.pplan-brand img{height:24px;width:auto;filter:grayscale(1);border-radius:4px}.pplan-brand span{font-family:var(--disp);font-weight:700;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#000}.pplan-head{border-bottom:2px solid #000;padding-bottom:10px;margin-bottom:14px}.pplan-title{font-family:var(--disp);font-weight:700;font-size:22px;letter-spacing:-.01em;color:#000}.pplan-meta{font-size:12px;color:#333;font-family:var(--disp);letter-spacing:.04em;margin-top:2px}.pplan-1rms{margin-top:8px;font-size:10.5px;color:#333;line-height:1.6}.pplan-week{margin-bottom:14px}.pplan-week-name{font-family:var(--disp);font-weight:700;font-size:16px;color:#000;border-bottom:1px solid #000;padding-bottom:3px;margin-bottom:8px}.pplan-session{border:1px solid #bbb;border-radius:8px;padding:10px 12px;margin-bottom:8px;break-inside:avoid}.pplan-session-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:4px}.pplan-session-name{font-family:var(--disp);font-weight:600;font-size:13.5px;color:#000}.pplan-session-type{font-family:var(--disp);font-weight:600;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#000;border:1px solid #000;border-radius:4px;padding:2px 6px}.pplan-tbl{width:100%;border-collapse:collapse;margin-top:6px;font-variant-numeric:tabular-nums}.pplan-tbl th{text-align:left;font-family:var(--disp);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:8px;color:#333;padding:3px 8px 3px 0;border-bottom:1px solid #000}.pplan-tbl td{padding:4px 8px 4px 0;border-bottom:1px solid #ddd;font-size:11px;color:#111;vertical-align:top}.pplan-tbl tr:last-child td{border-bottom:0}.pplan-r{text-align:right}.pplan-liftname{font-family:var(--disp);font-weight:600;color:#000}.pplan-day{font-weight:400;color:#333;font-size:10px}.pplan-load{font-family:var(--disp);font-weight:700;font-size:12.5px}.pplan-notes{color:#333;font-size:10px}.pplan-foot{margin-top:12px;padding-top:8px;border-top:1px solid #ccc;font-size:10px;color:#555;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}.pplan-site{font-family:var(--disp);letter-spacing:.06em;white-space:nowrap}}.pb-sheet{max-width:980px}.pb-weeks{display:flex;flex-direction:column;gap:26px}.pb-week{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:16px}.pb-week-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px}.pb-week-name{font-family:var(--disp);font-weight:700;font-size:19px}.pb-week-actions{margin-left:auto;display:flex;gap:6px}.pb-sessions{display:flex;flex-direction:column;gap:14px}.pb-session{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg)}.pb-session-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.pb-session-name{font-family:var(--disp);font-weight:600;font-size:15px;flex:1;min-width:140px;background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 8px;color:var(--ink)}.pb-session-name:hover{border-color:var(--line)}.pb-session-name:focus{outline:none;border-color:var(--accent);background:var(--card)}.pb-type{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden}.pb-type button{border:0;background:transparent;color:var(--muted);padding:6px 10px;font-size:11.5px;cursor:pointer;font-family:var(--disp);font-weight:600;letter-spacing:.05em}.pb-type button.on{background:var(--soft);color:var(--accent-d)}.pb-sec{margin-top:10px}.pb-sec-l{font-family:var(--disp);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:10.5px;color:var(--muted);margin-bottom:6px}.pb-lift{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;background:var(--card);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.pb-lift-name{font-family:var(--disp);font-weight:600;font-size:14.5px}.pb-lift-tag{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-d);margin-left:8px}.pb-lift-warn{font-size:11.5px;color:var(--danger)}.pb-tbl{width:100%;border-collapse:collapse;margin-top:6px;font-variant-numeric:tabular-nums}.pb-tbl th{text-align:left;font-family:var(--disp);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:9.5px;color:var(--muted);padding:3px 8px 3px 0;border-bottom:1px solid var(--line)}.pb-tbl td{padding:5px 8px 5px 0;border-bottom:1px solid var(--line);font-size:13px}.pb-tbl tr:last-child td{border-bottom:0}.pb-tbl .ta-r{text-align:right}.pb-load{font-family:var(--disp);font-weight:700;font-size:14px}.pb-addrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.pb-addrow select{flex:1 1 200px;min-width:0}.pb-cl{display:flex;flex-wrap:wrap;gap:6px;align-items:end;margin-top:6px}.pb-cl .pb-mini{flex:1 1 56px;min-width:0}.pb-cl-load{display:flex;align-items:center;gap:6px;padding-bottom:6px}.pb-cl-load .x{background:none;border:0;color:var(--muted);cursor:pointer}.pb-cl-load .x:hover{color:var(--danger)}.pb-cl-load .x:disabled{opacity:.35;cursor:not-allowed}.pb-acc{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;background:var(--card);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.pb-acc-fields{display:flex;flex-direction:column;gap:6px;min-width:0}.pb-acc-nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}@media (max-width:480px){.pb-acc-nums{grid-template-columns:repeat(2,minmax(0,1fr))}}.pb-mini{display:flex;flex-direction:column;gap:2px}.pb-mini label{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-family:var(--disp);font-weight:600}.pb-mini input{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:13px;color:var(--ink);width:100%}.pb-mini input:focus{outline:none;border-color:var(--accent)}.pb-liftcfg{border:1px solid var(--line);border-radius:8px;background:var(--card)}.pb-liftcfg-head{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;background:none;border:0;padding:10px 12px;cursor:pointer;color:var(--ink);text-align:left;font-size:13.5px}.pb-liftcfg-head .name{font-family:var(--disp);font-weight:600}.pb-liftcfg-head .meta{color:var(--muted);font-size:11.5px}.pb-liftcfg-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--line)}.pb-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pb-note{font-size:11.5px;color:var(--muted);line-height:1.5;border-left:2px solid var(--line);padding-left:9px;margin:4px 0 10px}.mp-page{min-height:100vh;background:var(--paper)}.mp-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.mp-who{flex:1;min-width:0;font-family:var(--disp);font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-out{padding:7px 11px;font-size:12px;flex:none}.mp-wrap{max-width:640px;margin:0 auto;padding:14px 12px 40px}.mp-planhead{margin-bottom:12px}.mp-title{font-family:var(--disp);font-size:22px;margin:0 0 2px}.mp-meta{color:var(--muted);font-size:12.5px}.mp-planpick{margin-top:8px}.mp-weeks{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;margin:0 0 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mp-weeks::-webkit-scrollbar{display:none}.mp-weekbtn{flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;font-family:var(--disp);cursor:pointer}.mp-weekbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}.mp-session{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 12px 6px;margin-bottom:12px}.mp-session-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.mp-session-head h2{font-family:var(--disp);font-size:16.5px;margin:0;min-width:0;overflow-wrap:anywhere}.mp-type{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 9px}.mp-type.inp{background:var(--soft);color:var(--accent-d)}.mp-type.self{background:#e9edea;color:#3e5c48}.mp-item{border-top:1px solid var(--line);padding:9px 0}.mp-item-name{font-weight:700;font-size:14.5px;margin-bottom:4px;overflow-wrap:anywhere}.mp-day{color:var(--muted);font-weight:600;font-size:12.5px}.mp-line{display:flex;align-items:baseline;gap:10px;padding:2px 0}.mp-setsreps{font-size:14px;font-weight:600;white-space:nowrap}.mp-intensity{flex:1;color:var(--muted);font-size:12.5px;min-width:0;overflow-wrap:anywhere}.mp-load{font-family:var(--disp);font-weight:700;font-size:21px;white-space:nowrap;text-align:right}.mp-load em{font-style:normal;font-size:12px;color:var(--muted);font-weight:600}.mp-notes{color:var(--muted);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}.mp-foot{color:var(--muted);font-size:12px;margin-top:16px}@media (min-width: 480px){.mp-wrap{padding:20px 16px 48px}.mp-title{font-size:26px}.mp-load{font-size:23px}}
