/* Rotate PDF | Prefix: prot- | Primary: #e64e4e | Light default / Dark mode */
:root {
    --prot-primary:       #e64e4e;
    --prot-primary-light: rgba(230,78,78,0.1);
    --prot-primary-dark:  #c73d3d;
    --prot-success:       #339966;
    --prot-warning:       #f59e0b;
    --prot-warning-light: rgba(245,158,11,0.12);
    --prot-danger-light:  rgba(230,78,78,0.1);
    --prot-bg:            #fff5f5;
    --prot-bg-elevated:   #ffffff;
    --prot-bg-secondary:  #f1f5f9;
    --prot-bg-tertiary:   #e2e8f0;
    --prot-text:          #1e293b;
    --prot-text-sec:      #475569;
    --prot-text-muted:    #64748b;
    --prot-border:        #d1d5db;
    --prot-shadow-sm:     0 1px 3px rgba(0,0,0,0.08);
    --prot-shadow-md:     0 4px 12px rgba(0,0,0,0.1);
    --prot-shadow-lg:     0 10px 24px rgba(0,0,0,0.12);
    --prot-shadow-prim:   0 4px 14px rgba(230,78,78,0.3);
    --prot-shadow-prim-hv:0 6px 20px rgba(230,78,78,0.4);
    --prot-radius-sm:6px; --prot-radius-md:12px; --prot-radius-lg:16px;
    --prot-radius-xl:24px; --prot-radius-full:9999px;
    --prot-transition:0.25s;
}
[data-theme="dark"] {
    --prot-primary:#f87171; --prot-primary-light:rgba(248,113,113,0.15); --prot-primary-dark:#ef4444;
    --prot-success:#4ade80; --prot-warning:#fbbf24; --prot-warning-light:rgba(251,191,36,0.15);
    --prot-danger-light:rgba(248,113,113,0.15);
    --prot-bg:#1a0a0a; --prot-bg-elevated:#1e293b; --prot-bg-secondary:#334155; --prot-bg-tertiary:#475569;
    --prot-text:#f1f5f9; --prot-text-sec:#cbd5e1; --prot-text-muted:#94a3b8;
    --prot-border:#334155;
    --prot-shadow-sm:0 1px 3px rgba(0,0,0,0.3); --prot-shadow-md:0 4px 12px rgba(0,0,0,0.4);
    --prot-shadow-lg:0 10px 24px rgba(0,0,0,0.5);
    --prot-shadow-prim:0 4px 14px rgba(248,113,113,0.2); --prot-shadow-prim-hv:0 6px 20px rgba(248,113,113,0.3);
}
*{box-sizing:border-box;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--prot-bg);color:var(--prot-text);line-height:1.6;margin:0;padding:0;transition:background-color var(--prot-transition),color var(--prot-transition);}
.prot-container{max-width:1000px;margin:0 auto;padding:2rem;}
.prot-header{text-align:center;margin-bottom:2rem;}
.prot-title-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;}
.prot-icon-wrapper{width:64px;height:64px;background:var(--prot-primary);border-radius:var(--prot-radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--prot-shadow-prim);flex-shrink:0;}
.prot-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;margin:0;color:var(--prot-primary);letter-spacing:-0.02em;}
.prot-description{font-size:1.05rem;color:var(--prot-text-sec);max-width:800px;margin:0 auto;line-height:1.75;}
.prot-description a{color:var(--prot-primary);text-decoration:none;font-weight:500;}
.prot-description a:hover{text-decoration:underline;}

.prot-main{background:var(--prot-bg-elevated);border-radius:var(--prot-radius-xl);box-shadow:var(--prot-shadow-lg);border:1px solid var(--prot-border);margin-bottom:2rem;overflow:visible;transition:background-color var(--prot-transition),border-color var(--prot-transition);}

