.download-page{--ink: #1b2a33;--ocean: #0f5d7f;--sand: #f5efe6;background:#f8f9fb;padding:2rem 0 3rem;color:var(--ink)}.download-page .container{max-width:1150px;margin:0 auto;padding:0 1.5rem}.download-page .page-header{text-align:center;margin-bottom:2.5rem;position:relative}.download-page .back-btn{position:absolute;left:0;top:0;background:#0f5d7f1f;color:var(--ocean);border:1px solid rgba(15,93,127,.2);padding:.45rem .9rem;border-radius:999px;font-size:.9rem;cursor:pointer;transition:transform .2s ease,background-color .2s ease;text-decoration:none}.download-page .back-btn:hover{background:#0f5d7f33;transform:translateY(-1px)}.download-page .page-header h1{font-size:2.6rem;color:var(--ink);margin-bottom:.5rem;font-weight:500}.download-page .page-header p{color:#1b2a33b3;font-size:1.05rem}.download-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.download-page .spinner{width:46px;height:46px;border:3px solid rgba(15,93,127,.2);border-top:3px solid var(--ocean);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.download-page .error-message{background-color:#e07a5f26;color:#7a2d1d;padding:1rem 1.25rem;border-radius:14px;margin-bottom:2rem;display:flex;justify-content:center;align-items:center;gap:.75rem;border:1px solid rgba(224,122,95,.25)}.download-page .error-retry{background:#e07a5f33;border:1px solid rgba(224,122,95,.4);color:#7a2d1d;padding:.4rem .8rem;border-radius:999px;font-size:.85rem;cursor:pointer}.download-page .files-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-bottom:2rem}.download-page .file-card{background:#fff;border-radius:22px;box-shadow:0 10px 24px #0f172a14;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease;border:1px solid #e5e7eb}.download-page .file-card:hover{transform:translateY(-6px);box-shadow:0 24px 50px #14232d2e}.download-page .file-preview{height:210px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;overflow:hidden}.download-page .file-image{width:100%;height:100%;object-fit:cover}.download-page .file-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.download-page .file-type-icon{background:var(--ocean);color:#fff;padding:.6rem 1.4rem;border-radius:999px;font-weight:600;font-size:.85rem;letter-spacing:.08em}.download-page .file-info{padding:1.5rem 1.6rem 1rem}.download-page .file-name{font-size:1.2rem;color:var(--ink);margin-bottom:.25rem;font-weight:600;word-break:break-word}.download-page .file-description{color:#1b2a33a6;margin-bottom:1rem;line-height:1.5;font-size:.95rem}.download-page .preview-description{font-size:.9rem;color:#1b2a33b3;line-height:1.4}.download-page .file-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-size:.9rem;color:#1b2a338c}.download-page .file-actions{padding:0 1.6rem 1.6rem;display:grid;gap:.75rem}.download-page .download-btn{width:100%;background:linear-gradient(135deg,var(--ocean),#0b3f56);color:#fff;border:none;padding:.8rem 1.5rem;border-radius:999px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.download-page .download-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px #0f5d7f40}.download-page .preview-btn{width:100%;background:transparent;color:var(--ocean);border:1px solid rgba(15,93,127,.3);padding:.75rem 1.5rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.download-page .preview-btn:hover{background:#0f5d7f14}.download-page .no-files{grid-column:1 / -1;text-align:center;padding:3rem;background:#fff;border-radius:20px;box-shadow:0 10px 24px #0f172a14;border:1px solid #e5e7eb}.download-page .no-files p{color:#1b2a3399;font-size:1.1rem;margin:0}.download-page .preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:50}.download-page .preview-modal{width:min(900px,100%);background:#fff;border-radius:18px;box-shadow:0 24px 60px #0f172a40;overflow:hidden}.download-page .preview-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;gap:1rem}.download-page .preview-title{display:flex;flex-direction:column;gap:.25rem}.download-page .preview-name{font-weight:600;color:var(--ink)}.download-page .preview-meta{font-size:.85rem;color:#1b2a3399}.download-page .preview-close{background:#0f5d7f1f;border:none;color:var(--ocean);padding:.35rem .6rem;border-radius:999px;cursor:pointer;font-weight:600}.download-page .preview-body{padding:1.5rem;display:flex;justify-content:center;align-items:center;max-height:70vh;overflow:auto}.download-page .preview-body img{max-width:100%;max-height:64vh;border-radius:12px;box-shadow:0 10px 24px #0f172a26}.download-page .preview-non-image{text-align:center;display:grid;gap:1rem;justify-items:center}.download-page .preview-non-image .file-type-icon{padding:.75rem 1.75rem}.download-page .preview-non-image p{color:#1b2a3399;margin:0}@media(max-width:900px){.download-page .page-header h1{font-size:2.2rem}}@media(max-width:700px){.download-page .back-btn{position:static;margin-bottom:1rem}.download-page .files-grid{grid-template-columns:1fr;gap:1.5rem}.download-page .file-meta{flex-direction:column;align-items:flex-start;gap:.25rem}}@media(max-width:480px){.download-page{padding:1.5rem 0 2.5rem}}.admin-page{--ink: #1c2b2b;--leaf: #2f7a57;--leaf-dark: #1c5b42;--sand: #f7f4ef;background:#f8f9fb;padding:2rem 0 3rem;color:var(--ink)}.admin-page .container{max-width:1150px;margin:0 auto;padding:0 1.5rem}.admin-page .page-header{text-align:center;margin-bottom:2.75rem;position:relative}.admin-page .auth-header{margin-bottom:2rem}.admin-page .back-btn{position:absolute;left:0;top:0;background:#1c2b2b14;color:var(--ink);border:1px solid rgba(28,43,43,.15);padding:.45rem .9rem;border-radius:999px;font-size:.9rem;cursor:pointer;transition:transform .2s ease,background-color .2s ease;text-decoration:none}.admin-page .back-btn:hover{background:#1c2b2b29;transform:translateY(-1px)}.admin-page .page-header h1{font-size:2.6rem;margin-bottom:.5rem;font-weight:500;letter-spacing:.02em}.admin-page .page-header p{font-size:1.05rem;opacity:.85}.admin-page .auth-kicker{text-transform:uppercase;letter-spacing:.3em;font-size:.75rem;font-weight:600;color:var(--leaf);margin-bottom:.4rem}.admin-page .auth-card{background:#fff;border-radius:24px;padding:2.5rem;border:1px solid #e5e7eb;box-shadow:0 10px 25px #0f172a14;max-width:520px;margin:0 auto}.admin-page .auth-form{display:flex;flex-direction:column;gap:1rem}.admin-page .auth-form label{font-weight:600;color:var(--ink)}.admin-page .auth-form input{padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(28,43,43,.2);font-size:1rem;font-family:inherit;background:#fff}.admin-page .auth-form input:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px #1f7a5b2e}.admin-page .auth-error{background:#d66c6226;color:#7b1f1a;padding:.6rem .9rem;border-radius:10px;font-size:.95rem}.admin-page .auth-submit{background:linear-gradient(135deg,var(--leaf),var(--leaf-dark));color:#fff;border:none;padding:.95rem 1.2rem;border-radius:999px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.admin-page .auth-submit:hover{transform:translateY(-1px);box-shadow:0 12px 24px #155a4447}.admin-page .auth-forgot{background:none;border:none;color:#1c2b2ba6;text-decoration:underline;font-size:.9rem;cursor:pointer;padding:0}.admin-forgot{padding:2rem 0 3rem;background:#f8f9fb;color:var(--ink)}.admin-forgot-card{text-align:center}.admin-forgot-text{margin:0;color:#c84733;font-size:1.05rem;font-weight:600}.admin-page .auth-hint{font-size:.85rem;color:#1c2b2ba6;margin:0}.admin-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--ink)}.admin-page .spinner{width:46px;height:46px;border:3px solid rgba(28,43,43,.2);border-top:3px solid var(--leaf);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-page .error-message{background:#d66c6226;color:#7b1f1a;padding:1rem 1.25rem;border-radius:14px;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(214,108,98,.3);gap:1rem}.admin-page .error-actions{display:flex;align-items:center;gap:.5rem}.admin-page .error-retry{background:#d66c6233;border:1px solid rgba(214,108,98,.4);color:#7b1f1a;padding:.4rem .7rem;border-radius:999px;font-size:.85rem;cursor:pointer}.admin-page .close-error{background:none;border:none;color:inherit;font-size:1.2rem;cursor:pointer;padding:0;margin-left:1rem}.admin-page .upload-section,.admin-page .files-section{background:#fff;border-radius:22px;padding:2.2rem;box-shadow:0 10px 24px #0f172a14;border:1px solid #e5e7eb}.admin-page .upload-section{margin-bottom:2rem}.admin-page .upload-section h2,.admin-page .files-section h2{color:var(--ink);margin-bottom:1.4rem;font-size:1.5rem}.admin-page .upload-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;align-items:end}.admin-page .form-group{display:flex;flex-direction:column;gap:.5rem}.admin-page .form-group label{color:var(--ink);font-weight:600}.admin-page .form-group input[type=file],.admin-page .form-group textarea{padding:.75rem;border:1px solid rgba(28,43,43,.18);border-radius:12px;font-size:1rem;background:#fff;font-family:inherit}.admin-page .form-group textarea{min-height:100px;resize:vertical}.admin-page .form-group textarea:focus,.admin-page .form-group input[type=file]:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px #1f7a5b26}.admin-page .upload-btn{background:var(--ink);color:#fff;border:none;padding:.9rem 1.6rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;justify-self:start}.admin-page .upload-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #1c2b2b40}.admin-page .upload-btn:disabled{background:#9aa5a1;cursor:not-allowed}.admin-page .files-section{margin-bottom:2rem}.admin-page .messages-section{background:#fff;border-radius:22px;padding:2.2rem;box-shadow:0 10px 24px #0f172a14;border:1px solid #e5e7eb;margin-bottom:2rem}.admin-page .messages-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.admin-page .refresh-btn{background:#1f7a5b14;border:1px solid rgba(31,122,91,.3);color:var(--leaf);padding:.45rem .9rem;border-radius:999px;font-size:.85rem;cursor:pointer}.admin-page .messages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.admin-page .message-card{border:1px solid #e5e7eb;border-radius:16px;padding:1.25rem;background:#f9fafb;display:grid;gap:.4rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.admin-page .message-card:hover{transform:translateY(-2px);box-shadow:0 12px 22px #0f172a1f}.admin-page .message-meta{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;color:#1c2b2b99}.admin-page .message-subject{font-weight:600;color:var(--ink)}.admin-page .message-name{font-weight:600;margin:0}.admin-page .message-contact{font-size:.9rem;color:#1c2b2b99;margin:0}.admin-page .message-body{font-size:.95rem;color:#1c2b2bcc;margin:.4rem 0 .6rem}.admin-page .message-delete{justify-self:start;background:#d66c621f;border:1px solid rgba(214,108,98,.4);color:#9b2c21;padding:.4rem .8rem;border-radius:999px;font-size:.85rem;cursor:pointer}.admin-page .message-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:60}.admin-page .message-modal{background:#fff;border-radius:18px;width:min(720px,100%);box-shadow:0 24px 60px #0f172a40;overflow:hidden}.admin-page .message-modal-header{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.admin-page .message-modal-subject{font-weight:600;margin:0 0 .3rem}.admin-page .message-modal-meta{margin:0;color:#1c2b2ba6;font-size:.9rem}.admin-page .message-modal-close{background:#1f7a5b14;border:none;color:var(--leaf);padding:.35rem .6rem;border-radius:999px;cursor:pointer;font-weight:600}.admin-page .message-modal-body{padding:1.5rem;display:grid;gap:1rem}.admin-page .message-modal-body p{margin:0}.admin-page .message-modal-date{font-size:.85rem;color:#1c2b2b99}.admin-page .message-modal-actions{display:flex;justify-content:flex-end}.admin-page .site-section{background:#fff;border-radius:22px;padding:2.2rem;box-shadow:0 10px 24px #0f172a14;border:1px solid #e5e7eb;margin-bottom:2rem}.admin-page .site-hint{margin:0;color:#1c2b2b99;font-size:.9rem}.admin-page .site-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.admin-page .site-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:1rem;font-weight:600;color:#1c2b2b;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.admin-page .site-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #0f172a1f}.admin-page .password-section{background:#fff;border-radius:22px;padding:2.2rem;box-shadow:0 10px 24px #0f172a14;border:1px solid #e5e7eb;margin-bottom:2rem}.admin-page .password-section h2{color:var(--ink);margin-bottom:1.4rem;font-size:1.5rem}.admin-page .password-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;align-items:end}.admin-page .password-error{background:#d66c6226;color:#7b1f1a;padding:.6rem .9rem;border-radius:10px;font-size:.95rem;grid-column:1 / -1}.admin-page .password-submit{background:linear-gradient(135deg,var(--leaf),var(--leaf-dark));color:#fff;border:none;padding:.9rem 1.6rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;justify-self:start}.admin-page .password-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #155a4447}.admin-page .no-files{text-align:center;padding:3rem;color:#1c2b2b99}.admin-page .files-table{overflow-x:auto}.admin-page .files-table table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.95rem}.admin-page .files-table th,.admin-page .files-table td{padding:.9rem .75rem;text-align:left;border-bottom:1px solid rgba(28,43,43,.1)}.admin-page .files-table th{text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:#1c2b2bb3}.admin-page .files-table tr:hover{background:#1f7a5b0f}.admin-page .filename{font-weight:600;color:var(--ink);max-width:220px;word-break:break-word}.admin-page .description{max-width:300px;word-break:break-word}.admin-page .description-text{display:flex;align-items:center;gap:.5rem}.admin-page .edit-btn,.admin-page .delete-btn{background:none;border:none;cursor:pointer;padding:.35rem .65rem;border-radius:999px;transition:background-color .2s ease;font-weight:600;font-size:.85rem}.admin-page .edit-btn:hover{background:#1f7a5b1f}.admin-page .delete-btn{color:#9b2c21;border:1px solid rgba(214,108,98,.35);background:#d66c6214}.admin-page .delete-btn:hover{background:#d66c622e}.admin-page .edit-description,.admin-page .edit-filename{display:flex;flex-direction:column;gap:.5rem}.admin-page .edit-input{padding:.5rem .65rem;border:1px solid rgba(31,122,91,.5);border-radius:10px;font-size:.9rem;width:100%;box-sizing:border-box}.admin-page .edit-actions{display:flex;gap:.5rem}.admin-page .filename-text{display:flex;flex-direction:column;gap:.2rem}.admin-page .display-name{font-weight:600}.admin-page .original-name{font-size:.8rem;color:#1c2b2b99;font-style:italic}.admin-page .save-btn,.admin-page .cancel-btn{border:none;padding:.45rem .9rem;border-radius:10px;font-size:.85rem;cursor:pointer;transition:transform .2s ease}.admin-page .save-btn{background:var(--leaf);color:#fff}.admin-page .cancel-btn{background:#e07a67;color:#fff}.admin-page .save-btn:hover,.admin-page .cancel-btn:hover{transform:translateY(-1px)}@media(max-width:900px){.admin-page .page-header h1{font-size:2.2rem}.admin-page .upload-section,.admin-page .files-section{padding:1.6rem}}@media(max-width:600px){.admin-page{padding:1.5rem 0 2.5rem}.admin-page .back-btn{position:static;margin-bottom:1rem}.admin-page .upload-form{grid-template-columns:1fr}.admin-page .files-table th,.admin-page .files-table td{padding:.7rem .5rem}}
