*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--primary:#2EBD85;--primary-light:#4ECB9A;--primary-soft:rgba(46,189,133,0.08);--bg-page:#F5F7FA;--bg-card:#FFFFFF;--text-main:#2C3E50;--text-light:#7F8C8D;--border-light:#ECF0F1;--shadow-sm:0 8px 20px rgba(0,0,0,0.02);--shadow-md:0 12px 28px rgba(0,0,0,0.04);--radius-card:28px;--radius-btn:40px;--transition:all 0.25s cubic-bezier(0.2,0,0,1)}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg-page);color:var(--text-main);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}
.app{max-width:480px;margin:0 auto;background:var(--bg-page);min-height:100vh;padding:0 0 24px;position:relative}
@media(min-width:768px){.app{max-width:1200px;padding:24px 32px}.feature-section{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:0}.feature-card{flex-direction:column;text-align:center;padding:28px 20px;margin-bottom:0}.feature-icon{margin-right:0;margin-bottom:20px;width:72px;height:72px}.feature-icon i{font-size:32px}.canvas-wrapper{max-width:700px;margin-left:auto;margin-right:auto}.toolbar,.self-desc-section,.submit-btn{max-width:700px;margin-left:auto!important;margin-right:auto!important}.toolbar{margin:0 auto 16px!important}.self-desc-section{margin:0 auto 16px!important}.submit-btn{margin:0 auto 20px!important;width:calc(100% - 40px)!important}}
.page{display:none;animation:fadeIn 0.3s ease}.page.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.hero{text-align:center;padding:32px 20px 16px}.logo-wrapper{width:80px;height:80px;margin:0 auto 16px;background:linear-gradient(145deg,#E8F8F1,#D4F0E3);border-radius:30px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.logo-icon{font-size:44px;color:var(--primary)}.app-name{font-size:32px;font-weight:700;letter-spacing:-0.5px;background:linear-gradient(135deg,#2EBD85,#1B9E6B);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px}.slogan{font-size:15px;color:var(--text-light);font-weight:400}
.feature-section{padding:0 20px}.feature-card{background:var(--bg-card);border-radius:24px;padding:20px 20px;margin-bottom:16px;display:flex;align-items:center;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:pointer;border:1px solid rgba(255,255,255,0.5);backdrop-filter:blur(2px)}.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--primary-soft)}.card-icon{width:60px;height:60px;background:var(--primary-soft);border-radius:20px;display:flex;align-items:center;justify-content:center;margin-right:18px;color:var(--primary);font-size:28px}.card-info h3{font-size:18px;font-weight:650;margin-bottom:6px}.card-info p{font-size:14px;color:var(--text-light)}.arrow-icon{margin-left:auto;color:#BDC3C7;font-size:16px;transition:var(--transition)}.feature-card:hover .arrow-icon{color:var(--primary);transform:translateX(4px)}
.footer-note{text-align:center;margin-top:32px;color:var(--text-light);font-size:13px}
.nav-bar{background:rgba(255,255,255,0.8);backdrop-filter:blur(20px);padding:14px 20px;display:flex;align-items:center;border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:10}.back-btn{font-size:24px;color:var(--primary);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;transition:var(--transition)}.back-btn:hover{background:var(--primary-soft)}.title{flex:1;font-size:18px;font-weight:600;text-align:center}.nav-placeholder{width:40px}
.upload-area{background:var(--bg-card);border:2px dashed #D0D9E0;border-radius:32px;padding:40px 24px;margin:20px;text-align:center;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.upload-area:hover{border-color:var(--primary);background:#FAFFFE;transform:scale(0.99)}.upload-area i{font-size:52px;color:var(--primary);margin-bottom:16px}.upload-area p{font-size:17px;font-weight:500;margin-bottom:6px}.upload-area small{color:var(--text-light)}
.file-list{margin:0 20px 16px}.file-item{background:var(--bg-card);border-radius:20px;padding:14px 18px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}
.btn{padding:16px 24px;border-radius:var(--radius-btn);font-weight:600;font-size:16px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1;transition:var(--transition)}.btn-primary{background:var(--primary);color:white;box-shadow:0 10px 20px -5px rgba(46,189,133,0.3)}.btn-primary:hover{background:#259d6e;transform:translateY(-2px);box-shadow:0 14px 24px -6px rgba(46,189,133,0.4)}.btn-primary:disabled{opacity:0.5;transform:none;box-shadow:none}.btn-secondary{background:white;border:1.5px solid var(--border-light);color:var(--text-main)}.btn-secondary:hover{background:#F8FAFC;border-color:#CBD5E1}.action-buttons{display:flex;gap:12px;margin:0 20px 24px}
.btn-outline{background:transparent;border:1.5px solid var(--primary);color:var(--primary);flex:0 1 auto;padding:12px 24px}
.canvas-wrapper{margin:16px auto;border-radius:32px;overflow:hidden;box-shadow:var(--shadow-md);background:#FFFFFF;width:fit-content;max-width:100%}#drawingCanvas{display:block;width:100%;height:auto;background:white;touch-action:none;cursor:crosshair}
.toolbar{background:white;margin:0 16px 16px;padding:14px 12px;border-radius:28px;box-shadow:var(--shadow-sm)}.tool-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.tool-row:last-child{margin-bottom:0}.color-group,.size-group,.action-group{display:flex;gap:8px}.color-btn{width:44px;height:44px;border:none;background:none;border-radius:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.color-btn.active{background:var(--primary-soft);box-shadow:0 0 0 3px rgba(46,189,133,0.2)}.color-dot{width:30px;height:30px;border-radius:30px;border:2px solid white;box-shadow:0 2px 6px rgba(0,0,0,0.08)}.custom-dot{background:linear-gradient(135deg,#FF8A80,#82B1FF,#FFD54F,#B388FF);display:flex;align-items:center;justify-content:center;color:white;font-size:14px}.size-btn{min-width:52px;height:44px;border:none;background:#F1F5F9;border-radius:30px;font-weight:500;font-size:15px;cursor:pointer;transition:var(--transition);padding:0 8px}.size-btn.active{background:var(--primary);color:white}.tool-btn{width:44px;height:44px;border:none;background:#F1F5F9;border-radius:30px;font-size:20px;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center}.tool-btn.active{background:var(--primary-soft);color:var(--primary)}.tool-btn:hover{background:#E2E8F0}
@media(max-width:400px){.toolbar{margin:0 12px 16px;padding:12px 10px}.color-group,.size-group,.action-group{gap:6px}.color-btn{width:40px;height:40px}.color-dot{width:26px;height:26px}.size-btn{min-width:48px;height:40px;font-size:14px;padding:0 6px}.tool-btn{width:40px;height:40px;font-size:18px}}
.self-desc-section{background:white;margin:0 20px 16px;border-radius:24px;padding:18px;box-shadow:var(--shadow-sm)}.self-desc-header{display:flex;justify-content:space-between;font-weight:600;cursor:pointer}.self-desc-input{width:100%;border:1.5px solid #E2E8F0;border-radius:20px;padding:14px 16px;font-size:15px;background:#F8FAFC;margin-top:16px;resize:none;min-height:110px;transition:all 0.2s ease}.self-desc-input:focus{outline:none;border-color:var(--primary);background:#FFFFFF;box-shadow:0 0 0 4px rgba(46,189,133,0.12)}.char-count{text-align:right;font-size:13px;color:var(--text-light);margin-top:8px}
.submit-btn{background:var(--primary);color:white;border:none;border-radius:40px;padding:18px;font-size:18px;font-weight:600;width:calc(100% - 40px);margin:0 20px 20px;cursor:pointer;box-shadow:0 10px 24px -8px rgba(46,189,133,0.4);transition:var(--transition)}.submit-btn:hover{background:#259d6e;transform:translateY(-3px)}
.result-card{background:white;border-radius:28px;padding:24px;margin:20px;word-wrap:break-word;overflow-wrap:break-word;box-shadow:var(--shadow-md);line-height:1.7;animation:fadeIn 0.4s}.result-card pre{white-space:pre-wrap;font-family:inherit}
.dimensions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 16px;margin-bottom:24px}.dimension-item{text-align:center}.dimension-canvas{width:100px;height:100px;margin:0 auto 8px}.dimension-label{font-size:14px;font-weight:500;color:var(--text-main);margin-bottom:2px}.dimension-value{font-size:20px;font-weight:700;color:var(--primary)}.analysis-text{font-size:15px;color:var(--text-main);line-height:1.7;white-space:pre-wrap}
.msg{margin:12px 20px;padding:16px 20px;border-radius:40px;background:white;display:flex;align-items:center;gap:12px;border-left:6px solid;box-shadow:var(--shadow-sm)}.msg-progress{border-left-color:var(--primary);background:#F0FDF4}.msg-error{border-left-color:#F87171;background:#FEF2F2}.msg-success{border-left-color:var(--primary)}
.scope-selector{display:flex;align-items:center;gap:12px}.scope-label{font-size:15px;color:var(--text-main)}.scope-btn{background:white;border:1.5px solid var(--border-light);border-radius:30px;padding:10px 20px;font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition)}.scope-btn.active{background:var(--primary);color:white;border-color:var(--primary)}