/* Upload */
.prot-upload-section{padding:2.5rem;}
.prot-upload-area{border:2px dashed var(--prot-border);border-radius:var(--prot-radius-lg);padding:3.5rem 2rem;text-align:center;cursor:pointer;transition:all 0.3s ease;background:var(--prot-bg-secondary);position:relative;overflow:hidden;}
.prot-upload-area::before{content:'';position:absolute;inset:0;background:var(--prot-primary-light);opacity:0;transition:opacity 0.3s;}
.prot-upload-area:hover,.prot-upload-area.dragover{border-color:var(--prot-primary);transform:translateY(-2px);box-shadow:var(--prot-shadow-md);}
.prot-upload-area:hover::before,.prot-upload-area.dragover::before{opacity:1;}
.prot-upload-content{position:relative;z-index:1;}
.prot-upload-icon{color:var(--prot-primary);margin-bottom:1.25rem;transition:transform 0.3s;}
.prot-upload-area:hover .prot-upload-icon{transform:translateY(-6px);}
.prot-upload-title{font-size:1.4rem;font-weight:700;color:var(--prot-text);margin:0 0 0.5rem;}
.prot-upload-subtitle{color:var(--prot-text-muted);margin:0 0 1rem;}
.prot-badges{display:flex;gap:0.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:1rem;}
.prot-badge{background:var(--prot-primary-light);color:var(--prot-primary);padding:0.35rem 0.85rem;border-radius:var(--prot-radius-full);font-size:0.8rem;font-weight:600;}
.prot-upload-hint{display:inline-flex;align-items:center;gap:0.5rem;color:var(--prot-text-muted);font-size:0.875rem;}

/* File header */
.prot-file-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.75rem;padding:1rem 1.5rem;background:var(--prot-bg-secondary);border-bottom:1px solid var(--prot-border);}
.prot-file-info{display:flex;align-items:center;gap:0.5rem;font-size:0.875rem;font-weight:600;color:var(--prot-text);}
.prot-file-info svg{color:var(--prot-primary);flex-shrink:0;}
.prot-filename{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prot-page-chip{display:inline-flex;align-items:center;gap:0.3rem;padding:0.25rem 0.6rem;background:var(--prot-bg-elevated);border:1px solid var(--prot-border);border-radius:var(--prot-radius-full);font-size:0.75rem;color:var(--prot-text-sec);font-weight:500;}
.prot-page-chip svg{width:13px;height:13px;color:var(--prot-primary);}

.prot-container .prot-link-btn{background:none!important;border:none!important;color:var(--prot-primary)!important;font-size:0.82rem;font-weight:600;cursor:pointer;padding:0.35rem 0.6rem;border-radius:var(--prot-radius-sm);display:flex;align-items:center;gap:0.3rem;box-shadow:none!important;transform:none!important;}
.prot-container .prot-link-btn:hover{background:var(--prot-primary-light)!important;transform:none!important;}

/* Settings */
.prot-settings{padding:1.5rem 2rem;}
.prot-settings-label{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;font-weight:700;color:var(--prot-text);margin-bottom:0.875rem;text-transform:uppercase;letter-spacing:0.04em;}
.prot-settings-label svg{color:var(--prot-primary);width:16px;height:16px;}

/* Rotation picker */
.prot-rotation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;margin-bottom:0.5rem;}
.prot-container .prot-rot-btn{display:flex;flex-direction:column;align-items:center;gap:0.4rem;padding:1rem;border:2px solid var(--prot-border)!important;border-radius:var(--prot-radius-md)!important;background:var(--prot-bg-elevated)!important;color:var(--prot-text)!important;cursor:pointer;font-size:0.85rem;font-weight:600;transition:all 0.2s;box-shadow:none!important;transform:none!important;}
.prot-container .prot-rot-btn svg{color:var(--prot-text-muted);transition:color 0.2s;}
.prot-container .prot-rot-btn:hover{border-color:var(--prot-primary)!important;color:var(--prot-primary)!important;background:var(--prot-primary-light)!important;transform:none!important;box-shadow:none!important;}
.prot-container .prot-rot-btn:hover svg,.prot-container .prot-rot-btn.active svg{color:var(--prot-primary)!important;}
.prot-container .prot-rot-btn.active{border-color:var(--prot-primary)!important;background:var(--prot-primary-light)!important;color:var(--prot-primary)!important;}

