:root{--coco-dark: #353a2e;--coco-olive: #525b47;--coco-sand: #cac1aa;--coco-mist: #ccccc3;--coco-white: #ffffff;--coco-border: #e6e3da;--coco-mist-soft: #f2f1ec;--coco-error-bg: #f6ece9;--coco-error-text: #7a3b32;--font-sans: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--shadow-soft: 0 10px 30px rgba(53, 58, 46, .08);--shadow-modal: 0 18px 48px rgba(53, 58, 46, .16)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-weight:400;background:var(--coco-white);color:var(--coco-dark);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{color:var(--coco-dark);font-weight:600;line-height:1.2;margin:0}h1{font-size:clamp(1.75rem,1.4rem + 1.6vw,2.5rem);font-weight:500}h2{font-size:1.5rem}h3{font-size:1.125rem}p{margin:0}a{color:var(--coco-dark)}.brand-logo{display:block;width:auto;max-width:220px;height:auto;margin:0 auto var(--space-3)}.brand-slogan{text-align:center;font-size:.75rem;font-weight:300;font-style:italic;letter-spacing:.08em;color:var(--coco-olive);margin:0 0 var(--space-5)}.topbar .brand-logo{max-width:150px;margin:0}.auth-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-5);background:var(--coco-white)}.auth-card{width:100%;max-width:420px;background:var(--coco-white);border:1px solid var(--coco-border);border-radius:var(--radius-lg);padding:var(--space-6)}.auth-card.wide{max-width:560px}.sub{text-align:center;color:var(--coco-olive);font-size:.95rem;margin:0 0 var(--space-5)}.page{max-width:860px;margin:0 auto;padding:var(--space-5)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--coco-border)}.topbar nav{display:flex;align-items:center;gap:var(--space-4);font-size:.9rem}.page-title{margin-bottom:var(--space-5)}.card{background:var(--coco-white);border:1px solid var(--coco-border);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-5)}.card h3{margin:0 0 var(--space-4)}label{display:block;font-size:.82rem;font-weight:600;color:var(--coco-dark);margin:var(--space-4) 0 var(--space-2)}input,select,textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--coco-dark);background:var(--coco-white);border:1px solid var(--coco-border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}input,select{min-height:48px;padding:0 var(--space-3)}textarea{min-height:84px;padding:var(--space-3);resize:vertical}input::placeholder,textarea::placeholder{color:#9a978c}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--coco-dark);box-shadow:0 0 0 3px #353a2e1f}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23525B47' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-6)}input:disabled,select:disabled,textarea:disabled{background:var(--coco-mist-soft);color:var(--coco-olive);cursor:not-allowed}.row{display:flex;gap:var(--space-3)}.row>div{flex:1;min-width:0}button{width:100%;min-height:48px;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);font-family:inherit;font-size:.95rem;font-weight:600;color:var(--coco-white);background:var(--coco-dark);border:1px solid var(--coco-dark);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--coco-olive);border-color:var(--coco-olive)}button:active:not(:disabled){background:var(--coco-dark)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--coco-olive);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--coco-white);color:var(--coco-dark);border:1px solid var(--coco-dark)}.btn-secondary:hover:not(:disabled){background:var(--coco-mist-soft);border-color:var(--coco-olive);color:var(--coco-dark)}a.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);font-weight:600;font-size:.95rem;color:var(--coco-white);background:var(--coco-dark);border:1px solid var(--coco-dark);border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease}a.btn:hover{background:var(--coco-olive);border-color:var(--coco-olive)}.link-btn{color:var(--coco-dark);text-decoration:none;cursor:pointer;background:none;border:none;font-size:.9rem;font-weight:500;padding:0;width:auto;min-height:0;margin:0}.link-btn:hover{color:var(--coco-olive);text-decoration:underline}.links{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-5);font-size:.88rem}.links a{color:var(--coco-dark);font-weight:500;text-decoration:none}.links a:hover{color:var(--coco-olive);text-decoration:underline}.topbar a{color:var(--coco-dark);text-decoration:none;font-weight:500}.topbar a:hover{color:var(--coco-olive)}.error{color:var(--coco-error-text);background:var(--coco-error-bg);border:1px solid #e4cfc9;border-radius:var(--radius-sm);font-size:.88rem;padding:var(--space-3);margin:var(--space-4) 0 0}.ok{color:var(--coco-dark);background:var(--coco-mist-soft);border:1px solid var(--coco-border);border-radius:var(--radius-sm);font-size:.88rem;padding:var(--space-3);margin:var(--space-4) 0 0}@media(max-width:480px){.auth-wrap{padding:var(--space-4)}.auth-card,.auth-card.wide{padding:var(--space-5);border-radius:var(--radius-md)}.row{flex-direction:column;gap:0}.topbar{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.links{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
