:root{--portal-primary:#0d6efd;--portal-primary-dark:#0b5ed7;--portal-primary-light:#e7f1ff;--portal-success:#198754;--portal-success-light:#d1e7dd;--portal-warning:#ffc107;--portal-warning-light:#fff3cd;--portal-danger:#dc3545;--portal-danger-light:#f8d7da;--portal-gray-100:#f8f9fa;--portal-gray-200:#e9ecef;--portal-gray-300:#dee2e6;--portal-gray-400:#ced4da;--portal-gray-500:#adb5bd;--portal-gray-600:#6c757d;--portal-gray-700:#495057;--portal-gray-800:#343a40;--portal-gray-900:#212529;--portal-shadow:0 4px 6px rgba(0,0,0,.07);--portal-shadow-md:0 6px 12px rgba(0,0,0,.1);--portal-shadow-lg:0 10px 25px rgba(0,0,0,.15);--portal-radius:12px;--portal-radius-lg:16px;--portal-transition:all .3s ease}.portal-container{min-height:100vh;background:linear-gradient(135deg,var(--portal-gray-100) 0%,var(--portal-gray-200) 100%);padding:40px 20px}.portal-login{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 80px)}.portal-login-box{background:#fff;border-radius:var(--portal-radius-lg);box-shadow:var(--portal-shadow-lg);padding:48px 40px;width:100%;max-width:420px;text-align:center}.portal-logo{margin-bottom:28px}.portal-logo img{max-width:220px;max-height:80px;object-fit:contain}.portal-logo h1{font-size:24px;font-weight:700;color:var(--portal-gray-900);margin:0}.portal-login-box h2{font-size:26px;font-weight:700;color:var(--portal-gray-900);margin-bottom:8px}.portal-subtitle{color:var(--portal-gray-600);margin-bottom:28px;font-size:15px}.portal-error{background:var(--portal-danger-light);color:var(--portal-danger);padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;text-align:left}.portal-login-box input[type=password]{width:100%;padding:16px 20px;font-size:18px;border:2px solid var(--portal-gray-200);border-radius:10px;text-align:center;letter-spacing:6px;transition:var(--portal-transition);margin-bottom:20px}.portal-login-box input[type=password]:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 4px var(--portal-primary-light)}.portal-help{margin-top:28px}.portal-help a{color:var(--portal-gray-600);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:6px;transition:var(--portal-transition)}.portal-help a:hover{color:var(--portal-primary)}.portal-disabled{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 80px)}.portal-disabled-box{background:#fff;border-radius:var(--portal-radius-lg);box-shadow:var(--portal-shadow-lg);padding:48px;text-align:center;max-width:400px}.portal-disabled-box i{font-size:48px;color:var(--portal-gray-400);margin-bottom:20px}.portal-disabled-box h2{font-size:24px;margin-bottom:12px}.portal-disabled-box p{color:var(--portal-gray-600);margin-bottom:24px}.portal-dashboard{max-width:900px;margin:0 auto}.portal-header{text-align:center;margin-bottom:36px;position:relative}.portal-header h1{font-size:36px;font-weight:700;color:var(--portal-gray-900);margin-bottom:8px}.portal-header .shop-name{color:var(--portal-primary);font-size:18px;font-weight:500}.logout-link{position:absolute;top:0;right:0;color:var(--portal-gray-500);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;transition:var(--portal-transition)}.logout-link:hover{background:var(--portal-danger-light);color:var(--portal-danger)}.portal-alert{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-radius:var(--portal-radius);margin-bottom:24px}.portal-alert-info{background:var(--portal-primary-light);border:1px solid #b6d4fe;color:#084298}.portal-alert-warning{background:var(--portal-warning-light);border:1px solid #ffecb5;color:#664d03}.portal-alert i{font-size:20px;margin-top:2px;flex-shrink:0}.portal-alert a{color:inherit;font-weight:600;text-decoration:underline}.portal-content h2{font-size:20px;font-weight:600;color:var(--portal-gray-700);text-align:center;margin-bottom:28px}.portal-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px, 1fr));gap:24px}.portal-action-card{background:#fff;border-radius:var(--portal-radius-lg);box-shadow:var(--portal-shadow);padding:32px 28px;text-align:center;text-decoration:none;transition:var(--portal-transition);position:relative}.portal-action-card:hover{transform:translateY(-4px);box-shadow:var(--portal-shadow-lg)}.action-icon{width:80px;height:80px;background:var(--portal-gray-100);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;transition:var(--portal-transition)}.action-icon i{font-size:32px;color:var(--portal-primary);transition:var(--portal-transition)}.portal-action-card:hover .action-icon{background:var(--portal-primary)}.portal-action-card:hover .action-icon i{color:#fff}.portal-action-card h3{font-size:20px;font-weight:600;color:var(--portal-gray-900);margin-bottom:8px}.portal-action-card p{color:var(--portal-gray-600);font-size:14px;margin:0;line-height:1.5}.action-count,.action-status{display:inline-block;margin-top:12px;font-size:12px;padding:4px 10px;border-radius:20px}.action-count{background:var(--portal-gray-100);color:var(--portal-gray-600)}.action-status{background:var(--portal-success-light);color:var(--portal-success)}.portal-action-card.portal-action-secondary{background:var(--portal-gray-100);border:2px dashed var(--portal-gray-300)}.portal-action-card.portal-action-secondary .action-icon{background:#fff}.portal-action-card.portal-action-secondary:hover{background:#fff;border-color:var(--portal-primary)}.portal-footer{display:flex;justify-content:center;gap:24px;margin-top:40px;flex-wrap:wrap}.back-link{color:var(--portal-gray-500);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;gap:6px;transition:var(--portal-transition)}.back-link:hover{color:var(--portal-primary)}.portal-form-page{max-width:720px;margin:0 auto}.portal-form-header{display:flex;align-items:center;margin-bottom:32px}.back-btn{display:flex;align-items:center;gap:8px;color:var(--portal-gray-500);text-decoration:none;font-size:14px;padding:10px 18px;border-radius:8px;transition:var(--portal-transition);background:#fff;box-shadow:var(--portal-shadow)}.back-btn:hover{background:var(--portal-gray-100);color:var(--portal-gray-700)}.portal-form-header h1{flex:1;text-align:center;font-size:28px;font-weight:700;color:var(--portal-gray-900);margin:0;padding-right:100px}.portal-intro-box{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:24px 28px;border-radius:var(--portal-radius);margin-bottom:28px;display:flex;align-items:center;gap:18px}.portal-intro-box i{font-size:36px;opacity:.9;flex-shrink:0}.portal-intro-box p{margin:0;font-size:15px;line-height:1.6}.portal-form{background:#fff;border-radius:var(--portal-radius-lg);box-shadow:var(--portal-shadow);padding:36px}.form-section{margin-bottom:36px}.form-section:last-of-type{margin-bottom:0}.form-section h3{font-size:16px;font-weight:600;color:var(--portal-gray-700);margin-bottom:16px;display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--portal-gray-200)}.form-section h3 i{color:var(--portal-primary)}.section-description{color:var(--portal-gray-600);font-size:14px;margin-bottom:16px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--portal-gray-700);margin-bottom:8px}.form-group label .required{color:var(--portal-danger)}.form-group input[type=text],.form-group input[type=date],.form-group textarea,.form-group select{width:100%;padding:12px 16px;font-size:16px;border:2px solid var(--portal-gray-200);border-radius:8px;transition:var(--portal-transition);font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 4px var(--portal-primary-light)}.form-group textarea{resize:vertical;min-height:120px}.form-hint{display:block;font-size:12px;color:var(--portal-gray-500);margin-top:6px}.highlight-success{animation:highlightPulse 1.5s ease}@keyframes highlightPulse{0%{background-color:#d1e7dd}100%{background-color:#fff}}.ai-generate-section{margin-bottom:20px;display:flex;align-items:center;gap:12px}.ai-hint{font-size:13px;color:var(--portal-gray-500)}.photo-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.photo-upload-box{position:relative;border:2px dashed var(--portal-gray-300);border-radius:var(--portal-radius);padding:40px 20px;text-align:center;transition:var(--portal-transition);background:var(--portal-gray-100);cursor:pointer;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center}.photo-upload-box.single{max-width:320px}.photo-upload-box:hover,.photo-upload-box.dragover{border-color:var(--portal-primary);background:var(--portal-primary-light)}.photo-upload-box input[type=file]{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer;z-index:2}.photo-upload-box label{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;margin:0;pointer-events:none}.photo-upload-box label i{font-size:36px;color:var(--portal-gray-400);transition:var(--portal-transition)}.photo-upload-box:hover label i{color:var(--portal-primary)}.photo-upload-box label span{font-weight:600;color:var(--portal-gray-700);font-size:15px}.photo-upload-box label small{font-size:12px;color:var(--portal-gray-500)}.photo-upload-box.has-image label{display:none}.photo-upload-box .preview-container{position:absolute;top:6px;left:6px;right:6px;bottom:6px;border-radius:8px;overflow:hidden}.photo-upload-box .preview-container img{width:100%;height:100%;object-fit:cover}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:var(--portal-transition);text-decoration:none;font-family:inherit}.btn-primary{background:var(--portal-primary);color:#fff}.btn-primary:hover{background:var(--portal-primary-dark)}.btn-secondary{background:var(--portal-gray-100);color:var(--portal-gray-700);border:2px solid var(--portal-gray-200)}.btn-secondary:hover{background:var(--portal-gray-200);border-color:var(--portal-gray-300)}.btn-outline{background:0 0;border:2px solid var(--portal-gray-300);color:var(--portal-gray-700)}.btn-outline:hover{border-color:var(--portal-primary);color:var(--portal-primary)}.btn-lg{padding:16px 36px;font-size:18px}.w-100{width:100%}.form-actions{margin-top:36px;text-align:center}.portal-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.modal-content{background:linear-gradient(145deg,#fff 0%,#f8f9fa 100%);border-radius:var(--portal-radius-lg);padding:56px 48px;text-align:center;max-width:460px;width:100%;animation:modalSlideIn .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 25px 50px -12px rgba(0,0,0,.25),0 0 0 1px rgba(255,255,255,.1);position:relative;overflow:hidden}.modal-content:before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--portal-success) 0%,#20c997 100%)}@keyframes modalSlideIn{from{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content .success-icon-wrapper{width:100px;height:100px;margin:0 auto 28px;position:relative;display:flex;align-items:center;justify-content:center}.modal-content .success-icon-wrapper:before{content:'';position:absolute;width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,rgba(25,135,84,.15) 0%,rgba(32,201,151,.1) 100%);animation:pulseRing 2s ease-in-out infinite}@keyframes pulseRing{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.7}}.modal-content i.fa-check-circle{font-size:64px;color:var(--portal-success);position:relative;z-index:1;filter:drop-shadow(0 4px 8px rgba(25,135,84,.3))}.modal-content h2{font-size:28px;font-weight:700;color:var(--portal-gray-900);margin-bottom:12px;letter-spacing:-.5px}.modal-content p{color:var(--portal-gray-600);margin-bottom:32px;font-size:16px;line-height:1.6}.modal-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.modal-actions .btn{min-width:160px;font-weight:600}.modal-actions .btn-primary{background:linear-gradient(135deg,var(--portal-success) 0%,#20c997 100%);border:none;box-shadow:0 4px 14px rgba(25,135,84,.4)}.modal-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(25,135,84,.5)}.modal-actions .btn-outline{border-color:var(--portal-gray-300);background:#fff}.modal-actions .btn-outline:hover{background:var(--portal-gray-100);border-color:var(--portal-gray-400)}@media (max-width:768px){.portal-container{padding:24px 16px}.portal-login-box{padding:32px 24px}.portal-form{padding:24px}.portal-form-header{flex-direction:column;gap:16px}.portal-form-header h1{padding-right:0;font-size:24px}.back-btn{align-self:flex-start}.photo-upload-grid{grid-template-columns:1fr}.portal-actions{grid-template-columns:1fr}.logout-link{position:static;margin-top:16px}.portal-header{padding-top:0}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}.ai-generate-section{flex-direction:column;align-items:flex-start}.portal-intro-box{flex-direction:column;text-align:center}}@media (max-width:480px){.portal-header h1{font-size:28px}.portal-action-card{padding:24px 20px}.action-icon{width:64px;height:64px}.action-icon i{font-size:26px}}