/* Range */
.prot-range-toggle{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin-bottom:0.75rem;}
.prot-container .prot-range-btn{padding:0.55rem 0.5rem;border:2px solid var(--prot-border)!important;border-radius:var(--prot-radius-md)!important;background:var(--prot-bg-elevated)!important;color:var(--prot-text)!important;cursor:pointer;font-size:0.8rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:0.35rem;transition:all 0.2s;box-shadow:none!important;transform:none!important;}
.prot-container .prot-range-btn svg{width:15px;height:15px;color:var(--prot-text-muted);}
.prot-container .prot-range-btn:hover,.prot-container .prot-range-btn.active{border-color:var(--prot-primary)!important;background:var(--prot-primary-light)!important;color:var(--prot-primary)!important;transform:none!important;}
.prot-container .prot-range-btn.active svg,.prot-container .prot-range-btn:hover svg{color:var(--prot-primary)!important;}

.prot-range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:0.75rem;animation:prot-fadeIn 0.3s ease;}
.prot-range-group label{display:block;font-size:0.75rem;font-weight:700;color:var(--prot-text-muted);margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.04em;}
.prot-input{width:100%;padding:0.65rem 0.875rem;border:1px solid var(--prot-border);border-radius:var(--prot-radius-md);background:var(--prot-bg-elevated);color:var(--prot-text);font-size:0.95rem;font-weight:600;text-align:center;transition:border-color 0.2s;}
.prot-input:focus{outline:none;border-color:var(--prot-primary);box-shadow:0 0 0 3px var(--prot-primary-light);}

.prot-range-hint{font-size:0.78rem;color:var(--prot-text-muted);font-style:italic;margin:0.25rem 0 0;}

.prot-selection-summary{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:var(--prot-primary-light);border-radius:var(--prot-radius-md);font-size:0.85rem;color:var(--prot-primary);font-weight:500;margin-top:1rem;}
.prot-selection-summary svg{width:15px;height:15px;flex-shrink:0;}

/* Action bar */
.prot-action-bar{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid var(--prot-border);background:var(--prot-bg-secondary);}

