:root{--green: #16a34a;--green-bright: #22c55e;--green-dim: #14532d;--black: #0a0a0a;--black-soft: #121212;--black-panel: #161616;--white: #f5f5f5;--white-muted: #a3a3a3;--danger: #ef4444;--radius: 4px;--font-display: "Syne", sans-serif;--font-body: "IBM Plex Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%}body{font-family:var(--font-body);color:var(--white);background:var(--black);line-height:1.5;overflow-x:hidden}.bg-grid{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(22,163,74,.28),transparent 55%),radial-gradient(ellipse 40% 30% at 100% 100%,rgba(22,163,74,.12),transparent 50%),linear-gradient(180deg,#0a0a0a,#0f1410);pointer-events:none}.bg-grid:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(34,197,94,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(34,197,94,.04) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,black,transparent)}.login-shell{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem}.login-panel{width:min(100%,400px);text-align:center;animation:rise-in .55s ease both}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.brand-logo{width:96px;height:96px;object-fit:contain;border-radius:12px;margin-bottom:1.25rem;animation:logo-pulse 3.5s ease-in-out infinite}@keyframes logo-pulse{0%,to{filter:drop-shadow(0 0 0 transparent);transform:scale(1)}50%{filter:drop-shadow(0 0 18px rgba(34,197,94,.35));transform:scale(1.03)}}.brand-name{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,5vw,2.6rem);letter-spacing:-.03em;color:var(--white);line-height:1.1}.brand-tagline{margin-top:.5rem;margin-bottom:2rem;color:var(--white-muted);font-size:.95rem}.auth-form{display:flex;flex-direction:column;gap:1rem;text-align:left;transition:opacity .3s ease,transform .3s ease}.auth-form.is-hidden{display:none}.field{display:flex;flex-direction:column;gap:.4rem}.field span{font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--green-bright)}.field input{width:100%;padding:.85rem 1rem;font-family:var(--font-body);font-size:1rem;color:var(--white);background:var(--black-panel);border:1px solid #2a2a2a;border-radius:var(--radius);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.field input::placeholder{color:#525252}.field input:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a33}.btn-primary{margin-top:.35rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.95rem 1.25rem;font-family:var(--font-display);font-weight:700;font-size:1rem;letter-spacing:.02em;color:var(--black);background:var(--green-bright);border:none;border-radius:var(--radius);cursor:pointer;transition:background .2s ease,transform .15s ease}.btn-primary:hover:not(:disabled){background:var(--green);color:var(--white)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-spinner{width:1rem;height:1rem;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn-ghost{width:100%;padding:.7rem 1rem;font-family:var(--font-body);font-size:.9rem;font-weight:500;color:var(--white-muted);background:transparent;border:1px solid #2a2a2a;border-radius:var(--radius);cursor:pointer;transition:color .2s ease,border-color .2s ease}.btn-ghost:hover{color:var(--white);border-color:var(--green)}.otp-meta{font-size:.8rem;color:var(--white-muted);text-align:center;line-height:1.4}.status-msg{margin-top:1.25rem;min-height:1.4em;font-size:.9rem;color:var(--white-muted)}.status-msg.is-error{color:var(--danger)}.status-msg.is-success{color:var(--green-bright)}.header-left{display:flex;align-items:center;gap:.85rem}.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:10px;background:transparent;border:1px solid #2a2a2a;border-radius:var(--radius);cursor:pointer;transition:border-color .2s ease,background .2s ease}.menu-toggle:hover{border-color:var(--green);background:#16a34a14}.menu-toggle span{display:block;width:100%;height:2px;background:var(--white);border-radius:1px;transition:background .2s ease}.menu-toggle:hover span{background:var(--green-bright)}.sidebar-overlay{position:fixed;inset:0;z-index:40;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .25s ease}body.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;z-index:50;width:min(300px,86vw);height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--black-soft);border-right:1px solid #1f1f1f;transform:translate(-105%);visibility:hidden;pointer-events:none;transition:transform .28s ease,visibility .28s ease}.sidebar.is-open{transform:translate(0);visibility:visible;pointer-events:auto}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.1rem 1rem;border-bottom:1px solid #1f1f1f}.sidebar-brand{display:flex;align-items:center;gap:.65rem;font-family:var(--font-display);font-weight:700;font-size:1rem}.sidebar-brand img{width:32px;height:32px;object-fit:contain;border-radius:6px}.sidebar-close{position:relative;width:36px;height:36px;background:transparent;border:1px solid #2a2a2a;border-radius:var(--radius);cursor:pointer}.sidebar-close span{position:absolute;left:8px;right:8px;top:50%;height:2px;background:var(--white-muted)}.sidebar-close span:first-child{transform:translateY(-50%) rotate(45deg)}.sidebar-close span:last-child{transform:translateY(-50%) rotate(-45deg)}.sidebar-close:hover span{background:var(--green-bright)}.sidebar-nav{display:flex;flex-direction:column;gap:.35rem;padding:1rem .75rem;flex:1;overflow-y:auto}.sidebar-nav a{display:block;padding:.8rem .95rem;color:var(--white-muted);text-decoration:none;font-weight:500;font-size:.95rem;border-radius:var(--radius);border-left:3px solid transparent;transition:color .2s ease,background .2s ease,border-color .2s ease}.sidebar-nav a:hover{color:var(--white);background:#22c55e14}.sidebar-nav a.is-active{color:var(--green-bright);background:#22c55e1f;border-left-color:var(--green-bright)}.sidebar-footer{padding:1rem;border-top:1px solid #1f1f1f}.sidebar-footer .btn-ghost{width:100%}.dash-shell{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100dvh;width:100%;transition:margin-left .28s ease}.dash-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid #1f1f1f;background:#0a0a0ad9;backdrop-filter:blur(8px)}.dash-brand{display:flex;align-items:center;gap:.75rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem}.dash-logo{width:40px;height:40px;object-fit:contain;border-radius:8px}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-shrink:0}.btn-compact{width:auto;padding:.4rem .7rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;line-height:1.2}.btn-compact-primary{width:auto;margin-top:0;padding:.55rem 1rem;font-size:.85rem;white-space:nowrap}.btn-compact--toggle{display:inline-flex;align-items:center;gap:.45rem;color:var(--white-muted);background:transparent;border:1px solid #2a2a2a;border-radius:var(--radius);cursor:pointer;user-select:none;transition:color .2s ease,border-color .2s ease}.btn-compact--toggle:hover{color:var(--white);border-color:var(--green)}body[data-page=dashboard]{height:100dvh;overflow:hidden;display:flex;flex-direction:column}body[data-page=dashboard] .dash-header{flex-shrink:0}.dash-main{position:relative;z-index:1;max-width:920px;width:100%;flex:1;min-height:0;margin:0 auto;padding:1.5rem 1.5rem 1.75rem;display:flex;flex-direction:column;gap:1.25rem;justify-content:flex-start;overflow:auto;animation:rise-in .5s ease both}.dash-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.dash-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,2.8vw,2rem);letter-spacing:-.03em}.dash-sub{margin-top:.5rem;color:var(--white-muted)}.dash-stats,.session-line{margin-top:.75rem;color:var(--green-bright);font-size:.9rem}.live-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.1rem 0;border-top:1px solid #1f1f1f;border-bottom:1px solid #1f1f1f}.stat-block{text-align:left}.stat-label{font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--white-muted)}.stat-hint{margin-top:.2rem;color:var(--white-muted);font-size:.82rem;line-height:1.3}.stat-value{margin-top:.45rem;font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,3.5vw,2.25rem);letter-spacing:-.03em;color:var(--white);line-height:1}.stat-value--online{color:var(--green-bright)}.tool-panel{padding-top:.25rem}.tool-panel-head{margin-bottom:.85rem}.tool-title{font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;color:var(--white)}.tool-meta{margin-top:.3rem;font-size:.8rem;color:var(--white-muted);min-height:1.2em}.password-expiry-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.75rem}.expiry-label{font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--white-muted)}.expiry-input{padding:.45rem .65rem;font-family:var(--font-body);font-size:.85rem;color:var(--white);background:var(--black-panel);border:1px solid #2a2a2a;border-radius:var(--radius);outline:none}.expiry-input:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a33}.expiry-input:disabled{opacity:.5}.password-output{flex:1 1 220px;min-width:0;padding:.7rem .9rem;font-family:IBM Plex Sans,monospace;font-size:1rem;letter-spacing:.08em;color:var(--green-bright);background:var(--black-panel);border:1px solid #2a2a2a;border-radius:var(--radius);outline:none;cursor:text}.password-output:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a33}.otp-list{margin-top:1rem;display:flex;flex-direction:column;gap:.85rem;border-top:1px solid #1f1f1f;padding-top:.85rem}.otp-card{padding:.75rem 0;border-bottom:1px solid #1f1f1f}.otp-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:.55rem}.otp-expiry-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-top:.55rem}.otp-code{font-family:IBM Plex Sans,monospace;font-size:.92rem;letter-spacing:.06em;color:var(--green-bright);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.otp-when{font-size:.78rem;color:var(--white-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-danger{width:auto;padding:.4rem .7rem;font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.02em;color:#fecaca;background:#ef44441f;border:1px solid rgba(239,68,68,.45);border-radius:var(--radius);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.btn-danger:hover:not(:disabled){color:#fff;background:#ef444447;border-color:var(--danger)}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.otp-actions{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}.status-pill.is-stopped{color:#fecaca;background:#ef44442e;border:1px solid rgba(239,68,68,.35)}.status-pill.is-free{color:var(--black);background:var(--green-bright)}.status-pill.is-used{color:var(--white-muted);background:#222;border:1px solid #333}.dash-controls{margin-top:1.15rem;display:flex;flex-direction:column;align-items:stretch;gap:.85rem}.btn-inline{width:auto;align-self:flex-start;padding-left:1.4rem;padding-right:1.4rem}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid #1f1f1f;cursor:pointer;user-select:none}.switch-copy{display:flex;flex-direction:column;gap:.2rem;text-align:left}.switch-title{font-weight:600;color:var(--white)}.switch-desc{font-size:.85rem;color:var(--white-muted)}.switch{position:relative;flex-shrink:0;width:52px;height:30px}.switch--sm{width:36px;height:20px}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-slider{position:absolute;inset:0;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:999px;transition:background .2s ease,border-color .2s ease}.switch-slider:before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:var(--white);border-radius:50%;transition:transform .2s ease}.switch--sm .switch-slider:before{top:2px;left:2px;width:14px;height:14px}.switch input:checked+.switch-slider{background:var(--green);border-color:var(--green-bright)}.switch input:checked+.switch-slider:before{transform:translate(22px)}.switch--sm input:checked+.switch-slider:before{transform:translate(16px)}.switch input:focus-visible+.switch-slider{box-shadow:0 0 0 3px #16a34a47}.switch input:disabled+.switch-slider{opacity:.6}.toast-host{position:fixed;top:1.1rem;right:1.1rem;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;pointer-events:none;max-width:min(360px,calc(100vw - 2rem))}.toast-popup{padding:.85rem 1.1rem;font-size:.9rem;font-weight:500;color:var(--black);background:var(--green-bright);border-radius:var(--radius);box-shadow:0 10px 30px #00000059;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease}.toast-popup.is-visible{opacity:1;transform:translateY(0)}.page-placeholder{margin-top:2rem;padding:1.5rem 0;border-top:1px solid #1f1f1f;color:var(--white-muted);font-size:.95rem}.dash-main--wide{max-width:920px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.btn-inline-ghost{width:auto;padding:.55rem 1rem;white-space:nowrap}.list-empty{margin-top:1.5rem;color:var(--white-muted);font-size:.95rem}.data-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:0}.data-row{padding:1.15rem 0;border-top:1px solid #1f1f1f;text-align:left;animation:rise-in .35s ease both}.data-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.data-row-title{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--white)}.data-row-body{margin-top:.35rem;color:var(--white);font-size:.95rem}.data-row-meta{margin-top:.4rem;color:var(--white-muted);font-size:.82rem}.data-row-meta code,.data-row-top code{font-family:IBM Plex Sans,monospace;color:var(--green-bright);font-size:.8rem}.data-row-time{margin-top:.35rem;color:var(--white-muted);font-size:.8rem;white-space:nowrap}.status-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.status-pill.is-online{color:var(--black);background:var(--green-bright)}.status-pill.is-offline{color:var(--white-muted);background:#222;border:1px solid #333}.telegram-bots{margin-top:1.75rem;display:flex;flex-direction:column;gap:1.75rem}.config-block{padding:1.25rem 0 1.5rem;border-top:1px solid #1f1f1f;text-align:left}.config-title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--white)}.config-desc{margin:.35rem 0 1rem;color:var(--white-muted);font-size:.9rem}.config-block .field{margin-bottom:.85rem}.config-status{min-height:1.25em;margin:.35rem 0 .85rem;font-size:.85rem;color:var(--white-muted)}.config-status.is-success{color:var(--green-bright)}.config-status.is-error{color:var(--danger)}.config-actions{display:flex;flex-wrap:wrap;gap:.75rem}@media(max-width:800px){.dash-header{padding:.65rem .85rem}.dash-brand span{font-size:.95rem}.dash-logo{width:32px;height:32px}.dash-main{padding:1rem .9rem 1.25rem}.dash-title{font-size:1.35rem}.header-actions{gap:.35rem}.btn-compact{padding:.35rem .55rem;font-size:.7rem}.btn-compact--toggle span:first-child{display:none}.password-row{flex-direction:column;align-items:stretch}.password-output{flex:none;width:100%}.btn-compact-primary,.password-row .btn-ghost,.password-row .btn-danger{width:100%}.otp-row{grid-template-columns:1fr auto;grid-template-areas:"code status" "when when"}.otp-code{grid-area:code}.otp-when{grid-area:when}.otp-row .status-pill{grid-area:status;justify-self:end}.otp-actions,.otp-expiry-row{width:100%}.stat-value{font-size:1.55rem}}@media(min-width:1024px){.sidebar{transform:translate(0);visibility:visible;pointer-events:auto;width:240px}.sidebar-close,.menu-toggle,.sidebar-overlay{display:none!important}.dash-shell{margin-left:240px;width:calc(100% - 240px)}body.sidebar-open .sidebar-overlay{opacity:0;pointer-events:none}}@media(max-width:480px){.brand-logo{width:72px;height:72px}.login-shell{padding:1.25rem 1rem}.brand-tagline{margin-bottom:1.25rem}}@media(max-height:560px){body[data-page=dashboard]{height:auto;min-height:100dvh;overflow:auto}body[data-page=dashboard] .dash-main{overflow:visible;justify-content:flex-start}}
