:root{font-family:Georgia,Palatino,serif;line-height:1.6;font-weight:400;color-scheme:light dark;color:#4a3f5c;background:linear-gradient(135deg,#fdf5f0,#f0e5e8,#e8d9f0);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#c4896a;text-decoration:inherit}a:hover{color:#d4a085}body{margin:0;padding:0;min-width:320px;min-height:100vh}h1{font-size:2.5em;line-height:1.1;color:#6b3a5c;text-shadow:2px 2px 4px rgba(0,0,0,.1);letter-spacing:1px}h3{margin:0}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .3s ease}button:focus,button:focus-visible{outline:2px solid #c4896a;outline-offset:2px}@media (prefers-color-scheme: light){:root{color:#4a3f5c;background:linear-gradient(135deg,#fdf5f0,#f0e5e8,#e8d9f0)}}.valentine-captcha-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;overflow:hidden}.emoji-rain{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.emoji-rain span{position:absolute;top:-50px;font-size:32px;animation:fall linear infinite;opacity:.9}@keyframes fall{0%{top:-50px;transform:rotate(0);opacity:1}to{top:100%;transform:rotate(360deg);opacity:.3}}.captcha-container{background:#fff;border-radius:8px;max-width:400px;width:100%;box-shadow:0 10px 40px #0000004d;animation:slideIn .3s ease-out;border:1px solid #ffc0cb;position:relative;z-index:2}@keyframes slideIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.captcha-header{background:#f36;color:#fff;padding:16px;border-radius:8px 8px 0 0;margin-bottom:8px}.captcha-header-content{display:flex;justify-content:space-between;align-items:flex-start}.captcha-instructions h2{font-size:16px;font-weight:600;margin:0;line-height:1.3}.captcha-instructions h1{font-size:22px;font-weight:700;margin:0;line-height:1.2}.captcha-instructions p{font-size:11px;margin:4px 0 0;opacity:.9}.captcha-logo{padding:8px;border-radius:4px}.heart-logo{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:40px;background:#fff3;border-radius:4px;overflow:hidden}.heart-logo img{width:100%;height:100%;object-fit:cover}.captcha-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:0 16px;margin-bottom:8px}.captcha-image{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer;background:#f0f0f0}.captcha-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.captcha-image img.image-selected{transform:scale(.9)}.captcha-image.loading{cursor:default;pointer-events:none}.loading-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:-100% 0}to{background-position:100% 0}}.checkmark{position:absolute;top:4px;left:4px;width:24px;height:24px;background:#ec4899;border-radius:50%;border:2px solid white;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 4px #0003;z-index:10;animation:checkPop .2s ease}.checkmark svg{width:16px;height:16px}@keyframes checkPop{0%{transform:scale(0)}50%{transform:scale(1.1)}to{transform:scale(1)}}.captcha-footer{display:flex;justify-content:space-between;align-items:center;padding:16px;margin-top:8px}.captcha-controls{display:flex;gap:16px}.icon-btn{background:none;border:none;color:#666;font-size:20px;cursor:pointer;padding:4px;transition:color .2s ease;display:flex;align-items:center;justify-content:center}.icon-btn:hover{color:#ec4899}.verify-btn{padding:8px 24px;background:#f43f5e;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;letter-spacing:.5px}.verify-btn:hover{background:#ec4899;transform:scale(.98)}.verify-btn:active{transform:scale(.95)}.verify-btn.error-shake{animation:shake .4s ease;background:#ef4444}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.error-text{color:#ef4444;font-size:12px;text-align:center;margin:0;padding:0 16px 12px}.success-message{text-align:center;padding:60px 20px;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.hearts-animation{font-size:48px;margin-bottom:30px;display:flex;justify-content:center;gap:12px}.hearts-animation span{display:inline-block;animation:float 2s ease-in-out infinite}.hearts-animation span:nth-child(1){animation-delay:0s}.hearts-animation span:nth-child(2){animation-delay:.15s}.hearts-animation span:nth-child(3){animation-delay:.3s}.hearts-animation span:nth-child(4){animation-delay:.45s}.hearts-animation span:nth-child(5){animation-delay:.6s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}}.success-message h2{color:#ec4899;font-size:28px;margin:0 0 12px;font-weight:700}.success-message p{color:#666;font-size:16px;margin:0}@media (max-width: 480px){.captcha-container{max-width:95%}.captcha-header{padding:12px}.captcha-instructions h1{font-size:18px}.captcha-instructions h2{font-size:14px}.heart-logo{width:48px;height:48px}.captcha-grid{gap:3px;padding:0 12px}.checkmark{width:20px;height:20px}.checkmark svg{width:14px;height:14px}.captcha-footer{padding:12px}.verify-btn{padding:8px 20px;font-size:13px}.hearts-animation{font-size:36px;gap:8px}.success-message h2{font-size:22px}.success-message p{font-size:14px}}.gallery-container{display:flex;flex-direction:column;gap:1.5rem}.gallery-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.gallery-header h2{margin:0;font-size:1.4rem;color:#5a2d82}.gallery-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.gallery-search{padding:.45rem .8rem;border:1px solid #d4b8e0;border-radius:8px;font-size:.9rem;background:#fff;color:#333;width:260px;outline:none;transition:border-color .2s}.gallery-search:focus{border-color:#9c6dbf;box-shadow:0 0 0 2px #9c6dbf26}.gallery-empty{text-align:center;padding:3rem 1rem;color:#888;font-size:1rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.gallery-card{background:#fff;border:1px solid #e8d5f5;border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:0 2px 8px #5a2d820f;transition:box-shadow .2s,transform .15s}.gallery-card:hover{box-shadow:0 4px 16px #5a2d821f;transform:translateY(-2px)}.gallery-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.gallery-card-name{font-weight:700;font-size:1.05rem;color:#3d1f5e;line-height:1.3;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.gallery-version-badge{display:inline-block;background:#5a2d82;color:#fff;font-size:.7rem;font-weight:700;padding:.1rem .45rem;border-radius:999px;letter-spacing:.03em;vertical-align:middle}.gallery-card-date{font-size:.75rem;color:#aaa;white-space:nowrap}.gallery-card-body{display:flex;flex-direction:column;gap:.45rem}.gallery-card-field{display:flex;justify-content:space-between;gap:.5rem;font-size:.88rem}.gallery-card-label{color:#888;font-weight:500;flex-shrink:0}.gallery-card-value{color:#333;text-align:right;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.gallery-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.25rem;width:100%;min-width:0}.btn-gallery-view,.btn-gallery-download,.btn-gallery-edit,.btn-gallery-delete{padding:.45rem .6rem;border:none;border-radius:8px;font-size:.82rem;cursor:pointer;font-weight:600;transition:background .15s,opacity .15s;white-space:nowrap;text-align:center}.btn-gallery-view{background:#ede0f8;color:#5a2d82}.btn-gallery-view:hover:not(:disabled){background:#dcc8f5}.btn-gallery-download{background:#e0f0ff;color:#1a5fa8}.btn-gallery-download:hover:not(:disabled){background:#c8e2ff}.btn-gallery-edit{background:#fff8e0;color:#8a6000}.btn-gallery-edit:hover:not(:disabled){background:#fea}.btn-gallery-delete{background:#ffe8e8;color:#c0392b;padding:.45rem .6rem}.btn-gallery-delete:hover:not(:disabled){background:#ffd0d0}.btn-gallery-view:disabled,.btn-gallery-download:disabled,.btn-gallery-edit:disabled,.btn-gallery-delete:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:.42rem .8rem;font-size:.85rem}.confirm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}@media (max-width: 640px){.gallery-search{width:100%}.gallery-card-value{max-width:130px}.btn-gallery-view,.btn-gallery-download,.btn-gallery-edit,.btn-gallery-delete{font-size:.75rem;padding:.5rem .25rem;min-width:0;white-space:normal;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;line-height:1.2}}#root{max-width:900px;margin:0 auto;padding:2rem;position:relative}@media (max-width: 640px){#root{padding:1rem}}#root:before{content:"✨";position:fixed;top:2rem;left:50%;transform:translate(-50%);font-size:2rem;opacity:.6;z-index:0;pointer-events:none}#root:after{content:"👑";position:fixed;top:2rem;right:2rem;font-size:2.5rem;opacity:.4;z-index:0;pointer-events:none}.app-container{display:flex;flex-direction:column;gap:2rem;position:relative;z-index:1}.valentine-easter-egg-btn{position:fixed;top:2rem;left:2rem;width:auto;height:auto;border-radius:0;background:none;border:none;font-size:2.5rem;cursor:pointer;transition:all .3s ease;z-index:0;opacity:.4;padding:0}.valentine-easter-egg-btn:hover{opacity:.8;transform:scale(1.1)}.valentine-easter-egg-btn:active{transform:scale(.95)}.card{background:linear-gradient(135deg,#f4d4e8,#e8cce0,#ddc4dd);border-radius:20px;padding:3rem;box-shadow:0 15px 40px #8b458b40,inset 0 1px #ffffff80;color:#4a3f5c;border:2px solid rgba(255,215,0,.3);position:relative;overflow:hidden}.card-tabs{display:flex;gap:.5rem;margin-bottom:1.75rem;border-bottom:2px solid rgba(139,69,139,.15);padding-bottom:0;position:relative;z-index:1}.card-tab{background:none;border:none;border-bottom:3px solid transparent;padding:.55rem 1.1rem;font-size:.95rem;font-weight:600;color:#7a5a9a;cursor:pointer;margin-bottom:-2px;border-radius:8px 8px 0 0;transition:color .15s,border-color .15s,background .15s}.card-tab:hover{color:#5a2d82;background:#5a2d820f}.card-tab.active{color:#5a2d82;border-bottom-color:#5a2d82;background:#5a2d8214}.card:before{content:"✧";position:absolute;top:-50px;left:-50px;font-size:150px;opacity:.08;color:#8b458b}.card:after{content:"✧";position:absolute;bottom:-50px;right:-50px;font-size:150px;opacity:.08;color:#8b458b}.card h1{margin:0 0 1.5rem;font-size:2.5rem;text-align:center;color:#6b3a5c;text-shadow:2px 2px 4px rgba(255,255,255,.8);font-style:italic;letter-spacing:2px}.input-label{display:block;margin:1.5rem 0 .5rem;font-size:1rem;font-weight:600;color:#6b3a5c;text-transform:uppercase;letter-spacing:1px;font-size:.9rem}.textarea{width:100%;height:300px;padding:1rem;font-family:Georgia,serif;font-size:.95rem;border:2px solid rgba(139,69,139,.4);border-radius:12px;background:#fff0f5cc;color:#4a3f5c;box-sizing:border-box;margin-bottom:1.5rem;transition:all .3s ease;resize:none}.textarea::placeholder{color:#6b3a5c80}.textarea:focus{outline:none;background:snow;border-color:#ffd70099;box-shadow:0 0 15px #ffd70033}.btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;font-family:Georgia,serif}.btn-download{background:linear-gradient(135deg,#d4a574,#c4896a);color:#fff;padding:.75rem 1.5rem;font-size:.95rem;border:2px solid rgba(255,215,0,.3)}.btn-download:hover{background:linear-gradient(135deg,#e0b88a,#d4986a);transform:translateY(-3px);box-shadow:0 10px 25px #c4896a66;border-color:#ffd70099}.btn-new-contract{background:linear-gradient(135deg,#7a5c8a,#5c3d6e);color:#fff;padding:.75rem 1.5rem;font-size:.95rem;border:2px solid rgba(255,255,255,.2)}.btn-new-contract:hover{background:linear-gradient(135deg,#9370a0,#7a5290);transform:translateY(-3px);box-shadow:0 10px 25px #5c3d6e66;border-color:#fff6}.error-message{background:linear-gradient(135deg,#ffb3b3,#f99);color:#8b3a3a;padding:1rem;border-radius:12px;margin-top:1rem;text-align:center;font-weight:500;border:2px solid rgba(255,107,107,.3)}.success-section{background:linear-gradient(135deg,#c8b4dc80,#f0c8e680);border:2px solid rgba(196,137,170,.6);border-radius:12px;padding:1.5rem;margin-top:1.5rem;text-align:center}.success-message{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#6b3a5c;font-style:italic}.form-title{margin:0 0 1.5rem;font-size:1.5rem;text-align:center;color:#6b3a5c;font-style:italic;letter-spacing:1px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:2rem}.form-group{display:flex;flex-direction:column}.characters-input-container{display:flex;flex-direction:column;gap:0}.form-group.full-width{grid-column:1 / -1}.form-label{font-size:.9rem;font-weight:600;margin-bottom:.5rem;color:#6b3a5c;text-transform:uppercase;letter-spacing:.3px}.form-input{padding:.75rem;font-family:Georgia,serif;font-size:.95rem;border:2px solid rgba(139,69,139,.4);border-radius:10px;background:#fff0f5e6;color:#4a3f5c;box-sizing:border-box;transition:all .3s ease}.form-input::placeholder{color:#6b3a5c80}.form-input:focus{outline:none;background:snow;border-color:#ffd70099;box-shadow:0 0 12px #ffd70040}.character-item{display:flex;gap:.5rem;margin-bottom:.5rem}.character-input{flex:1}.btn-remove{padding:.5rem 1rem;background-color:#e8766b;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease;font-size:.9rem}.btn-remove:hover{background-color:#d15c52}.btn-add{padding:.75rem 1.5rem;background-color:#a377bf;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease;font-size:.95rem;margin-top:.5rem}.btn-add:hover{background-color:#8b5ea8}.multiselect-container{border:2px solid rgba(139,69,139,.3);border-radius:12px;padding:1rem;background-color:#ffffffb3}.selected-items{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;min-height:2rem}.selected-item{display:flex;align-items:center;gap:.5rem;background-color:#a377bf;color:#fff;padding:.5rem .75rem;border-radius:20px;font-size:.9rem;font-weight:500}.remove-item-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:1.1rem;line-height:1;padding:0;margin-left:.25rem;opacity:.8;transition:opacity .2s ease}.remove-item-btn:hover{opacity:1}.dropdown-toggle-btn{width:100%;padding:.75rem;background-color:#7a5a9b;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;font-size:.95rem;transition:background-color .3s ease}.dropdown-toggle-btn:hover{background-color:#6a4a8b}.dropdown-menu{margin-top:1rem;border:1px solid rgba(139,69,139,.2);border-radius:8px;background-color:#ffffffe6;max-height:400px;overflow-y:auto;padding:.5rem}.options-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.option-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;cursor:pointer;border-radius:6px;transition:background-color .2s ease}.option-item:hover{background-color:#a377bf1a}.option-item input[type=checkbox]{cursor:pointer;width:18px;height:18px}.option-item span{flex:1;font-size:.95rem}.custom-input-section{display:flex;gap:.5rem;padding-top:.5rem;border-top:1px solid rgba(139,69,139,.2)}.custom-option-input{flex:1;padding:.5rem;border:2px solid rgba(139,69,139,.2);border-radius:8px;font-size:.95rem;background-color:#fff}.custom-option-input:focus{outline:none;border-color:#a377bf}.btn-add-custom{padding:.5rem 1rem;background-color:#a377bf;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease;font-size:.9rem}.btn-add-custom:hover:not(:disabled){background-color:#8b5ea8}.btn-add-custom:disabled{opacity:.5;cursor:not-allowed}.btn-add{padding:.75rem 1.5rem;background-color:#a377bf;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease;width:100%;margin-top:.5rem;font-size:.95rem}.btn-add:hover{background-color:#8b5f9f}.form-textarea{padding:.75rem;font-family:Georgia,serif;font-size:.95rem;border:2px solid rgba(139,69,139,.4);border-radius:10px;background:#fff0f5e6;color:#4a3f5c;box-sizing:border-box;transition:all .3s ease;resize:vertical}.form-textarea::placeholder{color:#6b3a5c80}.form-textarea:focus{outline:none;background:snow;border-color:#ffd70099;box-shadow:0 0 12px #ffd70040}.button-group{display:flex;gap:1rem;margin-bottom:1.5rem}.btn-secondary{background:linear-gradient(135deg,#c489aa4d,#d4a5bc4d);color:#6b3a5c;border:2px solid rgba(139,69,139,.5);flex:1;padding:1rem;font-size:1rem}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#c489aa80,#d4a5bc80);border-color:#ffd70099;transform:translateY(-3px);box-shadow:0 8px 20px #6b3a5c33}.btn-primary{background:linear-gradient(135deg,gold,#ffed4e);color:#6b3a5c;width:100%;padding:1rem;font-size:1.1rem;border:2px solid rgba(255,215,0,.4)}.button-group .btn-primary{flex:1;width:auto}.btn-primary:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 10px 25px #ffd70066;background:linear-gradient(135deg,#ffed4e,gold);border-color:#ffd700cc}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.info-box{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;padding:2rem;box-shadow:0 8px 25px #8b458b26,inset 0 1px #fffc;color:#4a3f5c;border:2px solid rgba(255,215,0,.25)}.info-box h3{margin:0 0 1rem;color:#6b3a5c;font-size:1.3rem;font-style:italic;letter-spacing:1px}.info-box p{margin:0 0 1rem;color:#6b5a6d;font-style:italic}.info-box ul{list-style:none;padding:0;margin:0}.info-box li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:#6b5a6d}.info-box li:before{content:"✧";position:absolute;left:0;color:#c4896a;font-weight:700;font-size:1.2rem}.textarea-wrapper{position:relative}.btn-format-help{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:50%;border:2px solid rgba(139,69,139,.35);background:linear-gradient(135deg,#faf5f8,#f5f0f7);color:#6b3a5c;font-size:.95rem;cursor:pointer;box-shadow:0 2px 8px #8b458b26;transition:background .2s ease,box-shadow .2s ease,transform .1s ease;padding:0;position:absolute;top:0;right:0}.btn-format-help:hover{background:linear-gradient(135deg,#f4d4e8,#e8cce0);box-shadow:0 4px 14px #8b458b47;transform:scale(1.08)}.format-help-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#4b3f5ca6;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.format-help-modal{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 60px #6b3a5c66;border:2px solid rgba(255,215,0,.3);overflow:hidden}.format-help-header{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.5rem;border-bottom:2px solid rgba(139,69,139,.2);background:linear-gradient(135deg,#f4d4e8,#e8cce0);flex-shrink:0}.format-help-header h3{margin:0;color:#6b3a5c;font-size:1.2rem;font-style:italic;letter-spacing:1px}.format-help-body{padding:1.5rem;overflow-y:auto;color:#4a3f5c}.format-help-body p{margin:0 0 1rem;color:#6b5a6d;font-style:italic}.format-help-body ul{list-style:none;padding:0;margin:0}.format-help-body li{padding:.45rem 0 .45rem 1.5rem;position:relative;color:#6b5a6d}.format-help-body li:before{content:"✧";position:absolute;left:0;color:#c4896a;font-weight:700;font-size:1.1rem}.pdf-preview-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#4b3f5cb3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.pdf-preview-container{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;display:flex;flex-direction:column;width:100%;max-width:900px;height:85vh;box-shadow:0 25px 60px #6b3a5c66;overflow:hidden;border:2px solid rgba(255,215,0,.3)}.pdf-preview-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid rgba(139,69,139,.2);background:linear-gradient(135deg,#f4d4e8,#e8cce0);flex-shrink:0}.pdf-preview-header h3{margin:0;font-size:1.3rem;color:#6b3a5c;font-style:italic}.pdf-close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b3a5c;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .2s ease;flex-shrink:0}.pdf-close-btn:hover{color:#c4896a}.pdf-viewer{flex:1;border:none;width:100%;height:100%;min-height:500px}.pdf-preview-footer{padding:1.5rem;border-top:2px solid rgba(139,69,139,.2);background:linear-gradient(135deg,#f4d4e8,#e8cce0);display:flex;justify-content:center;flex-shrink:0}.pdf-preview-footer .btn-download,.pdf-preview-footer .btn-new-contract{margin:0}.pdf-preview-footer{gap:.75rem}@media (max-width: 640px){.card{padding:1.25rem}.card-tabs{gap:.25rem}.card-tab{flex:1;text-align:center;font-size:.78rem;padding:.5rem .3rem}.card h1{font-size:1.5rem}.textarea{height:160px;font-size:.9rem}.form-grid{grid-template-columns:1fr}.button-group{flex-direction:column}.button-group .btn{width:100%}.info-box{padding:1.5rem}.info-box h3{font-size:1.1rem}.pdf-preview-modal{padding:0}.pdf-preview-container{max-height:100vh;border-radius:0;max-width:100%}.pdf-preview-header{padding:1rem}.pdf-preview-header h3{font-size:1.1rem}.pdf-preview-footer{padding:1rem}.character-item{display:flex;gap:.5rem;margin-bottom:.5rem}.character-input{flex:1}.btn-remove{padding:.5rem 1rem;background-color:#e8766b;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease}.btn-remove:hover{background-color:#d15c52}.btn-add{padding:.75rem 1.5rem;background-color:#a377bf;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .3s ease;width:100%;margin-top:.5rem}.btn-add:hover{background-color:#8b5f9f}}.admin-tab-content{padding:1.5rem 0 .5rem;color:#4a3f5c}.admin-tab-content p{margin:0 0 1.25rem;color:#6b5a6d;font-style:italic;font-size:.9rem}.admin-section{background:linear-gradient(135deg,#fff5e6,#ffe8cc);border-radius:16px;padding:2rem;box-shadow:0 8px 25px #ff8c0026,inset 0 1px #fffc;color:#4a3f5c;border:2px solid rgba(255,140,0,.3);margin-top:2rem}.admin-section h3{margin:0 0 .5rem;color:#8b4513;font-size:1.3rem;font-style:italic;letter-spacing:1px}.admin-section p{margin:0 0 1rem;color:#6b5a6d;font-style:italic;font-size:.9rem}.admin-buttons{display:flex;gap:1rem;flex-wrap:wrap}.btn-admin{background:linear-gradient(135deg,#ff8c00,#ff7200);color:#fff;border:2px solid rgba(139,69,19,.3);padding:.75rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 6px 20px #ff8c004d;transition:all .3s ease;letter-spacing:.5px}.btn-admin:hover{background:linear-gradient(135deg,#ff7200,#f50);transform:translateY(-2px);box-shadow:0 8px 25px #ff8c0066}.json-editor-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#4b3f5cb3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.json-editor-container{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;display:flex;flex-direction:column;width:100%;max-width:900px;height:90vh;box-shadow:0 25px 60px #6b3a5c66;overflow:hidden;border:2px solid rgba(255,215,0,.3)}.json-editor-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid rgba(139,69,139,.2);background:linear-gradient(135deg,#f4d4e8,#e8cce0);flex-shrink:0}.json-editor-header h3{margin:0;font-size:1.3rem;color:#6b3a5c;font-style:italic}.template-design-link{padding:1rem 1.5rem;background:linear-gradient(135deg,#fff9e6,#fff3cc);border-bottom:2px solid rgba(139,69,139,.2);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.95rem}.template-design-link span{color:#6b5a6d;font-weight:500}.external-link{color:#7a5a9b;font-weight:600;text-decoration:none;transition:all .2s ease;border-bottom:2px solid transparent}.external-link:hover{color:#a377bf;border-bottom-color:#a377bf}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b3a5c;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.close-btn:hover{color:#c4896a}.json-editor-textarea{flex:1;width:100%;padding:1.5rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;border:none;background:#ffffffe6;color:#2d2d2d;resize:none;overflow-y:auto;line-height:1.5;-moz-tab-size:2;tab-size:2}.json-editor-textarea:focus{outline:none;background:#fff}.json-editor-footer{padding:1.5rem;border-top:2px solid rgba(139,69,139,.2);background:linear-gradient(135deg,#f4d4e8,#e8cce0);display:flex;justify-content:flex-end;gap:1rem;flex-shrink:0}.template-designer-modal-container{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;display:flex;flex-direction:column;width:100%;max-width:95vw;height:95vh;box-shadow:0 25px 60px #6b3a5c66;overflow:hidden;border:2px solid rgba(255,215,0,.3)}.template-pdf-upload{padding:1rem 1.5rem;background:linear-gradient(135deg,#fff9e6,#fff3cc);border-bottom:2px solid rgba(139,69,139,.2);display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.pdf-upload-label{color:#6b5a6d;font-weight:600;font-size:.95rem}.pdf-upload-input{display:none}.btn-upload-pdf{padding:.5rem 1rem;background:linear-gradient(135deg,#c4896a,#b57a5a);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease;box-shadow:0 2px 8px #8b458b33}.btn-upload-pdf:hover{background:linear-gradient(135deg,#d49977,#c58a6a);box-shadow:0 4px 12px #8b458b4d;transform:translateY(-1px)}.upload-hint{color:#8b7a8d;font-size:.85rem;font-style:italic}.designer-container{flex:1;width:100%;min-height:0;overflow:hidden;background:#fff;position:relative}@media (max-width: 640px){.admin-section{padding:1.5rem}.admin-buttons{flex-direction:column}.btn-admin{width:100%}.json-editor-modal{padding:0}.json-editor-container{max-height:100vh;border-radius:0}.json-editor-header{padding:1rem}.json-editor-header h3{font-size:1.1rem}.json-editor-footer{padding:1rem}.json-editor-textarea{padding:1rem;font-size:.85rem}}.packages-editor-container{background:linear-gradient(135deg,#faf5f8,#f5f0f7);border-radius:16px;display:flex;flex-direction:column;width:100%;max-width:1100px;height:90vh;box-shadow:0 25px 60px #6b3a5c66;overflow:hidden;border:2px solid rgba(255,215,0,.3)}.packages-editor-content{display:flex;flex:1;overflow:hidden}.packages-list-sidebar{width:300px;background:linear-gradient(135deg,#f0e6f8,#e6d9f0);border-right:2px solid rgba(139,69,139,.2);display:flex;flex-direction:column;overflow:hidden}.packages-list-header{padding:1rem;border-bottom:2px solid rgba(139,69,139,.2);background:#fff6;display:flex;justify-content:space-between;align-items:center}.packages-list-header h4{margin:0;color:#6b3a5c;font-size:1.1rem}.btn-add-small{padding:.5rem .75rem;background:linear-gradient(135deg,#a377bf,#8b5ea8);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s ease}.btn-add-small:hover{background:linear-gradient(135deg,#8b5ea8,#7a4a98);transform:translateY(-2px);box-shadow:0 4px 12px #a377bf66}.packages-list{flex:1;overflow-y:auto;padding:.5rem}.package-list-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;margin-bottom:.5rem;background:#ffffffb3;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all .2s ease;gap:.5rem}.package-list-item:hover{background:#ffffffe6;border-color:#a377bf4d;transform:translate(3px)}.package-list-item.active{background:linear-gradient(135deg,#a377bf,#8b5ea8);border-color:#a377bf;box-shadow:0 4px 12px #a377bf4d}.package-list-item.active .package-name{color:#fff;font-weight:600}.package-name{flex:1;color:#6b3a5c;font-size:.9rem;line-height:1.3;word-break:break-word}.btn-delete-small{background:#e8766bcc;border:none;padding:.3rem .5rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease;flex-shrink:0}.btn-delete-small:hover{background:#e8766b;transform:scale(1.1)}.package-list-item.active .btn-delete-small{background:#ffffff4d}.package-list-item.active .btn-delete-small:hover{background:#ffffff80}.package-editor-panel{flex:1;overflow-y:auto;padding:2rem;background:#ffffff80}.package-form{max-width:700px;margin:0 auto}.package-form h4{margin:0 0 1.5rem;color:#6b3a5c;font-size:1.3rem;font-style:italic}.package-name-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(139,69,139,.2)}.package-name-header h4{margin:0;flex:1}.btn-rename{background:linear-gradient(135deg,gold,#ffed4e);border:2px solid rgba(255,215,0,.4);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;color:#6b3a5c;transition:all .2s ease}.btn-rename:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ffd7004d}.rename-input-group{display:flex;gap:.5rem}.rename-input-group .form-input{flex:1}.btn-sm{padding:.5rem .75rem;font-size:.85rem}.field-error{color:#c4004b;font-size:.85rem;margin-top:.3rem;display:block;font-style:italic}.includes-list{display:flex;flex-direction:column;gap:.5rem}.include-item{display:flex;gap:.5rem;align-items:center}.include-item .form-input{flex:1}.btn-remove-inline{background:#e8766bcc;border:none;padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:1rem;color:#fff;font-weight:500;transition:all .2s ease;flex-shrink:0}.btn-remove-inline:hover{background:#e8766b;transform:scale(1.05)}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:2px solid rgba(139,69,139,.2)}.form-actions .btn{flex:1}.no-selection{display:flex;align-items:center;justify-content:center;height:100%;color:#6b5a6d;font-style:italic;font-size:1.1rem}@media (max-width: 900px){.packages-editor-container{height:100vh;border-radius:0;max-width:100%}.packages-editor-content{flex-direction:column}.packages-list-sidebar{width:100%;max-height:250px;border-right:none;border-bottom:2px solid rgba(139,69,139,.2)}.package-editor-panel{padding:1rem}.form-actions{flex-direction:column}}.toast{position:fixed;top:2rem;right:2rem;background:linear-gradient(135deg,#d4edda,#c3e6cb);border:2px solid #28a745;border-radius:12px;padding:1rem 1.5rem;box-shadow:0 8px 30px #28a74566;display:flex;align-items:center;gap:1rem;z-index:10000;animation:slideIn .3s ease-out,fadeOut .3s ease-in 3.7s;min-width:300px;max-width:500px}.toast-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-color:#28a745;color:#155724}.toast-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-color:#dc3545;color:#721c24}.toast-info{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border-color:#17a2b8;color:#0c5460}.toast-content{display:flex;align-items:center;gap:.75rem;flex:1}.toast-icon{font-size:1.3rem;font-weight:700;flex-shrink:0}.toast-message{font-size:.95rem;font-weight:500;line-height:1.4}.toast-close-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;opacity:.6;transition:opacity .2s ease;padding:.25rem;flex-shrink:0;color:inherit}.toast-close-btn:hover{opacity:1}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media (max-width: 640px){.toast{top:1rem;right:1rem;left:1rem;min-width:auto;max-width:none}}