/* Button resets */
.prot-container button,.prot-container a.prot-btn{background-color:transparent;color:inherit;box-shadow:none;transform:none;}
.prot-container button:hover,.prot-container a.prot-btn:hover{background-color:transparent;box-shadow:none;transform:none;}
.prot-container .prot-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.875rem 1.75rem;border-radius:var(--prot-radius-full);font-size:1rem;font-weight:600;cursor:pointer;transition:all 0.2s;text-decoration:none;border:none;}
.prot-container .prot-btn[disabled]{opacity:0.45;cursor:not-allowed;pointer-events:none;}
.prot-container .prot-btn-primary{background:var(--prot-primary)!important;color:#fff!important;box-shadow:var(--prot-shadow-prim)!important;}
.prot-container .prot-btn-primary:hover{background:var(--prot-primary-dark)!important;transform:translateY(-2px)!important;box-shadow:var(--prot-shadow-prim-hv)!important;}
.prot-container .prot-btn-secondary{background:var(--prot-bg-elevated)!important;color:var(--prot-text)!important;border:1px solid var(--prot-border)!important;box-shadow:none!important;}
.prot-container .prot-btn-secondary:hover{background:var(--prot-bg-secondary)!important;transform:none!important;box-shadow:none!important;}

/* Spinner */
.prot-processing-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;z-index:9000;backdrop-filter:blur(2px);}
.prot-processing-card{background:var(--prot-bg-elevated);border-radius:var(--prot-radius-xl);padding:2rem 2.5rem;text-align:center;box-shadow:0 25px 60px rgba(0,0,0,0.35);min-width:300px;max-width:380px;width:90%;border:1px solid var(--prot-border);}
.prot-progress-stages{display:flex;align-items:center;justify-content:center;margin-bottom:1.75rem;}
.prot-stage-dot{display:flex;flex-direction:column;align-items:center;gap:0.3rem;color:var(--prot-text-muted);transition:color 0.3s;}
.prot-stage-icon{width:20px;height:20px;padding:7px;background:var(--prot-bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 0.3s;box-sizing:content-box;}
.prot-stage-icon svg{width:14px;height:14px;display:block;}
.prot-stage-dot span{font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}
.prot-stage-dot.active .prot-stage-icon{background:var(--prot-primary);color:#fff;}
.prot-stage-dot.active{color:var(--prot-primary);}
.prot-stage-dot.done .prot-stage-icon{background:var(--prot-success);color:#fff;}
.prot-stage-dot.done{color:var(--prot-success);}
.prot-stage-connector{width:28px;height:2px;background:var(--prot-border);margin:0 0.25rem 1.1rem;flex-shrink:0;}
.prot-css-spinner{width:44px;height:44px;border:4px solid var(--prot-border);border-top-color:var(--prot-primary);border-radius:50%;animation:prot-spin 0.8s linear infinite;margin:0 auto 1.25rem;}
.prot-progress-bar-wrap{height:6px;background:var(--prot-border);border-radius:var(--prot-radius-full);overflow:hidden;margin-bottom:0.875rem;}
.prot-progress-bar-fill{height:100%;background:var(--prot-primary);width:0%;transition:width 0.4s ease;border-radius:var(--prot-radius-full);}
.prot-processing-status{font-size:0.9rem;font-weight:500;color:var(--prot-text);margin:0 0 0.25rem;}
.prot-progress-pct{font-size:0.82rem;color:var(--prot-text-muted);margin:0;}

/* Results */
.prot-results-section{padding:2.5rem;text-align:center;animation:prot-fadeIn 0.4s ease;}
.prot-results-header{margin-bottom:1.5rem;}
.prot-success-icon{width:72px;height:72px;background:var(--prot-success);border-radius:var(--prot-radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;color:#fff;}
.prot-results-header h2{font-size:1.75rem;color:var(--prot-text);margin:0 0 0.5rem;}
.prot-results-header p{color:var(--prot-text-muted);margin:0;}
.prot-result-stats{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem;padding:1.25rem;background:var(--prot-bg-secondary);border-radius:var(--prot-radius-lg);}
.prot-stat{text-align:center;}
.prot-stat-label{display:block;font-size:0.75rem;color:var(--prot-text-muted);margin-bottom:0.25rem;text-transform:uppercase;letter-spacing:0.05em;}
.prot-stat-value{font-size:1.2rem;font-weight:700;color:var(--prot-primary);}
.prot-results-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}

/* Error */
.prot-error{display:flex;align-items:flex-start;gap:0.75rem;background:var(--prot-danger-light);border:1px solid var(--prot-primary);padding:1rem 1.25rem;border-radius:var(--prot-radius-md);margin:1.25rem;}
.prot-error svg{color:var(--prot-primary);flex-shrink:0;margin-top:2px;}
.prot-error-title{font-weight:600;color:var(--prot-primary);margin:0 0 0.25rem;font-size:0.95rem;}
.prot-error-detail{color:var(--prot-primary);margin:0 0 0.5rem;font-size:0.875rem;opacity:0.9;}
.prot-error-contact{font-size:0.82rem;color:var(--prot-text-sec);margin:0;}
.prot-error-contact a{color:var(--prot-primary);font-weight:600;text-decoration:none;}

/* Related */
.prot-related-tools{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.25rem 1.5rem;background:var(--prot-bg-elevated);border-radius:var(--prot-radius-lg);margin-bottom:2rem;border:1px solid var(--prot-border);}
.prot-related-label{display:flex;align-items:center;gap:0.5rem;font-weight:600;color:var(--prot-text);font-size:0.875rem;}
.prot-related-label svg{color:var(--prot-primary);width:16px;height:16px;}
.prot-related-links{display:flex;flex-wrap:wrap;gap:0.5rem;}
.prot-related-link{display:inline-flex;align-items:center;gap:0.4rem;padding:0.5rem 1rem;background:var(--prot-bg-secondary);border-radius:var(--prot-radius-full);color:var(--prot-text-sec);text-decoration:none;font-size:0.875rem;font-weight:500;transition:all 0.2s;border:1px solid var(--prot-border);}
.prot-related-link:hover{background:var(--prot-primary);color:#fff;border-color:var(--prot-primary);transform:translateY(-2px);}
.prot-related-link svg{width:16px;height:16px;}

/* Info cards */
.prot-info-sections{display:flex;flex-direction:column;gap:1.5rem;}
.prot-info-card{background:var(--prot-bg-elevated);border-radius:var(--prot-radius-xl);padding:2rem;border:1px solid var(--prot-border);transition:background-color var(--prot-transition),border-color var(--prot-transition);}
.prot-info-card h2{display:flex;align-items:center;gap:0.75rem;font-size:1.25rem;color:var(--prot-text);margin:0 0 1.5rem;}
.prot-info-card h2 svg{color:var(--prot-primary);width:22px;height:22px;flex-shrink:0;}
.prot-steps{counter-reset:step;list-style:none;padding:0;margin:0 0 1.5rem;}
.prot-steps li{position:relative;padding-left:3.25rem;margin-bottom:1rem;counter-increment:step;color:var(--prot-text-sec);line-height:1.65;}
.prot-steps li::before{content:counter(step);position:absolute;left:0;top:0;width:2rem;height:2rem;background:var(--prot-primary);color:#fff;border-radius:var(--prot-radius-full);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.875rem;}
.prot-steps li:not(:last-child)::after{content:'';position:absolute;left:calc(1rem - 1px);top:2rem;bottom:0;width:2px;background:var(--prot-primary-light);}
.prot-steps li a{color:var(--prot-primary);text-decoration:none;}
.prot-tip{display:flex;align-items:flex-start;gap:0.75rem;padding:1rem 1.25rem;background:var(--prot-warning-light);border-radius:var(--prot-radius-md);font-size:0.875rem;color:var(--prot-text-sec);line-height:1.6;}
.prot-tip svg{color:var(--prot-warning);flex-shrink:0;margin-top:2px;}
.prot-tip a{color:var(--prot-warning);font-weight:600;text-decoration:none;}
.prot-faq-list{display:flex;flex-direction:column;gap:0.75rem;}
.faq-item{border:1px solid var(--prot-border);border-radius:var(--prot-radius-md);overflow:hidden;}
.faq-item:hover{border-color:var(--prot-primary);}
.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--prot-bg-secondary);border:none;cursor:pointer;font-size:0.975rem;font-weight:500;color:var(--prot-text);text-align:left;gap:12px;transition:background 0.2s;}
.faq-question span{flex:1;}
.faq-question svg{flex-shrink:0;color:var(--prot-primary);width:20px;height:20px;transition:transform 0.3s;}
.faq-item.open .faq-question svg{transform:rotate(180deg);}
.faq-item.open .faq-question{background:var(--prot-bg-elevated);border-bottom:1px solid var(--prot-border);}
.faq-answer{display:none;padding:1rem 1.25rem;background:var(--prot-bg-elevated);}
.faq-item.open .faq-answer{display:block;}
.faq-answer p{margin:0;color:var(--prot-text-sec);line-height:1.7;font-size:0.95rem;}
.faq-answer a{color:var(--prot-primary);text-decoration:none;}

@keyframes prot-spin{to{transform:rotate(360deg);}}
@keyframes prot-fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@media(max-width:768px){
    .prot-container{padding:1rem;}
    .prot-upload-section{padding:1.5rem;}
    .prot-settings{padding:1.25rem;}
    .prot-rotation-grid{grid-template-columns:repeat(3,1fr);}
    .prot-range-toggle{grid-template-columns:1fr 1fr;}
    .prot-range-inputs{grid-template-columns:1fr;}
    .prot-action-bar{flex-direction:column;padding:1.25rem;}
    .prot-btn{width:100%;}
    .prot-results-actions{flex-direction:column;}
    .prot-results-actions .prot-btn{width:100%;}
    .prot-related-tools{flex-direction:column;align-items:flex-start;}
    .prot-info-card{padding:1.5rem;}
}
@media(max-width:480px){.prot-title-row{flex-direction:column;}.prot-rotation-grid{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;}}
