@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap";:root{--color-primary-600:#0056b3;--color-primary-500:#0069d9;--color-primary-400:#2680eb;--color-primary-300:#4b9bff;--color-primary-200:#7ab8ff;--color-primary-100:#b2d4ff;--color-primary-50:#e6f2ff;--color-gray-900:#1a1a1a;--color-gray-800:#2d2d2d;--color-gray-700:#404040;--color-gray-600:#595959;--color-gray-500:#737373;--color-gray-400:#8c8c8c;--color-gray-300:#a6a6a6;--color-gray-200:#d9d9d9;--color-gray-100:#f0f0f0;--color-gray-50:#f8f8f8;--color-white:#ffffff;--color-black:#000000;--color-success:#00875a;--color-error:#de350b;--color-warning:#ff8b00;--color-info:#0065ff;--font-family-base:"Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI",
        sans-serif;--font-family-mono:"Noto Sans Mono", monospace;--font-size-display-lg:64px;--font-size-display-md:56px;--font-size-display-sm:48px;--font-size-heading-xl:40px;--font-size-heading-lg:32px;--font-size-heading-md:28px;--font-size-heading-sm:24px;--font-size-heading-xs:20px;--font-size-body-lg:18px;--font-size-body-md:16px;--font-size-body-sm:14px;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.7;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:40px;--spacing-3xl:48px;--spacing-4xl:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 4px 6px rgba(0, 0, 0, 0.07);--shadow-lg:0 10px 15px rgba(0, 0, 0, 0.1)}*{box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--font-size-body-md);line-height:var(--line-height-normal);color:var(--color-gray-900);background-color:var(--color-white);margin:0;padding:0;font-weight:400}h1{font-size:var(--font-size-heading-xl);line-height:var(--line-height-tight);font-weight:700;margin-bottom:var(--spacing-lg);color:var(--color-gray-900)}h2{font-size:var(--font-size-heading-lg);line-height:var(--line-height-tight);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-gray-900)}h3{font-size:var(--font-size-heading-md);line-height:var(--line-height-tight);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-gray-900)}h4{font-size:var(--font-size-heading-sm);line-height:var(--line-height-tight);font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-gray-900)}p{margin-bottom:var(--spacing-md);line-height:var(--line-height-relaxed)}a{color:var(--color-primary-500);text-decoration:underline;transition:color .2s ease}a:hover{color:var(--color-primary-600)}a:visited{color:var(--color-primary-600)}input,select,textarea{width:100%;padding:var(--spacing-sm)var(--spacing-md);margin-bottom:var(--spacing-md);border:2px solid var(--color-gray-300);border-radius:var(--radius-sm);font-size:var(--font-size-body-md);font-family:var(--font-family-base);transition:border-color .2s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px rgba(0,105,217,.1)}button,.button{display:inline-block;padding:var(--spacing-sm)var(--spacing-lg);font-size:var(--font-size-body-md);font-weight:700;font-family:var(--font-family-base);text-align:center;text-decoration:none;border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.button.button-primary{background-color:var(--color-primary-500);color:var(--color-white)}.button.button-primary:hover{background-color:var(--color-primary-600)}.button.button-secondary{background-color:var(--color-white);color:var(--color-primary-500);border-color:var(--color-primary-500)}.button.button-secondary:hover{background-color:var(--color-primary-100)}.card{background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.report-card{background-color:var(--color-white);border-left:4px solid var(--color-primary-500);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:all .2s ease}.report-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tag{display:inline-block;padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-size-body-sm);background-color:var(--color-gray-100);color:var(--color-gray-700);border-radius:var(--radius-sm);margin-right:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.header{background-color:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);padding:var(--spacing-md)0}.main{min-height:calc(100vh - 200px);padding:var(--spacing-3xl)0}.footer{background-color:var(--color-gray-50);border-top:1px solid var(--color-gray-200);padding:var(--spacing-xl)0;text-align:center;color:var(--color-gray-600)}.search-box{width:100%;padding:var(--spacing-md);font-size:var(--font-size-body-lg);border:2px solid var(--color-gray-300);border-radius:var(--radius-md);transition:all .2s ease}.search-box:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px rgba(0,105,217,.1)}.search-results{list-style:none;padding:0;margin-top:var(--spacing-lg)}.search-results li{padding:var(--spacing-lg);border-bottom:1px solid var(--color-gray-200)}.search-results li:hover{background-color:var(--color-gray-50)}@media(max-width:768px){:root{--font-size-display-lg:48px;--font-size-display-md:40px;--font-size-display-sm:32px;--font-size-heading-xl:32px;--font-size-heading-lg:28px;--font-size-heading-md:24px;--font-size-heading-sm:20px}.container{padding:0 var(--spacing-md)}.main{padding:var(--spacing-xl)0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:3px solid var(--color-primary-500);outline-offset:2px}.contractors-page .page-header{background:linear-gradient( 135deg,var(--color-primary-50) 0%,var(--color-white) 100% );padding:var(--spacing-4xl)0;margin-bottom:var(--spacing-4xl);position:relative;overflow:hidden}.contractors-page .page-header::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient( 135deg,rgba(0,105,217,5%) 0%,rgba(255,255,255,.1) 100% );pointer-events:none}.contractors-page .header-content{display:flex;justify-content:space-between;align-items:flex-start;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);position:relative;z-index:1}.contractors-page .title-section{flex:1}.contractors-page .page-title{display:flex;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-heading-xl);font-weight:700;color:var(--color-gray-900);margin:0 0 var(--spacing-md)}.contractors-page .title-icon{width:48px;height:48px;color:var(--color-primary-500);flex-shrink:0}.contractors-page .page-description{font-size:var(--font-size-body-lg);color:var(--color-gray-600);line-height:var(--line-height-relaxed);margin:0;max-width:600px}.contractors-page .stats-container{flex-shrink:0;margin-left:var(--spacing-xl)}.contractors-page .stat-item{background:var(--color-white);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center;border:1px solid var(--color-gray-200)}.contractors-page .stat-number{display:block;font-size:var(--font-size-heading-lg);font-weight:700;color:var(--color-primary-500);line-height:1}.contractors-page .stat-label{display:block;font-size:var(--font-size-body-sm);color:var(--color-gray-600);margin-top:var(--spacing-xs)}.contractors-page .filter-section{max-width:1200px;margin:0 auto var(--spacing-4xl);padding:0 var(--spacing-lg)}.contractors-page .filter-container{max-width:600px;margin:0 auto}.contractors-page .search-input-wrapper{position:relative;display:flex;align-items:center;background:var(--color-white);border:2px solid var(--color-gray-300);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all .2s ease;min-height:48px}.contractors-page .search-input-wrapper:focus-within{border-color:var(--color-primary-500);box-shadow:0 0 0 3px rgba(0,105,217,.1)}.contractors-page .search-icon{width:20px;height:20px;margin-left:var(--spacing-md);color:var(--color-gray-500);flex-shrink:0}.contractors-page .filter-input{flex:1;padding:var(--spacing-md);font-size:var(--font-size-body-md);border:none;background:0 0;outline:none !important;color:var(--color-gray-900);line-height:1.5;height:auto;vertical-align:middle;box-sizing:border-box;margin-bottom:0}.contractors-page .filter-input:focus{outline:none !important;box-shadow:none !important;border:none !important}.contractors-page .filter-input:focus-visible{outline:none !important;box-shadow:none !important}.contractors-page .filter-input::placeholder{color:var(--color-gray-500);line-height:1.5}.contractors-page .clear-button{background:0 0;border:none;padding:var(--spacing-sm);margin-right:var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);color:var(--color-gray-500);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.contractors-page .clear-button:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.contractors-page .clear-button svg{width:16px;height:16px}.contractors-page .filter-status{text-align:center;margin-top:var(--spacing-md);color:var(--color-gray-600);font-size:var(--font-size-body-sm);font-weight:500;padding:var(--spacing-sm)var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--radius-sm);display:inline-block}.contractors-page .contractors-grid-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.contractors-page .contractors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-4xl)}.contractors-page .contractor-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-200);transition:all .3s ease;overflow:hidden;position:relative}.contractors-page .contractor-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary-200)}.contractors-page .contractor-link{display:block;text-decoration:none;color:inherit;height:100%}.contractors-page .card-header{padding:var(--spacing-lg);display:flex;align-items:flex-start;gap:var(--spacing-md)}.contractors-page .contractor-icon{width:48px;height:48px;background:linear-gradient( 135deg,var(--color-primary-500),var(--color-primary-600) );border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-white)}.contractors-page .contractor-icon svg{width:24px;height:24px}.contractors-page .contractor-info{flex:1;min-width:0}.contractors-page .contractor-name{font-size:var(--font-size-heading-sm);font-weight:700;color:var(--color-gray-900);margin:0 0 var(--spacing-sm);line-height:var(--line-height-tight);word-wrap:break-word}.contractors-page .contractor-meta{display:flex;align-items:center;gap:var(--spacing-md)}.contractors-page .report-count{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-gray-600);font-size:var(--font-size-body-sm)}.contractors-page .count-icon{width:16px;height:16px;color:var(--color-gray-500)}.contractors-page .card-footer{padding:var(--spacing-md)var(--spacing-lg);background-color:var(--color-gray-50);border-top:1px solid var(--color-gray-200)}.contractors-page .view-reports{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-size:var(--font-size-body-sm);font-weight:600;color:var(--color-primary-500);transition:color .2s ease}.contractors-page .contractor-card:hover .view-reports{color:var(--color-primary-600)}.contractors-page .arrow-icon{width:16px;height:16px;transition:transform .2s ease}.contractors-page .contractor-card:hover .arrow-icon{transform:translateX(2px)}.contractors-page .no-results-modern{text-align:center;padding:var(--spacing-4xl)var(--spacing-lg);background:var(--color-white);border-radius:var(--radius-lg);border:2px dashed var(--color-gray-300);margin:var(--spacing-xl)0}.contractors-page .no-results-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);color:var(--color-gray-400)}.contractors-page .no-results-modern h3{font-size:var(--font-size-heading-sm);font-weight:600;color:var(--color-gray-700);margin:0 0 var(--spacing-sm)}.contractors-page .no-results-modern p{color:var(--color-gray-500);font-size:var(--font-size-body-md);margin:0;line-height:var(--line-height-relaxed)}.contractors-page .empty-state-modern{text-align:center;padding:var(--spacing-4xl)var(--spacing-lg);background:linear-gradient( 135deg,var(--color-gray-50),var(--color-white) );border-radius:var(--radius-lg);border:1px solid var(--color-gray-200);margin:var(--spacing-xl)0}.contractors-page .empty-state-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--color-gray-400)}.contractors-page .empty-state-modern h3{font-size:var(--font-size-heading-md);font-weight:600;color:var(--color-gray-700);margin:0 0 var(--spacing-sm)}.contractors-page .empty-state-modern p{color:var(--color-gray-500);font-size:var(--font-size-body-md);margin:0;line-height:var(--line-height-relaxed)}.contractors-page .loading-state,.contractors-page .empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-gray-500)}.contractors-page .pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-xl);margin-top:var(--spacing-3xl)}.contractors-page .pagination-link{padding:var(--spacing-sm)var(--spacing-lg);background-color:var(--color-gray-100);color:var(--color-gray-700);border:2px solid var(--color-gray-300);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;font-family:var(--font-family-base);font-size:var(--font-size-body-sm);font-weight:500}.contractors-page .pagination-link:hover:not(:disabled){background-color:var(--color-primary-100);color:var(--color-primary-600);border-color:var(--color-primary-300)}.contractors-page .pagination-link:disabled{background-color:var(--color-gray-50);color:var(--color-gray-400);border-color:var(--color-gray-200);cursor:not-allowed;opacity:.6}.contractors-page .pagination-info{color:var(--color-gray-600);font-size:var(--font-size-body-sm);font-weight:500;min-width:120px;text-align:center}@media(max-width:768px){.contractors-page .header-content{flex-direction:column;gap:var(--spacing-lg);text-align:center}.contractors-page .stats-container{margin-left:0;align-self:center}.contractors-page .page-title{font-size:var(--font-size-heading-lg);justify-content:center}.contractors-page .title-icon{width:40px;height:40px}.contractors-page .contractors-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.contractors-page .contractors-grid-container,.contractors-page .filter-section{padding:0 var(--spacing-md)}.contractors-page .contractor-name{font-size:var(--font-size-heading-xs)}.contractors-page .contractor-icon{width:40px;height:40px}.contractors-page .contractor-icon svg{width:20px;height:20px}.contractors-page .pagination{flex-wrap:wrap;gap:var(--spacing-md)}.contractors-page .pagination-link{padding:var(--spacing-xs)var(--spacing-md);font-size:var(--font-size-body-sm)}.contractors-page .no-results-modern,.contractors-page .empty-state-modern{padding:var(--spacing-xl)var(--spacing-md);margin:var(--spacing-md)0}.contractors-page .no-results-icon,.contractors-page .empty-state-icon{width:48px;height:48px;margin-bottom:var(--spacing-md)}}@media(max-width:480px){.contractors-page .contractors-grid{gap:var(--spacing-md)}.contractors-page .contractor-card{border-radius:var(--radius-md)}.contractors-page .card-header{padding:var(--spacing-md)}.contractors-page .contractor-name{font-size:var(--font-size-body-lg);font-weight:600}.contractors-page .page-header{padding:var(--spacing-xl)0}}@media print{.header,.footer,.no-print{display:none}body{font-size:12pt;line-height:1.5}a{color:var(--color-black);text-decoration:underline}}