.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 10px 25px #0003;width:100%;max-width:400px;color:#333}.login-box h1{text-align:center;color:#667eea;margin-bottom:.5rem;font-size:1.8rem}.login-box h2{text-align:center;color:#666;margin-bottom:1.5rem;font-size:1.1rem;font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;transition:border-color .3s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.error-message{color:#d32f2f;background:#ffebee;padding:.75rem;border-radius:5px;margin-bottom:1rem;font-size:.9rem}.login-box button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:5px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .3s}.login-box button:hover:not(:disabled){opacity:.9}.login-box button:disabled{opacity:.7;cursor:not-allowed}.admin-header{background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;padding:1rem 0;box-shadow:0 2px 10px #0000001a}.admin-header-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.admin-logo{font-size:1.3rem;font-weight:700}.admin-user{display:flex;align-items:center;gap:1.5rem}.logout-btn{background:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-weight:600;transition:background .3s}.logout-btn:hover{background:#c0392b}.admin-article-list{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.list-header h2{margin:0;color:#333}.btn-new{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-weight:600;transition:opacity .3s}.btn-new:hover{opacity:.9}.articles-table{width:100%;border-collapse:collapse}.articles-table thead{background:#f5f5f5;border-bottom:2px solid #ddd}.articles-table th{padding:1rem;text-align:left;font-weight:600;color:#333}.articles-table td{padding:1rem;border-bottom:1px solid #eee;color:#666}.articles-table tbody tr:hover{background:#fafafa}.status{padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.status.published{background:#d4edda;color:#155724}.status.draft{background:#fff3cd;color:#856404}.actions{display:flex;gap:.5rem}.btn-edit,.btn-delete{padding:.5rem 1rem;border:none;border-radius:5px;cursor:pointer;font-weight:600;font-size:.9rem;transition:opacity .3s}.btn-edit{background:#3498db;color:#fff}.btn-delete{background:#e74c3c;color:#fff}.btn-edit:hover,.btn-delete:hover{opacity:.8}.loading,.no-articles{text-align:center;padding:2rem;color:#999}@media(max-width:768px){.list-header{flex-direction:column;gap:1rem;align-items:flex-start}.articles-table{font-size:.9rem}.articles-table th,.articles-table td{padding:.75rem}.actions{flex-direction:column}}.admin-article-form{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.form-header h2{margin:0;color:#333}.btn-back{background:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-weight:600}.btn-back:hover{background:#7f8c8d}.error-message{color:#d32f2f;background:#ffebee;padding:1rem;border-radius:5px;margin-bottom:1.5rem}form{max-width:800px}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.content-header label{margin:0}.btn-preview{background:#667eea;color:#fff;border:none;padding:.4rem .8rem;border-radius:4px;font-size:.85rem;cursor:pointer;transition:background .3s}.btn-preview:hover{background:#5568d3}.btn-preview.active{background:#764ba2}.markdown-preview{border:1px solid #ddd;border-radius:5px;padding:1rem;background:#f9f9f9;max-height:500px;overflow-y:auto;font-size:1rem;line-height:1.6}.form-group input[type=text],.form-group input[type=url],.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;font-family:inherit;box-sizing:border-box}.form-group textarea{resize:vertical;min-height:120px}.form-group input[type=text]:focus,.form-group input[type=url]:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group.checkbox{display:flex;align-items:center;gap:.5rem}.form-group.checkbox input[type=checkbox]{width:auto;margin:0}.form-group.checkbox label{margin:0;font-weight:500}.form-actions{display:flex;gap:1rem;margin-top:2rem}.btn-save,.btn-cancel{padding:.75rem 1.5rem;border:none;border-radius:5px;font-weight:600;cursor:pointer;transition:opacity .3s}.btn-save{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex:1}.btn-save:hover:not(:disabled){opacity:.9}.btn-save:disabled{opacity:.7;cursor:not-allowed}.btn-cancel{background:#e0e0e0;color:#333}.btn-cancel:hover{background:#d0d0d0}@media(max-width:768px){.admin-article-form{padding:1rem}.form-header{flex-direction:column;gap:1rem;align-items:flex-start}.form-actions{flex-direction:column}.btn-save,.btn-cancel{width:100%}}.admin-dashboard{display:flex;flex-direction:column;min-height:100vh;background:#f5f5f5}.admin-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}@media(max-width:768px){.admin-content{padding:1rem}}.article-card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0000001a;transition:transform .3s,box-shadow .3s;cursor:pointer}.article-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026}.article-image{width:100%;height:200px;overflow:hidden;background:#f0f0f0}.article-image img{width:100%;height:100%;object-fit:cover}.article-content{padding:1.5rem}.article-content h3{margin:0 0 .75rem;color:#333;font-size:1.3rem}.excerpt{color:#666;margin:0 0 1rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-markdown{color:#333;margin:1rem 0;line-height:1.6;font-size:.95rem}.article-markdown h1,.article-markdown h2,.article-markdown h3,.article-markdown h4,.article-markdown h5,.article-markdown h6{margin:1rem 0 .5rem;color:#333}.article-markdown h1{font-size:1.5rem}.article-markdown h2{font-size:1.3rem}.article-markdown h3{font-size:1.1rem}.article-markdown p{margin:.5rem 0}.article-markdown ul,.article-markdown ol{margin:.5rem 0 .5rem 2rem}.article-markdown li{margin:.25rem 0}.article-markdown code{background:#f4f4f4;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace}.article-markdown pre{background:#f4f4f4;padding:1rem;border-radius:5px;overflow-x:auto;margin:.5rem 0}.article-markdown a{color:#667eea;text-decoration:none}.article-markdown a:hover{text-decoration:underline}.article-markdown blockquote{border-left:4px solid #667eea;padding-left:1rem;margin-left:0;color:#666;font-style:italic}.article-meta{display:flex;justify-content:space-between;font-size:.9rem;color:#999}.author,.date{display:block}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 0;box-shadow:0 2px 10px #0000001a}.header-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;text-decoration:none;color:#fff}.nav{display:flex;gap:2rem}.nav a{color:#fff;text-decoration:none;transition:opacity .3s}.nav a:hover{opacity:.8}@media(max-width:768px){.header-container{flex-direction:column;gap:1rem}.nav{gap:1rem}}.blog-container{max-width:1200px;margin:0 auto;padding:2rem}.hero-section{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3rem 2rem;border-radius:10px;text-align:center;margin-bottom:3rem}.hero-section h1{font-size:2.5rem;margin-bottom:.5rem}.hero-section p{font-size:1.2rem;margin:0}.blog-content h2{font-size:2rem;color:#333;margin-bottom:2rem}.articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.loading,.error,.no-articles{text-align:center;padding:2rem;font-size:1.1rem}.error{color:#d32f2f;background:#ffebee;border-radius:5px}.no-articles{color:#666}@media(max-width:768px){.hero-section h1{font-size:1.8rem}.articles-grid{grid-template-columns:1fr}}.article-detail-container{max-width:800px;margin:0 auto;padding:2rem 1rem;min-height:calc(100vh - 200px)}.article-detail{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;line-height:1.8}.btn-back-small{background:none;border:none;color:#667eea;cursor:pointer;font-weight:600;font-size:1rem;padding:.5rem 0;margin-bottom:1.5rem;transition:color .3s}.btn-back-small:hover{color:#764ba2}.article-header{margin-bottom:2rem;border-bottom:2px solid #f0f0f0;padding-bottom:1.5rem}.article-header h1{margin:0 0 1rem;color:#333;font-size:2.5rem;line-height:1.2}.article-meta-detail{display:flex;gap:1rem;color:#999;font-size:.95rem}.article-image-detail{margin:2rem 0;border-radius:10px;overflow:hidden;max-height:400px;background:#f0f0f0}.article-image-detail img{width:100%;height:100%;object-fit:cover}.article-excerpt-detail{background:#f9f9f9;padding:1.5rem;border-left:4px solid #667eea;margin:1.5rem 0;font-size:1.1rem;color:#555;font-style:italic;border-radius:5px}.article-content-detail{color:#333;margin:2rem 0}.article-content-detail h2{margin-top:2rem;margin-bottom:1rem;color:#333;font-size:1.8rem;border-bottom:1px solid #eee;padding-bottom:.5rem}.article-content-detail h3{margin-top:1.5rem;margin-bottom:.75rem;color:#444;font-size:1.3rem}.article-content-detail h4,.article-content-detail h5,.article-content-detail h6{margin-top:1rem;margin-bottom:.5rem;color:#555}.article-content-detail p{margin:1rem 0;line-height:1.8}.article-content-detail ul,.article-content-detail ol{margin:1rem 0;padding-left:2rem}.article-content-detail li{margin:.5rem 0}.article-content-detail code{background:#f4f4f4;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;color:#d63384}.article-content-detail pre{background:#2d2d2d;color:#f8f8f2;padding:1.5rem;border-radius:8px;overflow-x:auto;margin:1.5rem 0;font-family:Courier New,monospace;font-size:.9rem;line-height:1.5}.article-content-detail pre code{background:none;color:inherit;padding:0}.article-content-detail blockquote{border-left:4px solid #667eea;padding-left:1.5rem;margin-left:0;margin-right:0;color:#666;font-style:italic;background:#f9f9f9;padding:1rem 1.5rem;border-radius:5px}.article-content-detail a{color:#667eea;text-decoration:none;transition:color .3s}.article-content-detail a:hover{color:#764ba2;text-decoration:underline}.article-content-detail table{width:100%;border-collapse:collapse;margin:1.5rem 0}.article-content-detail table th,.article-content-detail table td{border:1px solid #ddd;padding:.75rem;text-align:left}.article-content-detail table th{background:#f5f5f5;font-weight:600}.article-content-detail table tbody tr:nth-child(2n){background:#f9f9f9}.article-footer{margin-top:3rem;padding-top:2rem;border-top:2px solid #f0f0f0;display:flex;justify-content:flex-start}.btn-back{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-weight:600;transition:background .3s}.btn-back:hover{background:#764ba2}.loading,.error-message{text-align:center;padding:2rem;color:#999;font-size:1.1rem}.error-message{background:#ffebee;color:#d32f2f;border-radius:5px;margin-bottom:1.5rem}@media(max-width:768px){.article-detail-container{padding:1rem .5rem}.article-detail{padding:1.5rem}.article-header h1{font-size:1.8rem}.article-content-detail h2{font-size:1.4rem}.article-image-detail{max-height:250px}.article-meta-detail{flex-direction:column;gap:.5rem}}.App{max-width:1200px;margin:0 auto;padding:2rem}html,body{margin:0;padding:0}*{box-sizing:border-box}:root{color:#ffffffde;background-color:#242424}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
