*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#f4f6fb;--color-surface:#ffffff;--color-text:#0f172a;--color-text-muted:#64748b;--color-border:#e2e8f0;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#eff6ff;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(15,23,42,0.06);--shadow-md:0 4px 16px rgba(15,23,42,0.08);--shadow-lg:0 8px 32px rgba(15,23,42,0.1)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.5}a{color:inherit;text-decoration:none}.page{min-height:100vh;padding:2rem 1.25rem 3rem}.page-inner{width:100%;max-width:560px;margin:0 auto}.page-inner--wide{max-width:640px}.page-header{text-align:center;margin-bottom:2.5rem}.page-title{font-size:2rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem}.page-title--large{font-size:2.5rem}.page-subtitle{font-size:1.05rem;color:var(--color-text-muted)}.actions{display:flex;flex-direction:column;gap:.75rem}.actions--center,.btn{align-items:center}.btn{display:inline-flex;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s;text-align:center}.btn:active{transform:scale(.98)}.btn-primary{width:100%;padding:1.125rem 1.5rem;font-size:1.0625rem;color:#ffffff;background-color:var(--color-primary);box-shadow:var(--shadow-md)}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{width:100%;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background-color:#f8fafc;border-color:#cbd5e1}.btn-ghost{color:var(--color-text-muted);background:transparent;border:1px solid transparent;font-weight:500}.btn-ghost:hover{color:var(--color-text);background-color:rgba(255,255,255,.6);border-color:var(--color-border)}.btn-outline{color:var(--color-primary);background-color:var(--color-surface);border:1px solid var(--color-border)}.btn-outline:hover{background-color:var(--color-primary-light);border-color:#bfdbfe}.card-grid{display:flex;flex-direction:column;gap:.875rem;margin-bottom:2rem}.doc-card{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .1s}.doc-card:hover{border-color:#bfdbfe;box-shadow:var(--shadow-md);transform:translateY(-1px)}.doc-card__icon{font-size:2rem;line-height:1}.doc-card__label{font-size:1.125rem;font-weight:600}.section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.section-title{font-size:1rem;font-weight:600;margin-bottom:1rem}.form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-label__required{color:#dc2626}.form-input--error{border-color:#fca5a5;background-color:#fef2f2}.form-input--error:focus{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.15)}.form-error{font-size:.8125rem;color:#dc2626}.form-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;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='%2364748b' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;padding-right:2.5rem}.form-input,.form-textarea{width:100%;padding:.75rem .875rem;font-size:1rem;font-family:inherit;color:var(--color-text);background-color:#f8fafc;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(37,99,235,.15);background-color:var(--color-surface)}.form-textarea{min-height:96px;resize:vertical}.file-picker{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.file-picker__hint{font-size:.8125rem;color:var(--color-text-muted)}.file-picker__name{font-size:.875rem;color:var(--color-primary);font-weight:500}.file-picker__status{margin-top:.25rem}.form-actions{margin-top:1.5rem}.form-success{margin-top:1rem;padding:.875rem 1rem;font-size:.9375rem;font-weight:500;color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-sm);text-align:center}.back-link-wrap{margin-top:1rem}.back-link-wrap,.home-hero{display:flex;justify-content:center}.home-hero{flex-direction:column;align-items:center;min-height:calc(100vh - 5rem);text-align:center}.home-hero .actions{width:100%;max-width:360px}.home-hero .btn-primary{margin-bottom:.5rem}.collapsible-section{padding:0}.collapsible-section__summary{list-style:none;cursor:pointer;padding:1.5rem;font-size:1rem;font-weight:600}.collapsible-section__summary::-webkit-details-marker{display:none}.collapsible-section__summary:after{content:"+";float:right;color:var(--color-text-muted);font-weight:500}.collapsible-section[open] .collapsible-section__summary:after{content:"−"}.collapsible-section__content{padding:0 1.5rem 1.5rem;border-top:1px solid var(--color-border)}.collapsible-section__content .form-group:first-child{margin-top:1rem}.form-input[readonly]{background-color:#f1f5f9;color:var(--color-text-muted);cursor:default}.section-heading{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.template-tags-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.template-tags-list__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;background-color:#f8fafc;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.template-tag{font-size:.875rem;color:var(--color-primary);word-break:break-all}.template-copy-button{flex-shrink:0;padding:.375rem .75rem;font-size:.875rem}.template-analyze-button,.template-copy-all-button,.template-delete-button,.template-download-button,.template-prepare-button{width:-moz-fit-content;width:fit-content}.preparation-result,.template-preparation-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.preparation-result__title{font-size:.9375rem;font-weight:600}.preparation-result__list{margin:.25rem 0 0 1.25rem;font-size:.875rem}.preparation-result__list--warning{color:#92400e}.missing-fields-panel{padding:1rem;background-color:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm)}.missing-fields-panel__title{font-weight:600;margin-bottom:.5rem}.missing-fields-panel__list{margin:0 0 .75rem 1.25rem;font-size:.9375rem}.missing-fields-panel__actions{display:flex;flex-direction:column;gap:.75rem}.mode-switch{display:flex;flex-direction:column;gap:.5rem}.mode-switch__option{display:flex;align-items:center;gap:.5rem;font-size:.9375rem}.analysis-warning{margin-bottom:1rem;padding:.875rem 1rem;font-size:.9375rem;color:#92400e;background-color:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-sm)}.analysis-warnings-list{margin:0 0 1rem 1.25rem;color:var(--color-text-muted);font-size:.875rem}.analysis-table-wrap{overflow-x:auto}.analysis-table{width:100%;border-collapse:collapse;font-size:.875rem}.analysis-table td,.analysis-table th{padding:.75rem;border:1px solid var(--color-border);text-align:left;vertical-align:top}.analysis-table th{background-color:#f8fafc;font-weight:600}.analysis-toggle{display:inline-flex;align-items:center;gap:.375rem;cursor:pointer}@media (min-width:640px){.section-heading{flex-direction:row;align-items:center;justify-content:space-between}.mode-switch{flex-direction:row;gap:1rem}.missing-fields-panel__actions,.template-preparation-actions{flex-direction:row;align-items:center}}.history-table-wrap{overflow-x:auto}.history-table{width:100%;min-width:760px}.history-table__actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn--compact{width:auto;padding:.5rem .875rem;font-size:.875rem;box-shadow:none}