*{margin:0;padding:0;box-sizing:border-box}button{border:none;background:none;padding:0;margin:0;font:inherit;cursor:pointer;outline:none;-webkit-appearance:none;appearance:none}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #10b981;--secondary-hover: #059669;--text-primary: #1f2937;--text-secondary: #6b7280;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--border-color: #e5e7eb;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius: 10px;--radius-sm: 6px;--accent-color: #f59e0b}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;color:var(--text-primary);background:linear-gradient(135deg,#e8eaf6,#e1bee7,#b3e5fc 50%,#c5e1f5);min-height:100vh;padding:2rem 1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.container{max-width:1200px;margin:0 auto}.skip-to-content{position:absolute;top:-40px;left:0;background:var(--primary-color);color:#fff;padding:8px 16px;text-decoration:none;z-index:1000;border-radius:0 0 4px;font-weight:600}.skip-to-content:focus{top:0}header{text-align:center;margin-bottom:4rem}header h1,header .site-title{font-size:2.75rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.03em;display:inline-flex;align-items:center;justify-content:center;gap:.75rem}.site-title-link{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;text-decoration:none;color:inherit;transition:opacity .2s ease}.site-title-link:hover{opacity:.8}.site-title-text{background:linear-gradient(135deg,#6366f1,#8b5cf6,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}.site-title-icon{width:80px;height:80px;stroke-width:1.8;color:#6366f1}.subtitle{font-size:.95rem;opacity:.75;font-weight:400;color:#1f2937b3;margin-top:.25rem}.breadcrumbs{margin-bottom:2rem;padding:0 1rem;text-align:center}.breadcrumbs-list{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.breadcrumb-item{display:flex;align-items:center;gap:.5rem}.breadcrumb-link{display:flex;align-items:center;gap:.375rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:color .2s ease;padding:.25rem 0}.breadcrumb-link:hover{color:var(--primary-color)}.breadcrumb-icon{width:16px;height:16px;stroke-width:2}.breadcrumb-separator{width:16px;height:16px;stroke-width:2;color:var(--text-secondary);opacity:.5}.breadcrumb-current{color:var(--text-primary);font-size:.875rem;font-weight:500}.templates-section-title{display:block;width:100%;max-width:none;font-size:1.75rem;font-weight:700;margin-top:2rem;margin-bottom:1.5rem;color:var(--text-primary);text-align:center;padding:0 1rem;box-sizing:border-box}.templates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.75rem;margin-bottom:2rem}.template-card-wrapper{position:relative}.template-card-badge{position:absolute;top:.75rem;right:.75rem;z-index:2;display:inline-block;padding:.25rem .6rem;font-size:.75rem;font-weight:600;line-height:1.3;color:var(--primary-color);background:var(--bg-primary);border:1px solid rgba(37,99,235,.4);border-radius:9999px;text-decoration:none;box-shadow:0 1px 3px #00000014;transition:background .2s,color .2s}.template-card-badge:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.category-page-title{margin-bottom:1.5rem}.category-page-description{max-width:800px;margin:0 auto 2rem;padding:0 1rem;font-size:1rem;line-height:1.6;color:var(--text-secondary);text-align:center}.template-card{background:var(--bg-primary);border-radius:var(--radius);box-shadow:0 2px 8px #00000014,0 1px 3px #0000000d;overflow:hidden;transition:all .3s ease;display:flex;flex-direction:column;position:relative;border:1px solid rgba(229,231,235,.8);min-height:400px}.template-card[data-template]{border-top:3px solid var(--template-color, var(--text-secondary))}.template-card:hover{transform:translateY(-4px);box-shadow:0 16px 24px -5px #00000026,0 8px 12px -3px #0000001a}.template-card-link{text-decoration:none;color:inherit;display:block}.template-card-link .template-card{cursor:pointer}.template-card:focus-within{outline:2px solid var(--primary-color);outline-offset:2px}.template-preview{padding:1.5rem 1.25rem;background:var(--bg-secondary);display:flex;flex-direction:column;align-items:flex-start;flex:1;min-height:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.template-icon-wrapper{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;position:relative}.template-card[data-template] .template-icon-wrapper{background:linear-gradient(135deg,color-mix(in srgb,var(--template-color) 35%,transparent),color-mix(in srgb,var(--template-color) 45%,transparent))}.template-icon{width:32px;height:32px;stroke-width:1.5;color:var(--text-primary)}.template-card[data-template] .template-icon{color:var(--template-color, var(--text-primary))}.template-preview h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary);text-align:center;width:100%;letter-spacing:-.01em}.template-description{font-size:.85rem;color:var(--text-secondary);margin:0 0 1rem;text-align:center;line-height:1.5;min-height:4.5em}.template-preview-image{width:100%;margin:0;padding:0;flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;box-sizing:border-box}.preview-img{width:100%;height:auto;object-fit:cover;object-position:top;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--border-color);margin:0;padding:0;display:block}.template-page{max-width:900px;margin:0 auto;background:var(--bg-primary);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2.5rem;margin-bottom:2rem}.template-page-header{text-align:center;margin-bottom:2rem}.template-page-header .template-icon-wrapper{margin:0 auto 1.5rem;width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0000000d,#0000001a)}.template-page[data-template] .template-page-header .template-icon-wrapper{background:linear-gradient(135deg,color-mix(in srgb,var(--template-color) 35%,transparent),color-mix(in srgb,var(--template-color) 45%,transparent))}.template-page-header .template-icon{width:40px;height:40px}.template-page h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.template-page h2{font-size:1.75rem;font-weight:700;margin-top:2.5rem;margin-bottom:1.25rem;color:var(--text-primary);text-align:center}.template-page-description{font-size:1.125rem;color:var(--text-secondary);line-height:1.7;margin:0 auto}.template-page-options{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.template-page-options .checkbox-label,.template-page-options .select-label{margin:0}.template-page-preview{margin-bottom:2rem;text-align:center}.template-page-preview .preview-img{max-width:100%;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.budget-preview-wrapper{text-align:left;max-width:600px;margin-left:auto;margin-right:auto}.budget-preview-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.budget-preview-table{width:100%;border-collapse:collapse;font-size:.9rem}.budget-preview-table th,.budget-preview-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);text-align:left}.budget-preview-table th{font-weight:700;background:var(--bg-secondary)}.budget-preview-table th:last-child,.budget-preview-table td:last-child{border-right:none}.budget-preview-table tr:last-child td{border-bottom:none}.budget-preview-achieved{text-align:center}.budget-preview-checkbox{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid var(--border-color);border-radius:3px;background:transparent;vertical-align:middle}.template-page-actions{text-align:center;padding-top:1.5rem;border-top:1px solid var(--border-color)}.template-page-actions .btn-print{min-width:200px;padding:1rem 2rem;font-size:1.125rem}.template-page .usage-steps{max-width:700px;margin:0 auto 1rem;padding-left:1.5rem;line-height:1.7;color:var(--text-secondary)}.template-page .usage-steps li{margin-bottom:.75rem}.template-page .benefits-list{list-style:none;padding:0;margin:0 auto 1rem;max-width:700px}.template-page .benefits-list li{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;line-height:1.6;color:var(--text-secondary)}.template-page .benefit-icon{flex-shrink:0;color:var(--color-success, #10b981)}.template-page .use-case{margin-bottom:1.5rem}.template-page .use-case h3{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.template-page .use-case p{margin:0;line-height:1.7;color:var(--text-secondary)}.template-page .faq-section .faq-item{margin-bottom:1.5rem}.template-page .faq-section .faq-item h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.template-page .faq-section .faq-item p{margin:0;line-height:1.7;color:var(--text-secondary)}.template-page .related-templates .related-links,.sudoku-page .related-templates .related-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:center}.template-page .related-templates .related-links a,.sudoku-page .related-templates .related-links a{color:var(--link-color, #2563eb);text-decoration:none;font-weight:500}.template-page .related-templates .related-links a:hover,.sudoku-page .related-templates .related-links a:hover{text-decoration:underline}.template-page .related-templates .related-links--cards,.sudoku-page .related-templates .related-links--cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;max-width:720px;margin-left:auto;margin-right:auto}.template-page .related-templates .related-link-card a,.sudoku-page .related-templates .related-link-card a{display:flex;flex-direction:column;align-items:stretch;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 8px #00000014;border:1px solid rgba(229,231,235,.8);transition:box-shadow .2s ease,transform .2s ease}.template-page .related-templates .related-link-card a:hover,.sudoku-page .related-templates .related-link-card a:hover{box-shadow:0 4px 12px #0000001f;text-decoration:none}.template-page .related-templates .related-link-card__image,.sudoku-page .related-templates .related-link-card__image{padding:.5rem .5rem 0;display:block;aspect-ratio:337 / 177;background-color:var(--bg-primary);overflow:hidden}.template-page .related-templates .related-link-card__image img,.sudoku-page .related-templates .related-link-card__image img{width:100%;height:100%;object-fit:cover;display:block}.template-page .related-templates .related-link-card__label,.sudoku-page .related-templates .related-link-card__label{display:flex;align-items:center;justify-content:center;padding:.5rem .75rem;font-size:.9rem;font-weight:600;color:var(--text-primary);text-align:center;min-height:65px;border-top:1px solid rgba(229,231,235,.9);background:var(--bg-primary)}.coloring-card-link{text-decoration:none;color:inherit;display:block}.coloring-card{background:var(--bg-primary);border-radius:var(--radius);box-shadow:0 2px 8px #00000014,0 1px 3px #0000000d;overflow:hidden;transition:all .3s ease;display:flex;flex-direction:column;border:1px solid rgba(229,231,235,.8);min-height:400px}.coloring-card-link:hover .coloring-card{transform:translateY(-4px);box-shadow:0 16px 24px -5px #00000026,0 8px 12px -3px #0000001a}.coloring-card-link:focus-within .coloring-card{outline:2px solid var(--primary-color);outline-offset:2px}.coloring-card-image{width:100%;padding:0;flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;background:var(--bg-secondary)}.coloring-card-img{width:100%;height:auto;object-fit:cover;object-position:top;border-radius:0;background:#fff;margin:0;padding:0;display:block}.coloring-card-title{font-size:1.25rem;font-weight:600;margin:0;padding:1rem 1.25rem;color:var(--text-primary);text-align:center;width:100%;letter-spacing:-.01em;border-top:1px solid var(--border-color)}.pakkeliste-card-link{text-decoration:none;color:inherit;display:block}.pakkeliste-card{background:var(--bg-primary);border-radius:var(--radius);box-shadow:0 2px 8px #00000014,0 1px 3px #0000000d;overflow:hidden;transition:all .3s ease;display:flex;flex-direction:column;border:1px solid rgba(229,231,235,.8)}.pakkeliste-card-link:hover .pakkeliste-card{transform:translateY(-4px);box-shadow:0 16px 24px -5px #00000026,0 8px 12px -3px #0000001a}.pakkeliste-card-link:focus-within .pakkeliste-card{outline:2px solid var(--primary-color);outline-offset:2px}.pakkeliste-card-image{width:100%;aspect-ratio:16 / 9;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--bg-secondary)}.pakkeliste-card-img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0;background:#fff;margin:0;padding:0;display:block}.pakkeliste-card-title{font-size:1.25rem;font-weight:600;margin:0;padding:.75rem 1.25rem .25rem;color:var(--text-primary);text-align:center;width:100%;letter-spacing:-.01em;border-top:1px solid var(--border-color)}.pakkeliste-card-description{font-size:.9rem;line-height:1.45;color:var(--text-secondary);margin:0;padding:0 1.25rem 1rem;text-align:center}.checkbox-label{display:flex;align-items:center;gap:0;font-size:.95rem;color:var(--text-primary);cursor:pointer;padding:.75rem;border-radius:var(--radius-sm);transition:background-color .2s ease}.checkbox-label:hover{background-color:#00000005}.checkbox-label:focus-within{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:var(--radius-sm);background-color:#2563eb0d}.checkbox-label label{cursor:pointer;user-select:none;display:flex;align-items:center;gap:.75rem;width:100%;margin:0;padding:0}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0;margin:0;padding:0;display:block;align-self:center}.select-label{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:var(--text-primary)}.select-label label{font-weight:500;white-space:nowrap;min-width:fit-content}.year-select,.template-page-options select{flex:1;padding:.625rem 2.5rem .625rem .875rem;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:#fff;color:var(--text-primary);cursor:pointer;min-width:150px;transition:all .2s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23374151' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px}.year-select:hover,.template-page-options select:hover{border-color:#9ca3af;background-color:#f9fafb}.year-select:focus,.template-page-options select:focus{outline:2px solid var(--primary-color);outline-offset:2px;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;background-color:#fff}.btn{width:100%;margin-top:1rem;padding:12px 24px;font-size:.9rem;font-weight:500;border:none!important;border-radius:8px;cursor:pointer;transition:all .2s ease;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;box-sizing:border-box;outline:none;-webkit-appearance:none;appearance:none;box-shadow:none;text-decoration:none;margin:0;flex-shrink:0}.btn:focus{outline:2px solid var(--primary-color);outline-offset:2px;box-shadow:none}.btn:focus:not(:focus-visible){outline:none}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .5s,height .5s}.btn:active:before{width:300px;height:300px}.btn:active{transform:translateY(0);border:none!important;box-shadow:none}.btn-print,.btn-primary{background:var(--primary-color);color:#fff;border:none!important}.btn-print:hover,.btn-primary:hover{background:#1e40af;transform:translateY(-2px);box-shadow:0 4px 12px #2563eb59;border:none!important}.btn-secondary{background:#4b5563;color:#fff;border:none!important}.btn-secondary:hover{background:#374151;transform:translateY(-2px);box-shadow:0 4px 12px #37415159;border:none!important}.btn-icon{width:16px;height:16px;stroke-width:2.5;flex-shrink:0;color:inherit;vertical-align:middle;display:inline-block;margin:0;padding:0}#print-container{position:absolute;left:-9999px;visibility:hidden;width:210mm;background:#fff}#print-container[data-landscape]{width:297mm}@media print{body{background:#fff;padding:0}.container{max-width:100%}header,footer,.btn,.template-card:not(.print-active){display:none!important}main .breadcrumbs,main .templates-section-title,main .category-page-description,main .card-section.faq-section,main .sudoku-generator .sudoku-generator-board,main .sudoku-generator .sudoku-generator-actions{display:none!important}.template-card.print-active{box-shadow:none;border:none;page-break-after:always}html:not(.print-page) .print-template{padding:2rem}html:not(.print-page) .print-template h2{font-size:2rem;margin-bottom:1.5rem;text-align:center}}.footer{margin-top:4rem;padding:2rem 1rem;background:#0000000d;text-align:center;width:100%}.footer-content{max-width:800px;margin:0 auto}.footer-block{margin-bottom:2rem;text-align:left}.footer-block:last-of-type{margin-bottom:1.5rem}.footer h2{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary)}.footer p{font-size:.9rem;line-height:1.6;color:var(--text-secondary);margin-bottom:1rem}.footer-content h2{font-size:1.5rem;margin-bottom:1rem;color:#2d2d2d}.footer-content p{margin-bottom:1rem;line-height:1.6}.footer-content a{color:var(--primary-color);text-decoration:underline;font-weight:500}.footer-content a:hover{color:var(--primary-hover)}.footer-content strong{font-weight:600;color:#8b7fc8}.footer-copy{margin-top:1.5rem;padding-top:1rem;font-size:.9rem;font-weight:500}main h2{font-size:1.75rem;font-weight:700;margin-top:3rem;margin-bottom:1.25rem;color:var(--text-primary);line-height:1.3;text-align:center;max-width:800px;margin-left:auto;margin-right:auto;padding:0 1rem}main>p{max-width:800px;margin:0 auto 1.5rem;font-size:1rem;line-height:1.7;color:var(--text-secondary);text-align:center;padding:0 1rem}main>p strong{font-weight:600;color:var(--text-primary)}.card-section{max-width:800px;margin:3rem auto 2rem;padding:2rem 1.5rem;background:#ffffffe6;border:1px solid #e5e7eb;border-radius:var(--radius);box-shadow:0 2px 8px #0000000d}.faq-section{margin-bottom:0}.faq-section h2{font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;color:var(--text-primary);text-align:center}.faq-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e5e7eb}.faq-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.faq-section h3{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary);line-height:1.4}.faq-section p{font-size:.95rem;line-height:1.7;color:var(--text-secondary);margin-bottom:0}.faq-section p strong{font-weight:600;color:var(--text-primary)}.privacy-section{text-align:center}.privacy-section h2{font-size:1.75rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.privacy-section p{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin-bottom:1rem;max-width:700px;margin-left:auto;margin-right:auto}.privacy-section p:last-child{margin-bottom:0}.privacy-section a{color:var(--primary-color);text-decoration:underline;font-weight:500;transition:color .2s ease}.privacy-section a:hover{color:var(--primary-hover)}.cookie-consent-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;padding:1rem 1.5rem;background:#fffffffa;border-top:1px solid var(--border-color);box-shadow:0 -4px 12px #00000014}.cookie-consent-content{max-width:900px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:space-between}.cookie-consent-text{flex:1;min-width:200px;margin:0;font-size:.95rem;color:var(--text-primary);line-height:1.5}.cookie-consent-text a{color:var(--primary-color);text-decoration:underline;font-weight:500}.cookie-consent-text a:hover{color:var(--primary-hover)}.cookie-consent-actions{display:flex;gap:.75rem;flex-shrink:0}.cookie-consent-btn{padding:.5rem 1.25rem;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s ease,color .2s ease}.cookie-consent-btn-accept{background:var(--primary-color);color:#fff;border:none}.cookie-consent-btn-accept:hover{background:var(--primary-hover)}.cookie-consent-btn-reject{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border-color)}.cookie-consent-btn-reject:hover,.cookie-consent-btn-customize:hover{background:var(--bg-secondary);color:var(--text-primary)}.cookie-consent-btn-customize{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border-color)}.info-page section{margin-bottom:1.5rem}.info-page section h2{font-size:1.15rem;font-weight:600;margin-bottom:.5rem}.info-page section h3{font-size:1rem;font-weight:600;margin:1.25rem 0 .35rem}.info-page section p{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin:0}.info-page section p+p{margin-top:1rem}.info-page section p a{color:var(--primary-color);text-decoration:underline}.info-page section p a:hover{color:var(--primary-hover)}.info-page section ul{margin:1rem 0 0;padding-left:1.5rem}.info-page section ul li{margin-bottom:.5rem;line-height:1.6;color:var(--text-secondary)}.info-page .template-page-header{text-align:center}.personvern-page-updated{font-size:.9rem;color:var(--text-secondary);margin-top:2rem;margin-bottom:1rem}.personvern-page-back,.template-page-back{margin:0;margin-top:2rem}.personvern-page-back a,.template-page-back a{color:var(--primary-color);text-decoration:underline;font-weight:500}.personvern-page-back a:hover,.template-page-back a:hover{color:var(--primary-hover)}.contact-form{width:100%;margin-top:1rem}.contact-form-group{margin-bottom:1.25rem}.contact-form-group label{display:block;font-size:.95rem;font-weight:500;color:var(--text-primary);margin-bottom:.35rem}.contact-form input,.contact-form textarea{width:100%;padding:.625rem .875rem;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:#fff;color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.contact-form input:hover,.contact-form textarea:hover{border-color:#9ca3af}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.contact-form input:disabled,.contact-form textarea:disabled{opacity:.7;cursor:not-allowed}.contact-form textarea{resize:vertical;min-height:120px}.contact-form-turnstile{margin:.5rem 0;min-height:1px;display:flex;justify-content:center}.contact-form .btn-primary{margin-top:.5rem}.contact-form-message{font-size:.95rem;margin-bottom:1rem;padding:.75rem;border-radius:var(--radius-sm)}.contact-form-message--success{color:#166534;background:#dcfce7}.contact-form-message--error{color:#991b1b;background:#fee2e2}.other-templates-section{text-align:center}.other-templates-section h2{font-size:1.75rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.other-templates-section p{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin-bottom:0}.other-templates-section a{color:var(--primary-color);text-decoration:underline;font-weight:500;transition:color .2s ease}.other-templates-section a:hover{color:var(--primary-hover)}.sudoku-generator{margin:2rem 0;display:flex;flex-direction:column;align-items:center}.sudoku-generator-board{display:inline-block;margin-bottom:1.5rem}.sudoku-generator-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.75rem;align-items:center;justify-content:center}.sudoku-generator-actions .btn{display:inline-flex;align-items:center;gap:.5rem}@media(max-width:768px){.sudoku-generator-actions{flex-direction:column;flex-wrap:wrap;width:100%}.sudoku-generator-actions .btn{width:100%}}.sudoku-board-table{border-collapse:collapse;border:2px solid #111;background:var(--bg-primary);font-size:clamp(14px,2.5vw,22px);font-weight:600;color:var(--text-primary);table-layout:fixed}.sudoku-board--9x9 .sudoku-board-table{width:min(360px,85vw);height:min(360px,85vw)}.sudoku-board--4x4 .sudoku-board-table{width:min(200px,60vw);height:min(200px,60vw)}.sudoku-cell{border:1px solid #ccc;padding:0;text-align:center;vertical-align:middle}.sudoku-cell--box-right{border-right:2px solid #111}.sudoku-cell--box-bottom{border-bottom:2px solid #111}.sudoku-board--9x9 .sudoku-cell{width:11.11%;height:11.11%}.sudoku-board--4x4 .sudoku-cell{width:25%;height:25%}.sudoku-cell-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:1.8em}.sudoku-board--9x9 .sudoku-cell-inner{min-height:2em}.sudoku-license-notice{font-size:.9rem;color:var(--text-secondary);margin:0;text-align:center}.sudoku-license-notice a{color:var(--primary-color);text-decoration:underline;font-weight:500}.sudoku-license-notice a:hover{color:var(--primary-hover)}.print-only{display:none}@media print{.no-print{display:none!important}.print-only{display:block!important}html.sudoku-page body *{visibility:hidden}html.sudoku-page .sudoku-print-area,html.sudoku-page .sudoku-print-area *{visibility:visible}html.sudoku-page .sudoku-print-area{position:absolute;left:0;top:2.5rem;width:100%;padding:0;page-break-inside:avoid}@page{size:A4;margin:0}html.sudoku-page,html.sudoku-page body{height:297mm!important;max-height:297mm!important;overflow:hidden!important;margin:0!important;padding:0!important}html.sudoku-page .sudoku-print-area .sudoku-cell{border:1px solid #ccc!important}html.sudoku-page .sudoku-print-area .sudoku-cell--box-right{border-right:2px solid #111!important}html.sudoku-page .sudoku-print-area .sudoku-cell--box-bottom{border-bottom:2px solid #111!important}html.sudoku-page .sudoku-print-area .sudoku-board-table{margin:0 auto;border:2px solid #111!important}}.cookie-modal-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000080;animation:cookie-modal-fadeIn .2s ease-out}@keyframes cookie-modal-fadeIn{0%{opacity:0}to{opacity:1}}.cookie-modal-content{position:relative;width:100%;max-width:480px;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;background:var(--bg-primary);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;animation:cookie-modal-slideIn .25s ease-out}@keyframes cookie-modal-slideIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.cookie-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.cookie-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.cookie-modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;font-size:1.5rem;line-height:1;color:var(--text-secondary);background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:color .2s ease,background .2s ease}.cookie-modal-close:hover,.cookie-modal-close:focus-visible{color:var(--text-primary);background:var(--bg-secondary)}.cookie-modal-close:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.cookie-modal-info{padding:1rem 1.5rem 0;margin:0;font-size:.95rem;line-height:1.5;color:var(--text-secondary);flex-shrink:0}.cookie-modal-info a{color:var(--primary-color);text-decoration:underline;font-weight:500}.cookie-modal-info a:hover{color:var(--primary-hover)}.cookie-modal-list{list-style:none;margin:0;padding:1rem 1.5rem;overflow-y:auto;flex:1;min-height:0}.cookie-modal-item{padding:1rem 0;border-bottom:1px solid var(--border-color)}.cookie-modal-item:last-child{border-bottom:none;padding-bottom:0}.cookie-modal-item:first-child{padding-top:.5rem}.cookie-modal-item-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.cookie-modal-item-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.cookie-modal-item-desc{margin:.5rem 0 0;font-size:.875rem;line-height:1.5;color:var(--text-secondary)}.cookie-modal-toggle-wrapper{flex-shrink:0}.cookie-modal-toggle{position:relative;display:inline-flex;width:44px;height:24px;flex-shrink:0;background:var(--border-color);border-radius:24px;cursor:pointer;transition:background .2s ease}.cookie-modal-toggle:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.cookie-modal-toggle:hover:not(.cookie-modal-toggle-disabled){background:#d1d5db}.cookie-modal-toggle-on{background:var(--primary-color)}.cookie-modal-toggle-on:hover{background:var(--primary-hover)}.cookie-modal-toggle-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform .2s ease}.cookie-modal-toggle-on .cookie-modal-toggle-slider{transform:translate(20px)}.cookie-modal-toggle-disabled{cursor:default;background:var(--primary-color);opacity:.7}.cookie-modal-toggle-disabled .cookie-modal-toggle-slider{transform:translate(20px)}.cookie-modal-footer{display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--border-color);flex-shrink:0}.cookie-modal-btn-cancel{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border-color)}.cookie-modal-btn-cancel:hover{background:var(--bg-secondary);color:var(--text-primary)}.cookie-modal-btn-save{min-width:5rem}@media(max-width:480px){.cookie-modal-overlay{padding:.75rem}.cookie-modal-header,.cookie-modal-info,.cookie-modal-list,.cookie-modal-footer{padding-left:1rem;padding-right:1rem}.cookie-modal-footer{flex-wrap:wrap}.cookie-modal-footer .cookie-consent-btn{flex:1;min-width:0}}@media(max-width:768px){header{margin-bottom:3rem}header h1,header .site-title{font-size:2.25rem}.subtitle{font-size:.9rem}.templates-grid{grid-template-columns:1fr;gap:1.5rem;display:flex;flex-direction:column}.template-card{width:100%;min-height:550px}.template-preview{padding:1.25rem 1rem}.btn{width:100%;min-width:100%;max-width:100%;padding:12px 24px}.template-page{padding:1.5rem;margin:1rem}.template-page h1{font-size:1.75rem;line-height:1.3;word-wrap:break-word}.template-page h2{font-size:1.5rem;margin-top:2rem;margin-bottom:1rem}.template-page-description{font-size:1rem}.template-page-options{padding:1rem;gap:1rem}.template-page-header .template-icon-wrapper{width:64px;height:64px}.template-page-header .template-icon{width:32px;height:32px}.template-page-preview{margin-bottom:1.5rem}.template-page-preview .preview-img{width:100%;max-width:100%}.template-page-actions{padding-top:1rem}.template-page-actions .btn-print{width:100%;min-width:auto;padding:.875rem 1.5rem;font-size:1rem}}@media(max-width:600px){.cookie-consent-content{flex-direction:column;align-items:stretch;text-align:center}.cookie-consent-actions{justify-content:center}}@media(max-width:480px){body{padding:1.5rem .75rem}header{margin-bottom:2.5rem}header h1,header .site-title{font-size:2rem}.subtitle{font-size:.85rem}.template-preview{padding:1rem .75rem}.template-card{min-height:500px}.template-preview h3{font-size:1.15rem}.template-icon-wrapper{width:48px;height:48px;margin-bottom:.75rem}.template-icon{width:24px;height:24px}.template-description{font-size:.8rem}.checkbox-label{font-size:.9rem;padding:.4rem}.checkbox-label input[type=checkbox]{width:18px;height:18px}.select-label{font-size:.9rem;flex-direction:column;align-items:flex-start;gap:.5rem}.select-label label{width:100%}.year-select,.template-page-options select{width:100%;min-width:auto;font-size:.9rem;padding:.5rem 2.25rem .5rem .75rem}.btn{font-size:.85rem;padding:12px 20px;border-radius:8px}.btn-icon{width:16px;height:16px}}
