@charset "UTF-8";.mt-10{margin-top:10px}.mt-15{margin-top:15px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.p-8{padding:8px}.p-10{padding:10px}.p-12{padding:12px}.flex{display:flex}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.inline-block{display:inline-block}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.text-xs{font-size:9px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.font-bold{font-weight:700}.font-normal{font-weight:400}.text-gray-600{color:#666}.text-gray-700{color:#555}.text-white{color:#fff}.border{border:1px solid #ddd}.border-gray-300{border-color:#ccc}.border-blue{border-color:#007bff}.border-2{border-width:2px}.rounded{border-radius:4px}.rounded-md{border-radius:6px}.rounded-lg{border-radius:8px}.bg-white{background-color:#fff}.bg-gray-100{background-color:#f5f5f5}.bg-gray-200{background-color:#e9ecef}.bg-blue-50{background-color:#f0f8ff}.bg-blue-100{background-color:#e6f3ff}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow{box-shadow:0 2px 4px #0000001a}.shadow-md{box-shadow:0 2px 8px #00000026}.shadow-lg{box-shadow:0 4px 12px #00000026}.transition{transition:all .2s ease}.transition-colors{transition:background-color .2s ease,border-color .2s ease}.w-full{width:100%}.h-full{height:100%}.min-w-60{min-width:60px}.min-h-50{min-height:50px}.z-10{z-index:10}.z-1000{z-index:1000}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.gap-4{gap:4px}.gap-8{gap:8px}.grid{display:grid}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.loading-overlay{position:fixed;top:10px;right:10px;background:#000c;color:#fff;padding:10px;border-radius:5px;font-size:12px;z-index:1000}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.9rem;font-weight:500;color:#555;margin-bottom:.5rem}.form-control{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;transition:border-color .3s ease;box-sizing:border-box}.form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-control--small{padding:.5rem;font-size:.8rem}.form-control--large{padding:1rem;font-size:1.1rem}.input-group{display:flex;gap:.75rem}.input-group--half .form-control{flex:1}.btn{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .25s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn--secondary{background:#ffffffe6;color:#333;border:1px solid #ddd}.btn--secondary:hover:not(:disabled){background:#667eea1a;border-color:#667eea}.btn--danger{background:#dc3545;color:#fff}.btn--danger:hover:not(:disabled){background:#c82333}.btn--warning{background:#ffc107;color:#212529}.btn--warning:hover:not(:disabled){background:#e0a800}.btn--success{background:#28a745;color:#fff}.btn--success:hover:not(:disabled){background:#218838}.btn--small{padding:.4em .8em;font-size:.875em}.btn--large{padding:.8em 1.6em;font-size:1.125em}.btn-group{display:flex;gap:.5rem}.btn-group--vertical{flex-direction:column}.card{background:#ffffffe6;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card--compact{padding:1rem}.card--spacious{padding:2rem}.card__header{margin-bottom:1rem}.card__title{color:#333;margin:0 0 .5rem;font-size:1.2rem;font-weight:600}.card__subtitle{color:#666;margin:0;font-size:.9rem;font-weight:400}.card__content{margin-bottom:1rem}.card__footer{border-top:1px solid rgba(0,0,0,.1);padding-top:1rem;margin-top:1rem}.dropdown{position:relative;display:inline-block}.dropdown__trigger{background:#fff;border:1px solid #ccc;border-radius:4px;padding:.5rem 1rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:120px}.dropdown__trigger:hover{border-color:#667eea}.dropdown__menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;z-index:1000;max-height:300px;overflow-y:auto}.dropdown__item{padding:.5rem 1rem;cursor:pointer;transition:background-color .2s ease}.dropdown__item:hover{background-color:#f5f5f5}.dropdown__item--selected{background-color:#e6f3ff;color:#007bff}.switch{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.switch__input{display:none}.switch__slider{position:relative;width:50px;height:26px;background:#ccc;border-radius:26px;transition:background .3s ease;flex-shrink:0}.switch__slider:before{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.switch__input:checked+.switch__slider{background:#667eea}.switch__input:checked+.switch__slider:before{transform:translate(24px)}.switch__label{font-size:.9rem;font-weight:500;color:#555}.range-input{width:100%;margin:.5rem 0}.range-input__label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.range-input__value{font-size:.8rem;color:#888;font-weight:500}.grid{display:grid;gap:1rem}.grid--2-cols{grid-template-columns:1fr 1fr}.grid--3-cols{grid-template-columns:repeat(3,1fr)}.grid--4-cols{grid-template-columns:repeat(4,1fr)}.grid--auto-fit{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.accordion__section{margin-bottom:.5rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;overflow:hidden}.accordion__header{width:100%;padding:1rem;background:#fffc;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600;color:#333;transition:all .3s ease}.accordion__header:hover{background:#667eea1a}.accordion__header--active{background:#667eea26;color:#667eea}.accordion__arrow{font-size:.8rem;transition:transform .3s ease}.accordion__arrow--rotated{transform:rotate(180deg)}.accordion__content{max-height:0;overflow:hidden;transition:max-height .4s ease-out}.accordion__content--open{max-height:600px;transition:max-height .4s ease-in}.accordion__body{padding:1.5rem;background:#ffffff80}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.App{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.App-header{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 2rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.2)}.App-header h1{color:#fff;margin:0;font-size:2.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.App-header p{color:#ffffffe6;margin:.5rem 0 0;font-size:1.1rem;font-weight:300}.szh-menu{margin:0;padding:0;list-style:none;box-sizing:border-box;width:max-content;z-index:100;border:1px solid rgba(0,0,0,.1);background-color:#fff}.szh-menu:focus{outline:none}.szh-menu__arrow{box-sizing:border-box;width:.75rem;height:.75rem;background-color:#fff;border:1px solid transparent;border-left-color:#0000001a;border-top-color:#0000001a;z-index:-1}.szh-menu__arrow--dir-left{right:-.375rem;transform:translateY(-50%) rotate(135deg)}.szh-menu__arrow--dir-right{left:-.375rem;transform:translateY(-50%) rotate(-45deg)}.szh-menu__arrow--dir-top{bottom:-.375rem;transform:translate(-50%) rotate(-135deg)}.szh-menu__arrow--dir-bottom{top:-.375rem;transform:translate(-50%) rotate(45deg)}.szh-menu__item{cursor:pointer}.szh-menu__item:focus{outline:none}.szh-menu__item--hover{background-color:#ebebeb}.szh-menu__item--focusable{cursor:default;background-color:inherit}.szh-menu__item--disabled{cursor:default;color:#aaa}.szh-menu__group{box-sizing:border-box}.szh-menu__radio-group{margin:0;padding:0;list-style:none}.szh-menu__divider{height:1px;margin:.5rem 0;background-color:#0000001f}.szh-menu-button{box-sizing:border-box}.szh-menu{-webkit-user-select:none;user-select:none;color:#212529;border:none;border-radius:.25rem;box-shadow:0 3px 7px #0002,0 .6px 2px #0000001a;min-width:10rem;padding:.5rem 0}.szh-menu__item{display:flex;align-items:center;position:relative;padding:.375rem 1.5rem}.szh-menu-container--itemTransition .szh-menu__item{transition-property:background-color,color;transition-duration:.15s;transition-timing-function:ease-in-out}.szh-menu__item--type-radio{padding-left:2.2rem}.szh-menu__item--type-radio:before{content:"○";position:absolute;left:.8rem;top:.55rem;font-size:.8rem}.szh-menu__item--type-radio.szh-menu__item--checked:before{content:"●"}.szh-menu__item--type-checkbox{padding-left:2.2rem}.szh-menu__item--type-checkbox:before{position:absolute;left:.8rem}.szh-menu__item--type-checkbox.szh-menu__item--checked:before{content:"✔"}.szh-menu__submenu>.szh-menu__item{padding-right:2.5rem}.szh-menu__submenu>.szh-menu__item:after{content:"❯";position:absolute;right:1rem}.szh-menu__header{color:#888;font-size:.8rem;padding:.2rem 1.5rem;text-transform:uppercase}.menu-section-header{font-size:.85rem;font-weight:600;color:#667eea;padding:4px 12px 2px;margin-top:2px;margin-bottom:2px;letter-spacing:.02em}.menu-section-divider{height:1px;background:#e9ecef;margin:4px 0;width:100%}.eyedropper-instruction{position:fixed;top:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:10px 20px;border-radius:5px;z-index:10000;font-family:system-ui,sans-serif;font-size:14px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 4px 12px #0000004d;border:1px solid rgba(255,255,255,.1)}.canvas-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem;min-height:600px;position:relative}.canvas-container .canvas-wrapper{position:relative;border:2px solid #333;border-radius:8px;background:#fff;overflow:hidden}.canvas-container:focus-within{outline:2px solid rgba(102,126,234,.3);outline-offset:4px;border-radius:12px}.canvas-container canvas,.canvas-container .upper-canvas,.canvas-container .lower-canvas{border:none!important;border-radius:0!important;display:block!important;visibility:visible!important;opacity:1!important;position:absolute!important;top:0!important;left:0!important;background:transparent!important}.canvas-container .upper-canvas{pointer-events:auto!important;z-index:2!important}.canvas-container .lower-canvas{z-index:1!important;background:#fff!important}.canvas-help{margin-top:1rem;padding:1rem;background:#ffffffe6;border-radius:8px;font-size:.9rem}.canvas-help p{margin:0 0 .5rem;font-weight:600;color:#333}.canvas-help ul{margin:0;padding-left:1.2rem;color:#666}.canvas-help li{margin-bottom:.3rem}@media(max-width:768px){.canvas-container canvas{max-width:100%;height:auto}}.shadow-blur-control{display:flex;align-items:center;gap:6px;padding:2px 0}.shadow-blur-control label{font-size:12px;color:#666;min-width:40px}.shadow-blur-control input[type=range]{flex:1;height:4px;-webkit-appearance:none;background:#ddd;border-radius:2px;outline:none}.shadow-blur-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#666;border-radius:50%;cursor:pointer;transition:background .2s}.shadow-blur-control input[type=range]::-webkit-slider-thumb:hover{background:#333}.shadow-blur-control input[type=range]::-moz-range-thumb{width:12px;height:12px;background:#666;border:none;border-radius:50%;cursor:pointer;transition:background .2s}.shadow-blur-control input[type=range]::-moz-range-thumb:hover{background:#333}.text-format-menu{display:flex;flex-direction:column;gap:8px;padding:12px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.text-format-menu .section{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.text-format-menu .section-title{font-size:13px;font-weight:500;color:#555;margin-bottom:0;text-transform:none;letter-spacing:0}.text-format-menu .controls{display:flex;flex-wrap:wrap;gap:6px}.text-format-menu .control-group{display:flex;align-items:center;gap:6px;margin-bottom:0}.text-format-menu .control-label{font-size:12px;color:#666;min-width:40px}.text-format-menu select,.text-format-menu input[type=number]{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:12px;color:#333;background:#fff}.text-format-menu select:focus,.text-format-menu input[type=number]:focus{outline:none;border-color:#666}.text-format-menu .color-picker{width:24px;height:24px;padding:0;border:1px solid #ddd;border-radius:4px;cursor:pointer}.text-format-menu .color-picker::-webkit-color-swatch-wrapper{padding:0}.text-format-menu .color-picker::-webkit-color-swatch{border:none;border-radius:2px}.text-format-menu .add-text-button{margin-top:8px;padding:6px 12px;background:#4a90e2;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:background .2s}.text-format-menu .add-text-button:hover{background:#357abd}.text-format-menu .add-text-button:disabled{background:#ccc;cursor:not-allowed}.text-format-menu .text-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;margin-bottom:12px}.text-format-menu .text-controls{display:flex;flex-direction:column;gap:4px}.text-format-menu .format-button{font-weight:700;background:#fff;color:#333;border:1px solid #bbb;border-radius:4px;width:40px;height:40px;cursor:pointer;outline:none;font-size:20px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;box-sizing:border-box;padding:0}.text-format-menu .format-button.active{background:#667eea;color:#fff}.text-format-menu .format-button.bold{font-weight:700}.text-format-menu .format-button.underline{text-decoration:underline}.text-format-menu .format-button.strike{text-decoration:line-through}.text-format-menu .format-buttons{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.text-format-menu .color-input{width:28px;height:28px;border:none;background:none;padding:0;cursor:pointer}.text-format-menu .inline-label{display:flex;align-items:center;gap:8px;margin-bottom:4px;white-space:nowrap;width:auto}.text-format-menu .shadow-controls{margin-top:4px;background:none;border-radius:0;padding:0}.text-format-menu .shadow-header{margin-bottom:0;display:flex;align-items:center;gap:8px;color:#555}.text-format-menu .shadow-header input[type=checkbox]{margin-left:8px}.text-format-menu .shadow-color-control,.text-format-menu .shadow-joystick-container{margin-top:4px}.text-format-menu .btn-primary{margin-top:8px!important;background:#667eea;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:background .2s}.text-format-menu .btn-primary:hover{background:#5a67d8}.section-label{font-size:13px;font-weight:500;color:#555;margin-bottom:0}.text-format-menu .inline-label>span,.text-format-menu .shadow-header>span{font-size:13px;font-weight:500;color:#555}.text-format-menu .inline-label,.section-label{margin-left:0!important;padding-left:0!important}.text-format-menu .inline-label>span.section-label{margin-left:0!important;padding-left:0!important}.character-picker-dropdown{position:absolute;top:100%;left:0;width:280px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px #00000026;z-index:1000;max-height:310px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;margin-top:10px}.character-picker-dropdown::-webkit-scrollbar{display:none}.character-picker-featured{padding:8px;border-bottom:1px solid #eee}.character-picker-title{font-size:12px;font-weight:700;margin-bottom:8px;color:#666}.character-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.character-button{padding:6px;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;font-size:14px;transition:all .2s;min-height:50px;color:#000}.character-button:hover{background-color:#e9ecef}.character-button.selected{border:2px solid #007bff;background-color:#f0f8ff}.character-button.selected:hover{background-color:#e6f3ff}.character-button-char{font-size:16px;margin-bottom:2px}.character-button-name{font-size:9px;color:#333}.character-selector-container{position:relative;display:inline-block}.character-selector-button{padding:8px 12px;border:1px solid #ccc;border-radius:4px;background-color:#fff;cursor:pointer;font-size:16px;min-width:60px;display:flex;align-items:center;justify-content:space-between;gap:8px}.character-selector-char{font-size:18px}.character-selector-arrow{font-size:12px;color:#666}.generate-button-spacing{margin-top:10px}.custom-character-dialog{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.custom-dialog-content{background:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 12px #0000004d;min-width:200px;max-width:300px}.custom-dialog-title{font-size:14px;font-weight:700;margin-bottom:12px;color:#333;text-align:center}.custom-character-input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:16px;text-align:center;margin-bottom:12px;box-sizing:border-box}.custom-character-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.custom-dialog-buttons{display:flex;gap:8px;justify-content:flex-end}.custom-dialog-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .2s}.custom-dialog-btn-primary{background-color:#007bff;color:#fff}.custom-dialog-btn-primary:hover{background-color:#0056b3}.custom-dialog-btn-secondary{background-color:#f8f9fa;color:#333;border:1px solid #ddd}.custom-dialog-btn-secondary:hover{background-color:#e9ecef}.custom-button{border-style:dashed!important;border-width:2px!important}.custom-button:hover{background-color:#f0f8ff!important}.toolbar{width:320px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000001a;height:calc(100vh - 8rem);max-height:800px;overflow-y:auto;overflow-x:hidden;position:sticky;top:2rem;scrollbar-width:thin;scrollbar-color:rgba(102,126,234,.3) transparent}.toolbar::-webkit-scrollbar{width:6px}.toolbar::-webkit-scrollbar-track{background:transparent}.toolbar::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.toolbar::-webkit-scrollbar-thumb:hover{background:#667eea80}.accordion-section{margin-bottom:.5rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;overflow:hidden}.accordion-header{width:100%;padding:1rem;background:#fffc;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600;color:#333;transition:all .3s ease}.accordion-header:hover{background:#667eea1a}.accordion-header.active{background:#667eea26;color:#667eea}.accordion-arrow{font-size:.8rem;transition:transform .3s ease}.accordion-content{max-height:0;overflow:hidden;transition:max-height .4s ease-out}.accordion-content.open{max-height:600px;transition:max-height .4s ease-in}.tool-section-content{padding:1.5rem;background:#ffffff80}.project-title-section{background:#ffffffe6;border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.project-title-section h3{color:#333;margin:0 0 1rem;font-size:1.2rem;font-weight:600}.project-title-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box;margin-bottom:0}.project-title-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.dropzone{border:2px dashed #ccc;border-radius:12px;padding:2rem 1rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#f0f0f080}.dropzone:hover,.dropzone.active{border-color:#667eea;background:#667eea1a;transform:translateY(-2px)}.dropzone p{margin:0;color:#666;font-size:.9rem}.text-input{width:calc(100% - .5rem);margin:0 .25rem 1rem;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box}.text-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.text-controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.text-controls label{display:flex;flex-direction:row;align-items:center;font-size:.9rem;font-weight:500;color:#555}.text-controls input[type=range]{margin:.5rem 0;width:100%}.text-controls input[type=color]{width:50px;height:40px;border:none;border-radius:8px;cursor:pointer;margin-top:0;margin-left:.5rem}.text-controls select{padding:.5rem;border:1px solid #ddd;border-radius:6px;margin-top:0;margin-left:.5rem;font-size:.9rem}.text-controls span{font-size:.8rem;color:#888;margin-left:.5rem}.star-controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.star-controls label{display:flex;flex-direction:column;font-size:.9rem;font-weight:500;color:#555}.star-controls .char-input{width:50px;margin:.5rem 0;padding:.5rem;border:1px solid #ddd;border-radius:6px;text-align:center;font-size:1.2rem}.star-controls input[type=range]{margin:.5rem 0;width:100%}.star-controls select{padding:.5rem;border:1px solid #ddd;border-radius:6px;margin-top:.5rem;font-size:.9rem}.star-controls span{font-size:.8rem;color:#888;margin-left:.5rem}.page-settings-section{padding:1.5rem;background:#ffffff80}.page-settings-section .form-group{margin-bottom:1rem}.page-settings-section .form-group label{display:block;font-size:.9rem;font-weight:500;color:#555;margin-bottom:.5rem}.page-settings-section .form-control{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:.9rem;transition:border-color .3s ease;box-sizing:border-box}.page-settings-section .form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.page-settings-section .dimensions-group{display:flex;gap:.75rem}.page-settings-section .half-width{flex:1;margin-bottom:1rem}.switch-label{display:flex!important;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:0!important}.switch-input{display:none}.switch-slider{position:relative;width:50px;height:26px;background:#ccc;border-radius:26px;transition:background .3s ease;flex-shrink:0}.switch-slider:before{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .3s ease;box-shadow:0 2px 4px #0003}.switch-input:checked+.switch-slider{background:#667eea}.switch-input:checked+.switch-slider:before{transform:translate(24px)}.switch-text{font-size:.9rem;font-weight:500;color:#555}.page-info{padding:.75rem;background:#667eea1a;border-radius:8px;text-align:center;margin-top:1rem}.page-info small{color:#667eea;font-weight:500}.background-options{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.background-btn{padding:.75rem .5rem;border:none;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .3s ease;box-shadow:0 2px 4px #0000001a}.background-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.action-buttons{display:flex;flex-direction:column;gap:.75rem}.undo-redo-buttons{display:flex;gap:.5rem;margin-bottom:.5rem}.btn-primary,.btn-secondary,.btn-danger,.btn-warning,.btn-success{padding:.75rem 1rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}.btn-secondary:hover:not(:disabled){background:#e9ecef;transform:translateY(-1px)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-danger{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 8px 16px #ff6b6b4d}.btn-warning{background:linear-gradient(135deg,#feca57,#ff9ff3);color:#fff}.btn-warning:hover{transform:translateY(-2px);box-shadow:0 8px 16px #feca574d}.btn-success{background:linear-gradient(135deg,#48dbfb,#0abde3);color:#fff}.btn-success:hover{transform:translateY(-2px);box-shadow:0 8px 16px #48dbfb4d}@media(max-width:1024px){.toolbar{width:280px}.tool-section{margin-bottom:1.5rem}.background-options{grid-template-columns:1fr}}@media(max-width:768px){.toolbar{width:100%;position:relative;top:0}.background-options{grid-template-columns:1fr 1fr}.text-controls{gap:.75rem}}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.external-fonts-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:700px;width:100%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-header h2{margin:0;font-size:1.5rem;font-weight:600}.modal-close-btn{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:background-color .2s ease}.modal-close-btn:hover{background:#fff3}.modal-content{padding:1.5rem 2rem 2rem;overflow-y:auto;flex:1}.instructions{margin-bottom:1.5rem;padding:1.25rem;background:#f8f9fa;border-radius:8px;border-left:4px solid #667eea}.instructions h3{margin:0 0 1rem;color:#333;font-size:1.1rem;font-weight:600}.instructions ul{margin:0;padding-left:1.25rem;list-style-type:none}.instructions li{margin-bottom:.75rem;color:#555;line-height:1.4;position:relative}.instructions li:before{content:"•";color:#667eea;font-weight:700;position:absolute;left:-1rem}.instructions a{color:#667eea;text-decoration:none;font-weight:500}.instructions a:hover{text-decoration:underline}.embed-section{margin-bottom:1.5rem}.embed-section label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.embed-textarea{width:95%;min-height:140px;padding:1rem;border:2px solid #e9ecef;border-radius:8px;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Courier New,monospace;font-size:.85rem;line-height:1.4;resize:vertical;transition:border-color .2s ease;background:#fafafa}.embed-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.embed-textarea::placeholder{color:#6c757d;font-size:.85rem}.validation-result{margin-top:1rem;padding:1rem;border-radius:8px;font-size:.9rem}.validation-result.success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.validation-result.error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.detected-fonts{margin:.75rem 0 0;padding:0;list-style:none}.detected-font{margin:.5rem 0;padding:.5rem;background:#ffffff80;border-radius:4px;font-size:1rem;font-weight:500}.error-message{margin-top:1rem;padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;border-radius:8px;font-size:.9rem}.modal-actions{display:flex;gap:1rem;margin:1.5rem 0;justify-content:flex-end}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #667eea4d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:#f8f9fa;color:#495057;border:1px solid #dee2e6}.btn-secondary:hover{background:#e9ecef;transform:translateY(-1px)}.existing-fonts{border-top:1px solid #e9ecef;padding-top:1.5rem;margin-top:1.5rem}.existing-fonts h3{margin:0 0 1rem;color:#333;font-size:1.1rem}.fonts-list{display:flex;flex-direction:column;gap:.75rem}.font-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.font-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.font-name{font-size:1rem;font-weight:500;color:#333}.font-status{font-size:.8rem;color:#6c757d}.remove-font-btn{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s ease;font-size:1rem}.remove-font-btn:hover{background:#dc35451a}@media(max-width:768px){.modal-backdrop{padding:.75rem}.external-fonts-modal{max-width:100%;max-height:92vh}.modal-header{padding:1.25rem 1.5rem}.modal-content{padding:1.25rem 1.5rem 1.5rem}.instructions{padding:1rem;margin-bottom:1.25rem}.embed-section{margin-bottom:1.25rem}.embed-textarea{min-height:120px;font-size:.8rem}.manual-entry-section{margin-top:1.25rem;padding-top:1.25rem}.modal-actions{flex-direction:column-reverse;gap:.75rem;margin:1.25rem 0}.btn-primary,.btn-secondary{width:100%}}.manual-entry-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e9ecef}.manual-entry-section h3{margin-bottom:8px;font-size:1.1rem;font-weight:600;color:#333}.manual-instructions{margin-bottom:1.25rem;font-size:.9rem;color:#6c757d;line-height:1.5}.manual-inputs{display:flex;flex-direction:column;gap:1rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.9rem;font-weight:500;color:#333}.manual-input{padding:.75rem;border:2px solid #e9ecef;border-radius:8px;font-size:.9rem;transition:border-color .2s ease;background:#fff}.manual-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.manual-input::placeholder{color:#6c757d}.manual-add-btn{align-self:flex-start;padding:10px 20px!important;font-size:.9rem!important}@media(min-width:640px){.manual-inputs{flex-direction:row;align-items:end;gap:1rem}.input-group{flex:1}.manual-add-btn{flex-shrink:0;margin-bottom:.125rem}}.image-composer{padding:2rem;min-height:calc(100vh - 120px)}.composer-layout{display:flex;gap:2rem;max-width:1400px;margin:0 auto}@media(max-width:1024px){.composer-layout{flex-direction:column;gap:1rem}}@media(max-width:768px){.image-composer{padding:1rem}}
