:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--accent: #38bdf8;--danger: #f87171;--border: #334155;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}[data-theme=default]{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--accent: #38bdf8;--border: #334155}[data-theme=gray]{--bg: #161618;--surface: #25252a;--surface-2: #38383d;--text: #ededed;--text-muted: #999998;--accent: #9B9A97;--border: #38383d}[data-theme=beige]{--bg: #1a1611;--surface: #2a231d;--surface-2: #3a3127;--text: #ede5d7;--text-muted: #a89887;--accent: #B89B72;--border: #3a3127}[data-theme=orange]{--bg: #19140f;--surface: #281f17;--surface-2: #38291e;--text: #f0e0d2;--text-muted: #a8907c;--accent: #D9730D;--border: #38291e}[data-theme=yellow]{--bg: #191609;--surface: #281f0e;--surface-2: #382c15;--text: #f0e6c8;--text-muted: #a8a07a;--accent: #DFAB01;--border: #382c15}[data-theme=green]{--bg: #0e1714;--surface: #1a2520;--surface-2: #28362e;--text: #e0ede4;--text-muted: #84988c;--accent: #0F7B6C;--border: #28362e}[data-theme=blue]{--bg: #0c1620;--surface: #18243a;--surface-2: #283a55;--text: #dee8f4;--text-muted: #8298b3;--accent: #0B6E99;--border: #283a55}[data-theme=pink]{--bg: #170c15;--surface: #261521;--surface-2: #382034;--text: #f0dbeb;--text-muted: #a89098;--accent: #AD1A72;--border: #382034}[data-theme=purple]{--bg: #130e1b;--surface: #1f1830;--surface-2: #2f2444;--text: #e6dff5;--text-muted: #a09cbb;--accent: #6940A5;--border: #2f2444}[data-theme=red]{--bg: #170d0d;--surface: #251515;--surface-2: #381e1e;--text: #f0d8d8;--text-muted: #a88a8a;--accent: #E03E3E;--border: #381e1e}*{box-sizing:border-box}html,body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}#root{min-height:100vh;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}.page{max-width:1100px;margin:0 auto;padding:max(env(safe-area-inset-top),16px) 16px 32px;min-height:100vh;display:flex;flex-direction:column;width:100%}.dashboard-shell{min-height:100vh;display:flex;flex-direction:column}.dashboard-shell .page{min-height:0;flex:1}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0}.page-header h1{font-size:1.5rem;margin:0}.page-logo{height:96px;width:auto;display:block;margin:0 auto}@media (min-width: 900px){.page-logo{height:12em}}.header-actions{display:flex;gap:12px;align-items:center}.header-link{color:var(--text-muted);font-size:.9rem;padding:6px 12px;border-radius:6px;transition:color .15s ease,background .15s ease}.header-link:hover{color:var(--text);background:#ffffff14}button.header-link{background:transparent;border:none;font-family:inherit;font-weight:400;cursor:pointer}.banners{display:flex;flex-direction:column;margin:0}.banner{padding:12px 0;background:var(--surface);color:var(--text);margin:0}.banner-inner{max-width:1100px;margin:0 auto;padding:0 16px}.banner-title{font-weight:700}.banner-description{font-weight:400}.site-footer{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px)}.site-footer-inner{max-width:1100px;margin:0 auto;padding:24px 16px;display:flex;flex-direction:column;gap:24px}.footer-meta{display:flex;flex-direction:column;align-items:center;gap:8px}.footer-meta-row{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap}.theme-picker{position:relative;display:inline-flex}.theme-picker-popover{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;display:flex;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px;box-shadow:0 6px 20px #00000073;z-index:50;white-space:nowrap}.theme-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;flex-shrink:0}.theme-swatch:hover{border-color:var(--text-muted)}.theme-swatch.selected{border-color:var(--text)}.footer-content{display:grid;grid-template-columns:1fr;gap:32px;width:100%}@media (min-width: 900px){.footer-content{grid-template-columns:repeat(4,1fr);align-items:start}.footer-content:not(:has(.footer-groups)){grid-template-columns:repeat(3,1fr)}.footer-groups,.footer-contacts-column{min-width:0}}.footer-groups{text-align:center}.footer-groups-title{margin:0 0 12px;font-size:.85rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.footer-groups-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.footer-group-link{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-size:.9rem}.footer-group-link:hover{color:var(--accent)}.footer-group-link svg{font-size:18px;color:#25d366;flex-shrink:0}@media (min-width: 900px){.footer-groups{text-align:left}}.footer-contacts-column{display:flex;flex-direction:column;gap:20px;text-align:center}@media (min-width: 900px){.footer-contacts-column{text-align:left}.footer-contacts-column .footer-contact-row{justify-content:flex-start}}.footer-contact-card{display:flex;flex-direction:column;gap:4px}.footer-contact-name{font-weight:700;font-size:1rem;color:var(--text)}.footer-contact-title{color:var(--text-muted);font-size:.875rem;margin-bottom:6px}.footer-contact-row{display:flex;align-items:center;gap:10px;font-size:.9rem;justify-content:center}.footer-contact-icon{color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:color .15s ease;font-size:18px}.footer-contact-icon:hover{color:var(--text)}.footer-contact-phone{color:var(--text-muted)}.footer-contact-email{color:var(--accent);text-decoration:none}.footer-contact-email:hover{text-decoration:underline}.viewer-count{color:var(--text-muted);font-size:.9rem;display:inline-flex;align-items:center;gap:6px}.build-version{color:var(--text-muted);font-size:.75rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;opacity:.5}.access-level-icon{color:var(--text-muted);font-size:18px;opacity:.7}.viewer-count-dot{display:inline-block;width:8px;height:8px;background:#10b981;border-radius:50%;box-shadow:0 0 6px #10b98199}.link-grid{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:12px}.link-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease,background .15s ease;flex:0 1 100%;min-width:0;position:relative}.copy-button{position:absolute;top:8px;right:8px;background:transparent;border:none;padding:6px;color:inherit;cursor:pointer;border-radius:6px;opacity:.4;transition:opacity .15s,background .15s;display:inline-flex;align-items:center;justify-content:center;font-weight:400;z-index:1}.copy-button:hover,.copy-button:focus{opacity:1;background:#ffffff1a}.link-card:hover .copy-button{opacity:1}.link-card:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-2px);box-shadow:0 6px 16px #00000059}.link-card a{display:flex;flex-direction:row;align-items:center;gap:12px;padding:16px;color:var(--text);height:100%}.link-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.link-label{font-weight:600;font-size:1.05rem}.link-description{color:var(--text-muted);font-size:.875rem}.link-card--small{flex-basis:calc(50% - 6px)}.link-card--small a{padding:10px 12px}.link-card--small .link-label{font-size:.9rem}.link-card--small .link-description{display:none}.link-card--medium{flex-basis:100%}.link-card--large{flex-basis:100%;min-height:140px}.link-card--large a{padding:32px 24px;gap:20px}.link-card--large .link-label{font-size:1.75rem}.link-card--large .link-description{font-size:1.05rem}@media (min-width: 600px){.link-card--small{flex-basis:calc(33.333% - 8px)}.link-card--medium{flex-basis:calc(50% - 6px)}.link-card--large{flex-basis:100%}}@media (min-width: 900px){.link-card--small{flex-basis:calc(25% - 9px)}.link-card--medium{flex-basis:calc(50% - 6px)}}.link-card--circular{background:transparent;border:none;min-height:0}.link-card--circular a{flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:0;padding:0;height:auto}.link-card--circular .link-text{align-items:center;text-align:center;flex:0 1 auto}.circular-icon-circle{display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:50%;flex-shrink:0;overflow:hidden;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease,background .15s ease}.link-card--circular a:hover .circular-icon-circle{border-color:var(--accent)}.link-card--circular:hover{background:transparent;transform:none;box-shadow:none;border-color:transparent}.link-card--circular.link-card--small .circular-icon-circle{width:64px;height:64px;font-size:80px}.link-card--circular.link-card--medium .circular-icon-circle{width:10em;height:10em}.link-card--circular.link-card--large .circular-icon-circle{width:24em;height:24em}.link-card--circular.link-card--medium .circular-icon-circle svg{width:5em;height:5em}.link-card--circular.link-card--large .circular-icon-circle svg{width:12em;height:12em}.link-card--circular a.link-label,.link-card--circular a.link-description{color:inherit;text-decoration:none}.link-card--circular a.link-label:hover,.link-card--circular a.link-description:hover{text-decoration:underline}.link-card--circular .link-description{color:var(--text-muted)}.link-card--circular .link-text-row{display:inline-flex;align-items:center;gap:4px;justify-content:center;max-width:100%}.link-card--circular .copy-button{position:static;top:auto;right:auto;opacity:.6}.link-card--circular .copy-button:hover,.link-card--circular .copy-button:focus{opacity:1}.link-card--circular.link-card--small .link-description{display:block}.link-card--circular.link-card--small{flex-basis:calc(50% - 6px)}.link-card--circular.link-card--medium,.link-card--circular.link-card--large{flex-basis:100%}@media (min-width: 600px){.link-card--circular.link-card--small{flex-basis:calc(33.333% - 8px)}.link-card--circular.link-card--medium,.link-card--circular.link-card--large{flex-basis:calc(50% - 6px)}}@media (min-width: 900px){.link-card--circular.link-card--small{flex-basis:calc(25% - 9px)}.link-card--circular.link-card--medium{flex-basis:calc(33.333% - 8px)}.link-card--circular.link-card--large{flex-basis:calc(50% - 6px)}}.text-block{list-style:none;padding:8px 0;background:transparent;border:none;color:var(--text);flex:0 0 100%;min-width:0}.text-block-title{margin:0 0 8px;font-weight:600;font-size:1.25rem}.text-block--small .text-block-title{font-size:1rem}.text-block--large .text-block-title{font-size:1.75rem}.text-block-content{color:var(--text);line-height:1.5}.text-block-content p{margin:0 0 8px}.text-block-content p:last-child{margin-bottom:0}.text-block-content a{color:var(--accent)}.text-block-content code{background:var(--surface);padding:2px 5px;border-radius:4px;font-size:.9em}.text-block-content pre{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px;overflow-x:auto}.text-block-content pre code{background:transparent;padding:0}.text-block-content ul,.text-block-content ol{margin:0 0 8px;padding-left:1.5em}.text-block-content h1,.text-block-content h2,.text-block-content h3{margin:12px 0 6px}.text-block-content blockquote{border-left:3px solid var(--border);margin:0 0 8px;padding:0 0 0 12px;color:var(--text-muted)}.text-block--small .text-block-content{font-size:.85rem}.text-block--large .text-block-content{font-size:1.1rem}.text-block--align-left,.text-block--align-left .text-block-title,.text-block--align-left .text-block-content,.text-block--align-left .text-block-content>*{text-align:left}.text-block--align-center,.text-block--align-center .text-block-title,.text-block--align-center .text-block-content,.text-block--align-center .text-block-content>*{text-align:center}.text-block--align-right,.text-block--align-right .text-block-title,.text-block--align-right .text-block-content,.text-block--align-right .text-block-content>*{text-align:right}.separator{flex:0 0 100%;list-style:none}.separator--small{height:0;margin-top:-12px}.separator--medium{height:24px}.separator--large{height:56px}.muted{color:var(--text-muted)}.error{color:var(--danger)}.toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 24px);left:50%;transform:translate(-50%);padding:10px 18px;background:var(--surface-2);color:#fff;border:none;border-radius:8px;box-shadow:0 6px 20px #00000073;z-index:200;font-size:.95rem;font-weight:500;max-width:90vw;animation:toast-in .18s ease-out}.toast--success{background:#10b981}.toast--error{background:#dc2626}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}.login-form{display:flex;flex-direction:column;gap:8px;max-width:320px;margin:0 auto;text-align:center}.login-form label{font-size:.875rem;color:var(--text-muted)}input[type=text],input[type=url],input[type=password]{width:100%;padding:10px 12px;font-size:1rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px}input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}button{padding:10px 16px;font-size:1rem;background:var(--accent);color:var(--bg);border:none;border-radius:8px;cursor:pointer;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text)}button.link-button{background:none;color:var(--text-muted);padding:0;font-weight:400}.admin-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.admin-row{display:flex;align-items:flex-start;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.admin-row--separator{align-items:center;background:var(--surface-2);border-style:dashed}.admin-row--text .admin-row-fields{flex-direction:column}.admin-section{margin-bottom:32px}.admin-section-title{margin:0 0 12px;font-size:.85rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.admin-row--banner{align-items:flex-start;border-left-width:4px}.admin-row--banner .admin-row-fields{flex-direction:column}.banner-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;padding-top:4px}.meta-field{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text-muted)}.meta-field input[type=date],.meta-field input[type=datetime-local]{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:.875rem;color-scheme:dark;width:auto}.expired-tag,.scheduled-tag{color:var(--bg);padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.expired-tag{background:var(--danger)}.scheduled-tag{background:var(--text-muted)}.admin-actions--save{position:sticky;bottom:0;background:linear-gradient(to top,var(--bg) 70%,transparent);padding:16px 0;margin-top:24px;z-index:50;justify-content:center}.admin-textarea{width:100%;padding:10px 12px;font-size:.95rem;font-family:inherit;line-height:1.4;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;resize:vertical;min-height:80px}.admin-textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.separator-row-label{flex:1;color:var(--text-muted);font-size:.85rem;font-weight:600;letter-spacing:.05em;text-align:center}.admin-row-fields{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.drag-handle{background:var(--surface-2);color:var(--text-muted);border:none;border-radius:8px;padding:8px 10px;cursor:grab;font-weight:700;touch-action:none}.drag-handle:active{cursor:grabbing}.size-select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.875rem;font-weight:600;cursor:pointer}.remove-btn{background:transparent;color:var(--danger);font-size:1.5rem;padding:4px 10px;font-weight:400}.duplicate-btn{background:transparent;color:var(--text-muted);border:none;padding:6px 8px;cursor:pointer;font-weight:400;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s ease,background .15s ease;font-size:16px}.duplicate-btn:hover{color:var(--text);background:#ffffff14}.url-with-upload{display:flex;gap:6px;align-items:stretch;min-width:0;flex:1}.url-with-upload input{flex:1;min-width:0}.upload-btn{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:8px;padding:0 10px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:400;flex-shrink:0}.upload-btn:hover{color:var(--text);border-color:var(--accent)}.upload-btn:disabled{cursor:not-allowed;opacity:.5}.upload-btn svg{font-size:18px}.align-buttons{display:inline-flex;gap:4px;align-self:flex-start}.align-button{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:6px 10px;cursor:pointer;color:var(--text-muted);font-weight:400;display:inline-flex;align-items:center;justify-content:center;font-size:18px;transition:color .15s ease,background .15s ease,border-color .15s ease}.align-button:hover{color:var(--text)}.align-button.selected{background:var(--accent);color:var(--bg);border-color:var(--accent)}.footer-areas-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 600px){.footer-areas-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 900px){.footer-areas-grid{grid-template-columns:repeat(3,1fr)}}.footer-area{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}.footer-area-label{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.footer-area-checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.footer-area-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.admin-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.admin-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.admin-actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}@media (min-width: 700px){.admin-row-fields{flex-direction:row;align-items:center;flex-wrap:wrap}.admin-row-fields>input{flex:1;min-width:140px}.icon-controls{flex-basis:100%}}.link-icon{font-size:32px}.link-card--small .link-icon{font-size:20px}.link-card--medium .link-icon{font-size:32px}.link-card--large .link-icon{font-size:56px}.link-card--small a{gap:8px}.icon-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.icon-button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;min-height:36px;min-width:36px;font-weight:500}.icon-button:hover{border-color:var(--accent)}.color-swatches{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}.color-swatch{width:24px;height:24px;padding:0;border-radius:50%;border:2px solid transparent;cursor:pointer;background:var(--surface-2);box-shadow:inset 0 0 0 1px #00000040;transition:transform .08s ease}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:var(--text)}.color-swatch--transparent{background:transparent;border-style:dashed;border-color:var(--text-muted);box-shadow:none}.color-swatch--transparent.selected{border-style:solid;border-color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;gap:8px;padding:12px;border-bottom:1px solid var(--border)}.modal-header input{flex:1}.modal-footer{margin:0;padding:8px 12px;font-size:.8rem;border-top:1px solid var(--border)}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px;padding:12px;overflow-y:auto}.icon-grid-item{background:var(--surface-2);color:var(--text);border:1px solid transparent;border-radius:6px;padding:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:400;min-height:48px}.icon-grid-item:hover{border-color:var(--accent)}.icon-grid-item.selected{background:var(--accent);color:var(--bg)}
