@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";
:root{--primary-blue:#0a1c44;--accent-cobalt:#0d64e1;--accent-cyan:#2bc0d2;--surface-light:#f8f9fb;--text-main:#121212;--text-muted:#5f6368;--sidebar-width:380px;--sidebar-bg:#fff;--sidebar-border:#eaebef;--workspace-bg:#f0f2f5;--card-shadow:0 20px 40px #0a1c4414;--input-bg:#f1f3f4;--input-border:#dadce0;--input-focus:var(--accent-cobalt);--font-brand:"Plus Jakarta Sans", sans-serif;--font-ui:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--theme-bg:var(--workspace-bg);--theme-surface:#fff;--theme-text:var(--text-main);--theme-text-muted:var(--text-muted);--theme-border:var(--sidebar-border)}body.dark-theme{--sidebar-bg:#1a1a2e;--sidebar-border:#2a2a40;--workspace-bg:#0f0f1a;--input-bg:#252540;--input-border:#3a3a55;--theme-bg:#0f0f1a;--theme-surface:#1a1a2e;--theme-text:#e8eaf0;--theme-text-muted:#8b8fa8;--theme-border:#2a2a40;--card-shadow:0 20px 50px #00000080;--text-main:#e8eaf0;--text-muted:#8b8fa8}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);background-color:var(--theme-bg);color:var(--theme-text);line-height:1.5;transition:background-color .35s,color .35s;overflow-x:hidden}.app-container{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);z-index:10;flex-direction:column;transition:background-color .35s,border-color .35s;display:flex}.sidebar-header{border-bottom:1px solid var(--theme-border);align-items:center;gap:12px;padding:24px;display:flex}.logo-icon{width:32px;height:32px}.sidebar-title{font-family:var(--font-brand);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.sidebar-title span{color:var(--accent-cobalt)}.sidebar-menu{flex-direction:column;flex:1;gap:32px;padding:24px;display:flex;overflow-y:auto}.menu-section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--theme-text-muted);margin-bottom:12px;font-size:.75rem;font-weight:600}.tab-btn{width:100%;font-family:var(--font-ui);color:var(--theme-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;margin-bottom:4px;padding:12px 16px;font-size:.95rem;font-weight:500;transition:all .2s;display:flex}.tab-btn:hover{background:#0d64e114}.tab-btn.active{color:var(--accent-cobalt);background:#0d64e11f}.tab-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:20px;height:20px}.control-group{margin-bottom:16px}.control-label{color:var(--theme-text-muted);margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.control-input{background-color:var(--input-bg);border:1px solid var(--input-border);width:100%;font-family:var(--font-ui);color:var(--theme-text);border-radius:6px;padding:10px 12px;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.control-input:focus{border-color:var(--input-focus);outline:none;box-shadow:0 0 0 3px #0d64e126}textarea.control-input{resize:vertical;min-height:80px;font-family:inherit}.main-display{flex-direction:column;flex:1;display:flex;position:relative}.top-toolbar{border-bottom:1px solid var(--theme-border);background-color:var(--theme-surface);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;height:70px;padding:0 32px;transition:background-color .35s,border-color .35s;display:flex}.toolbar-title{font-family:var(--font-brand);font-size:1.1rem;font-weight:600}.toolbar-actions{align-items:center;gap:10px;display:flex}.theme-toggle-btn{border:1px solid var(--theme-border);cursor:pointer;width:40px;height:40px;color:var(--theme-text);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-toggle-btn:hover{background:var(--input-bg)}.theme-toggle-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:18px;height:18px}.btn{font-family:var(--font-ui);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary{background-color:var(--accent-cobalt);color:#fff}.btn-primary:hover{background-color:#0b51b8;transform:translateY(-1px)}.btn-secondary{border:1px solid var(--theme-border);color:var(--theme-text);background-color:#0000}.btn-secondary:hover{background-color:var(--input-bg)}.btn-word{color:#fff;background-color:#2b579a}.btn-word:hover{background-color:#1e3f73;transform:translateY(-1px)}.content-viewport{background-color:var(--theme-bg);flex:1;justify-content:center;padding:40px;transition:background-color .35s;display:flex;position:relative;overflow:auto}.tab-pane{width:100%;max-width:1000px;animation:.3s fadeIn;display:none}.tab-pane.active{flex-direction:column;align-items:center;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card-scene{perspective:1500px;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:420px;display:flex}.card-wrapper{width:600px;height:340px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform-origin:50%;cursor:pointer;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);position:relative}.card-wrapper.is-flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:16px;flex-direction:column;width:100%;height:100%;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 2px 4px #0a1c440a,0 8px 16px #0a1c440f,0 24px 48px #0a1c441a}.card-front{color:#121212;background:linear-gradient(160deg,#fff 0%,#f8faff 40%,#f0f4ff 100%)}.card-front:before{content:"";pointer-events:none;z-index:1;background-image:radial-gradient(circle at 85% 15%,#0d64e10a 0%,#0000 50%),radial-gradient(circle at 15% 85%,#2bc0d20a 0%,#0000 50%);width:100%;height:100%;position:absolute;top:0;left:0}.card-front:after{content:"";z-index:2;background:linear-gradient(90deg,#0a1c44 0%,#0d64e1 50%,#2bc0d2 100%);width:100%;height:4px;position:absolute;bottom:0;left:0}.card-front-content{z-index:3;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.card-brand-center{flex-direction:column;align-items:center;gap:16px;display:flex}.card-logo{filter:drop-shadow(0 2px 8px #0a1c4414);width:auto;height:52px}.card-wordmark{font-family:var(--font-brand);letter-spacing:-.03em;color:#0a1c44;font-size:2.4rem;font-weight:800}.card-wordmark span{color:#0d64e1}.card-front-footer{z-index:3;justify-content:space-between;align-items:flex-end;padding:24px 30px 28px;display:flex;position:relative}.card-brand-subtext{letter-spacing:.3em;color:#8b92a0;text-transform:uppercase;font-size:.6rem;font-weight:600}.card-brand-email{color:#8b92a0;font-size:.72rem;font-weight:500}.card-back{color:#121212;background:linear-gradient(165deg,#fff 0%,#fafbff 60%,#f3f6fc 100%);border:1px solid #0a1c4414;justify-content:space-between;padding:32px 36px;transform:rotateY(180deg)}.card-back:after{content:"";z-index:2;background:linear-gradient(90deg,#0a1c44 0%,#0d64e1 50%,#2bc0d2 100%);width:100%;height:4px;position:absolute;bottom:0;left:0}.card-back-top{justify-content:space-between;align-items:flex-start;display:flex}.card-back-logo{opacity:.9;width:auto;height:32px}.card-holder-info{text-align:right}.card-holder-name{font-family:var(--font-brand);color:#0a1c44;margin-bottom:2px;font-size:1.3rem;font-weight:700;line-height:1.2}.card-holder-title{color:var(--accent-cobalt);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:500}.card-divider{background:linear-gradient(90deg,#0d64e133,#0000000f,#0d64e133);width:100%;height:1px;margin:0}.card-back-bottom{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.card-contact-list{flex-direction:column;flex:1;gap:10px;display:flex}.contact-item{align-items:center;gap:10px;display:flex}.contact-icon{width:15px;height:15px;stroke:var(--accent-cobalt);flex-shrink:0}.contact-text{color:#5f6368;font-size:.78rem;font-weight:500;line-height:1.3}.card-qr-area{border:1px solid var(--sidebar-border);background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;padding:4px;display:flex;box-shadow:0 2px 8px #0a1c440f}.card-qr-area canvas,.card-qr-area img{border-radius:4px;width:100%!important;height:100%!important}.qr-placeholder{color:#c0c4cc;text-align:center;border:1px dashed #ddd;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;font-size:.55rem;font-weight:500;display:flex}.flip-instruction{color:var(--theme-text-muted);align-items:center;gap:8px;margin-top:40px;font-size:.85rem;display:flex}.flip-instruction svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.hologram-overlay{pointer-events:none;z-index:10;background:linear-gradient(115deg,#0000 20%,#ffffff59 30%,#0000 40%);width:100%;height:100%;transition:transform .1s;position:absolute;top:0;left:0;transform:translate(-100%)}.card-wrapper:hover .hologram-overlay{animation:2.5s ease-in-out infinite shine}@keyframes shine{0%{transform:translate(-150%)skew(-20deg)}to{transform:translate(150%)skew(-20deg)}}.letterhead-container{flex-direction:column;align-items:center;gap:0;width:100%;padding:0;display:flex}.format-toolbar{z-index:20;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:24px;padding:8px 16px;transition:background-color .35s,border-color .35s,box-shadow .2s;display:flex;position:sticky;top:0;box-shadow:0 4px 16px #00000014}.format-toolbar.is-stuck{border-radius:0 0 10px 10px;box-shadow:0 6px 20px #0000001f}.format-toolbar .toolbar-divider{background-color:var(--theme-border);width:1px;height:24px;margin:0 6px}.format-btn{width:34px;height:34px;color:var(--theme-text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:.9rem;font-weight:500;transition:all .15s;display:flex;position:relative}.format-btn:hover{background:#0d64e114}.format-btn.active{color:var(--accent-cobalt);background:#0d64e126}.format-btn svg{stroke:currentColor;fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.format-label{color:var(--theme-text-muted);letter-spacing:.05em;text-transform:uppercase;margin-right:6px;font-size:.7rem;font-weight:600}.format-select{border:1px solid var(--theme-border);background:var(--input-bg);color:var(--theme-text);font-family:var(--font-ui);cursor:pointer;border-radius:5px;outline:none;padding:4px 8px;font-size:.8rem;transition:border-color .2s}.format-select:focus{border-color:var(--accent-cobalt)}.a4-sheet{color:#121212;background:#fff;width:210mm;min-height:297mm;padding:20mm;font-family:Times New Roman,Times,serif;font-size:11pt;line-height:1.6;position:relative;box-shadow:0 10px 30px #0000001a}.letter-header{border-bottom:2px solid #0a1c44;justify-content:space-between;align-items:flex-end;margin-bottom:8mm;padding-bottom:8mm;display:flex}.header-brand{align-items:center;gap:12px;display:flex}.header-logo{width:auto;height:36px}.header-company-info{flex-direction:column;display:flex}.header-title-main{font-family:var(--font-brand);color:#0a1c44;font-size:1.5rem;font-weight:800;line-height:1}.header-title-main span{color:#0d64e1}.header-tagline{font-family:var(--font-ui);color:#5f6368;letter-spacing:.05em;margin-top:4px;font-size:.75rem}.header-meta{text-align:right;font-family:var(--font-ui);color:#5f6368;font-size:8pt;line-height:1.4}.letter-metadata-block{font-family:var(--font-ui);justify-content:space-between;margin-bottom:8mm;font-size:10pt;display:flex}.letter-recipient strong{color:#0a1c44;font-size:11pt}.letter-ref-date{text-align:right}.letter-subject-block{margin-bottom:6mm;font-size:12pt;font-weight:700;text-decoration:underline}.letter-body{text-align:justify;min-height:100px;margin-bottom:10mm}.letter-body p{margin-bottom:1em}.letter-body:focus{outline-offset:4px;border-radius:4px;outline:2px solid #0d64e140}.letter-signoff{justify-content:space-between;align-items:flex-end;margin-top:10mm;display:flex}.signature-title{margin-bottom:12mm}.signature-name{font-weight:700;text-decoration:underline}.signature-sub{font-size:10pt;font-family:var(--font-ui);color:#5f6368}.letter-footer-meta{font-family:var(--font-mono);color:#a0aab2;border-top:1px solid #eaebef;justify-content:space-between;padding-top:5mm;font-size:7pt;display:flex;position:absolute;bottom:15mm;left:25mm;right:25mm}.brandbook-container{flex-direction:column;gap:32px;width:100%;display:flex}.brand-section-card{background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:12px;padding:32px;transition:background-color .35s,border-color .35s}.brand-section-title{font-family:var(--font-brand);align-items:center;gap:12px;margin-bottom:8px;font-size:1.4rem;font-weight:700;display:flex}.brand-section-title svg{width:24px;height:24px;stroke:var(--accent-cobalt);fill:none;stroke-width:2px}.brand-section-subtitle{color:var(--theme-text-muted);margin-bottom:32px;font-size:.95rem}.swatch-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.swatch-card{border:1px solid var(--theme-border);cursor:pointer;background:var(--theme-surface);border-radius:12px;transition:transform .2s,box-shadow .2s;overflow:hidden}.swatch-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #00000014}.swatch-color{width:100%;height:120px}.swatch-info{padding:20px}.swatch-name{color:var(--theme-text);margin-bottom:4px;font-size:1.1rem;font-weight:700;display:block}.swatch-hex{font-family:var(--font-mono);color:var(--theme-text-muted);background:var(--input-bg);border-radius:4px;margin-bottom:12px;padding:4px 8px;font-size:.85rem;display:inline-block}.swatch-desc{color:var(--theme-text-muted);font-size:.85rem;line-height:1.5}.font-row{border:1px solid var(--theme-border);background:var(--theme-surface);border-radius:12px;margin-bottom:16px;transition:background-color .35s,border-color .35s;display:flex;overflow:hidden}.font-meta{background:var(--input-bg);border-right:1px solid var(--theme-border);flex-direction:column;justify-content:center;width:200px;padding:24px;transition:background-color .35s;display:flex}.font-name-ui{margin-bottom:4px;font-size:1.1rem;font-weight:700}.font-tag{color:var(--theme-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.font-preview{flex:1;padding:24px 32px}.font-preview-main{color:var(--theme-text);margin-bottom:12px;font-size:1.6rem}.font-preview-desc{color:var(--theme-text-muted);font-size:.9rem}.dna-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.dna-card{background:var(--input-bg);border-radius:12px;padding:24px;transition:background-color .35s}.dna-card-title{align-items:center;gap:8px;margin-bottom:12px;font-size:1.1rem;font-weight:700;display:flex}.dna-card-desc{color:var(--theme-text-muted);font-size:.9rem;line-height:1.6}.copy-toast{color:#fff;opacity:0;z-index:100;background:#1a1a2e;border-radius:30px;align-items:center;gap:8px;padding:12px 24px;font-size:.9rem;font-weight:500;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%)translateY(100px);box-shadow:0 10px 30px #00000040}body.dark-theme .copy-toast{color:#121212;background:#f0f2f5}.copy-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toolbar-left{align-items:center;gap:12px;display:flex}.mobile-menu-btn{color:var(--theme-text);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;transition:background-color .2s;display:none}.mobile-menu-btn:hover{background-color:var(--input-bg)}.mobile-menu-btn svg{stroke:currentColor;stroke-width:2px;fill:none;width:24px;height:24px}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9;opacity:0;pointer-events:none;background:#0006;transition:opacity .3s;display:none;position:fixed;inset:0}.sidebar-overlay.active{opacity:1;pointer-events:auto;display:block}@media (max-width:1100px){.dna-grid{grid-template-columns:1fr}.font-row{flex-direction:column}.font-meta{border-right:none;border-bottom:1px solid var(--theme-border);width:100%}}@media (max-width:768px){.mobile-menu-btn{display:flex}.sidebar{z-index:10;width:300px;max-width:80vw;height:100vh;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 30px #00000040}.sidebar.active{transform:translate(0)}.top-toolbar{height:60px;padding:0 16px}.toolbar-title{font-size:.95rem}.content-viewport{padding:20px 12px}.card-scene{height:240px}.card-wrapper{transform:scale(calc(min(90vw, 600px) / 600px));transform-origin:50%}.card-wrapper.is-flipped{transform:rotateY(180deg) scale(calc(min(90vw, 600px) / 600px))}.a4-sheet{width:100%;min-height:auto;box-shadow:none;border:1px solid var(--theme-border);padding:8mm}.letter-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:4mm;padding-bottom:4mm}.header-meta{text-align:left;font-size:7pt}.letter-metadata-block{flex-direction:column;gap:12px;margin-bottom:4mm}.letter-ref-date{text-align:left}.letter-footer-meta{flex-direction:column;gap:6px;margin-top:15mm;padding-top:4mm;position:static}.swatch-grid{grid-template-columns:1fr}.format-toolbar{gap:2px;padding:6px 10px}.format-btn{width:30px;height:30px}.btn{padding:8px 12px;font-size:.8rem}}@media print{body,html{background:#fff!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}.sidebar,.top-toolbar,.format-toolbar,.copy-toast,.btn,.flip-instruction{display:none!important}.app-container,.main-display,.content-viewport{width:auto!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.tab-pane{display:none!important}.tab-pane.active{width:auto!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}#print-sheet{box-shadow:none!important;width:auto!important;min-height:257mm!important;margin:0!important;padding:0!important;position:relative!important}.letter-footer-meta{position:absolute!important;bottom:0!important;left:0!important;right:0!important}@page{size:A4;margin:20mm}}.login-viewport{background:radial-gradient(circle at 10% 20%, var(--primary-blue) 0%, #050b1a 100%);z-index:9999;width:100vw;height:100vh;font-family:var(--font-ui);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;top:0;left:0}.login-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:center;background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;width:100%;max-width:420px;padding:40px 32px;transition:transform .3s,opacity .3s;box-shadow:0 24px 48px #0006}body.dark-theme .login-viewport{background:radial-gradient(circle at 10% 20%,#050b1a 0%,#02040a 100%)}.login-logo{filter:drop-shadow(0 0 12px #0d64e14d);width:64px;height:auto;margin-bottom:16px}.login-title{font-family:var(--font-brand);color:#fff;margin-bottom:4px;font-size:2rem;font-weight:800}.login-title span{color:var(--accent-cobalt)}.login-subtitle{color:var(--accent-cyan);text-transform:uppercase;letter-spacing:2px;margin-bottom:32px;font-size:.9rem;font-weight:600}.sso-divider{text-align:center;color:#fff6;align-items:center;margin:24px 0;font-size:.85rem;display:flex}.sso-divider:before,.sso-divider:after{content:"";border-bottom:1px solid #ffffff1a;flex:1}.sso-divider:not(:empty):before{margin-right:.5em}.sso-divider:not(:empty):after{margin-left:.5em}.btn-sso{color:#1f1f1f;background:#fff;border:1px solid #dadce0;transition:background .2s}.btn-sso:hover{color:#000;background:#f8f9fa}.sso-icon{width:18px;height:18px;margin-right:8px}.alert-message{text-align:left;border-radius:8px;margin-bottom:20px;padding:12px;font-size:.85rem;line-height:1.4}.alert-message.error{color:#ff8a80;background:#ea43351a;border:1px solid #ea43354d}.user-badge{color:var(--accent-cobalt);background:#0d64f11a;border:1px solid #0d64f133;border-radius:20px;align-items:center;margin-right:8px;padding:6px 12px;font-size:.8rem;font-weight:500;display:inline-flex}body.dark-theme .user-badge{color:var(--accent-cyan);background:#2bc0d21a;border:1px solid #2bc0d233}
