:root{--side:#1d2327;--side-2:#2c3338;--ink:#1d2327;--muted:#6b7780;--line:#dcdcde;--bg:#f0f0f1;--blue:#2271b1;--blue-d:#135e96;--red:#b32d2e;--green:#2f6b45;--sans:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body.admin,body.login-page{margin:0;font:15px/1.5 var(--sans);color:var(--ink);background:var(--bg)}
a{color:var(--blue)}a:hover{color:var(--blue-d)}
h1{font-size:1.7rem;font-weight:400;margin:0 0 18px;display:flex;align-items:center;gap:14px}
h2{font-size:1.1rem;margin:0 0 12px}h3{font-size:1rem;margin:0 0 10px}
.muted{color:var(--muted)}.right{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1}

.side{position:fixed;inset:0 auto 0 0;width:210px;background:var(--side);color:#f0f0f1;z-index:20;overflow:auto}
.side-brand{display:block;padding:18px 16px;font:700 1.15rem Georgia,serif;color:#fff;text-decoration:none;border-bottom:1px solid var(--side-2)}
.side-brand small{font:500 .7rem var(--sans);opacity:.6;text-transform:uppercase;letter-spacing:.1em}
.side nav a{display:block;padding:11px 16px;color:#c3c4c7;text-decoration:none}
.side nav a:hover{background:var(--side-2);color:#72aee6}
.side nav a.on{background:var(--blue);color:#fff}
.main{margin-left:210px}
.topbar{display:flex;gap:16px;align-items:center;background:#fff;border-bottom:1px solid var(--line);padding:10px 24px;position:sticky;top:0;z-index:10}
.burger{display:none;background:none;border:0;font-size:1.4rem;cursor:pointer}
.content{padding:24px;max-width:1200px}

.notice{padding:11px 16px;border-left:4px solid var(--green);background:#fff;margin-bottom:16px;box-shadow:0 1px 1px rgba(0,0,0,.04)}
.notice.error{border-color:var(--red)}

.box{background:#fff;border:1px solid var(--line);padding:18px 20px;margin-bottom:20px;border-radius:4px}
.box.danger{border-color:#e5b4b4}
.form-narrow{max-width:640px}
label{display:block;font-weight:600;margin-bottom:12px}
input:not([type=checkbox]):not([type=file]),select,textarea{display:block;width:100%;padding:8px 10px;border:1px solid #8c8f94;border-radius:4px;font:inherit;background:#fff;margin-top:4px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.btn{display:inline-block;padding:8px 16px;border:1px solid var(--blue);background:#f6f7f7;color:var(--blue);border-radius:4px;font:600 .9rem var(--sans);cursor:pointer;text-decoration:none;vertical-align:middle}
.btn:hover{background:#f0f0f1;color:var(--blue-d)}
.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue-d);color:#fff}
.btn.small{padding:4px 10px;font-size:.82rem}
.btn.danger{border-color:var(--red);color:var(--red)}.btn.danger:hover{background:var(--red);color:#fff}
.btn.block{display:block;width:100%;margin-top:10px;text-align:center}
.link{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}
form.inline{display:inline}.inline-form{display:flex;gap:6px}.inline-form input{margin:0}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:4px;padding:16px 18px;text-decoration:none;color:var(--ink)}
.stat b{display:block;font-size:2rem;line-height:1.1;color:var(--blue)}.stat span{color:var(--muted)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}

table{width:100%;border-collapse:collapse}
td,th{padding:9px 10px;text-align:left;vertical-align:top;border-bottom:1px solid #eee}
table.list{background:#fff;border:1px solid var(--line);margin-bottom:22px}
table.list th{background:#fafafa;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.wrapcell{max-width:260px;word-break:break-word}
.menu-table input,.menu-table select{margin:0 0 4px}
.menu-table .alt-url{font-size:.85rem}
.menu-table tr.child td:first-child{background:#fafafa}
.new-row td{background:#f6fbff}
.tag{background:#e6f2ea;color:var(--green);font-size:.72rem;padding:1px 8px;border-radius:99px;font-weight:700}
.status{font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:99px;background:#eee}
.status.pending{background:#fde9cc;color:#a65f00}.status.confirmed{background:#f8d9d3;color:#9a2d17}
.status.awaiting_payment{background:#e3ecf8;color:#1f4f8f}.status.failed,.status.expired{background:#eee;color:#777}
.status.blocked{background:#dfe3e6;color:#3c434a}.status.rejected{background:#eee;color:#777}
.subnav{list-style:none;display:flex;gap:18px;padding:0;margin:0 0 14px}
.subnav a{text-decoration:none;color:var(--muted);padding-bottom:4px}.subnav a.on{color:var(--ink);border-bottom:2px solid var(--blue)}

/* editor */
.editor-layout{display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:start}
.title-input{font-size:1.5rem!important;padding:10px 12px!important;margin:0 0 8px!important}
.slugline{display:flex;align-items:center;gap:4px;margin-bottom:12px;font-size:.9rem}
.slugline input{width:auto!important;flex:1;margin:0!important;padding:4px 8px!important}
.toolbar{display:flex;flex-wrap:wrap;gap:4px;background:#f6f7f7;border:1px solid #8c8f94;border-bottom:0;padding:6px;border-radius:4px 4px 0 0;position:sticky;top:50px;z-index:5}
.toolbar button,.toolbar select{width:auto!important;margin:0!important;padding:5px 9px!important;border:1px solid #c3c4c7;background:#fff;border-radius:3px;cursor:pointer;font:inherit;font-size:.85rem}
.toolbar button:hover{border-color:var(--blue)}
.wysiwyg,.source{min-height:420px;background:#fff;border:1px solid #8c8f94;border-radius:0 0 4px 4px;padding:18px 20px;width:100%;font:16px/1.65 Georgia,serif}
.source{font:13px/1.5 ui-monospace,Menlo,Consolas,monospace;min-height:420px}
.wysiwyg:focus{outline:2px solid var(--blue)}
.wysiwyg img{max-width:100%;height:auto}

.upload{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.upload input{margin:0}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.media-item{margin:0;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.media-item img,.media-item .pdf{width:100%;aspect-ratio:4/3;object-fit:cover;display:grid;place-items:center;background:#eee;font-weight:700;color:var(--muted)}
.media-item figcaption{padding:8px;font-size:.8rem}
.media-item b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-item input{font-size:.75rem!important;padding:3px 6px!important;margin:4px 0 6px!important}

/* login */
.login-page{display:grid;place-items:center;min-height:100vh}
.login{background:#fff;border:1px solid var(--line);padding:32px;width:min(360px,92vw);border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.login h1{justify-content:center;font:700 1.8rem Georgia,serif}
.login .btn{width:100%;padding:10px}.login p{text-align:center;margin-bottom:0}

@media (max-width:900px){
  .side{transform:translateX(-100%);transition:transform .2s}.side.open{transform:none}
  .main{margin-left:0}.burger{display:block}
  .cols,.editor-layout,.two{grid-template-columns:1fr}
  .content{padding:16px}
  table.list{display:block;overflow-x:auto}
}
