body{margin:0;padding:0}.app-container{width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;background-color:#f0f0f0;padding:40px 20px;min-height:100vh}h1{color:#333;margin-bottom:32px;font-size:24px;font-weight:400;text-align:center}.drop-zone{min-width:300px;min-height:200px;flex-shrink:0;border:2px dashed #ccc;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:white;transition:border-color .3s ease;cursor:pointer;margin-bottom:32px}.drop-zone:hover{transform:translateY(-5px);border-color:#2196f3;box-shadow:0 12px 48px #2196f333}.drop-zone.dragging{border-color:#2196f3;background-color:#2196f30d}.drop-zone h1{font-size:22px;color:#2196f3;font-weight:700;margin-bottom:18px;margin-top:0}.icon{font-size:64px;margin-bottom:24px;color:#8e9eab;transition:all .3s ease}.drop-zone:hover .icon{color:#2196f3;transform:scale(1.1)}.drop-zone p{margin:0;text-align:center;color:#333;font-size:16px}.drop-zone .sub-text{margin-top:8px;color:#666;font-size:14px}.result-container{width:100%;max-width:800px;margin:40px 0;flex-shrink:0;background:white;border-radius:8px;padding:20px;box-shadow:0 2px 8px #0000001a;position:relative;display:flex;flex-direction:column;align-items:center}.code-block{position:relative;width:100%;max-width:100%;background:#2d2d2d;color:#d4d4d4;padding:24px 24px 24px 60px;border-radius:8px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:14px;line-height:1.6;margin:0 0 18px;box-shadow:0 2px 8px #00000026;white-space:pre;box-sizing:border-box;height:auto;max-height:70vh;overflow:auto}.code-block:before{content:"";position:absolute;left:0;top:0;bottom:0;width:45px;border-radius:8px 0 0 8px;z-index:1}.code-block code{display:block;counter-reset:line}.code-block code>div{counter-increment:line;position:relative;padding-left:40px;min-height:24px}.code-block code>div:before{content:counter(line);position:absolute;left:-50px;width:30px;text-align:right;color:#858585;padding-right:10px;font-size:12px;-webkit-user-select:none;user-select:none}.copy-button{background:#2196f3;color:#fff;border:none;padding:10px 22px;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:background .3s,box-shadow .3s;box-shadow:0 2px 8px #2196f31f;margin-top:16px;position:sticky;bottom:0;z-index:10}.copy-button:hover{background:#1976d2;box-shadow:0 4px 16px #2196f32e}.toast{position:fixed;top:32px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#ff4b2b 0%,#ff416c 100%);color:#fff;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:500;box-shadow:0 8px 32px #ff4b2b33;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;transition:all .3s ease;opacity:1;animation:slideDown .3s ease}.toast.success{background:linear-gradient(135deg,#00b09b 0%,#96c93d 100%)}.toast.error{background:linear-gradient(135deg,#ff416c 0%,#ff4b2b 100%)}.dart-keyword{color:#569cd6}.dart-class,.dart-type{color:#4ec9b0}.dart-string{color:#ce9178}.dart-comment{color:#6a9955;font-style:italic}.dart-property{color:#9cdcfe}.dart-number{color:#b5cea8}.dart-package{color:#ce9178}@keyframes slideUp{0%{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes slideDown{0%{transform:translate(-50%,-100%);opacity:0}to{transform:translate(-50%);opacity:1}}.github-link{position:fixed;top:20px;right:20px;z-index:100;opacity:.8;transition:opacity .3s}.github-link:hover{opacity:1}
