:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a25;--bg-card-hover: #22222f;--border: #2a2a3a;--border-light: #333346;--text-primary: #e8e8ed;--text-secondary: #8888a0;--text-muted: #5a5a70;--accent: #6c63ff;--accent-hover: #5a52e0;--green: #22c55e;--green-bg: rgba(34, 197, 94, .08);--green-border: rgba(34, 197, 94, .2);--yellow: #eab308;--yellow-bg: rgba(234, 179, 8, .08);--yellow-border: rgba(234, 179, 8, .2);--orange: #f97316;--orange-bg: rgba(249, 115, 22, .08);--orange-border: rgba(249, 115, 22, .2);--red: #ef4444;--red-bg: rgba(239, 68, 68, .08);--red-border: rgba(239, 68, 68, .2);--blue: #3b82f6;--blue-bg: rgba(59, 130, 246, .08);--blue-border: rgba(59, 130, 246, .2);--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 3px rgba(0,0,0,.3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page{min-height:100vh;display:flex;flex-direction:column}.header{border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:0 24px;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{max-width:800px;margin:0 auto;height:60px;display:flex;align-items:center;gap:16px}.logo{font-size:18px;font-weight:700;color:var(--text-primary);text-decoration:none}.header-subtitle{font-size:14px;color:var(--text-secondary);padding-left:16px;border-left:1px solid var(--border)}.container{max-width:800px;margin:0 auto;padding:32px 24px;flex:1;width:100%}.footer{border-top:1px solid var(--border);padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.footer-link{color:var(--text-muted)}.footer-link:hover{color:var(--text-secondary)}.status-banner{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:var(--radius);margin-bottom:32px;border:1px solid}.banner-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.banner-text h2{font-size:16px;font-weight:600}.banner-text p{font-size:13px;color:var(--text-secondary);margin-top:2px}.banner-ok{background:var(--green-bg);border-color:var(--green-border)}.banner-ok .banner-icon{background:var(--green);color:#fff}.banner-degraded{background:var(--yellow-bg);border-color:var(--yellow-border)}.banner-degraded .banner-icon{background:var(--yellow);color:#000}.banner-major{background:var(--red-bg);border-color:var(--red-border)}.banner-major .banner-icon{background:var(--red);color:#fff}.banner-loading{background:var(--bg-card);border-color:var(--border)}.banner-maintenance{background:var(--blue-bg);border-color:var(--blue-border)}.banner-maintenance .banner-icon{background:var(--blue);color:#fff}.section{margin-bottom:32px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:12px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header .section-title{margin-bottom:0}.project-list{display:flex;flex-direction:column;gap:1px}.project-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);transition:background .15s}.project-card:first-child{border-radius:var(--radius) var(--radius) 0 0}.project-card:last-child{border-radius:0 0 var(--radius) var(--radius)}.project-card:only-child{border-radius:var(--radius)}.project-card+.project-card{border-top:none}.project-card:hover{background:var(--bg-card-hover)}.project-card-left{display:flex;flex-direction:column;gap:2px}.project-name{font-size:15px;font-weight:500}.project-desc{font-size:13px;color:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:4px 10px;border-radius:20px;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-operational{color:var(--green);background:var(--green-bg)}.status-operational .status-dot{background:var(--green)}.status-degraded{color:var(--yellow);background:var(--yellow-bg)}.status-degraded .status-dot{background:var(--yellow)}.status-partial_outage{color:var(--orange);background:var(--orange-bg)}.status-partial_outage .status-dot{background:var(--orange)}.status-major_outage{color:var(--red);background:var(--red-bg)}.status-major_outage .status-dot{background:var(--red)}.status-maintenance{color:var(--blue);background:var(--blue-bg)}.status-maintenance .status-dot{background:var(--blue)}.announcement-card{padding:16px 20px;border-radius:var(--radius);border:1px solid;margin-bottom:8px}.ann-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.ann-type-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:4px}.ann-date{font-size:12px;color:var(--text-muted)}.announcement-card h4{font-size:15px;font-weight:600;margin-bottom:4px}.announcement-card p{font-size:14px;color:var(--text-secondary)}.ann-info{background:var(--blue-bg);border-color:var(--blue-border)}.ann-info .ann-type-badge{background:var(--blue);color:#fff}.ann-warning{background:var(--yellow-bg);border-color:var(--yellow-border)}.ann-warning .ann-type-badge{background:var(--yellow);color:#000}.ann-critical{background:var(--red-bg);border-color:var(--red-border)}.ann-critical .ann-type-badge{background:var(--red);color:#fff}.ann-maintenance{background:var(--blue-bg);border-color:var(--blue-border)}.ann-maintenance .ann-type-badge{background:var(--blue);color:#fff}.login-card{max-width:380px;margin:60px auto;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px}.login-card h2{font-size:20px;font-weight:600;margin-bottom:24px;text-align:center}.login-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group textarea,.form-group select{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent)}.error-text{color:var(--red);font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{color:var(--red);border-color:var(--red-border);background:var(--red-bg)}.btn-danger:hover{background:#ef444426}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary);background:var(--bg-card)}.btn-sm{padding:4px 10px;font-size:12px}.btn-full{width:100%}.admin-project-list{display:flex;flex-direction:column;gap:6px}.admin-project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.project-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.input-inline{background:transparent;border:1px solid transparent;color:var(--text-primary);font-size:14px;font-weight:500;padding:4px 6px;border-radius:4px;font-family:inherit;outline:none}.input-inline:hover{border-color:var(--border)}.input-inline:focus{border-color:var(--accent);background:var(--bg-secondary)}.input-name{width:100%;max-width:300px}.project-folder{font-size:12px;color:var(--text-muted);padding-left:6px}.project-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.select-status{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);padding:6px 10px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;outline:none}.select-status:focus{border-color:var(--accent)}.scan-result{font-size:13px;color:var(--green);background:var(--green-bg);border:1px solid var(--green-border);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:12px}.empty-text{text-align:center;color:var(--text-muted);padding:32px;font-size:14px}.ann-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:12px;display:flex;flex-direction:column;gap:12px}.admin-ann-list{display:flex;flex-direction:column;gap:6px}.admin-ann-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.admin-ann-row .ann-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;background:transparent;border:none;padding:0}.admin-ann-row .ann-info strong{font-size:14px}.admin-ann-row .ann-info p{font-size:13px;color:var(--text-secondary);margin:0}.ann-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:4px;width:fit-content}.ann-badge.ann-info{background:var(--blue);color:#fff}.ann-badge.ann-warning{background:var(--yellow);color:#000}.ann-badge.ann-critical{background:var(--red);color:#fff}.ann-badge.ann-maintenance{background:var(--blue);color:#fff}.ann-actions{display:flex;gap:6px;flex-shrink:0;align-items:flex-start;padding-top:2px}@media (max-width: 640px){.container{padding:20px 16px}.header{padding:0 16px}.status-banner{flex-direction:column;text-align:center;padding:20px}.admin-project-row{flex-direction:column;align-items:stretch;gap:10px}.project-actions{justify-content:flex-end}.admin-ann-row{flex-direction:column}.ann-actions{justify-content:flex-end}.input-name{max-width:100%}}.row-hidden{opacity:.45;border-style:dashed}.row-hidden:hover{opacity:.7}.btn-hidden{color:var(--yellow);border-color:var(--yellow-border);background:var(--yellow-bg)}.btn-hidden:hover{background:#eab30826}
