:root{--paper:#fffdf9;--ink:#1d1a17;--muted:#756b62;--line:#dfd7cd;--green:#235c48;--red:#a33b31}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px Inter,system-ui,sans-serif;line-height:1.5}
.admin{width:min(920px,calc(100% - 32px));margin:64px auto}
.back{color:var(--muted);text-decoration:none}
.back:hover{text-decoration:underline}
h1{font:500 clamp(42px,8vw,72px)/1 "Cormorant Garamond",Georgia,serif;margin:22px 0}
.intro{color:var(--muted);margin-bottom:32px}
.login{max-width:420px;display:grid;gap:10px}
.login label,h2{font-weight:500}
.login input,.image-form input{font:inherit}
.login input{padding:12px;border:1px solid var(--line)}
button{appearance:none;border:0;background:var(--ink);color:#fff;padding:12px 16px;font:500 14px Inter,system-ui,sans-serif;cursor:pointer;border-radius:10px}
.image-list{display:grid;gap:16px}
.image-form{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:18px;border:1px solid var(--line);align-items:center;background:#fff;border-radius:14px}
.image-form img{width:170px;height:120px;object-fit:cover;background:#eee}
.image-form h2{font:500 26px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 14px}
.image-form input{display:block;margin-bottom:12px;max-width:100%}
.services-editor{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.services-editor>h2{font:500 36px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 20px}
.services-form{display:grid;gap:16px}
.services-form fieldset{margin:0;padding:20px;border:1px solid var(--line);display:grid;gap:12px}
.services-form legend{padding:0 6px;font:500 24px/1 "Cormorant Garamond",Georgia,serif}
.services-form label{display:grid;gap:6px;font-size:14px}
.services-form input,.services-form textarea{width:100%;padding:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit}
.services-form textarea{resize:vertical}
.services-form button{justify-self:start}
.gallery-editor{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.gallery-editor>h2{font:500 36px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 20px}
.gallery-create-form,.gallery-ping-form{display:grid;gap:12px;margin-bottom:20px;padding:20px;border:1px solid var(--line)}
.gallery-create-form label,.gallery-ping-form label{display:grid;gap:6px;font-size:14px}
.gallery-create-form input,.gallery-ping-form input,.gallery-ping-form select{width:100%;padding:10px;border:1px solid var(--line);background:var(--paper);font:inherit}
.gallery-ping-form h3{font:500 28px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 10px}
.gallery-list{display:grid;gap:14px}
.gallery-item-admin{display:flex;justify-content:space-between;gap:16px;padding:18px;border:1px solid var(--line);background:var(--paper)}
.gallery-item-admin h3{font:500 26px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 8px}
.gallery-item-admin p{margin:4px 0;color:var(--muted)}
.gallery-item-admin a{color:var(--ink);text-decoration:none;font-weight:500}
.gallery-item-admin a:hover{text-decoration:underline}
.gallery-delete-form{align-self:end}
.reviews-editor{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.news-editor,.users-editor{margin-top:56px;padding-top:40px;border-top:1px solid var(--line)}
.news-editor>h2,.users-editor>h2{font:500 36px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 20px}
.reviews-editor>h2{font:500 36px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 20px}
.admin-reviews-list{display:grid;gap:16px}
.admin-review{padding:20px;border:1px solid var(--line);background:var(--paper)}
.admin-review h3{font:500 26px/1.1 "Cormorant Garamond",Georgia,serif;margin:0 0 10px}
.admin-review p{color:var(--muted)}
.admin-review-reply{display:grid;gap:8px;margin-top:18px}
.admin-review-reply label{display:grid;gap:6px;font-size:14px}
.admin-review-reply textarea{width:100%;padding:10px;border:1px solid var(--line);background:var(--paper);font:inherit;resize:vertical}
.admin-review-delete{margin-top:10px}
.danger-button{background:transparent;color:var(--red);border:1px solid #e5b4ae}
.portfolio-multi-slot{grid-template-columns:1fr;gap:14px}
.portfolio-multi-slot>h2{font:500 30px/1.1 "Cormorant Garamond",Georgia,serif;margin:0}
.portfolio-empty{margin:0}
.portfolio-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.portfolio-thumb-wrap{position:relative;aspect-ratio:4/3;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#eee}
.portfolio-thumb-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-remove{position:absolute;top:6px;right:6px;padding:0;width:26px;height:26px;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;background:rgba(163,59,49,.9);color:#fff;border:none;border-radius:999px}
.portfolio-upload-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.portfolio-upload-form input[type=file]{margin:0;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.portfolio-upload-form button{min-height:42px}
.success,.error{padding:12px 14px}
.success{color:var(--green);background:#e6f1eb}
.error{color:var(--red);background:#f9e8e5}
.logout{margin-top:32px}
.logout button{background:transparent;color:var(--ink);border:1px solid var(--line)}
.crop-dialog{width:min(920px,calc(100% - 32px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.crop-dialog::backdrop{background:rgba(29,26,23,.65)}
.crop-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.crop-header h2{margin:0;font:500 28px/1.1 "Cormorant Garamond",Georgia,serif}
.icon-button{width:36px;height:36px;padding:0;background:transparent;color:var(--ink);font-size:28px;line-height:1}
.crop-stage{height:min(62vh,600px);min-height:0;background:#171513}
.crop-stage img{display:block;max-width:100%}
.crop-actions{display:flex;align-items:center;gap:12px;padding:18px 22px}
.crop-note{margin-right:auto;color:var(--muted);font-size:14px}
.secondary-button{background:transparent;color:var(--ink);border:1px solid var(--line)}
@media(max-width:760px){.admin{margin:32px auto}
.image-form{grid-template-columns:1fr;gap:14px;padding:14px}
.image-form img{width:100%;height:190px}
.image-form h2{font-size:24px}
.gallery-item-admin{flex-direction:column;align-items:flex-start}
.portfolio-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
.portfolio-upload-form button{width:100%}
.crop-stage{height:auto}
.crop-actions{flex-wrap:wrap;padding:16px}
.crop-note{order:3;flex-basis:100%}
.crop-actions button{flex:1}
}
.crop-dialog{height:min(760px,calc(100dvh - 24px));display:none}
.crop-dialog[open]{display:grid}
.crop-stage{height:100%;overflow:hidden}
.crop-stage .cropper-container{width:100%!important;height:100%!important}
@media(max-width:560px){.crop-stage{height:100%}
.portfolio-thumbs{grid-template-columns:1fr}}
