:root{--yg-green:#0b8f4e;--yg-green-deep:#066338;--yg-green-bright:#19b864;--yg-green-soft:#e6f7ee;--yg-green-glow:#0b8f4e47;--ink:#122018;--ink-muted:#5a6f62;--paper:#f4faf6;--surface:#fff;--line:#d5e6db;--danger:#c0392b;--danger-soft:#fdecea;--warn:#b7791f;--warn-soft:#fef6e7;--info:#1f6f8b;--info-soft:#e8f4f8;--sidebar:#0a2e1c;--sidebar-hover:#0f3d27;--sidebar-active:#0b8f4e;--radius:12px;--radius-sm:8px;--shadow:0 10px 30px #0a2e1c14;--font-display:"Outfit", sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%, #19b8642e, transparent 55%), radial-gradient(900px 500px at 100% 0%, #0b8f4e1f, transparent 50%), linear-gradient(180deg, #eef8f2 0%, var(--paper) 40%, #eaf5ef 100%);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,.brand{font-family:var(--font-display);letter-spacing:-.02em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}::selection{background:var(--yg-green-soft);color:var(--yg-green-deep)}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(180deg, #0d3a24 0%, var(--sidebar) 55%, #071f13 100%);color:#e8f8ef;flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem 1.5rem;display:flex;position:sticky;top:0}.brand-block{border-bottom:1px solid #b8f5d026;flex-direction:column;align-items:flex-start;gap:.45rem;padding:.35rem .5rem .9rem;display:flex}.brand-block .brand-logo{filter:drop-shadow(0 4px 10px #00000059);max-width:100%}.brand-caption{color:#e8f8efa6;font-size:.78rem}.brand-mark{background:linear-gradient(145deg, var(--yg-green-bright), var(--yg-green-deep));width:44px;height:44px;font-family:var(--font-display);color:#fff;border-radius:12px;place-items:center;font-size:.95rem;font-weight:800;display:grid;box-shadow:0 8px 20px #00000040}.brand-text .brand{font-size:1.35rem;font-weight:800;line-height:1;display:block}.brand-text small{color:#e8f8efa6;font-size:.78rem}.nav{flex-direction:column;flex:1;gap:.35rem;display:flex}.nav a{color:#e8f8efc7;border-radius:10px;align-items:center;gap:.7rem;padding:.7rem .85rem;transition:background .16s,color .16s,transform .16s;display:flex}.nav a:hover{background:var(--sidebar-hover);color:#fff;transform:translate(2px)}.nav a.active{background:var(--sidebar-active);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px #ffffff1f}.nav-ico{text-align:center;opacity:.9;width:1.25rem}.sidebar-foot{background:#00000038;border-radius:12px;gap:.65rem;padding:.85rem;display:grid}.sidebar-foot .who{font-size:.9rem}.sidebar-foot .who strong{font-family:var(--font-display);display:block}.sidebar-foot .who span{color:#e8f8ef99;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.main{min-width:0;padding:1.5rem 1.75rem 2.5rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.page-head-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.page-head h1{margin:0;font-size:1.75rem;font-weight:700}.page-head p{color:var(--ink-muted);margin:.35rem 0 0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-pad{padding:1.15rem 1.25rem}.toolbar{flex-wrap:wrap;align-items:end;gap:.75rem;margin-bottom:1rem;display:flex}.field{gap:.35rem;min-width:140px;display:grid}.field label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fff;outline:none;padding:.6rem .75rem;transition:border-color .14s,box-shadow .14s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--yg-green);box-shadow:0 0 0 3px var(--yg-green-glow);background-color:#fff}.field input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:#fff}.field textarea{resize:vertical;min-height:100px}.custom-select{min-width:160px;position:relative}.custom-select-trigger{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);text-align:left;cursor:pointer;font:inherit;background:#fff;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .75rem;line-height:1.3;transition:border-color .14s,box-shadow .14s;display:flex}.custom-select-trigger .is-placeholder{color:var(--ink-muted)}.custom-select.is-open .custom-select-trigger,.custom-select-trigger:focus{border-color:var(--yg-green);box-shadow:0 0 0 3px var(--yg-green-glow);outline:none}.custom-select.is-disabled .custom-select-trigger{opacity:.55;cursor:not-allowed}.custom-select-caret{border-right:2px solid var(--ink-muted);border-bottom:2px solid var(--ink-muted);flex-shrink:0;width:10px;height:10px;transition:transform .14s;transform:rotate(45deg)translateY(-2px)}.custom-select.is-open .custom-select-caret{transform:rotate(225deg)translateY(-2px)}.custom-select-menu{z-index:40;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;max-height:260px;padding:.3rem;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 12px 28px #0a2e1c24}.custom-select-option{width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:#fff;border:none;border-radius:6px;padding:.55rem .65rem}.custom-select-option.is-hover,.custom-select-option:hover{background:var(--yg-green-soft);color:var(--yg-green-deep)}.custom-select-option.is-active{background:var(--yg-green);color:#fff;font-weight:600}.custom-select-empty{color:var(--ink-muted);padding:.65rem;font-size:.9rem}.field-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;display:grid}.btn{border-radius:var(--radius-sm);border:none;justify-content:center;align-items:center;gap:.4rem;padding:.62rem 1rem;font-weight:600;transition:transform .12s,filter .12s,background .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg, var(--yg-green-bright), var(--yg-green));color:#fff;box-shadow:0 8px 18px var(--yg-green-glow)}.btn-ghost{color:var(--ink-muted);border:1px solid var(--line);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn-warn{background:var(--warn);color:#fff}.btn-sm{padding:.4rem .7rem;font-size:.85rem}.row-actions{align-items:center;gap:.3rem;display:inline-flex}.icon-action{border:1px solid var(--line);width:32px;height:32px;color:var(--ink-muted);background:#fbfffc;border-radius:8px;flex-shrink:0;place-items:center;transition:background .14s,color .14s,border-color .14s,transform .12s;display:inline-grid}.icon-action:hover:not(:disabled){color:var(--ink);border-color:var(--yg-green);background:var(--yg-green-soft);transform:translateY(-1px)}.icon-action:disabled{opacity:.45;cursor:not-allowed}.icon-action-success:hover:not(:disabled){color:var(--yg-green-deep);border-color:var(--yg-green);background:var(--yg-green-soft)}.icon-action-danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft);border-color:#f2c4bf}.icon-action-warn:hover:not(:disabled){color:var(--warn);background:var(--warn-soft);border-color:#f0d9a8}.icon-action-success{color:var(--yg-green)}.icon-action-danger{color:var(--danger)}.icon-action-warn{color:var(--warn)}.icon-action-refresh{width:38px;height:38px;color:var(--yg-green)}.icon-action-refresh.is-spinning svg{animation:.7s linear infinite spin}.table-wrap{overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:.92rem}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle;padding:.75rem .9rem}table.data td.col-images{white-space:normal;width:1%}table.data td.col-actions{white-space:nowrap;width:1%}table.data .row-actions{flex-wrap:nowrap;align-items:center;gap:.35rem;display:inline-flex}table.data .col-stt{text-align:center;width:3.2rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}table.data th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);background:#f7fcf9;font-size:.75rem;position:sticky;top:0}table.data tr:hover td{background:#0b8f4e0a}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-pending,.badge-draft,.badge-processing{background:var(--warn-soft);color:var(--warn)}.badge-accepted,.badge-active,.badge-success{background:var(--yg-green-soft);color:var(--yg-green-deep)}.badge-rejected,.badge-failed,.badge-inactive,.badge-ended{background:var(--danger-soft);color:var(--danger)}.badge-super{color:#2f54a8;background:#e8f0ff}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.stat{border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #0000;padding:1.15rem 1.2rem;position:relative;overflow:hidden}.stat:before{content:"";opacity:.9;background:currentColor;width:5px;position:absolute;top:0;bottom:0;left:0}a.stat-link{color:inherit;text-decoration:none;transition:transform .14s,box-shadow .14s,filter .14s}a.stat-link:hover{filter:brightness(1.02);transform:translateY(-2px);box-shadow:0 14px 30px #0a2e1c24}.stat .label{text-transform:uppercase;letter-spacing:.04em;opacity:.78;font-size:.8rem;font-weight:600}.stat .value{font-family:var(--font-display);margin-top:.3rem;font-size:1.9rem;font-weight:700;line-height:1.1}.stat-pending{color:#9a6700;background:linear-gradient(145deg,#fff8eb,#ffe8bc);border-color:#f0d9a8}.stat-pending .value{color:#8a5a00}.stat-accepted{color:#0b8f4e;background:linear-gradient(145deg,#eefbf3,#c9f0d8);border-color:#b8e6cb}.stat-accepted .value{color:#066338}.stat-rejected{color:#c0392b;background:linear-gradient(145deg,#fff1ef,#f8cfc9);border-color:#f2c4bf}.stat-rejected .value{color:#a93226}.stat-blacklist{color:#3a4450;background:linear-gradient(145deg,#f2f3f5,#d9dde3);border-color:#c5cad3}.stat-blacklist .value{color:#1f2933}.stat-promotions{color:#2f54a8;background:linear-gradient(145deg,#eef5ff,#cfe0fb);border-color:#b7cef5}.stat-promotions .value{color:#1d3f8f}.stat-active{color:#0f766e;background:linear-gradient(145deg,#e9fbf8,#b9f0e6);border-color:#9ee0d4}.stat-active .value{color:#0b5f59}a.stat-pending:hover,a.stat-accepted:hover,a.stat-rejected:hover,a.stat-blacklist:hover,a.stat-promotions:hover,a.stat-active:hover{border-color:currentColor}.pager{border-top:1px solid var(--line);color:var(--ink-muted);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;font-size:.9rem;display:flex}.pager .actions{gap:.5rem;display:flex}.alert{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.75rem .9rem;font-size:.92rem}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid #f2c4bf}.alert-ok{background:var(--yg-green-soft);color:var(--yg-green-deep);border:1px solid #b8e6cb}.toast-stack{z-index:100;pointer-events:none;flex-direction:column;gap:.55rem;width:min(360px,100vw - 2rem);display:flex;position:fixed;top:1rem;right:1rem}.toast{pointer-events:auto;border:1px solid var(--line);background:#fff;border-radius:10px;align-items:flex-start;gap:.65rem;padding:.85rem .9rem;animation:.22s both toast-in;display:flex;box-shadow:0 12px 30px #0a2e1c29}.toast-msg{color:var(--ink);flex:1;font-size:.92rem;line-height:1.4}.toast-close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.1rem;line-height:1}.toast-success{border-color:#b8e6cb;box-shadow:0 12px 30px #0b8f4e2e}.toast-success .toast-msg{color:var(--yg-green-deep)}.toast-error{border-color:#f2c4bf;box-shadow:0 12px 30px #c0392b29}.toast-error .toast-msg{color:var(--danger)}.toast-info .toast-msg{color:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.empty{text-align:center;color:var(--ink-muted);padding:2.5rem 1rem}.login-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 20%,#19b86459,#0000 40%),radial-gradient(circle at 80% 30%,#0b8f4e40,#0000 35%),radial-gradient(circle at 50% 90%,#0663384d,#0000 40%);animation:14s ease-in-out infinite alternate drift;position:absolute;inset:-20%}@keyframes drift{0%{transform:translate(-2%,-1%)scale(1)}to{transform:translate(2%,2%)scale(1.05)}}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;border:1px solid #0b8f4e33;border-radius:18px;width:min(420px,100%);padding:2rem 1.75rem 1.75rem;animation:.48s both rise;position:relative;box-shadow:0 24px 60px #0a2e1c2e}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-card .logo-row{align-items:center;gap:.85rem;margin-bottom:1.5rem;display:flex}.login-card .logo-row-centered{text-align:center;flex-direction:column;align-items:center;gap:.65rem}.login-card .logo-row-centered .brand-logo{max-width:min(240px,100%)}.login-card h1{margin:0;font-size:1.65rem}.login-card .sub{color:var(--ink-muted);margin:.25rem 0 0;font-size:.9rem}.login-card form{gap:.9rem;display:grid}.login-card .btn{width:100%;margin-top:.35rem;padding:.8rem 1rem}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem 1.25rem;display:grid}.detail-item dt{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);margin:0;font-size:.75rem}.detail-item dd{word-break:break-word;margin:.2rem 0 0;font-weight:560}.modal-backdrop{z-index:50;background:#071f1373;place-items:center;padding:1rem;animation:.16s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{border:1px solid var(--line);background:#fff;border-radius:14px;width:min(480px,100%);padding:1.25rem;box-shadow:0 24px 50px #0003}.modal h3{margin:0 0 .75rem}.modal-message{color:var(--ink);white-space:pre-wrap;margin:0;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.checkbox{align-items:center;gap:.5rem;font-size:.92rem;display:flex}.thumb-row{flex-wrap:nowrap;align-items:center;gap:.4rem;max-width:220px;display:inline-flex}.thumb{object-fit:cover;border:1px solid var(--line);background:#f7fcf9;border-radius:8px;flex:0 0 48px;width:48px;max-width:48px;height:48px;max-height:48px;display:block}.loading-center{min-height:40vh;color:var(--ink-muted);place-items:center;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--yg-green);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.main{padding:1rem}}
