:root{--bg:#f3efe6;--bg-accent:#e7ddd0;--ink:#1c241c;--muted:#5c675c;--line:#cfc4b4;--card:#fffdf8;--brand:#2f5d3a;--brand-dark:#23462c;--danger:#9b2c2c;--ok:#2f5d3a;--warn:#8a6a20;--shadow:0 12px 40px #1c241c14;color:var(--ink);background:radial-gradient(circle at top left, #efe6d6 0%, transparent 45%), linear-gradient(180deg, #f7f2e9 0%, var(--bg) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:.55rem .9rem}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.primary:disabled{opacity:.55;cursor:not-allowed}button.linkish{color:var(--brand);background:0 0;border:none;padding:.2rem .4rem}button.linkish.danger{color:var(--danger)}input,select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;margin-top:.35rem;padding:.6rem .75rem}label{font-size:.92rem;font-weight:500;display:block}.muted{color:var(--muted)}.error{color:var(--danger);background:#fce8e8;border:1px solid #f0c2c2;border-radius:8px;padding:.75rem 1rem}.error-inline{color:var(--danger);text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:.85rem;overflow:hidden}.brand{align-items:center;line-height:0;display:inline-flex}.brand-logo{width:auto;height:40px;display:block}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:10;background:#0b1220;border-bottom:1px solid #1a2430;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.app-header .brand{flex-shrink:0}.nav-links{flex:1;gap:1rem;display:flex}.nav-links a{color:#ffffffb8;font-weight:500}.nav-links a:hover,.nav-links a.active{color:#fff}.profile-wrap{position:relative}.profile-btn{color:#fff;background:#1f6feb;border:1px solid #ffffff26;border-radius:999px;place-items:center;width:40px;height:40px;padding:0;display:grid}.profile-initial{font-weight:700}.profile-menu{background:var(--card);border:1px solid var(--line);width:240px;box-shadow:var(--shadow);border-radius:12px;gap:.75rem;padding:.75rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.profile-meta{gap:.15rem;font-size:.9rem;display:grid}.role-pill{background:var(--bg-accent);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;width:fit-content;margin-top:.25rem;padding:.1rem .45rem;font-size:.75rem;display:inline-block}.app-main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-footer{text-align:center;color:var(--muted);border-top:1px solid var(--line);background:#fffdf8b3;padding:1rem 1.25rem;font-size:.9rem}.panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;gap:1.25rem;padding:1.5rem;display:grid}.panel-head h1{margin:0 0 .35rem;font-family:Fraunces,Georgia,serif;font-size:1.8rem}.panel-head p{margin:0}.controls-row{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.month-label{min-width:180px}.loader-block{background:#eef5ef;border:1px solid #c7dbc9;border-radius:10px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.spinner{border:2px solid #c7dbc9;border-top-color:var(--brand);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.store-list-head{margin-bottom:.5rem;font-weight:600}.store-list ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.store-row{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .85rem;display:flex}.store-row label{align-items:center;gap:.65rem;font-weight:400;display:flex}.store-row input[type=checkbox]{width:auto;margin:0}.store-name{font-weight:600}.store-status{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--bg-accent);border-radius:999px;padding:.2rem .45rem;font-size:.75rem}.badge-success{color:var(--ok);background:#dcecdd}.badge-failed{color:var(--danger);background:#f8dede}.badge-running,.badge-pending{color:var(--warn);background:#f4ead0}.form-grid{border:1px dashed var(--line);border-radius:12px;gap:.85rem;padding:1rem;display:grid}.form-grid h2{margin:0;font-size:1.1rem}.btn-row{flex-wrap:wrap;gap:.75rem;display:flex}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.7rem .4rem}.login-page{background:#0b1220;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;padding:1.5rem;display:flex}.login-footer{color:#ffffff8c;background:0 0;border:none;width:100%}.login-card{color:#f3f6fb;background:#121a2a;border:1px solid #1f2a3d;border-radius:16px;gap:.9rem;width:min(400px,100%);padding:2rem;display:grid;box-shadow:0 16px 48px #00000059}.login-card label{color:#f3f6fbe0}.login-card .muted{color:#f3f6fba6}.login-card input{color:#f3f6fb;background:#0b1220;border-color:#2a3850}.login-card input:focus{outline-offset:1px;outline:2px solid #1f6feb}.login-card button[type=submit]{color:#fff;background:#1f6feb;border-color:#1f6feb;margin-top:.35rem}.login-card button[type=submit]:disabled{opacity:.55}.login-card .error{color:#ffb4b4;background:#3a1a1a;border-color:#7a3030}.login-logo{width:min(280px,100%);height:auto;margin:0 auto;display:block}.login-card p{text-align:center;margin:0}.centered{place-items:center;min-height:100vh;display:grid}@media (width<=720px){.app-header{flex-wrap:wrap}.store-row{flex-direction:column;align-items:flex-start}}
