@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-list{margin:8px 12px 12px;border:1px solid rgba(200,30,55,.18);display:flex;flex-direction:column}.skeleton-card{padding:16px 12px;border-bottom:1px solid rgba(200,30,55,.12);display:flex;align-items:center;justify-content:space-between;gap:12px}.skeleton-body{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-line{border-radius:1px;background:linear-gradient(90deg,#dc283c12 25%,#dc283c24,#dc283c12 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear}.skeleton-line--title{height:24px;width:55%}.skeleton-line--sub{height:18px;width:70%}.skeleton-tags{display:flex;gap:6px;margin-top:4px}.skeleton-tag{height:16px;width:48px;background:linear-gradient(90deg,#dc283c12 25%,#dc283c24,#dc283c12 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear}.skeleton-tag--sm{width:32px}.skeleton-btn{width:32px;height:32px;flex-shrink:0;background:linear-gradient(90deg,#dc283c12 25%,#dc283c24,#dc283c12 75%);background-size:800px 100%;animation:shimmer 1.4s infinite linear}:root{--raspberry: #f03858;--raspberry-dim: rgba(235, 45, 70, .42);--raspberry-line: rgba(210, 35, 60, .22)}.list-error,.list-empty{padding:32px 16px;text-align:center;color:var(--raspberry-dim);font-size:11px;letter-spacing:.2em;font-family:Roboto Condensed,sans-serif;font-weight:700}.project-frame{margin:8px 12px 12px;border:1px solid var(--raspberry-line);position:relative}.project-frame__label{padding:7px 10px 6px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--raspberry-dim);border-bottom:1px solid var(--raspberry-line);font-family:-apple-system,sans-serif}.project-frame__corner{position:absolute;bottom:-9px;left:-8px;font-size:14px;line-height:1;color:var(--raspberry-dim);font-family:monospace}.project-list{display:flex;flex-direction:column}@keyframes card-glitch-in{0%{opacity:0;transform:translate(-10px);clip-path:inset(0 0 100% 0)}20%{opacity:1;transform:translate(4px);clip-path:inset(0 0 55% 0);filter:brightness(2)}35%{transform:translate(-3px);clip-path:inset(0 0 30% 0);filter:brightness(1)}50%{transform:translate(2px);clip-path:inset(0 0 10% 0)}65%{transform:translate(-1px);clip-path:none}80%{transform:translate(1px)}to{transform:none;opacity:1;clip-path:none;filter:none}}.project-card{display:flex;align-items:stretch;border-bottom:1px solid var(--raspberry-line);transition:background .12s;opacity:0;animation:card-glitch-in .45s ease forwards}.project-card:active{background:#c81e370d}.project-card__body{flex:1;padding:13px 10px 13px 12px;display:flex;flex-direction:column;justify-content:center;gap:1px;min-width:0}.project-name{font-family:Roboto Condensed,sans-serif;font-size:30px;font-weight:900;line-height:1;letter-spacing:-.01em;text-transform:uppercase;color:var(--raspberry);display:flex;align-items:center;gap:8px}.project-dot{width:7px;height:7px;background:#00ffc5;flex-shrink:0;animation:dot-blink 1.2s step-start infinite}@keyframes dot-blink{0%,to{opacity:1}50%{opacity:0}}.project-meta-row{display:flex;align-items:center;gap:10px;margin-top:2px;min-width:0}.project-url-small{font-family:Courier New,monospace;font-size:11px;color:#eb2d4661;letter-spacing:-.01em;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;display:flex;align-items:center;gap:3px;transition:color .15s}.project-url-small:hover{color:var(--raspberry)}.project-logs-btn{display:flex;align-items:center;gap:3px;background:none;border:none;padding:0;cursor:pointer;font-family:Courier New,monospace;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:lowercase;color:#eb2d4647;flex-shrink:0;transition:color .15s;-webkit-tap-highlight-color:transparent}.project-logs-btn:active{color:var(--raspberry)}.project-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.project-tag{font-family:-apple-system,sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border:1px solid var(--raspberry-line);color:var(--raspberry-dim)}.project-card__actions{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 12px 0 4px;flex-shrink:0}.action-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--raspberry-dim);text-decoration:none;transition:color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.action-icon:active:not(.action-icon--disabled):not(:disabled){transform:scale(.86);color:var(--raspberry)}.action-icon--deploy{color:#eb2d468c}.action-icon--stop{color:#f87171}.action-icon--logs{color:#eb2d4659}.action-icon--disabled,.action-icon:disabled{opacity:.2;cursor:default}.btn-spinner{width:13px;height:13px;border:2px solid rgba(235,45,70,.2);border-top-color:var(--raspberry);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.yaml-example{border:1px solid var(--raspberry-line);margin:16px 12px 12px}.yaml-tabs{display:flex;align-items:stretch;border-bottom:1px solid var(--raspberry-line);gap:0}.yaml-tab{flex:1;padding:7px 4px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:transparent;border:none;border-right:1px solid var(--raspberry-line);color:#eb2d4659;cursor:pointer;font-family:Roboto Condensed,sans-serif;transition:color .12s,background .12s}.yaml-tab--active{color:var(--raspberry);background:#eb2d4612}.yaml-copy-btn{padding:7px 10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:transparent;border:none;color:#eb2d4673;cursor:pointer;display:flex;align-items:center;gap:4px;font-family:Roboto Condensed,sans-serif;white-space:nowrap;flex-shrink:0}.yaml-example-code{font-size:11px;font-family:Courier New,monospace;line-height:1.65;padding:12px;margin:0;background:#000;color:#eb2d4661;overflow-x:auto;white-space:pre}.task-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;gap:12px;text-align:center}.task-stub__icon{color:#f0385833;margin-bottom:4px}.task-stub__title{font-family:Roboto Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#f0385859}.task-stub__sub{font-size:12px;color:#ffffff2e;letter-spacing:.05em}.log-viewer{display:flex;flex-direction:column;height:100vh;background:#0f0f0f;color:#e0e0e0;font-family:Courier New,monospace}.log-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#1a1a1a;border-bottom:1px solid #333;flex-shrink:0}.log-title{font-size:13px;font-weight:600}.log-close{background:none;border:none;color:#888;font-size:18px;cursor:pointer;padding:0 4px}.log-body{flex:1;overflow-y:auto;padding:10px 14px}.log-empty{color:#555;font-size:13px;padding:10px 0}.log-line{font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:#d4d4d4}:root{--hue-shift: 0deg;--raspberry: #f03858;--raspberry-dim: rgba(240, 56, 88, .65);--raspberry-line: rgba(220, 40, 65, .3)}*{box-sizing:border-box}body{margin:0;font-family:Roboto Condensed,-apple-system,BlinkMacSystemFont,sans-serif;background:#000;color:#fff}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#000}.app:before{content:"";position:fixed;top:0;left:0;right:0;height:3px;background:var(--raspberry);z-index:200}.page-header{padding-top:calc(env(safe-area-inset-top,20px) + 36px);padding-left:16px;padding-right:16px;padding-bottom:20px;background:#000;display:flex;flex-direction:column;gap:2px}.page-header-jp{font-family:Roboto Condensed,sans-serif;font-size:54px;font-weight:900;letter-spacing:-.02em;line-height:.95;color:var(--raspberry);position:relative;display:inline-block;animation:glitch-main 5s infinite}.page-header-jp:before,.page-header-jp:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;font:inherit}.page-header-jp:before{color:#00e5ff;animation:glitch-top 5s infinite;clip-path:polygon(0 0,100% 0,100% 38%,0 38%);left:-2px;opacity:0}.page-header-jp:after{color:#ff0040;animation:glitch-bot 5s infinite;clip-path:polygon(0 62%,100% 62%,100% 100%,0 100%);left:2px;opacity:0}@keyframes glitch-main{0%,89%,to{transform:none}90%{transform:translate(-1px) skew(-1deg)}91%{transform:translate(2px)}92%{transform:translate(-1px,1px)}93%{transform:none}95%{transform:translate(3px) skew(2deg)}96%{transform:translate(-2px)}97%{transform:none}}@keyframes glitch-top{0%,89%,to{opacity:0;transform:none}90%{opacity:1;transform:translate(3px)}91%{opacity:1;transform:translate(-2px)}92%{opacity:0}95%{opacity:1;transform:translate(-3px)}96%{opacity:0}}@keyframes glitch-bot{0%,89%,to{opacity:0;transform:none}90%{opacity:1;transform:translate(-3px)}91%{opacity:0}93%{opacity:1;transform:translate(3px)}94%{opacity:0}95%{opacity:1;transform:translate(2px)}96%{opacity:0}}.page-header-ru{font-family:Roboto Condensed,sans-serif;font-size:20px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#f038588c;margin-top:4px}.tab-content{flex:1;overflow-y:auto;padding-bottom:96px}@keyframes content-glitch{0%{opacity:1;transform:none}15%{opacity:.6;transform:translate(5px) skew(3deg);filter:brightness(2)}30%{opacity:.3;transform:translate(-4px)}50%{opacity:.7;transform:translate(3px) skew(-2deg)}70%{opacity:.5;transform:translate(-2px);filter:brightness(1.5)}85%{opacity:.8;transform:translate(1px)}to{opacity:0;transform:translate(-6px)}}.tab-content--glitch{animation:content-glitch .13s ease forwards}.scroll-top-btn{position:fixed;bottom:16px;right:16px;width:60px;height:60px;border-radius:50%;background:#080808;border:1px solid var(--raspberry-line);color:var(--raspberry-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;box-shadow:0 8px 32px #000000b3;transition:color .15s,border-color .15s,transform .1s;-webkit-tap-highlight-color:transparent}.scroll-top-btn:active{transform:scale(.9);color:var(--raspberry);border-color:var(--raspberry)}.tab-bar{position:fixed;bottom:16px;left:16px;right:88px;height:60px;background:#080808;border:1px solid rgba(255,255,255,.1);border-radius:18px;display:flex;align-items:center;padding:0 8px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;box-shadow:0 8px 40px #000000b3}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;cursor:pointer;padding:8px 0;border-radius:12px;color:#ffffff47;transition:background .15s;-webkit-tap-highlight-color:transparent}.tab-btn:active{background:#ffffff0d}.tab-icon{display:flex;align-items:center;line-height:1}.tab-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.tab-btn--active{color:#fff}.tab-btn--active .tab-label{color:#fff;-webkit-text-fill-color:#fff}.tab-btn .tab-label{color:#fff6;-webkit-text-fill-color:rgba(255,255,255,.4)}.app--error{justify-content:center;align-items:center}.not-telegram{padding:32px 24px;text-align:center;max-width:300px}.not-telegram-icon{margin-bottom:16px;color:#fff6}.not-telegram-title{font-size:20px;font-weight:700;margin-bottom:10px}.not-telegram-sub{font-size:14px;color:#fff6;line-height:1.5}.not-telegram-debug{margin-top:16px;font-size:11px;font-family:monospace;color:#ffffff40;word-break:break-all}
