.partner-portal{background:#f4f2ee;color:#171412;min-height:100dvh;padding:24px 16px max(42px,env(safe-area-inset-bottom))}.partner-portal__shell{display:grid;gap:18px;margin:0 auto;max-width:1180px}.partner-portal__brand{align-items:center;background:#171412;border:1px solid rgba(255,253,249,.08);border-radius:18px;box-shadow:0 16px 42px rgba(23,20,18,.12);color:#fffdf9;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;margin:0;min-height:76px;padding:14px}.partner-portal__mark{align-items:center;background:#fffdf9;border-radius:14px;color:#171412;display:inline-flex;font-weight:950;height:48px;justify-content:center;width:48px}.partner-portal__brand p{color:#d8b277;letter-spacing:.08em}.partner-portal__brand h1{color:#fffdf9;font-size:clamp(22px,4vw,32px)}.partner-portal__session{align-items:center;display:flex;gap:10px;justify-content:flex-end;min-width:0}.partner-portal__session>span{color:#d7d0c7;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.partner-portal__grid{display:grid;gap:16px;grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr)}.partner-portal__grid--workbench{align-items:start}.partner-portal__panel{background:#fffdf9;border:1px solid #ded7cc;border-radius:16px;box-shadow:0 14px 34px rgba(23,20,18,.06);display:grid;gap:14px;padding:20px}.partner-portal__panel--muted{background:#fbfaf7}.partner-portal__panel--wide{grid-column:1/-1}.partner-portal__panel h2{font-size:clamp(20px,3vw,28px);margin:0}.partner-portal__panel p{margin-bottom:0}.partner-portal__stats{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.partner-portal__stats div{background:#fffdf9;border:1px solid #ded7cc;border-radius:14px;display:grid;gap:4px;min-height:72px;padding:14px}.partner-portal__stats span{color:#756b60;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.partner-portal__stats strong{color:#171412;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.partner-portal__form{display:grid;gap:13px}.partner-portal__form label{color:#3d3731;display:grid;font-size:13px;font-weight:900;gap:7px}.partner-portal__form input:not([type=checkbox]),.partner-portal__form select{background:#ffffff;border:1px solid #d8d0c5;border-radius:10px;color:#171412;font:inherit;min-height:46px;padding:0 12px;width:100%}.partner-portal__form input:focus,.partner-portal__form select:focus{border-color:#bd4945;box-shadow:0 0 0 3px rgba(189,73,69,.13);outline:0}.partner-portal__form button:disabled,.partner-portal__form input:disabled,.partner-portal__form select:disabled,.partner-redemption-result button:disabled{cursor:not-allowed;opacity:.56}.partner-portal__actions button,.partner-portal__form button,.partner-portal__logout,.partner-redemption-result button{align-items:center;background:#171412;border:1px solid #171412;border-radius:10px;color:#fffdf9;display:inline-flex;font-weight:900;justify-content:center;min-height:42px;padding:0 14px;text-decoration:none}.partner-portal__form button{background:#bd4945;border-color:#bd4945}.partner-portal__actions{display:flex;flex-wrap:wrap;gap:8px;margin:0}.partner-portal__empty,.partner-portal__tool{background:#fffdf9;border:1px solid #e1d8cb;border-radius:14px;display:grid;gap:8px;margin:0;padding:15px}.partner-portal__empty{align-items:center;min-height:220px;place-items:center;text-align:center}.partner-portal__empty span{align-items:center;background:#f1e2e1;border-radius:999px;color:#bd4945;display:inline-flex;font-size:12px;font-weight:950;height:54px;justify-content:center;min-width:54px;padding:0 12px}.partner-portal__empty strong{font-size:18px}.partner-portal__empty small,.partner-portal__tool span{color:#756b60;font-size:13px;line-height:1.45;max-width:300px}.partner-portal__empty--history{min-height:180px}.partner-portal__section-head{align-items:center;display:flex;gap:14px;justify-content:space-between}.partner-portal__history-table{min-width:860px}.partner-portal__history-table .partner-status{font-size:11px;padding:5px 8px}.partner-portal__alert{border-radius:12px;margin:0}.partner-portal__quick-guide{background:#fffdf9;border:1px solid #ded7cc;border-radius:14px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.partner-portal__quick-guide span{background:#f7f4ef;border:1px solid #e6ded3;border-radius:10px;color:#3d3731;font-size:13px;font-weight:900;padding:10px 12px}.partner-scanner-frame{aspect-ratio:1;background:#1c1917;border-radius:18px;box-shadow:inset 0 0 0 1px rgba(255,253,249,.08);display:grid;margin:0 auto;max-width:420px;overflow:hidden;place-items:center;position:relative;width:100%}.partner-scanner-video{display:block;height:100%;inset:0;object-fit:cover;opacity:0;position:absolute;width:100%}.partner-scanner-video.is-active{opacity:1}.partner-scanner-overlay{background:rgba(0,0,0,.12);inset:0;position:absolute}.partner-scanner-corner{border:0 solid #bd4945;height:36px;position:absolute;width:36px}.partner-scanner-corner--tl{border-left-width:4px;border-top-left-radius:10px;border-top-width:4px;left:20%;top:20%}.partner-scanner-corner--tr{border-right-width:4px;border-top-right-radius:10px;border-top-width:4px;right:20%;top:20%}.partner-scanner-corner--bl{border-bottom-left-radius:10px;border-bottom-width:4px;border-left-width:4px;bottom:20%;left:20%}.partner-scanner-corner--br{border-bottom-right-radius:10px;border-bottom-width:4px;border-right-width:4px;bottom:20%;right:20%}.partner-scanner-off{color:#fffdf9;display:grid;gap:8px;max-width:260px;place-items:center;position:relative;text-align:center;z-index:1}.partner-scanner-off:before{align-items:center;background:#292524;border-radius:999px;color:#f5f2ed;content:"QR";display:inline-flex;font-size:12px;font-weight:950;height:58px;justify-content:center;justify-self:center;width:58px}.partner-scanner-status{background:#f7f4ef;border:1px solid #e6ded3;border-radius:10px;color:#5f574e;margin:0;padding:10px 12px}.partner-scanner-steps{background:#fbfaf7;border:1px solid #eee7dd;border-radius:12px;color:#5f574e;display:grid;font-size:13px;gap:6px;line-height:1.4;margin:0;padding:12px 12px 12px 30px}.partner-redemption-result{display:grid;gap:14px}.partner-redemption-result__guidance{background:#f7f4ef;border:1px solid #e6ded3;border-radius:10px;color:#3d3731;font-weight:800;line-height:1.45;margin:0;padding:11px 12px}.partner-redemption-result h3{font-size:clamp(24px,3vw,34px)}.partner-redemption-result dl{background:#fffdf9;border:1px solid #e4dbcf;border-radius:14px;overflow:hidden}.partner-redemption-result dl div{border-bottom:1px solid #eee7dd;padding:12px}.partner-redemption-result dl div:last-child{border-bottom:0}.partner-redemption-result dt{color:#756b60;font-weight:900;letter-spacing:.04em}.partner-redemption-result dd{overflow-wrap:anywhere}.partner-status{letter-spacing:.03em}.partner-status--ok{background:#e5f0df;color:#315b2d}.partner-status--used{background:#fbefd8;color:#785017}.partner-status--danger{background:#f9e1dc;color:#7a2117}.admin-form--compact details,.admin-form--compact summary,details.admin-form--compact summary{color:#3d3731}details.admin-form--compact{background:#f8f5f0;border:1px solid #e6ded3;border-radius:12px;padding:12px}details.admin-form--compact summary{cursor:pointer;font-weight:900}details.admin-form--compact form{background:#fffdf9;border:1px solid #eee7dd;border-radius:10px;margin-top:12px;padding:12px}.admin-form-fieldset{border:1px solid #e6ded3;border-radius:10px;display:grid;gap:8px;margin:0;padding:10px 12px 12px}.admin-form-fieldset legend{color:#6f6358;font-size:12px;font-weight:900;padding:0 6px}.admin-checkbox-row{align-items:center;display:flex!important;font-weight:700;gap:8px!important}.admin-checkbox-row input{accent-color:#bd4945}@media (max-width:980px){.partner-portal__brand,.partner-portal__grid,.partner-portal__grid--workbench,.partner-portal__quick-guide,.partner-portal__stats{grid-template-columns:1fr}.partner-portal__session{justify-content:flex-start}}@media (max-width:640px){.partner-portal{padding:12px 10px max(24px,env(safe-area-inset-bottom))}.partner-portal__brand,.partner-portal__panel{border-radius:14px;padding:14px}.partner-portal__section-head{align-items:stretch;flex-direction:column}.partner-redemption-result dl div{display:grid;gap:4px}.partner-redemption-result dd{text-align:left}}