*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #00a2ad;--color-primary-dark: #008a94;--color-primary-bg: #e6f7f8;--color-text: #00364e;--color-text-sub: #5a7a85;--color-danger: #e53935;--color-danger-dark: #c62828;--color-bg: #f0f4f5;--color-surface: #ffffff;--color-border: #d0dfe2;--color-shadow: rgba(0, 54, 78, .08);--color-shadow-lg: rgba(0, 54, 78, .16);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--font-sans: "Avenir", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;padding:8px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;letter-spacing:.02em;transition:all .18s;color:var(--color-text)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--color-primary);color:#fff}button.primary:hover:not(:disabled){background:var(--color-primary-dark)}button.danger:hover:not(:disabled){color:#fff;background:var(--color-danger-dark)}button.icon-btn{padding:8px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-text-sub)}button.icon-btn:hover:not(:disabled){background:var(--color-primary-bg);color:var(--color-primary)}button.icon-btn.danger:hover:not(:disabled){background:var(--color-danger);color:#fff}input,textarea{font-family:inherit;padding:10px 12px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;width:100%;background:var(--color-surface);color:var(--color-text);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.loading-mask{position:fixed;inset:0;background:#00364e59;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.spinner{width:44px;height:44px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:var(--color-primary);color:#fff;padding:10px 22px;border-radius:var(--radius-md);box-shadow:0 4px 16px var(--color-shadow-lg);z-index:10000;font-size:14px;font-weight:500;animation:slideUp .25s ease-out;white-space:nowrap}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-backdrop{position:fixed;inset:0;background:#00364e66;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-close-btn{position:fixed;top:20px;right:20px;z-index:1002;background:var(--color-surface);box-shadow:0 2px 10px var(--color-shadow);display:inline-flex;justify-content:center;align-items:center}.modal-close-btn:hover{color:var(--color-primary);background:var(--color-primary-bg)}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);padding:32px;max-width:560px;max-height:calc(100vh - 48px);overflow-y:auto;box-shadow:0 12px 40px var(--color-shadow-lg);position:relative;z-index:1001}.modal-large{max-width:860px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:28px;padding-top:20px;border-top:1px solid var(--color-border)}.confirm-modal h3{margin-bottom:14px}.confirm-modal p{margin-bottom:10px;color:var(--color-text-sub)}.confirm-modal .carousel-name{font-weight:600;color:var(--color-primary)}.meta-editor{display:flex;flex-direction:column;gap:10px}.meta-row{display:flex;gap:8px;align-items:center}.meta-key{flex:1;min-width:110px}.meta-value{flex:2}.meta-remove{flex-shrink:0}.meta-add{align-self:flex-start;display:flex;align-items:center;gap:4px;color:var(--color-primary)}.meta-add:hover{background:var(--color-primary-bg)}.meta-submit{align-self:flex-end;color:var(--color-primary)}.meta-submit:hover{background:var(--color-primary-bg)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-bg) 0%,#ddf0f1 100%)}.login-container{background:var(--color-surface);padding:48px 44px;border-radius:var(--radius-xl);box-shadow:0 8px 32px var(--color-shadow-lg);width:100%;max-width:400px}.login-brand{text-align:center;margin-bottom:36px}.login-brand-name{font-size:22px;font-weight:700;color:var(--color-primary);letter-spacing:.04em}.login-brand-sub{font-size:12px;color:var(--color-text-sub);margin-top:4px;letter-spacing:.06em;text-transform:uppercase}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-weight:500;font-size:13px;color:var(--color-text-sub);text-transform:uppercase;letter-spacing:.06em}.dashboard-page{min-height:100vh;background:var(--color-bg)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:4px 32px;height:68px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.dashboard-brand{font-size:15px;font-weight:700;color:var(--color-text);letter-spacing:.01em;display:flex;align-items:center;gap:8px}.dashboard-brand-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.header-actions{display:flex;gap:8px;align-items:center}.dashboard-body{padding:32px;max-width:1400px;margin:0 auto}.dashboard-title{font-size:20px;font-weight:600;color:var(--color-text);margin-bottom:24px}.create-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:6px}.carousel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-bottom:32px}.carousel-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;transition:box-shadow .2s,transform .2s;position:relative}.carousel-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background .2s}.carousel-card:hover{box-shadow:0 6px 24px var(--color-shadow-lg);transform:translateY(-2px)}.carousel-card:hover:before{background:var(--color-primary)}.carousel-card-body{padding:18px 18px 12px}.carousel-info h3{font-size:15px;font-weight:600;margin-bottom:3px}.carousel-id{font-size:11px;color:var(--color-text-sub);font-family:SFMono-Regular,Consolas,monospace}.carousel-thumbnails{display:flex;gap:6px;padding:0 18px 14px;min-height:86px;align-items:center}.carousel-thumbnails img{width:72px;height:72px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.no-images{color:var(--color-text-sub);font-size:13px;font-style:italic}.carousel-actions{display:flex;gap:4px;justify-content:flex-end;padding:8px 12px;border-top:1px solid var(--color-border);background:var(--color-bg)}.pagination{display:flex;justify-content:center;align-items:center;gap:16px}.page-info{font-size:13px;color:var(--color-text-sub)}.create-carousel-modal h2{margin-bottom:24px;font-size:18px;font-weight:600}.edit-carousel-page{min-height:100vh;background:var(--color-bg)}.edit-header{display:flex;align-items:center;gap:16px;padding:4px 32px;height:68px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.back-btn{flex-shrink:0;color:var(--color-text-sub)}.back-btn:hover{color:var(--color-primary);background:var(--color-primary-bg)}.title-section{display:flex;flex-direction:column;justify-content:space-between}.title-section h1{font-size:16px;font-weight:600;margin-bottom:1px}.name-display-row{display:flex;align-items:center;gap:6px}.name-display-row .icon-btn{font-size:16px;opacity:.4}.name-display-row .icon-btn:hover{opacity:1;color:var(--color-primary)}.name-edit-row{display:flex;align-items:center;gap:6px}.name-edit-input{font-size:16px;font-weight:600;font-family:inherit;padding:2px 8px;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);outline:none;box-shadow:0 0 0 3px var(--color-primary-bg);min-width:0;width:220px}.edit-body{padding:32px;max-width:1400px;margin:0 auto}.meta-section,.assets-section{background:var(--color-surface);padding:24px 28px;border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-bottom:24px}.meta-section h2,.assets-section h2{margin-bottom:20px;font-size:15px;font-weight:600}.assets-list{display:flex;gap:14px;overflow-x:auto;padding:4px 0 16px;align-items:center}.insert-btn{flex-shrink:0;width:52px;height:190px;border:2px dashed var(--color-border);background:transparent;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-sub);transition:all .18s}.insert-btn:hover{border-color:var(--color-primary);background:var(--color-primary-bg);color:var(--color-primary)}.asset-card{position:relative;flex-shrink:0;width:190px;height:190px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:visible;background:var(--color-surface);transition:all .18s}.asset-card.dragging{opacity:.45}.asset-card.drag-over{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.asset-card img{width:100%;height:136px;object-fit:cover;cursor:pointer;border-radius:calc(var(--radius-md) - 2px) calc(var(--radius-md) - 2px) 0 0;background-image:repeating-linear-gradient(45deg,#ccc 0px 20px,#333 20px 40px);background-size:56px 56px;animation:scrollBackground 2s linear infinite}.delete-asset-btn{position:absolute;top:6px;right:6px;background:#0000008c;color:#fff;z-index:10;width:28px;height:28px;padding:4px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.delete-asset-btn .material-icons{font-size:18px}.delete-asset-btn:hover{background:var(--color-danger)}.asset-controls{display:flex;justify-content:space-between;padding:6px 8px;background:var(--color-bg);position:absolute;bottom:0;left:0;right:0;border-radius:0 0 var(--radius-md) var(--radius-md);border-top:1px solid var(--color-border)}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.image-viewer{max-width:100%;max-height:80vh;display:flex;align-items:center;justify-content:center;position:relative;background-image:repeating-linear-gradient(45deg,#ccc 0px 20px,#333 20px 40px);background-size:56px 56px;animation:scrollBackground 2s linear infinite}.image-viewer img{position:relative;z-index:1;max-width:100%;max-height:80vh;object-fit:contain}@keyframes scrollBackground{0%{background-position:0 0}to{background-position:-56px 0}}.image-uploader h3{margin-bottom:20px;font-size:16px;font-weight:600}.image-uploader h4{margin:18px 0 10px;font-size:13px;color:var(--color-text-sub)}.file-input{margin-bottom:16px}.preview-container{margin:16px 0;text-align:center}.preview-image{max-width:100%;max-height:360px;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-md)}.uploader-actions{margin-top:24px;display:flex;gap:10px;justify-content:flex-end}.image-picker{margin-bottom:16px;padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replace-image-btn{display:inline-flex;align-items:center;gap:6px;color:var(--color-primary);font-size:13px;margin-bottom:16px;padding:6px 12px;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary-bg)}.replace-image-btn:hover{background:var(--color-primary);color:#fff}.edit-meta-modal h3{margin-bottom:16px;font-size:16px;font-weight:600}.edit-meta-modal>img{width:100%;height:200px;object-fit:cover;cursor:pointer;border-radius:var(--radius-md);margin-bottom:16px;background-image:repeating-linear-gradient(45deg,#ccc 0px 20px,#333 20px 40px);background-size:56px 56px;animation:scrollBackground 2s linear infinite}@media(max-width:768px){.dashboard-header,.edit-header{padding:0 16px}.dashboard-body,.edit-body{padding:16px}.carousel-grid{grid-template-columns:1fr}.modal-content{padding:20px}.assets-list{flex-direction:column}.insert-btn{width:100%;height:52px}.asset-card{width:100%}}
