
:root {
    color-scheme: light;
    --ink: #242820;
    --muted: #74786f;
    --paper: #f7f5f0;
    --line: #e8e5dc;
    --green: #506b4f;
    --green-dark: #3e583d;
    --sage: #dfe6d7;
}

* { box-sizing: border-box; }
[hidden] { display:none !important; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.shell { max-width: 1180px; margin: 0 auto; padding: 0 36px; }
.topbar {
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
}
.brand { display: inline-flex; align-items: center; gap: 11px; font: 800 17px system-ui, -apple-system, 'Segoe UI', sans-serif; letter-spacing: -.5px; }
.brand-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--green);
    color: white;
    font-size: 16px;
}
.topbar-note, .quiet-note { color: var(--muted); font-size: 13px; }
.hero {
    position: relative;
    min-height: 485px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 68px 0 72px;
    overflow: hidden;
}
.eyebrow, .status-badge { display: inline-flex; align-items: center; gap: 9px; color: var(--green-dark); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #83a56f; box-shadow: 0 0 0 4px #e7edde; }
h1, h2, p { margin-top: 0; }
h1 {
    position: relative;
    z-index: 1;
    max-width: 600px;
    margin: 24px 0 18px;
    font: 700 clamp(42px, 6.4vw, 72px)/1.06 system-ui, -apple-system, 'Segoe UI', sans-serif;
    letter-spacing: -.065em;
}
h1 span { color: var(--green); }
.intro { position: relative; z-index: 1; max-width: 480px; margin-bottom: 26px; color: var(--muted); font-size: 16px; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 18px; }
.button { display: inline-flex; align-items: center; gap: 20px; border-radius: 8px; padding: 14px 17px; font-size: 13px; font-weight: 700; }
.button-primary { background: var(--green); color: white; transition: background .2s, transform .2s; }
.button-primary:hover { background: var(--green-dark); transform: translateY(-1px); }
.hero-art { position: absolute; right: 6%; top: 52px; width: 385px; height: 380px; }
.photo { position: absolute; border: 8px solid #fffefa; border-radius: 8px; box-shadow: 0 22px 60px #353c291c; }
.photo-back { top: 24px; right: 4px; width: 230px; height: 300px; background: linear-gradient(155deg, #e8d8c2 0 36%, #8d9878 36% 57%, #c3c8a8 57%); transform: rotate(9deg); }
.photo-front { top: 53px; left: 23px; width: 235px; height: 293px; overflow: hidden; background: linear-gradient(180deg, #dce8e0, #f4e9d4); transform: rotate(-7deg); }
.sun { position: absolute; top: 39px; right: 38px; width: 42px; height: 42px; border-radius: 50%; background: #e0b982; }
.mountain { position: absolute; bottom: -36px; width: 230px; height: 160px; border-radius: 50% 50% 0 0; }
.mountain-one { left: -47px; background: #7c8f70; transform: rotate(-15deg); }
.mountain-two { right: -72px; bottom: -54px; background: #a6ae88; transform: rotate(15deg); }
.selection-card {
    position: absolute;
    right: 0;
    bottom: 30px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 17px;
    border: 1px solid #eeece4;
    border-radius: 10px;
    background: #fffefa;
    box-shadow: 0 14px 36px #353c2914;
    color: #4c5848;
    font-size: 12px;
    font-weight: 700;
}
.checkmark { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--sage); color: var(--green-dark); }
.features { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.feature { padding: 28px 28px 31px 0; }
.feature + .feature { padding-left: 28px; border-left: 1px solid var(--line); }
.feature-number, .section-label { display: block; margin-bottom: 15px; color: var(--green); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.feature h2, .status-panel h2 { margin-bottom: 8px; font: 700 17px system-ui, -apple-system, 'Segoe UI', sans-serif; letter-spacing: -.03em; }
.feature p, .status-panel p { max-width: 300px; margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.status-panel { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 48px 0; padding: 26px 28px; border: 1px solid var(--line); border-radius: 12px; background: #fbfaf6; }
.status-panel .section-label { margin-bottom: 9px; }
.status-panel h2 { font-size: 20px; }
.status-badge { flex-shrink: 0; border: 1px solid #e4e8dc; border-radius: 100px; padding: 10px 13px; background: #f4f7ef; font-size: 10px; }
.footer { display:flex; align-items:center; justify-content:space-between; margin:32px 0 24px; padding:28px; border-top:3px solid #c4ceba; border-radius:0 0 12px 12px; background:#eeeee5; color:#565e50; font-size:12px; line-height:1.6; }
.footer span:first-child { color: var(--ink); font-weight: 700; }

@media (max-width: 800px) {
    .hero { min-height: 700px; justify-content: flex-start; }
    .hero-art { top: 350px; right: 6%; transform: scale(.86); transform-origin: top right; }
}
@media (max-width: 560px) {
    .shell { padding: 0 20px; }
    .topbar { height: 70px; }
    .topbar-note { font-size: 11px; }
    .hero { min-height: 690px; padding: 53px 0 30px; }
    h1 { font-size: 48px; }
    .intro { font-size: 14px; }
    .quiet-note { font-size: 11px; }
    .hero-art { top: 350px; right: -9px; transform: scale(.79); }
    .features { grid-template-columns: 1fr; }
    .feature, .feature + .feature { padding: 22px 0; border-left: 0; }
    .feature + .feature { border-top: 1px solid var(--line); }
    .feature-number { margin-bottom: 9px; }
    .status-panel { align-items: flex-start; flex-direction: column; margin: 32px 0; padding: 22px; }
    .footer { align-items: flex-start; gap: 8px; flex-direction: column; }
}

.account-nav { display:flex; align-items:center; gap:20px; font-size:13px; }
.account-nav form { margin:0; }
.text-button { border:0; background:none; color:var(--muted); cursor:pointer; font:inherit; padding:8px 0; }
.auth-card { max-width:490px; margin:62px auto 70px; padding:32px; border:1px solid var(--line); border-radius:16px; background:#fffefa; }
.auth-card h1 { font-size:34px; line-height:1.2; letter-spacing:-.04em; margin:16px 0; }
.auth-card .intro { font-size:14px; margin-bottom:22px; }
.auth-form { display:grid; gap:10px; }
.auth-form label { font-size:13px; font-weight:600; margin-top:8px; }
.auth-form input { width:100%; border:1px solid #d5d8cc; border-radius:7px; background:white; padding:12px; font:inherit; }
.auth-form .button { border:0; justify-content:center; margin-top:16px; cursor:pointer; font:inherit; font-size:14px; }
.field-hint { color:var(--muted); font-size:12px; margin:0; line-height:1.6; }
.auth-switch { font-size:13px; margin:24px 0 0; text-align:center; color:var(--muted); }
.auth-switch a { color:var(--green-dark); font-weight:600; text-decoration:underline; }
.form-errors { border:1px solid #e3c0b6; background:#fff4f0; color:#843c2e; border-radius:8px; padding:12px 15px; margin-bottom:16px; font-size:13px; }
.form-errors p { margin:0; line-height:1.7; }
.dashboard { margin:54px 0 70px; }
.dashboard h1 { font-size:36px; letter-spacing:-.04em; }
.dashboard-heading { display:flex; justify-content:space-between; align-items:center; margin-top:44px; }
.dashboard-heading h2 { font-size:20px; }
.dashboard-heading span { font-size:13px; color:var(--muted); }
.empty-state { border:1px dashed #cdd4c5; border-radius:12px; padding:45px 24px; text-align:center; background:#fbfaf6; }
.empty-state .brand-mark { margin:0 auto 18px; }
.empty-state h2 { font-size:18px; }
.empty-state p { color:var(--muted); font-size:14px; margin:0; }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:8px; }
table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
th,td { padding:16px; border-bottom:1px solid var(--line); }
th { background:#efeee7; font-weight:600; }
tr:last-child td { border-bottom:0; }
.homepage-note { padding:30px 0; font-size:13px; color:var(--muted); }
:focus-visible { outline:3px solid #9aaf88; outline-offset:3px; }
@media(max-width:560px) {
    .account-nav { gap:10px; font-size:11px; }
    .account-nav .button { padding:10px; font-size:11px; }
    .auth-card { padding:24px 20px; margin:32px auto; }
    .auth-card h1,.dashboard h1 { font-size:28px; }
}
.gallery-title { color:var(--green-dark); font-weight:600; text-decoration:underline; }
.client-gallery { margin:40px 0 64px; }
.client-heading h1 { font-size:40px; max-width:none; letter-spacing:-.04em; }
.client-heading>p { max-width:720px; color:var(--muted); line-height:1.7; }
.preserve-lines { white-space:pre-wrap; overflow-wrap:anywhere; }
.client-toolbar { position:sticky; top:0; z-index:5; background:var(--paper); display:flex; align-items:center; gap:20px; flex-wrap:wrap; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--line); }
.checkbox-label { display:flex; align-items:center; gap:8px; font-size:14px; }
.client-save-row { display:flex; justify-content:space-between; gap:16px; color:var(--muted); font-size:12px; margin:16px 0; }
.client-open { background:none; border:0; padding:0; width:100%; cursor:zoom-in; }
.client-select { width:100%; justify-content:center; margin-top:12px; border:1px solid #cbd8c1; background:#f1f4ec; cursor:pointer; }
.photo-card.selected { border:2px solid var(--green); padding:11px; }
.selected .client-select { background:var(--green); color:white; }
.client-more { margin:32px auto; display:block; }
.client-lightbox { width:min(1200px,96vw); max-width:96vw; max-height:96vh; padding:20px; border:0; border-radius:14px; background:var(--paper); }
.client-lightbox::backdrop { background:#152015d9; }
.lightbox-header { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.lightbox-header strong { overflow-wrap:anywhere; }
.lightbox-image { display:grid; grid-template-columns:40px minmax(0,1fr) 40px; align-items:center; gap:12px; margin:10px 0; }
.lightbox-image img { width:100%; height:58vh; object-fit:contain; user-select:none; }
.lightbox-image>button { font-size:36px; background:#e8edde; border:0; border-radius:6px; cursor:pointer; }
.lightbox-controls { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.client-lightbox label { display:block; font-size:13px; margin-bottom:8px; }
.client-lightbox textarea,.auth-form textarea { display:block; padding:12px; width:100%; font:inherit; border:1px solid #cbd2c2; border-radius:8px; resize:vertical; }
.review-list { margin:28px 0; }
.review-list article { display:flex; align-items:center; gap:20px; padding:16px 0; border-bottom:1px solid var(--line); }
.review-list img { width:100px; height:80px; object-fit:contain; background:#e9ebe3; border-radius:5px; }
.review-list p { margin:8px 0 0; color:var(--muted); font-size:14px; }
.order-total { font-size:24px; color:var(--green-dark); }
.share-label { display:block; font-size:13px; font-weight:600; margin-top:24px; }
.share-link { display:block; width:100%; padding:12px; margin:8px 0 16px; font:inherit; font-size:13px; border:1px solid #ccd4c4; border-radius:7px; }
button:disabled { cursor:not-allowed; opacity:.55; }
@media(max-width:560px) {
    .client-heading h1 { font-size:30px; }
    .client-toolbar { gap:12px; }
    .client-toolbar [data-client-summary] { font-size:13px; }
    .client-lightbox { padding:12px; }
    .lightbox-image { grid-template-columns:28px minmax(0,1fr) 28px; gap:6px; }
    .lightbox-image img { height:45vh; }
}
.photo-manager { margin:40px 0 64px; }
.photo-manager h1 { font-size:36px; letter-spacing:-.04em; }
.photo-heading { display:flex; gap:20px; align-items:center; justify-content:space-between; margin:28px 0 16px; flex-wrap:wrap; }
.photo-heading h1,.photo-heading h2,.photo-heading p { margin-bottom:0; }
.photo-heading h2 { font-size:20px; }
.photo-heading p { color:var(--muted); font-size:13px; }
.upload-box { border:2px dashed #c4d0ba; border-radius:14px; padding:24px; background:#f1f4ec; }
.drop-area { display:flex; flex-direction:column; gap:14px; cursor:pointer; }
.drop-area span { color:var(--muted); font-size:13px; }
.drop-area input { font:inherit; font-size:14px; max-width:100%; }
.drag-active { outline:3px solid var(--green); outline-offset:8px; }
.upload-box>button { margin-top:20px; }
.upload-queue ul { list-style:none; padding:0; max-height:320px; overflow:auto; }
.upload-queue li { display:grid; grid-template-columns:1fr 120px 1fr; gap:20px; align-items:center; padding:10px 12px; border-bottom:1px solid var(--line); font-size:12px; }
.upload-queue strong { overflow-wrap:anywhere; }
.upload-queue progress { width:100%; accent-color:var(--green); }
.queue-failed { color:#843c2e; background:#fff4f0; }
.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:20px; }
.photo-card { border:1px solid var(--line); border-radius:10px; padding:12px; background:#fffefa; min-width:0; }
.photo-card img,.preview-placeholder { width:100%; height:180px; object-fit:contain; background:#e9ebe3; border-radius:5px; }
.preview-placeholder { display:grid; place-items:center; color:var(--muted); font-size:12px; text-align:center; padding:16px; }
.photo-card>strong { display:block; font-size:12px; margin-top:10px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.photo-card-actions { display:flex; gap:16px; justify-content:space-between; margin-top:8px; font-size:12px; }
.photo-card-actions form { margin:0; }
.photo-error { color:#843c2e; font-size:12px; margin:8px 0; }
.photo-pagination { display:flex; justify-content:center; gap:20px; align-items:center; margin-top:30px; font-size:13px; }
.gallery-form .checkbox-label { display:flex; align-items:center; gap:10px; }
.gallery-form input[type="checkbox"] { width:auto; accent-color:var(--green); }
@media(max-width:560px) {
    .photo-manager h1 { font-size:28px; }
    .upload-queue li { grid-template-columns:1fr; gap:7px; }
    .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .photo-card img,.preview-placeholder { height:130px; }
    .photo-card-actions { flex-wrap:wrap; gap:4px; }
    .photo-pagination { gap:8px; }
}
.gallery-editor { max-width:860px; margin:40px auto 64px; }
.gallery-editor h1 { font-size:36px; letter-spacing:-.04em; }
.gallery-editor .intro { max-width:100%; }
.back-link { display:inline-block; margin-bottom:26px; color:var(--green-dark); font-size:13px; }
.editor-section { border:1px solid var(--line); border-radius:12px; padding:24px; margin:24px 0; background:#fffefa; min-width:0; }
.editor-section legend { font-weight:700; font-size:18px; padding:0 8px; }
.editor-section h2 { margin:24px 0 10px; font-size:16px; }
.gallery-form label { display:block; font-size:13px; font-weight:600; margin:16px 0 8px; }
.gallery-form input,.gallery-form textarea,.gallery-form select { display:block; width:100%; padding:11px; font:inherit; font-size:14px; background:white; border:1px solid #d5d8cc; border-radius:7px; }
.gallery-form textarea { resize:vertical; }
.gallery-form .field-hint { margin:8px 0; }
.form-columns { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.tier-row { display:grid; grid-template-columns:1fr 1fr auto; gap:16px; align-items:end; }
.tier-row input { margin-top:8px; }
.tier-row button { margin-bottom:8px; }
.gallery-form button { cursor:pointer; font-family:inherit; }
.button-primary { border:0; }
.button-secondary { border:1px solid #c9d4c2; background:#f1f4ec; color:var(--green-dark); }
[data-add-tier] { margin-top:16px; }
.editor-actions { display:flex; gap:16px; flex-wrap:wrap; }
.form-success { background:#eef4e7; color:var(--green-dark); border:1px solid #d4dfca; border-radius:8px; padding:16px; font-size:14px; }
.form-errors a { display:inline-block; margin-top:12px; text-decoration:underline; }
@media(max-width:560px) {
    .gallery-editor h1 { font-size:28px; }
    .editor-section { padding:16px; }
    .form-columns { grid-template-columns:1fr; gap:0; }
    .tier-row { grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; padding-bottom:12px; border-bottom:1px solid var(--line); }
    .tier-row button { grid-column:1/-1; justify-self:start; }
}

.export-dialog { width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; border: 1px solid var(--line); border-radius: 12px; padding: 24px; background: var(--paper, #f7f5f0); color: var(--ink, #25251e); }
.export-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.export-dialog textarea { width: 100%; box-sizing: border-box; min-height: 220px; resize: vertical; font: 14px/1.5 ui-monospace, monospace; }

.client-lightbox:fullscreen,.client-lightbox.viewport-fullscreen { width:100vw; height:100dvh; max-width:100vw; max-height:100dvh; margin:0; border-radius:0; padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); overflow:auto; }
.lightbox-image img { touch-action:pan-y; }
@media(max-width:600px) { .lightbox-header { gap:8px; flex-wrap:wrap; } .lightbox-header strong { flex-basis:100%; } .lightbox-image>button { min-height:44px; } .lightbox-controls .field-hint { flex-basis:100%; } }

.plugin-feature { display:grid; grid-template-columns:2fr 1fr; gap:32px; align-items:center; padding:32px; margin:40px 0; border:1px solid var(--line); border-radius:16px; background:#fffefa; }
.plugin-feature h2 { font-size:28px; letter-spacing:-.03em; }
.plugin-feature p { line-height:1.7; }
.plugin-actions { min-width:0; }
.plugin-actions .button { white-space:normal; text-align:center; }
@media(max-width:700px) {
    .plugin-feature { grid-template-columns:1fr; gap:16px; padding:24px; }
    .plugin-feature h2 { font-size:24px; }
}

.token-field { display:block; width:100%; box-sizing:border-box; min-height:110px; margin:12px 0; padding:16px; border:1px solid #cbd2c2; border-radius:8px; background:#fff; font:16px/1.6 ui-monospace, monospace; resize:vertical; overflow-wrap:anywhere; }
.token-copy-actions { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }

.export-dialog select { display:block; width:100%; padding:10px; margin:8px 0 16px; font:inherit; border:1px solid #cbd2c2; border-radius:8px; background:#fff; }

body { padding-bottom:var(--privacy-banner-space, 0px); }
.privacy-links { display:flex; flex-wrap:wrap; gap:16px; }
.footer { flex-wrap:wrap; gap:16px; }
.privacy-banner { position:fixed; z-index:80; bottom:12px; left:50%; transform:translateX(-50%); width:min(760px,calc(100% - 24px)); max-height:45dvh; overflow:auto; padding:20px; border:1px solid var(--line); border-radius:12px; background:#fffefa; box-shadow:0 8px 40px #0003; box-sizing:border-box; }
.privacy-banner[hidden] { display:none; }
.privacy-banner h2 { font-size:20px; margin:0 0 10px; }
.privacy-banner p { font-size:14px; line-height:1.6; }
.privacy-banner .button { min-height:44px; }
.privacy-dialog { width:min(720px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); overflow:auto; padding:24px; box-sizing:border-box; border:1px solid var(--line); border-radius:12px; background:#fffefa; color:var(--ink); }
.privacy-dialog::backdrop { background:#0007; }
.privacy-dialog-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.privacy-dialog h2 { font-size:24px; }
.privacy-dialog h3 { font-size:17px; margin-top:24px; }
.privacy-dialog p,.privacy-document p,.privacy-document li { line-height:1.7; }
.privacy-document h2 { font-size:22px; margin-top:32px; }
.privacy-document td { vertical-align:top; white-space:normal; min-width:130px; }
@media(max-width:560px) { .privacy-banner { padding:16px; } .privacy-dialog { padding:18px; } .privacy-dialog-heading { flex-wrap:wrap; } }

.auth-form input[type="checkbox"] { display:inline-block; width:auto; margin-right:8px; accent-color:var(--green); }

/* Oddělené bloky pracovního prostoru a patičky. */
.footer .privacy-links { gap:8px 18px; }
.footer a { text-decoration:underline; text-underline-offset:3px; }
.footer a:hover { color:var(--green-dark); }
.dashboard-overview { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:32px 0; }
.dashboard-card { min-width:0; padding:24px; border:1px solid #dcded2; border-radius:12px; background:#fffefa; }
.dashboard-card h2 { margin:0 0 18px; font-size:18px; }
.account-summary { display:flex; flex-wrap:wrap; gap:20px 40px; margin:0 0 12px; }
.account-summary dt { color:var(--muted); font-size:12px; margin-bottom:5px; }
.account-summary dd { margin:0; font-size:16px; font-weight:700; overflow-wrap:anywhere; }
.dashboard-account-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; }
.dashboard-account-links a,.dashboard-admin-tools a { text-decoration:underline; text-underline-offset:3px; }
.dashboard-card>.button { margin-top:18px; }
.dashboard-admin-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; }
.dashboard-verification { margin-top:20px; padding:16px; border:1px solid #e1d5b1; border-radius:8px; background:#faf5e8; font-size:13px; line-height:1.6; }
.dashboard-list { padding:24px; border:1px solid #dcded2; border-radius:12px; background:#fffefa; }
.dashboard-tabs { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.dashboard-tabs a { padding:12px 18px; border:1px solid #d4dccd; border-radius:8px; font-size:14px; font-weight:600; color:var(--green-dark); }
.dashboard-tabs a[aria-current="page"] { background:var(--green); border-color:var(--green); color:white; }
.dashboard-tabs a:hover:not([aria-current]) { background:#f1f4ec; }
.dashboard-list .dashboard-heading { gap:16px; flex-wrap:wrap; margin:24px 0 18px; }
.dashboard-list .dashboard-heading h2 { margin:0; }
.dashboard-list>.editor-actions:not(:empty) { margin-top:20px; }
.dashboard-list td { vertical-align:top; }
@media(max-width:700px) {
    .dashboard-overview { grid-template-columns:1fr; gap:16px; }
    .dashboard-card,.dashboard-list { padding:20px; }
}
@media(max-width:560px) {
    .footer { padding:22px 20px; gap:12px; }
    .dashboard { margin-top:32px; }
    .dashboard-card,.dashboard-list { padding:16px; }
    .dashboard-list .dashboard-heading>.button { justify-content:center; width:100%; }
}

.registration-terms { min-width:0; margin:20px 0 0; padding:16px; border:1px solid #cbd6c2; border-radius:10px; background:#f1f4ec; }
.registration-terms legend { padding:0 6px; font-size:14px; font-weight:700; color:var(--green-dark); }
.auth-form .registration-terms-choice { display:flex; align-items:flex-start; gap:10px; margin:0 0 12px; line-height:1.6; }
.auth-form .registration-terms-choice input { flex:0 0 auto; width:18px; height:18px; margin:3px 0 0; }
.registration-terms a { text-decoration:underline; text-underline-offset:3px; }
.registration-terms .field-hint+.field-hint { margin-top:10px; }

.activity-submitted { background:#356044; border-color:#356044; color:#fff; }
.activity-selecting { background:#fff0cd; border-color:#e6d29c; color:#6d501b; }
.activity-viewed { background:#e5eef8; border-color:#c9d9ec; color:#355575; }
.activity-unseen { background:#eeedf2; border-color:#d8d6e0; color:#615b70; }
.archive-action { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; margin:32px 0 48px; padding:24px; border:1px solid #dec9b9; border-left:4px solid #ad7551; border-radius:12px; background:#faf0e7; }
.archive-action h2 { font-size:18px; margin:0 0 8px; }
.archive-action p { max-width:600px; margin:0; font-size:13px; line-height:1.6; color:#69513e; }
.button-warning { border:1px solid #aa7350; background:#f1dfcf; color:#633e25; }
.button-warning:hover { background:#e9d0bc; }
@media(max-width:560px) { .archive-action { padding:18px; } .archive-action>.button { justify-content:center; width:100%; } }

.gallery-state-active { background:#e5efe1; border-color:#c9d9c1; color:#365233; }
.gallery-state-draft { background:#eeedf2; border-color:#d8d6e0; color:#615b70; }
.gallery-state-closed,.gallery-state-archived { background:#eee7df; border-color:#d9cbbd; color:#67513e; }
.gallery-state-expired { background:#f7e5df; border-color:#e3c5ba; color:#7a4837; }

.offer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; }
.offer-grid h3 { margin:0 0 10px; font-size:18px; }
.offer-grid p { line-height:1.65; }
.booking-package-admin { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.booking-request { padding:24px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.booking-request p { line-height:1.7; }
.booking-request-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.booking-request-heading h3 { margin:0; }
.booking-request form .button { margin:4px 8px 4px 0; }
.weekday-choices { display:flex; flex-wrap:wrap; gap:18px; margin:20px 0; padding:16px; border:1px solid var(--line); border-radius:8px; }
.gallery-form .weekday-choices label { display:flex; gap:8px; margin:0; }
.gallery-form .weekday-choices input { width:auto; }
.booking-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.booking-status-confirmed { background:#356044; border-color:#356044; color:white; }
.booking-status-pending { background:#fff0cd; border-color:#e6d29c; color:#6d501b; }
.booking-status-awaiting_email { background:#e5eef8; border-color:#c9d9ec; color:#355575; }
.booking-status-cancelled,.booking-status-declined { background:#eee7df; border-color:#d9cbbd; color:#67513e; }
.booking-cancel { margin:24px 0; padding-top:20px; border-top:1px solid var(--line); }
.editor-section summary { cursor:pointer; font-weight:600; }
@media(max-width:700px) { .offer-grid { grid-template-columns:1fr; gap:16px; } }
@media(max-width:560px) { .topbar { height:auto; min-height:70px; gap:12px; flex-wrap:wrap; padding:16px 0; } .account-nav { flex-wrap:wrap; } }

/* Přehled funkcí: kratší karty, oddělené publikum a dvě veřejné nabídky. */
.functions-page { margin:0 0 48px; }
.functions-hero { padding:56px 0 34px; }
.functions-hero h1 { max-width:800px; font-size:clamp(36px,5vw,58px); line-height:1.12; letter-spacing:-.045em; margin:18px 0 22px; }
.functions-hero>p { max-width:670px; color:#636b5d; font-size:17px; line-height:1.75; }
.functions-nav { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.functions-nav a { display:inline-flex; gap:20px; align-items:center; padding:12px 16px; border:1px solid #ccd5c5; border-radius:8px; color:var(--green-dark); background:#fffefa; font-weight:600; font-size:14px; }
.functions-nav a:hover { background:#e8eee2; }
.functions-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; list-style:none; margin:0 0 56px; padding:22px 0; border-top:1px solid #d4dbcd; border-bottom:1px solid #d4dbcd; }
.functions-flow li { display:flex; gap:12px; align-items:center; font-size:13px; font-weight:600; }
.functions-flow li>span { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:50%; background:#e4eadb; color:var(--green-dark); font-size:11px; }
.functions-section { margin:56px 0; scroll-margin-top:24px; }
.functions-section-heading { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:16px; margin-bottom:24px; }
.functions-section-heading .section-label { margin-bottom:8px; }
.functions-section-heading h2 { margin:0; font-size:32px; letter-spacing:-.035em; }
.functions-section-heading>p { margin:0; color:#67705e; font-size:14px; line-height:1.6; }
.functions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.function-card { min-width:0; position:relative; padding:26px; border:1px solid #dce2d4; border-top:3px solid #9aac86; border-radius:12px; background:#fffefa; }
.function-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:16px; border-radius:12px; background:#e8eee1; color:#496440; }
.function-icon svg { width:24px; height:24px; }
.function-category { display:flex; align-items:center; gap:10px; flex-wrap:wrap; color:#627454; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.function-card h3 { margin:10px 0 12px; font-size:21px; letter-spacing:-.025em; line-height:1.35; }
.function-card>p { color:#606858; font-size:14px; line-height:1.7; }
.function-card ul,.client-functions-grid ul,.public-plan-card ul { list-style:none; padding:0; margin:18px 0 0; }
.function-card li,.client-functions-grid li { position:relative; padding:7px 0 7px 19px; font-size:14px; line-height:1.55; }
.function-card li::before,.client-functions-grid li::before { content:'•'; position:absolute; left:0; color:#68805a; font-weight:700; }
.function-card .function-note,.function-note { margin:18px 0 0; font-size:12px; line-height:1.7; color:#666e5e; }
.function-card .function-note { padding-top:14px; border-top:1px solid #e6e9df; }
.tone-sand { border-top-color:#c3a376; }
.tone-sand .function-icon { background:#f3ebdc; color:#8a6a3b; }
.tone-sand .function-category { color:#806644; }
.tone-blue { border-top-color:#94aabe; }
.tone-blue .function-icon { background:#e8eef3; color:#506e87; }
.tone-blue .function-category { color:#506e87; }
.function-plan-badge { padding:4px 7px; border-radius:5px; background:#e8eef3; letter-spacing:0; font-size:10px; }
.functions-client { padding:32px; margin:56px 0; border:1px solid #d1dcc6; border-radius:16px; background:#eaf0e2; scroll-margin-top:24px; }
.client-functions-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.client-functions-grid article { min-width:0; padding-top:16px; }
.client-functions-grid article+article { border-left:1px solid #ccd8c0; padding-left:26px; }
.client-functions-grid h3 { font-size:18px; line-height:1.35; margin:0 0 12px; }
.functions-client>.function-note { padding-top:22px; border-top:1px solid #ccd8c0; margin-top:26px; }
.public-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.public-plan-card { display:flex; flex-direction:column; min-width:0; padding:28px; border:1px solid #d9dfd1; border-radius:14px; background:#fffefa; }
.public-plan-card h3 { margin:0; font-size:27px; letter-spacing:-.03em; }
.public-plan-price { margin:14px 0 4px; font-size:20px; font-weight:700; color:var(--green-dark); }
.public-plan-card li { padding:12px 0; border-bottom:1px solid #e1e6d9; font-size:14px; line-height:1.5; }
.public-plan-card .button { justify-content:center; margin-top:auto; }
.public-plan-card .function-note { margin:18px 0 24px; }
.public-plan-paid { border:2px solid #6c855b; background:#f2f6eb; }
.functions-limits { padding:20px 0; margin-top:8px; font-size:13px; color:#636c59; line-height:1.7; }
.functions-limits p { margin:6px 0 0; }
.functions-cta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; padding:28px; border-radius:14px; background:#e9e6dc; }
.functions-cta h2 { margin:0 0 8px; font-size:23px; letter-spacing:-.03em; }
.functions-cta p { margin:0; font-size:14px; color:#666b5e; line-height:1.6; }
@media(max-width:850px) { .functions-flow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; } .client-functions-grid { grid-template-columns:1fr; gap:18px; } .client-functions-grid article+article { border-left:0; border-top:1px solid #ccd8c0; padding:22px 0 0; } }
@media(max-width:620px) { .functions-grid,.public-plan-grid { grid-template-columns:1fr; } .functions-hero { padding-top:36px; } .functions-hero>p { font-size:15px; } .functions-section { margin:40px 0; } .functions-section-heading h2 { font-size:28px; } .function-card,.public-plan-card { padding:22px; } .functions-client { margin:40px 0; padding:22px; } .functions-cta { padding:22px; } .functions-cta>.button { justify-content:center; width:100%; } }

.booking-link { flex-wrap:wrap; gap:10px; }
.booking-counter { display:inline-flex; border-radius:100px; padding:5px 9px; font-size:11px; line-height:1.4; }
.counter-pending { background:#f6d998; color:#624816; }
.counter-confirmed { background:#356044; color:#fff; }
.counter-awaiting { background:#e1ebf5; color:#355575; }
.booking-notice { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:22px; margin:24px 0; border:1px solid #dbc58d; border-left:4px solid #b38a36; border-radius:10px; background:#faf2dc; }
.booking-notice p { margin:8px 0 0; font-size:14px; }
.booking-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:24px 0; }
.booking-summary a { display:flex; flex-direction:column; gap:8px; padding:16px; border:1px solid #dce2d4; border-radius:10px; background:#fffefa; min-width:0; }
.booking-summary strong { color:var(--green-dark); font-size:24px; overflow-wrap:anywhere; }
.booking-summary span { font-size:12px; line-height:1.5; color:#626b59; }
.dashboard-card .booking-summary { grid-template-columns:1fr 1fr; }
.unverified-action { margin-top:16px; }
@media(max-width:700px) { .booking-summary { grid-template-columns:1fr 1fr; } }

.booking-status-expired { background:#eee7df; border-color:#d9cbbd; color:#67513e; }
