/* Guitar Vibe content manager — isolated from the public layout. */
.addr{color:inherit;text-decoration:none;border-radius:10px;outline-offset:6px}
.addr:focus-visible,.admin-entry:focus-visible{outline:3px solid #f7671d}
.contact-generated{color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px}
.contact-generated:hover,.contact-generated:focus-visible{text-decoration:none}.contact-generated:hover>span:last-child,.contact-generated:focus-visible>span:last-child,.addr:hover .addr-text,.addr:focus-visible .addr-text,.footer-list a:hover,.footer-list a:focus-visible,.m-footer-list a:hover,.m-footer-list a:focus-visible{text-decoration-line:underline;text-decoration-color:#f7671d;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-skip-ink:auto}
.contact-mark{width:30px;height:30px;border:1px solid rgba(255,255,255,.2);border-radius:9px;display:grid;place-items:center;color:#f7671d;font:600 13px/1 Inter,sans-serif;flex:0 0 auto}
.contact-image{width:30px;height:30px;border-radius:9px;object-fit:contain;flex:0 0 auto}
.admin-entry{position:absolute;right:40px;bottom:34px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:transparent;color:#8e8e8e;padding:9px 14px;font:400 12px/1 Roboto,sans-serif;cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}
.admin-entry:hover{border-color:#f7671d;color:#fff;background:rgba(247,103,29,.08)}
.footer,.m-footer{position:absolute}

.admin-overlay{--admin-accent:#f7671d;--admin-accent-dark:#d94e08;--admin-bg:#1c1b1b;--admin-panel:#262525;--admin-raised:#313030;--admin-paper:#e9ded8;--admin-border:rgba(255,255,255,.12);--admin-muted:#a9a5a2;position:fixed;z-index:5000;inset:0;display:none;background:rgba(8,8,8,.82);backdrop-filter:blur(10px);padding:24px;color:#fff;font-family:Roboto,Arial,sans-serif}
.admin-overlay.open{display:grid;place-items:center}
.admin-dialog{width:min(1180px,100%);height:min(820px,calc(100dvh - 48px));border:1px solid var(--admin-border);border-radius:26px;background:var(--admin-bg);box-shadow:0 32px 90px rgba(0,0,0,.55);overflow:hidden;position:relative}
.admin-dialog>#adminRoot{height:100%}
.admin-login{height:100%;display:grid;place-items:center;padding:24px}
.admin-login-card{width:min(430px,100%);padding:40px;border:1px solid var(--admin-border);border-radius:25px;background:var(--admin-panel)}
.admin-login-brand{margin:0 0 8px;color:var(--admin-accent);font:500 13px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.admin-login h2{margin:0 0 10px;font:500 32px/1.2 Roboto,sans-serif}
.admin-login p{margin:0 0 28px;color:var(--admin-muted);font:300 16px/1.5 Roboto,sans-serif}
.admin-login-form{display:flex;flex-direction:column;gap:16px}
.admin-label{display:flex;flex-direction:column;gap:8px;color:#fff;font:400 14px/1.3 Roboto,sans-serif}
.admin-input,.admin-textarea,.admin-select{width:100%;min-height:48px;border:1px solid var(--admin-border);border-radius:12px;background:var(--admin-raised);color:#fff;padding:12px 14px;font:400 15px/1.4 Roboto,sans-serif;outline:none}
.admin-textarea{min-height:100px;resize:vertical}
.admin-input:focus,.admin-textarea:focus,.admin-select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px rgba(247,103,29,.18)}
.admin-error{min-height:20px;margin:0;color:#ff9d82;font:400 13px/1.4 Roboto,sans-serif}
.admin-primary,.admin-secondary,.admin-danger,.admin-icon-btn{min-height:46px;border-radius:12px;padding:0 20px;font:500 14px/1 Roboto,sans-serif;cursor:pointer;transition:transform .12s ease,filter .18s ease,border-color .18s ease;background:none}
.admin-primary{border:1px solid var(--admin-accent);background:var(--admin-accent);color:#fff}
.admin-secondary{border:1px solid var(--admin-border);color:#fff}
.admin-danger{border:1px solid rgba(255,116,89,.55);color:#ff9d82}
.admin-primary:hover{filter:brightness(1.08)}.admin-secondary:hover{border-color:rgba(255,255,255,.35)}.admin-danger:hover{background:rgba(255,116,89,.08)}
.admin-primary:active,.admin-secondary:active,.admin-danger:active,.admin-icon-btn:active{transform:scale(.98)}
.admin-primary:focus-visible,.admin-secondary:focus-visible,.admin-danger:focus-visible,.admin-icon-btn:focus-visible,.admin-nav-btn:focus-visible{outline:3px solid #6aa8ff;outline-offset:2px}
.admin-close{position:absolute;z-index:4;right:18px;top:18px;width:44px;height:44px;border:1px solid var(--admin-border);border-radius:50%;background:var(--admin-panel);color:#fff;font-size:24px;line-height:1;cursor:pointer}

.admin-shell{height:100%;display:grid;grid-template-columns:255px minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.admin-sidebar{height:100%;border-right:1px solid var(--admin-border);background:#222121;padding:28px 16px;display:flex;flex-direction:column;gap:22px;overflow:auto}
.admin-sidebar-head{padding:0 10px 2px}.admin-sidebar-head strong{display:block;font:600 20px/1.2 Roboto,sans-serif}.admin-sidebar-head span{display:block;margin-top:7px;color:var(--admin-muted);font:300 13px/1.4 Roboto,sans-serif}
.admin-nav{display:flex;flex-direction:column;gap:6px}
.admin-nav-btn{width:100%;min-height:44px;border:1px solid transparent;border-radius:12px;background:transparent;color:#d6d3d1;padding:0 12px;text-align:left;font:400 14px/1 Roboto,sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.admin-nav-btn::after{content:'›';color:#777;font-size:20px}.admin-nav-btn:hover{background:rgba(255,255,255,.04)}.admin-nav-btn.active{border-color:rgba(247,103,29,.4);background:rgba(247,103,29,.12);color:#fff}.admin-nav-btn.active::after{color:var(--admin-accent)}
.admin-sidebar-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--admin-border);color:var(--admin-muted);font:300 12px/1.5 Roboto,sans-serif}
.admin-workspace{height:100%;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--admin-bg)}
.admin-toolbar{min-height:86px;border-bottom:1px solid var(--admin-border);padding:22px 76px 18px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.admin-toolbar h2{margin:0;font:500 26px/1.2 Roboto,sans-serif}.admin-toolbar p{margin:5px 0 0;color:var(--admin-muted);font:300 13px/1.4 Roboto,sans-serif}
.admin-status{flex:0 0 auto;display:flex;gap:8px;align-items:center;color:var(--admin-muted);font:400 12px/1 Roboto,sans-serif}.admin-status-dot{width:8px;height:8px;border-radius:50%;background:#6c6967}.admin-status.dirty .admin-status-dot{background:#f4a261}.admin-status.saved .admin-status-dot{background:#54b88a}
.admin-content{overflow:auto;padding:28px}
.admin-help{margin:0 0 24px;padding:16px 18px;border-left:3px solid var(--admin-accent);border-radius:0 12px 12px 0;background:rgba(247,103,29,.08);color:#d8d3d0;font:300 14px/1.5 Roboto,sans-serif}
.admin-section-toggle{margin:-8px 0 24px}
.admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.admin-field{padding:18px;border:1px solid var(--admin-border);border-radius:16px;background:var(--admin-panel);display:flex;flex-direction:column;gap:9px}.admin-field.wide{grid-column:1/-1}.admin-field label{font:500 14px/1.3 Roboto,sans-serif}.admin-field small{color:var(--admin-muted);font:300 12px/1.4 Roboto,sans-serif}
.admin-file-button{min-height:44px;border:1px dashed rgba(247,103,29,.6);border-radius:12px;color:#ffab7f;padding:0 14px;display:flex;align-items:center;justify-content:center;font:500 13px/1 Roboto,sans-serif;cursor:pointer}.admin-file-button:hover{background:rgba(247,103,29,.08)}
.admin-actions{min-height:78px;border-top:1px solid var(--admin-border);padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#222121}.admin-actions-left,.admin-actions-right{display:flex;gap:10px;align-items:center}
.admin-contact-list{grid-column:1/-1;display:flex;flex-direction:column;gap:12px}.admin-contact-row{display:grid;grid-template-columns:150px 1fr 1fr 44px;gap:10px;align-items:end;padding:16px;border:1px solid var(--admin-border);border-radius:16px;background:var(--admin-panel)}.admin-contact-row .admin-label{min-width:0}.admin-contact-image-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:10px;align-items:end}.admin-remove{width:44px;min-height:48px;padding:0;border:1px solid rgba(255,116,89,.35);border-radius:12px;color:#ff9d82;background:transparent;font-size:22px;cursor:pointer}.admin-add-contact{align-self:flex-start}
.admin-repeat-list{margin-top:24px;display:flex;flex-direction:column;gap:16px}.admin-repeat-card{padding:18px;border:1px solid var(--admin-border);border-radius:16px;background:#222121}.admin-repeat-head{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-repeat-head h3{margin:0;font:500 18px/1.3 Roboto,sans-serif}.admin-repeat-head .admin-danger{min-height:40px}.admin-repeat-add{align-self:flex-start}.admin-repeat-add:disabled{opacity:.45;cursor:not-allowed}
.admin-security-card{grid-column:1/-1;padding:22px;border:1px solid var(--admin-border);border-radius:16px;background:var(--admin-panel)}.admin-security-card h3{margin:0 0 8px;font:500 18px/1.3 Roboto,sans-serif}.admin-security-card>p{margin:0 0 20px;color:var(--admin-muted);font:300 14px/1.5 Roboto,sans-serif}.admin-password-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.admin-inline-message{min-height:20px;margin:12px 0 0;color:#83d2a9;font:400 13px/1.4 Roboto,sans-serif}
.admin-telegram-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-telegram-grid .wide{grid-column:1/-1}.admin-label small{color:var(--admin-muted);font:300 12px/1.4 Roboto,sans-serif}.admin-telegram-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px}.admin-inline-message.success{color:#83d2a9}.admin-inline-message.error{color:#ff9d82}.admin-telegram-card button:disabled{opacity:.55;cursor:wait;transform:none}
.admin-empty{padding:32px;border:1px dashed var(--admin-border);border-radius:16px;color:var(--admin-muted);text-align:center}

@media (max-width:767px){
  .admin-entry{left:16px;right:auto;bottom:8px;min-height:26px;padding:4px 8px;font-size:9px}
  .admin-entry::before{content:"";position:absolute;inset:-13px}
  .m-footer{overflow:visible}
  .contact-mark,.contact-image{width:14px;height:14px;border-radius:4px;font-size:8px}
  .admin-overlay{padding:0;place-items:stretch}
  .admin-dialog{width:100%;height:100dvh;border:0;border-radius:0}
  .admin-shell{width:100%;min-width:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden}
  .admin-sidebar{width:100%;min-width:0;height:auto;border-right:0;border-bottom:1px solid var(--admin-border);padding:16px 58px 12px 16px;gap:12px;overflow:hidden}
  .admin-sidebar-head strong{font-size:18px}.admin-sidebar-head span,.admin-sidebar-foot{display:none}
  .admin-nav{width:100%;min-width:0;max-width:100%;flex-direction:row;overflow-x:auto;padding-bottom:4px}.admin-nav-btn{width:auto;flex:0 0 auto;white-space:nowrap;padding:0 14px}.admin-nav-btn::after{display:none}
  .admin-workspace{width:100%;min-width:0;height:auto;min-height:0;overflow:hidden}.admin-toolbar{min-height:78px;padding:18px 16px}.admin-toolbar h2{font-size:21px}.admin-toolbar p{display:none}.admin-status{font-size:11px}
  .admin-content{min-width:0;overflow-x:hidden;padding:16px}.admin-fields{min-width:0;grid-template-columns:minmax(0,1fr)}.admin-field,.admin-label,.admin-input,.admin-textarea,.admin-select{min-width:0}.admin-field.wide{grid-column:auto}.admin-help{max-width:100%;overflow-wrap:anywhere;font-size:13px}
  .admin-actions{min-height:76px;padding:12px 16px}.admin-actions-left{display:none}.admin-actions-right{width:100%}.admin-actions-right button{flex:1;padding:0 10px}
  .admin-contact-row{grid-template-columns:1fr 44px}.admin-contact-row .admin-label{grid-column:1/-1}.admin-contact-row .admin-remove{grid-column:2;grid-row:1;justify-self:end}.admin-contact-image-row{grid-column:1/-1;grid-template-columns:1fr}.admin-password-grid,.admin-telegram-grid{grid-template-columns:1fr}.admin-telegram-grid .wide,.admin-telegram-actions{grid-column:auto}.admin-telegram-actions{flex-direction:column}.admin-telegram-actions button{width:100%}.admin-login-card{padding:28px 22px}.admin-repeat-head{align-items:flex-start}.admin-repeat-head h3{font-size:16px}
}

@media (prefers-reduced-motion:reduce){.admin-overlay *{transition:none!important;animation:none!important}}
