.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-light) 0%,var(--background) 100%);padding:20px}.login-card{background:var(--white);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:32px}.login-icon{font-size:48px;display:block;margin-bottom:16px}.login-header h1{font-size:24px;font-weight:700;color:var(--text);margin-bottom:8px}.login-header p{color:var(--text-secondary);font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:var(--text)}.form-group input{padding:12px 16px;border:1px solid var(--border);border-radius:8px;font-size:16px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.error-message{background:#fef2f2;color:var(--error);padding:12px 16px;border-radius:8px;font-size:14px;border:1px solid #fecaca}.login-btn{background:var(--primary);color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:16px;font-weight:600;transition:background .2s}.login-btn:hover:not(:disabled){background:var(--primary-dark)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:24px;padding-top:24px;border-top:1px solid var(--border);text-align:center}.login-footer p{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.login-footer code{font-size:12px;background:var(--background);padding:4px 8px;border-radius:4px;color:var(--text)}.dashboard{max-width:1200px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dashboard-header h1{font-size:28px;font-weight:700;margin-bottom:4px}.dashboard-header p{color:var(--text-secondary)}.create-btn{background:var(--primary);color:#fff;padding:12px 24px;border-radius:8px;font-weight:600;text-decoration:none;transition:background .2s;display:inline-block}.create-btn:hover{background:var(--primary-dark);text-decoration:none}.error-banner{background:#fef2f2;color:var(--error);padding:12px 16px;border-radius:8px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;font-size:20px;color:var(--error);padding:0 4px}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.empty-state{text-align:center;padding:80px 20px;background:var(--white);border-radius:16px;box-shadow:var(--shadow)}.empty-icon{font-size:64px;display:block;margin-bottom:16px}.empty-state h2{font-size:24px;margin-bottom:8px}.empty-state p{color:var(--text-secondary);margin-bottom:24px}.bounds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.bound-card{background:var(--white);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.bound-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.bound-cover{height:160px;background-size:cover;background-position:center;position:relative}.bound-status-badge{position:absolute;top:12px;right:12px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:capitalize}.bound-status-badge[data-status=published]{background:var(--success);color:#fff}.bound-status-badge[data-status=draft]{background:var(--warning);color:#fff}.bound-status-badge[data-status=archived]{background:var(--text-secondary);color:#fff}.bound-content{padding:20px}.bound-title{font-size:18px;font-weight:600;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bound-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bound-meta{display:flex;gap:16px;margin-bottom:16px}.meta-item{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:4px}.meta-item.difficulty{font-weight:600;text-transform:capitalize}.stage-icons{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}.stage-icon{width:32px;height:32px;background:var(--background);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px}.stage-more{width:32px;height:32px;background:var(--primary-light);color:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}.bound-actions{display:flex;gap:8px;flex-wrap:wrap}.action-btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;border:1px solid var(--border);background:var(--white);transition:all .2s}.action-btn.edit{color:var(--primary);border-color:var(--primary)}.action-btn.edit:hover{background:var(--primary-light)}.action-btn.publish{color:var(--success);border-color:var(--success)}.action-btn.publish:hover{background:#d1fae5}.action-btn.unpublish{color:var(--warning);border-color:var(--warning)}.action-btn.unpublish:hover{background:#fef3c7}.action-btn.delete{color:var(--error);border-color:var(--error)}.action-btn.delete:hover{background:#fef2f2}.delete-confirm{display:flex;align-items:center;gap:8px;font-size:13px}.delete-confirm span{color:var(--error);font-weight:500}.confirm-yes,.confirm-no{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;border:none}.confirm-yes{background:var(--error);color:#fff}.confirm-no{background:var(--border);color:var(--text)}.media-uploader{display:flex;flex-direction:column;gap:8px}.media-uploader .uploader-label{font-size:13px;font-weight:500;color:var(--text)}.upload-zone{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:all .2s;background:var(--white)}.upload-zone:hover{border-color:var(--primary);background:rgba(var(--primary-rgb),.02)}.upload-zone.drag-active{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.upload-zone.uploading{pointer-events:none;opacity:.7}.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary)}.upload-icon{font-size:32px}.upload-hint{font-size:12px;color:var(--text-tertiary)}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--primary)}.spinner{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.media-preview{position:relative;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--background)}.media-preview img{width:100%;max-height:200px;object-fit:contain;display:block}.media-preview video{width:100%;max-height:200px;display:block}.media-preview audio{width:100%;padding:16px}.media-file-icon{padding:24px;text-align:center;font-size:14px;color:var(--text-secondary)}.remove-media-btn{position:absolute;top:8px;right:8px;background:#000000b3;color:#fff;border:none;padding:4px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:background .2s}.remove-media-btn:hover{background:var(--error)}.url-input-section{display:flex;align-items:center;gap:12px}.or-divider{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.url-input-section input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px}.url-input-section input:focus{outline:none;border-color:var(--primary)}.upload-error{color:var(--error);font-size:12px;padding:8px;background:#ef44441a;border-radius:4px}.stage-editor{display:flex;flex-direction:column;gap:16px}.stage-editor .editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stage-editor .editor-header h3{font-size:18px;margin:0}.close-btn{background:none;border:none;font-size:24px;color:var(--text-secondary);padding:0;line-height:1}.close-btn:hover{color:var(--text)}.stage-editor .form-group{margin-bottom:0}.stage-editor .form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:4px;color:var(--text)}.stage-editor .form-group input,.stage-editor .form-group textarea,.stage-editor .form-group select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;transition:border-color .2s}.stage-editor .form-group input:focus,.stage-editor .form-group textarea:focus,.stage-editor .form-group select:focus{outline:none;border-color:var(--primary)}.stage-editor .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stage-editor .checkbox-group{margin-bottom:0}.stage-editor .checkbox-group label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.stage-editor .checkbox-group input[type=checkbox],.stage-editor .checkbox-group input[type=radio]{width:16px;height:16px}.content-section{background:var(--background);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.content-section h4{font-size:14px;font-weight:600;margin:0 0 4px;color:var(--text)}.options-section{display:flex;flex-direction:column;gap:8px}.options-section>label{font-size:13px;font-weight:500;color:var(--text)}.option-row{display:flex;align-items:center;gap:8px}.option-row input[type=radio],.option-row input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.option-text{flex:1}.remove-option{background:var(--error);color:#fff;border:none;width:24px;height:24px;border-radius:4px;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.add-option-btn,.add-question-btn{background:var(--white);border:1px dashed var(--border);padding:8px 16px;border-radius:6px;font-size:13px;color:var(--text-secondary);transition:all .2s}.add-option-btn:hover,.add-question-btn:hover{border-color:var(--primary);color:var(--primary)}.survey-question{background:var(--white);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:12px}.question-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:var(--text)}.remove-question{background:none;border:none;color:var(--error);font-size:12px;padding:0}.remove-question:hover{text-decoration:underline}.editor-actions{display:flex;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}.editor-actions .cancel-btn{flex:1;padding:10px 20px;border:1px solid var(--border);border-radius:6px;background:var(--white);font-weight:500;color:var(--text-secondary);transition:all .2s}.editor-actions .cancel-btn:hover{background:var(--background);color:var(--text)}.editor-actions .save-btn{flex:1;padding:10px 20px;border:none;border-radius:6px;background:var(--primary);color:#fff;font-weight:500;transition:background .2s}.editor-actions .save-btn:hover{background:var(--primary-dark)}.bound-editor{max-width:1200px;margin:0 auto}.editor-header{display:flex;align-items:center;gap:24px;margin-bottom:24px}.editor-header h1{flex:1;font-size:24px}.back-btn{background:none;border:none;color:var(--text-secondary);font-size:14px;padding:8px 0}.back-btn:hover{color:var(--text)}.save-btn{background:var(--primary);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;transition:background .2s}.save-btn:hover:not(:disabled){background:var(--primary-dark)}.save-btn:disabled{opacity:.6;cursor:not-allowed}.error-banner{background:#fef2f2;color:var(--error);padding:12px 16px;border-radius:8px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;font-size:20px;color:var(--error)}.success-banner{background:#d1fae5;color:var(--success);padding:12px 16px;border-radius:8px;margin-bottom:16px}.editor-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px}.editor-tabs{display:flex;gap:4px;margin-bottom:24px;background:var(--background);padding:4px;border-radius:8px;width:fit-content}.tab{background:none;border:none;padding:10px 20px;border-radius:6px;font-weight:500;color:var(--text-secondary);transition:all .2s}.tab:hover:not(:disabled){color:var(--text)}.tab.active{background:var(--white);color:var(--primary);box-shadow:var(--shadow)}.tab:disabled{opacity:.5;cursor:not-allowed}.editor-content{display:grid;gap:24px}.form-section{background:var(--white);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.form-section h2{font-size:18px;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-group textarea{resize:vertical;min-height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group.inline{display:flex;align-items:center;gap:12px}.form-group.inline label{margin-bottom:0;white-space:nowrap}.form-group.inline input{width:100px}.checkbox-group{margin-bottom:16px}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.cover-preview{margin-top:12px;max-width:300px;max-height:200px;border-radius:8px;object-fit:cover}.stages-content{display:grid;grid-template-columns:1fr 1fr;gap:24px}.stages-list{background:var(--white);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.stages-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.stages-header h2{font-size:18px;margin:0}.add-stage-btn{background:var(--primary);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-weight:500;font-size:14px}.add-stage-btn:hover{background:var(--primary-dark)}.stage-type-selector{background:var(--background);border-radius:12px;padding:20px;margin-bottom:20px}.selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.selector-header h3{font-size:16px;margin:0}.selector-header button{background:none;border:none;font-size:24px;color:var(--text-secondary);padding:0;line-height:1}.stage-types-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stage-type-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--white);border:1px solid var(--border);border-radius:8px;transition:all .2s}.stage-type-btn:hover{border-color:var(--primary);box-shadow:var(--shadow)}.type-icon{font-size:24px}.type-label{font-size:12px;font-weight:500;color:var(--text)}.empty-stages{text-align:center;padding:40px 20px;color:var(--text-secondary)}.stages-items{display:flex;flex-direction:column;gap:8px}.stage-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--background);border-radius:8px;border:2px solid transparent;transition:all .2s}.stage-item:hover{background:var(--primary-light)}.stage-item.editing{border-color:var(--primary);background:var(--primary-light)}.stage-order{width:28px;height:28px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.stage-icon{font-size:20px;flex-shrink:0}.stage-info{flex:1;min-width:0}.stage-title{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-type{font-size:12px;color:var(--text-secondary)}.stage-actions{display:flex;gap:8px}.stage-actions button{padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;border:none}.edit-btn{background:var(--primary);color:#fff}.delete-btn{background:var(--error);color:#fff}.stage-editor-panel{background:var(--white);border-radius:12px;padding:24px;box-shadow:var(--shadow);max-height:calc(100vh - 200px);overflow-y:auto}@media(max-width:900px){.stages-content{grid-template-columns:1fr}.stage-types-grid{grid-template-columns:repeat(2,1fr)}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--white);border-bottom:1px solid var(--border);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.header-left{display:flex;align-items:center;gap:32px}.logo{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:var(--text);text-decoration:none}.logo:hover{text-decoration:none}.logo-icon{font-size:28px}.header-right{display:flex;align-items:center;gap:16px}.user-info{color:var(--text-secondary);font-size:14px}.logout-btn{background:none;border:1px solid var(--border);padding:8px 16px;border-radius:6px;font-size:14px;color:var(--text-secondary);transition:all .2s}.logout-btn:hover{background:var(--background);color:var(--text)}.main-content{flex:1;padding:24px;max-width:1400px;margin:0 auto;width:100%}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #e0e7ff;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--text: #1f2937;--text-secondary: #6b7280;--background: #f9fafb;--white: #ffffff;--border: #e5e7eb;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text);line-height:1.5}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
