.release-actions[data-v-a203b1e1]{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 20px}.release-actions p[data-v-a203b1e1]{margin:0}.release-actions>div[data-v-a203b1e1],.release-row-actions[data-v-a203b1e1]{display:flex;gap:12px}.release-notes[data-v-a203b1e1]{white-space:pre-wrap;min-width:220px;max-width:450px;line-height:1.8;overflow-wrap:anywhere}.release-progress[data-v-a203b1e1]{width:100%;accent-color:#109c8b}@media(max-width:760px){.release-actions[data-v-a203b1e1]{align-items:flex-start;flex-direction:column}}:root{font-family:Inter,Microsoft YaHei,system-ui,sans-serif;color:#17314e;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #d9e3ed;border-radius:7px;background:#fff;color:#203955;padding:10px 16px;transition:background .15s}button:hover{background:#eef7f6}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid #d9e3ed;border-radius:7px;background:#fff;padding:11px 12px;color:#17314e;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #92d9cd;outline-offset:1px}input::placeholder{color:#8c9bb0}label{display:flex;flex-direction:column;gap:9px;font-size:13px;margin:18px 0}textarea{width:100%;resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:29px;margin-bottom:10px;letter-spacing:-.7px}h2{font-size:23px;margin-bottom:12px}h3{font-size:15px;margin:24px 0 15px}small{font-size:11px}button.primary{background:#109c8b;border-color:#109c8b;color:#fff;font-weight:600}button.primary:hover{background:#0d8b7c}.full{width:100%;margin:14px 0}.muted{color:#8595aa;font-size:12px;line-height:1.8}.mono,code{font-family:Consolas,monospace}.pill,.badge{display:inline-block;font-size:11px;border-radius:5px;padding:5px 8px;white-space:nowrap;background:#edf2f7;color:#607388}.pill,.badge.active,.badge.redeemed{background:#e0f4ee;color:#118574}.badge.pending,.badge.unused{background:#fff4dc;color:#a77719}.badge.expired,.badge.revoked,.badge.danger{background:#fae9e8;color:#b66760}.brand{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}.brand-icon{display:inline-flex;background:#15a994;color:#fff;width:30px;height:30px;border-radius:9px;align-items:center;justify-content:center;font-size:23px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:48% 52%;background:#fff}.brand-panel{background:linear-gradient(145deg,#142c48,#163e51);color:#fff;padding:48px 12%;display:flex;flex-direction:column;justify-content:space-between;min-height:700px}.brand-panel h1{font-size:50px;line-height:1.35;letter-spacing:0}.brand-panel p{color:#aec6d3;line-height:1.9;font-size:15px}.brand-panel .eyebrow{color:#5de0c4;letter-spacing:3px;font-size:11px}.brand-panel small{color:#849fac}.auth-form{max-width:440px;width:100%;margin:auto;padding:45px 30px}.auth-form h2{font-size:30px;margin:20px 0 12px}.auth-form>small{display:block;margin-top:22px}.workspace{display:flex;min-height:100vh}.sidebar{width:214px;background:#132c47;color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:30px 17px}.sidebar .brand{font-size:16px}.side-sub{color:#7e99b1;font-size:11px;padding:0 40px;margin:8px 0 42px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav button{color:#a5bbce;border:0;background:none;text-align:left;padding:13px 17px}.sidebar nav button span{display:inline-block;width:29px}.sidebar nav button.selected{background:#1b4a5a;color:#77e0c7}.side-bottom{margin-top:auto;padding:20px 15px 0;border-top:1px solid #2c425b}.side-bottom small{display:block;color:#849cb2;margin:7px 0 16px}.side-bottom button{color:#a5bbce;background:none;border-color:#3a5169;padding:7px 15px;font-size:12px}.main{margin-left:214px;padding:33px 34px;width:calc(100% - 214px)}header{display:flex;align-items:center;justify-content:space-between;gap:20px}header .breadcrumb{font-size:11px;color:#8f9bb0;margin-bottom:21px}header p{margin-bottom:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:4px 0 24px}.stat{background:#fff;border:1px solid #e0e7f0;border-radius:10px;padding:20px}.stat span{font-size:12px;color:#8394a9}.stat strong{display:block;font-size:29px;line-height:1.7}.stat small{color:#a1aebd}.panel{background:#fff;border:1px solid #e0e7f0;border-radius:10px;overflow:hidden}.toolbar{display:flex;gap:12px;padding:20px;align-items:center}.toolbar input{width:285px}.toolbar select{max-width:330px}.toolbar-count{margin-left:auto;color:#8b9bad;font-size:12px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;color:#8393a8;background:#f9fbfd;font-weight:400;padding:15px 18px;border-bottom:1px solid #e3eaf1}td{padding:18px;border-bottom:1px solid #edf1f5;height:78px}td b{font-size:12px}td small{display:block;color:#99a5b5;font-size:10px;margin-top:7px;white-space:normal;max-width:300px;word-break:break-word}tr:hover td{background:#fcfefe}.link{border:none;background:none;color:#0b9b89;padding:3px;font-size:12px}.danger-text{color:#bd7168}.panel footer{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8d9bae}.panel footer button{font-size:11px;padding:7px 12px;margin-left:8px}.footnote{font-size:10px;color:#9aaabc;text-align:center;margin:25px}.empty{text-align:center;padding:70px 15px;color:#90a0b2;font-size:12px}.empty span{font-size:30px;color:#b0ccc9}.empty h3{margin:15px 0;color:#5a758c}.alert{background:#e8f7f1;color:#187c67;border:1px solid #caeadf;border-radius:7px;padding:13px 16px;font-size:12px;line-height:1.7;margin:10px 0 18px;overflow-wrap:anywhere}.alert.error{background:#fff0ee;border-color:#f4d0cd;color:#b15850}.batch-help{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;color:#8798aa;font-size:12px}.batch-help button{font-size:11px}.overlay{position:fixed;inset:0;background:#10243d55;display:flex}.drawer-overlay{justify-content:flex-end;z-index:10}.drawer{width:460px;background:#fff;padding:30px;overflow-y:auto;box-shadow:-10px 0 35px #18314c15}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.drawer-head small{color:#8a9aaf}.drawer-head h2{margin:8px 0 0}.drawer-head button,.modal header>button{border:0;font-size:22px;padding:4px 10px;background:transparent;color:#8597aa}.detail-info{background:#f6f9fc;border-radius:9px;padding:22px;display:flex;flex-direction:column;gap:7px;font-size:12px}.detail-info span{font-size:11px;color:#8398ac;margin-top:13px}.detail-info span:first-child{margin-top:0}.detail-info code{font-size:11px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-grid button{font-size:12px}.record{border-bottom:1px solid #edf1f6;padding:12px 0;font-size:12px}.record small{display:block;color:#8c9daf;margin-top:7px}.modal-overlay{align-items:center;justify-content:center;z-index:20;padding:22px}.modal{width:570px;max-height:94vh;overflow-y:auto;background:#fff;border-radius:12px;padding:28px;box-shadow:0 20px 90px #10263f33}.modal header h2{margin:0;font-size:21px}.modal header{margin-bottom:22px}.modal p{font-size:12px;line-height:1.8}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary{background:#f0f8f6;padding:20px;border-radius:8px;color:#358978;font-size:14px;line-height:1.9}.summary small{color:#81a59d}button:focus-visible{outline:2px solid #23af97;outline-offset:2px}@media(max-width:1100px){.main{padding:25px 20px}.sidebar{width:184px;padding:25px 13px}.main{margin-left:184px;width:calc(100% - 184px)}.sidebar .brand{font-size:13px}.stats{gap:12px}.stat{padding:15px}td,th{padding:13px}.toolbar{padding:15px}.toolbar input{width:240px}}@media(max-width:760px){.auth-shell{display:block}.brand-panel{display:none}.auth-form{padding-top:75px}.sidebar{width:70px;padding:20px 8px}.sidebar .brand,.side-sub,.side-bottom b,.side-bottom small{display:none}.sidebar nav button{font-size:0;padding:12px}.sidebar nav button span{font-size:20px;width:auto}.side-bottom{padding:0;border:0}.side-bottom button{font-size:11px;padding:8px 3px}.main{margin-left:70px;width:calc(100% - 70px);padding:20px 12px}.stats{grid-template-columns:1fr 1fr}.toolbar{flex-wrap:wrap}.toolbar input{width:100%}.toolbar-count{display:none}.main h1{font-size:23px}.drawer{width:min(460px,100%)}.form-grid{grid-template-columns:1fr}.modal{padding:22px}.batch-help{flex-direction:column;align-items:flex-start}}
