:root { font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; font-weight: 400; /* DigiID Inspired Colors (Light Theme Defaults) */ --digi-blue: #003366; --digi-accent: #007bff; --digi-text-light: #f0f0f0; --digi-text-dark: #222222; --digi-bg-dark: var(--digi-blue); --digi-bg-light: #ffffff; --digi-border-dark: #0059b3; --digi-border-light: #cccccc; --digi-address-bg-light: #e8f0fe; --digi-error-light: #d9534f; --digi-code-bg-light: #e8f0fe; /* Default to Light Theme */ color-scheme: light; color: var(--digi-text-dark); background-color: var(--digi-bg-light); font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } body { margin: 0; min-width: 320px; min-height: 100vh; } #root { max-width: 1280px; margin: 0 auto; padding: 0.5rem 2rem; text-align: center; } .app-container { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 20px 0 0; margin-top: 0; } .app-container h1 { margin: 0; margin-bottom: 1rem; color: var(--digi-blue); font-size: 1.8em; } /* Style the container that holds the changing views */ .view-container { width: 100%; /* Keep width if needed for centering the box */ display: flex; /* Keep display flex for centering */ justify-content: center; /* Center the box itself */ } h1 { font-size: 1.5em; line-height: 1.2; margin: 0; color: var(--digi-blue); } button { border-radius: 8px; border: 1px solid transparent; padding: 0.5em 1em; font-size: 1em; font-weight: 500; font-family: inherit; background-color: var(--digi-accent); color: var(--digi-text-light); cursor: pointer; transition: border-color 0.25s, background-color 0.25s; margin-top: 0.5rem; } button:hover { background-color: var(--digi-blue); border-color: var(--digi-blue); } button:focus, button:focus-visible { outline: 4px auto -webkit-focus-ring-color; } button:disabled { background-color: #555; /* Keep disabled distinct */ cursor: not-allowed; opacity: 0.6; } /* Box styling for views that need it */ .waiting-view, .success-view, .failed-view { padding: 1.5rem; border: 1px solid var(--digi-border-light); background-color: rgba(0, 0, 0, 0.02); border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; width: 390px; height: 560px; box-sizing: border-box; } .waiting-view { padding: 1rem; gap: 0.5rem; } .waiting-view h2 { margin-bottom: 0.1rem; } .waiting-view p { margin: 0.1rem 0; } .waiting-view img { margin: 0.5rem auto; } .waiting-view button { margin-top: 0.5rem; } .address { font-family: monospace; background-color: var(--digi-address-bg-light); color: var(--digi-text-dark); padding: 0.5em; border-radius: 4px; word-break: break-all; } .error-message { color: var(--digi-error-light); font-weight: bold; } code, .code-link a { background-color: var(--digi-code-bg-light); color: var(--digi-text-dark); padding: 0.2em 0.4em; border-radius: 3px; font-family: monospace; text-decoration: none; /* Remove underline from link part */ } .code-link a:hover { text-decoration: underline; } .description { font-size: 0.9em; line-height: 1.4; margin: 0; text-align: center; max-width: 100%; } .description ul { margin-top: 0.5em; padding-left: 20px; } .description li { margin-bottom: 0.3em; text-align: left; } /* Base styling ONLY for view transitions */ .view-box { opacity: 1; transform: scale(1); transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out; } /* Animation for success */ .success-view { /* Add specific styles if needed, e.g., border color */ border-color: #28a745; /* Green border for success */ } /* Checkmark Icon Styles & Animation */ .checkmark-icon { width: 80px; height: 80px; border-radius: 50%; display: block; stroke-width: 3; stroke: #28a745; /* Green checkmark */ stroke-miterlimit: 10; margin: 10px auto; box-shadow: inset 0px 0px 0px #ffffff; /* Start transparent */ animation: scale .3s ease-in-out .9s both, fill .4s ease-in-out .9s both; } .checkmark__circle { stroke-dasharray: 166; stroke-dashoffset: 166; stroke-width: 2; stroke-miterlimit: 10; stroke: #7ac142; fill: none; animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards; } .checkmark__check { transform-origin: 50% 50%; stroke-dasharray: 48; stroke-dashoffset: 48; animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards; } @keyframes stroke { 100% { stroke-dashoffset: 0; } } @keyframes scale { 0%, 100% { transform: none; } 50% { transform: scale3d(1.1, 1.1, 1); } } @keyframes fill { 100% { box-shadow: inset 0px 0px 0px 40px #7ac142; /* Fill effect */ } } /* Adjust QR code size to fit better in the box */ .qr-code { width: 240px; height: 240px; margin: 0 auto; } /* Ensure success animation fits */ .success-animation { width: 100px; height: 100px; margin: 0 auto; } /* Ensure waiting spinner fits */ .waiting-spinner { width: 40px; height: 40px; margin: 0 auto; } /* Ensure failed X mark fits */ .failed-x { width: 60px; height: 60px; margin: 0 auto; } /* Remove dark mode specific overrides */ /* @media (prefers-color-scheme: dark) { ... } */ /* Initial view without box */ .initial-view { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 120px; } .initial-view h2 { margin: 0; color: var(--digi-blue); font-size: 1.5em; } .initial-view .description { margin-top: 0.1rem; margin-bottom: 0.5rem; } .initial-view .qr-code { margin: 0.5rem auto; } .initial-view .waiting-text { margin: 0.25rem 0; } .initial-view button { margin-top: 0.25rem; } .signin-button { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.6rem 1.2rem; background-color: white; color: #1a237e; border: 1px solid var(--digi-border-light); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); transition: all 0.2s ease; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } .signin-button:hover { background-color: #f8f9fa; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .signin-button:disabled { opacity: 0.7; cursor: not-allowed; } .signin-button img { margin: 0; width: 20px; height: 20px; } .signin-button span { font-weight: 600; font-size: 0.95rem; letter-spacing: 0.3px; }