:root{--bg: #fbf9f4;--card: #ffffff;--ink: #181e34;--muted: #46464d;--terracotta: #b85c3c;--terracotta-dark: #9c4a2e;--forest: #1e3a32;--sage: #d6e6da;--peach: #f8dccf;--sand: #e9e6e0;--error: #ba1a1a;--radius: 20px;--radius-sm: 10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2{font-family:Lora,serif;font-weight:600;margin:0 0 12px}.page{max-width:1080px;margin:0 auto;padding:24px}.page-center{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:24px}.muted{color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:12px}.brand-mark{font-family:Lora,serif;font-size:28px;font-weight:600;color:var(--forest)}.brand-sub{color:var(--muted);font-size:14px}.topbar-right{display:flex;align-items:center;gap:12px}.layout{display:grid;grid-template-columns:380px 1fr;gap:24px;align-items:start}@media(max-width:860px){.layout{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--sand);border-radius:var(--radius);padding:24px;box-shadow:0 2px 10px #181e340d}.login-card{width:100%;max-width:380px;text-align:center}.login-card .brand-mark{font-size:36px}.login-sub{margin-top:-6px;margin-bottom:20px}.login-card form{text-align:left}.denied-card{max-width:440px}.stack{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;font-weight:600;color:var(--muted)}input,textarea,select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--sand);border-radius:var(--radius-sm);padding:10px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--terracotta)}textarea{resize:vertical}.radio-row{display:flex;gap:18px}.radio{display:flex;align-items:center;gap:6px;cursor:pointer}.radio input{accent-color:var(--terracotta)}.btn{font:inherit;font-weight:600;border:none;border-radius:999px;padding:11px 20px;cursor:pointer;transition:background .15s ease}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--terracotta);color:#fff}.btn-primary:hover:not(:disabled){background:var(--terracotta-dark)}.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--sand);width:100%}.btn-outline:hover{background:var(--bg)}.btn-ghost{background:transparent;color:var(--muted);padding:8px 12px}.btn-ghost:hover{color:var(--terracotta)}.btn-small{font-size:13px}.link-btn{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--terracotta);cursor:pointer;text-align:left}.divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--muted);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--sand)}.error-text{color:var(--error);font-size:14px;margin:6px 0 0}.ok-text{color:var(--forest);font-size:14px;margin:6px 0 0}.list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.list-header h2{margin:0}.tabs{display:flex;gap:6px}.tab{font:inherit;font-size:13px;font-weight:600;border:1px solid var(--sand);background:transparent;color:var(--muted);border-radius:999px;padding:7px 14px;cursor:pointer}.tab-active{background:var(--forest);border-color:var(--forest);color:#f4f1eb}.empty{padding:24px 0;text-align:center}.push-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.push-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--sand)}.push-item:last-child{border-bottom:none}.push-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.push-body{margin:4px 0}.push-meta{font-size:13px;margin:0}.push-actions{flex-shrink:0}.badge{font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}.badge-pending{background:var(--peach);color:var(--terracotta-dark)}.badge-sending{background:var(--sand);color:var(--muted)}.badge-sent{background:var(--sage);color:var(--forest)}.badge-failed{background:#f6d5d5;color:var(--error)}.badge-cancelled{background:var(--sand);color:var(--muted)}
