*,*::before,*::after{box-sizing:border-box}*{margin:0}body{line-height:1.5}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}html{height:100%;background:#eee}.layout{display:grid;min-height:100%;grid-template-rows:auto 1fr auto;gap:25px}.layout header{display:flex;align-items:center;justify-content:space-between;padding:25px;background:#fff;border-bottom:1px solid #ccc}.layout .main-content{padding:25px;max-width:1300px;min-width:600px;margin:0 auto;background:#fff;border:1px solid #ccc}.layout footer{padding:25px;display:flex;align-items:center;justify-content:center;gap:25px;background:#fff;border-top:1px solid #ccc}.index h3{margin:10px 0}.index .actor{border:1px solid #ccc;border-radius:6px;padding:10px;background:#f5f5f5}.index .messages{list-style:none;padding:0}.index .messages p{margin-bottom:1em;padding:0.7em;border-radius:4px}.index .messages p.success{background:#e3fdd7;color:#102010}.index .messages p.error{background:#f2dede;color:#a94442}.index .info-note{background-color:#e8f4fd;padding:0.8em;border-radius:4px;margin-top:1em;font-size:0.9em;border-left:4px solid #2196f3}.index .oauth-form{margin-top:1em}.index .oauth-form .form-group{margin-bottom:1em}.index .oauth-form label{font-weight:bold;margin-bottom:0.2em;display:block}.index .oauth-form .form-control{width:100%;padding:0.4em;border:1px solid #bbb;border-radius:4px;box-sizing:border-box;font-size:1em}.index .oauth-form .errorlist{display:none}.index .oauth-form .error-field{border-color:#a94442;border-width:2px;background-color:#fff8f8}.index .oauth-form .btn{background:#1976d2;color:#fff;border:none;padding:0.5em 1.5em;border-radius:3px;cursor:pointer;font-size:1em}.index .oauth-form .btn:hover{background:#1565c0}.oauth-authorize{max-width:800px;margin:0 auto;padding:2rem}.oauth-authorize .authorization-container{background-color:#f9f9f9;border-radius:8px;padding:2rem;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.oauth-authorize .authorization-container h1{color:#333;margin-bottom:1.5rem;font-size:1.8rem}.oauth-authorize .lead{font-size:1.2rem;margin-bottom:1.5rem}.oauth-authorize .scope-explanation{background-color:#fff;border-radius:6px;padding:1.5rem;margin-bottom:2rem;border-left:4px solid #4285f4}.oauth-authorize .scope-explanation h2{font-size:1.4rem;margin-bottom:1rem;color:#4285f4}.oauth-authorize .scope-explanation ul{margin:1rem 0 1rem 1.5rem}.oauth-authorize .scope-explanation li{margin-bottom:0.5rem}.oauth-authorize .security-note{background-color:#fff8e1;padding:1rem;border-radius:4px;margin-top:1.5rem;font-size:0.9rem;border-left:4px solid #ffb300}.oauth-authorize .authorize-actions{display:flex;justify-content:flex-end;margin-top:2rem}.oauth-authorize .authorize-actions input[type="submit"]{margin-left:1rem;padding:0.6rem 1.2rem;border-radius:4px;border:none;font-size:1rem;cursor:pointer}.oauth-authorize .authorize-actions input[name="allow"]{background-color:#4285f4;color:white}.oauth-authorize .authorize-actions input[name="allow"]:hover{background-color:#3367d6}.oauth-authorize .authorize-actions input[value="Cancel"]{background-color:#f5f5f5;color:#333}.oauth-authorize .authorize-actions input[value="Cancel"]:hover{background-color:#e0e0e0}.oauth-error{max-width:800px;margin:0 auto;padding:2rem}.oauth-error .error-container{background-color:#f9f9f9;border-radius:8px;padding:2rem;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.oauth-error .error-container h1{color:#d32f2f;margin-bottom:1.5rem;font-size:1.8rem}.oauth-error .error-message{display:flex;margin-bottom:2rem;background-color:#fff;border-radius:6px;padding:1.5rem;border-left:4px solid #d32f2f}.oauth-error .error-icon{flex:0 0 auto;margin-right:1.5rem;color:#d32f2f}.oauth-error .error-details{flex:1 1 auto}.oauth-error .error-details h2{font-size:1.4rem;margin-bottom:0.5rem;color:#d32f2f;text-transform:capitalize}.oauth-error .error-details p{margin-bottom:1.5rem}.oauth-error .error-help{background-color:#f5f5f5;border-radius:4px;padding:1rem;margin-top:1rem}.oauth-error .error-help h3{font-size:1.1rem;margin-bottom:0.5rem;color:#333}.oauth-error .error-help ul{margin:0.5rem 0 0.5rem 1.5rem}.oauth-error .error-help li{margin-bottom:0.5rem}.oauth-error .error-actions{display:flex;justify-content:center;margin-top:2rem}.oauth-error .btn{padding:0.6rem 1.2rem;border-radius:4px;border:none;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block}.oauth-error .btn.btn-primary{background-color:#4285f4;color:white}.oauth-error .btn.btn-primary:hover{background-color:#3367d6}.oauth-error .error-more-info{margin-top:2rem;font-size:0.9rem;text-align:center;color:#666}.oauth-token-exchange{max-width:800px;margin:0 auto;padding:2rem}.oauth-token-exchange .token-container{background-color:#f9f9f9;border-radius:8px;padding:2rem;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.oauth-token-exchange .token-container h1{color:#333;margin-bottom:1.5rem;font-size:1.8rem}.oauth-token-exchange .token-container h2{font-size:1.4rem;margin-top:2rem;margin-bottom:1rem;border-bottom:1px solid #eee;padding-bottom:0.5rem}.oauth-token-exchange .token-container h3{font-size:1.2rem;margin-bottom:0.75rem;margin-top:1.5rem}.oauth-token-exchange .token-container h4{font-size:1rem;margin-bottom:0.5rem;margin-top:1rem;color:#555}.oauth-token-exchange .code-section,.oauth-token-exchange .token-exchange-section,.oauth-token-exchange .token-usage-section{margin-bottom:2rem}.oauth-token-exchange .code-container,.oauth-token-exchange .state-container{background-color:#fff;border-radius:6px;padding:1.2rem;margin-top:0.75rem;box-shadow:0 1px 3px rgba(0,0,0,0.05)}.oauth-token-exchange .code-container pre,.oauth-token-exchange .state-container pre{background-color:#f5f5f5;border-radius:3px;padding:0.75rem;overflow-x:auto;font-family:monospace;margin:0.5rem 0;word-break:break-all}.oauth-token-exchange .alert{padding:0.8rem 1rem;border-radius:4px;margin:1rem 0}.oauth-token-exchange .alert.alert-warning{background-color:#fff8e1;border-left:4px solid #ffb300;color:#775500}.oauth-token-exchange .token-error{background-color:#ffebee;border-radius:6px;padding:1.5rem;margin-top:0.75rem;border-left:4px solid #d32f2f}.oauth-token-exchange .token-error .error-explanation{background-color:#fff;border-radius:4px;padding:1rem;margin-top:1.2rem}.oauth-token-exchange .token-error .error-explanation ul{margin-left:1.5rem;margin-bottom:1rem}.oauth-token-exchange .token-error .error-explanation ul li{margin-bottom:0.5rem}.oauth-token-exchange .token-success{background-color:#e8f5e9;border-radius:6px;padding:1.5rem;margin-top:0.75rem;border-left:4px solid #4caf50}.oauth-token-exchange .token-success .token-details{background-color:#fff;border-radius:4px;padding:1rem;margin-top:0.75rem}.oauth-token-exchange .token-success .token-details pre{background-color:#f5f5f5;border-radius:3px;padding:0.75rem;overflow-x:auto;font-family:monospace;margin:0.5rem 0;word-break:break-all}.oauth-token-exchange .token-success .token-details .raw-response{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed #ddd}.oauth-token-exchange .code-example{background-color:#f5f5f5;border-radius:3px;padding:1rem;overflow-x:auto;font-family:monospace;margin:0.75rem 0 1.5rem}.oauth-token-exchange .oauth-flow-explanation{background-color:#e3f2fd;border-radius:6px;padding:1.5rem;margin:2rem 0;border-left:4px solid #2196f3}.oauth-token-exchange .oauth-flow-explanation ol{margin-left:1.5rem;margin-bottom:1rem}.oauth-token-exchange .oauth-flow-explanation ol li{margin-bottom:0.5rem}.oauth-token-exchange .oauth-flow-explanation .security-note{background-color:#fff;border-radius:4px;padding:1rem;margin-top:1.2rem}.oauth-token-exchange .oauth-flow-explanation .security-note h3{color:#333;font-size:1.1rem;margin-bottom:0.75rem}.oauth-token-exchange .oauth-flow-explanation .security-note ul{margin-left:1.5rem}.oauth-token-exchange .oauth-flow-explanation .security-note ul li{margin-bottom:0.5rem}.oauth-token-exchange .navigation-links{display:flex;justify-content:center;margin-top:2rem;gap:1rem}.oauth-token-exchange .navigation-links .btn{padding:0.6rem 1.2rem;border-radius:4px;border:none;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block}.oauth-token-exchange .navigation-links .btn.btn-primary{background-color:#4285f4;color:white}.oauth-token-exchange .navigation-links .btn.btn-primary:hover{background-color:#3367d6}.oauth-token-exchange .navigation-links .btn.btn-secondary{background-color:#f5f5f5;color:#333}.oauth-token-exchange .navigation-links .btn.btn-secondary:hover{background-color:#e0e0e0}.oauth-callback{max-width:800px;margin:0 auto;padding:2rem}.oauth-callback .callback-container{background-color:#f9f9f9;border-radius:8px;padding:2rem;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.oauth-callback .callback-container h1{color:#333;margin-bottom:1.5rem;font-size:1.8rem}.oauth-callback .callback-container h2{font-size:1.4rem;margin-bottom:1rem}.oauth-callback .callback-container h3{font-size:1.1rem;margin-bottom:0.5rem;margin-top:1rem}.oauth-callback .callback-success{background-color:#e8f5e9;border-radius:6px;padding:1.5rem;margin-bottom:2rem;border-left:4px solid #4caf50}.oauth-callback .callback-error{background-color:#ffebee;border-radius:6px;padding:1.5rem;margin-bottom:2rem;border-left:4px solid #d32f2f}.oauth-callback .code-container,.oauth-callback .state-container{background-color:#fff;border-radius:4px;padding:1rem;margin-top:1rem}.oauth-callback .code-container pre,.oauth-callback .state-container pre{background-color:#f5f5f5;border-radius:3px;padding:0.75rem;overflow-x:auto;font-family:monospace;margin:0.5rem 0}.oauth-callback .code-note,.oauth-callback .state-note{font-size:0.9rem;color:#666;margin-top:0.5rem}.oauth-callback .oauth-flow-explanation{background-color:#e3f2fd;border-radius:6px;padding:1.5rem;margin:2rem 0;border-left:4px solid #2196f3}.oauth-callback .oauth-flow-explanation ol{margin-left:1.5rem;margin-bottom:1rem}.oauth-callback .oauth-flow-explanation ol li{margin-bottom:0.5rem}.oauth-callback .callback-actions{display:flex;justify-content:center;margin-top:2rem;gap:0.8rem}.oauth-callback .callback-actions .btn{padding:0.6rem 1.2rem;border-radius:4px;border:none;font-size:1rem;cursor:pointer;text-decoration:none}.oauth-callback .callback-actions .btn.btn-primary{background-color:#4285f4;color:white}.oauth-callback .callback-actions .btn.btn-primary:hover{background-color:#3367d6}.oauth-callback .callback-actions .btn.btn-secondary{background-color:#f5f5f5;color:#333}.oauth-callback .callback-actions .btn.btn-secondary:hover{background-color:#e0e0e0}
